diff --git a/.github/update.log b/.github/update.log
index f2be19df57..1245cad4c2 100644
--- a/.github/update.log
+++ b/.github/update.log
@@ -1171,3 +1171,4 @@ Update On Fri Oct 31 19:38:32 CET 2025
Update On Sat Nov 1 19:37:41 CET 2025
Update On Sun Nov 2 19:34:13 CET 2025
Update On Mon Nov 3 19:37:13 CET 2025
+Update On Tue Nov 4 19:40:23 CET 2025
diff --git a/clash-meta/common/net/sing.go b/clash-meta/common/net/sing.go
index 72bfd97253..df07bf98df 100644
--- a/clash-meta/common/net/sing.go
+++ b/clash-meta/common/net/sing.go
@@ -24,6 +24,8 @@ var WriteBuffer = bufio.WriteBuffer
type ReadWaitOptions = network.ReadWaitOptions
var NewReadWaitOptions = network.NewReadWaitOptions
+var CalculateFrontHeadroom = network.CalculateFrontHeadroom
+var CalculateRearHeadroom = network.CalculateRearHeadroom
type ReaderWithUpstream = network.ReaderWithUpstream
type WithUpstreamReader = network.WithUpstreamReader
diff --git a/clash-meta/go.mod b/clash-meta/go.mod
index 4dc7d32d3f..248325e2bb 100644
--- a/clash-meta/go.mod
+++ b/clash-meta/go.mod
@@ -16,7 +16,7 @@ require (
github.com/insomniacslk/dhcp v0.0.0-20250109001534-8abf58130905
github.com/klauspost/compress v1.17.9 // lastest version compatible with golang1.20
github.com/mdlayher/netlink v1.7.2
- github.com/metacubex/amneziawg-go v0.0.0-20250902133113-a7f637c14281
+ github.com/metacubex/amneziawg-go v0.0.0-20251104174305-5a0e9f7e361d
github.com/metacubex/bart v0.26.0
github.com/metacubex/bbolt v0.0.0-20250725135710-010dbbbb7a5b
github.com/metacubex/blake3 v0.1.0
diff --git a/clash-meta/go.sum b/clash-meta/go.sum
index 981d842287..5069ad9a82 100644
--- a/clash-meta/go.sum
+++ b/clash-meta/go.sum
@@ -90,8 +90,8 @@ github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/
github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw=
github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U=
github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA=
-github.com/metacubex/amneziawg-go v0.0.0-20250902133113-a7f637c14281 h1:09EM0sOLb2kfL0KETGhHujsBLB5iy5U/2yHRHsxf/pI=
-github.com/metacubex/amneziawg-go v0.0.0-20250902133113-a7f637c14281/go.mod h1:MsM/5czONyXMJ3PRr5DbQ4O/BxzAnJWOIcJdLzW6qHY=
+github.com/metacubex/amneziawg-go v0.0.0-20251104174305-5a0e9f7e361d h1:vAJ0ZT4aO803F1uw2roIA9yH7Sxzox34tVVyye1bz6c=
+github.com/metacubex/amneziawg-go v0.0.0-20251104174305-5a0e9f7e361d/go.mod h1:MsM/5czONyXMJ3PRr5DbQ4O/BxzAnJWOIcJdLzW6qHY=
github.com/metacubex/ascon v0.1.0 h1:6ZWxmXYszT1XXtwkf6nxfFhc/OTtQ9R3Vyj1jN32lGM=
github.com/metacubex/ascon v0.1.0/go.mod h1:eV5oim4cVPPdEL8/EYaTZ0iIKARH9pnhAK/fcT5Kacc=
github.com/metacubex/bart v0.26.0 h1:d/bBTvVatfVWGfQbiDpYKI1bXUJgjaabB2KpK1Tnk6w=
diff --git a/clash-meta/transport/vless/vision/conn.go b/clash-meta/transport/vless/vision/conn.go
index 4e62b1536c..a4d236c1d6 100644
--- a/clash-meta/transport/vless/vision/conn.go
+++ b/clash-meta/transport/vless/vision/conn.go
@@ -242,14 +242,26 @@ func (vc *Conn) WriteBuffer(buffer *buf.Buffer) (err error) {
}
func (vc *Conn) FrontHeadroom() int {
+ fontHeadroom := PaddingHeaderLen - uuid.Size
if vc.readFilterUUID || vc.writeOnceUserUUID != nil {
- return PaddingHeaderLen
+ fontHeadroom = PaddingHeaderLen
}
- return PaddingHeaderLen - uuid.Size
+ if vc.writeFilterApplicationData { // The writer may be replaced, add the required value for vc.netConn
+ if abs := N.CalculateFrontHeadroom(vc.netConn) - N.CalculateFrontHeadroom(vc.Conn); abs > 0 {
+ fontHeadroom += abs
+ }
+ }
+ return fontHeadroom
}
func (vc *Conn) RearHeadroom() int {
- return 500 + 900
+ rearHeadroom := 500 + 900
+ if vc.writeFilterApplicationData { // The writer may be replaced, add the required value for vc.netConn
+ if abs := N.CalculateRearHeadroom(vc.netConn) - N.CalculateRearHeadroom(vc.Conn); abs > 0 {
+ rearHeadroom += abs
+ }
+ }
+ return rearHeadroom
}
func (vc *Conn) NeedHandshake() bool {
diff --git a/clash-nyanpasu/frontend/nyanpasu/package.json b/clash-nyanpasu/frontend/nyanpasu/package.json
index b3ff7fdf41..d27fcf3018 100644
--- a/clash-nyanpasu/frontend/nyanpasu/package.json
+++ b/clash-nyanpasu/frontend/nyanpasu/package.json
@@ -16,9 +16,9 @@
"@emotion/styled": "11.14.1",
"@juggle/resize-observer": "3.4.0",
"@material/material-color-utilities": "0.3.0",
- "@mui/icons-material": "7.3.4",
+ "@mui/icons-material": "7.3.5",
"@mui/lab": "7.0.0-beta.17",
- "@mui/material": "7.3.4",
+ "@mui/material": "7.3.5",
"@mui/x-date-pickers": "8.16.0",
"@nyanpasu/interface": "workspace:^",
"@nyanpasu/ui": "workspace:^",
@@ -59,9 +59,9 @@
"@iconify/json": "2.2.403",
"@monaco-editor/react": "4.7.0",
"@tanstack/react-query": "5.90.6",
- "@tanstack/react-router": "1.134.9",
- "@tanstack/react-router-devtools": "1.134.9",
- "@tanstack/router-plugin": "1.134.9",
+ "@tanstack/react-router": "1.134.12",
+ "@tanstack/react-router-devtools": "1.134.12",
+ "@tanstack/router-plugin": "1.134.12",
"@tauri-apps/plugin-clipboard-manager": "2.3.0",
"@tauri-apps/plugin-dialog": "2.4.0",
"@tauri-apps/plugin-fs": "2.4.2",
diff --git a/clash-nyanpasu/frontend/ui/package.json b/clash-nyanpasu/frontend/ui/package.json
index 50345d3153..47ce69b169 100644
--- a/clash-nyanpasu/frontend/ui/package.json
+++ b/clash-nyanpasu/frontend/ui/package.json
@@ -12,9 +12,9 @@
},
"dependencies": {
"@material/material-color-utilities": "0.3.0",
- "@mui/icons-material": "7.3.4",
+ "@mui/icons-material": "7.3.5",
"@mui/lab": "7.0.0-beta.17",
- "@mui/material": "7.3.4",
+ "@mui/material": "7.3.5",
"@radix-ui/react-portal": "1.1.9",
"@radix-ui/react-scroll-area": "1.2.10",
"@tauri-apps/api": "2.8.0",
diff --git a/clash-nyanpasu/manifest/version.json b/clash-nyanpasu/manifest/version.json
index 7f9b2102d8..74d08bf9e4 100644
--- a/clash-nyanpasu/manifest/version.json
+++ b/clash-nyanpasu/manifest/version.json
@@ -2,10 +2,10 @@
"manifest_version": 1,
"latest": {
"mihomo": "v1.19.15",
- "mihomo_alpha": "alpha-6fb1f79",
+ "mihomo_alpha": "alpha-fd39c2a",
"clash_rs": "v0.9.1",
"clash_premium": "2023-09-05-gdcc8d87",
- "clash_rs_alpha": "0.9.1-alpha+sha.4479974"
+ "clash_rs_alpha": "0.9.1-alpha+sha.cff16c6"
},
"arch_template": {
"mihomo": {
@@ -69,5 +69,5 @@
"linux-armv7hf": "clash-armv7-unknown-linux-gnueabihf"
}
},
- "updated_at": "2025-11-02T22:20:46.358Z"
+ "updated_at": "2025-11-03T22:21:13.590Z"
}
diff --git a/clash-nyanpasu/package.json b/clash-nyanpasu/package.json
index e611fd28d6..8b0bff91d7 100644
--- a/clash-nyanpasu/package.json
+++ b/clash-nyanpasu/package.json
@@ -67,13 +67,13 @@
"@types/fs-extra": "11.0.4",
"@types/lodash-es": "4.17.12",
"@types/node": "24.10.0",
- "@typescript-eslint/eslint-plugin": "8.46.2",
- "@typescript-eslint/parser": "8.46.2",
+ "@typescript-eslint/eslint-plugin": "8.46.3",
+ "@typescript-eslint/parser": "8.46.3",
"autoprefixer": "10.4.21",
"conventional-changelog-conventionalcommits": "9.1.0",
"cross-env": "10.1.0",
"dedent": "1.7.0",
- "eslint": "9.39.0",
+ "eslint": "9.39.1",
"eslint-config-prettier": "10.1.8",
"eslint-import-resolver-alias": "1.1.2",
"eslint-plugin-html": "8.1.3",
@@ -85,7 +85,7 @@
"eslint-plugin-react-compiler": "19.1.0-rc.2",
"eslint-plugin-react-hooks": "7.0.1",
"globals": "16.5.0",
- "knip": "5.67.0",
+ "knip": "5.67.1",
"lint-staged": "16.2.6",
"neostandard": "0.12.2",
"npm-run-all2": "8.0.4",
@@ -108,7 +108,7 @@
"tailwindcss": "4.1.16",
"tsx": "4.20.6",
"typescript": "5.9.3",
- "typescript-eslint": "8.46.2"
+ "typescript-eslint": "8.46.3"
},
"packageManager": "pnpm@10.20.0",
"engines": {
diff --git a/clash-nyanpasu/pnpm-lock.yaml b/clash-nyanpasu/pnpm-lock.yaml
index 7671a96b74..d1fd18b0a0 100644
--- a/clash-nyanpasu/pnpm-lock.yaml
+++ b/clash-nyanpasu/pnpm-lock.yaml
@@ -30,7 +30,7 @@ importers:
version: 20.0.0
'@eslint/compat':
specifier: 1.4.1
- version: 1.4.1(eslint@9.39.0(jiti@2.6.1))
+ version: 1.4.1(eslint@9.39.1(jiti@2.6.1))
'@eslint/eslintrc':
specifier: 3.3.1
version: 3.3.1
@@ -50,11 +50,11 @@ importers:
specifier: 24.10.0
version: 24.10.0
'@typescript-eslint/eslint-plugin':
- specifier: 8.46.2
- version: 8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
+ specifier: 8.46.3
+ version: 8.46.3(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/parser':
- specifier: 8.46.2
- version: 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
+ specifier: 8.46.3
+ version: 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
autoprefixer:
specifier: 10.4.21
version: 10.4.21(postcss@8.5.6)
@@ -68,50 +68,50 @@ importers:
specifier: 1.7.0
version: 1.7.0(babel-plugin-macros@3.1.0)
eslint:
- specifier: 9.39.0
- version: 9.39.0(jiti@2.6.1)
+ specifier: 9.39.1
+ version: 9.39.1(jiti@2.6.1)
eslint-config-prettier:
specifier: 10.1.8
- version: 10.1.8(eslint@9.39.0(jiti@2.6.1))
+ version: 10.1.8(eslint@9.39.1(jiti@2.6.1))
eslint-import-resolver-alias:
specifier: 1.1.2
- version: 1.1.2(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1)))
+ version: 1.1.2(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))
eslint-plugin-html:
specifier: 8.1.3
version: 8.1.3
eslint-plugin-import:
specifier: 2.32.0
- version: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1))
+ version: 2.32.0(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-n:
specifier: 17.23.1
- version: 17.23.1(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
+ version: 17.23.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
eslint-plugin-prettier:
specifier: 5.5.4
- version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.0(jiti@2.6.1)))(eslint@9.39.0(jiti@2.6.1))(prettier@3.6.2)
+ version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.6.2)
eslint-plugin-promise:
specifier: 7.2.1
- version: 7.2.1(eslint@9.39.0(jiti@2.6.1))
+ version: 7.2.1(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-react:
specifier: 7.37.5
- version: 7.37.5(eslint@9.39.0(jiti@2.6.1))
+ version: 7.37.5(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-react-compiler:
specifier: 19.1.0-rc.2
- version: 19.1.0-rc.2(eslint@9.39.0(jiti@2.6.1))
+ version: 19.1.0-rc.2(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-react-hooks:
specifier: 7.0.1
- version: 7.0.1(eslint@9.39.0(jiti@2.6.1))
+ version: 7.0.1(eslint@9.39.1(jiti@2.6.1))
globals:
specifier: 16.5.0
version: 16.5.0
knip:
- specifier: 5.67.0
- version: 5.67.0(@types/node@24.10.0)(typescript@5.9.3)
+ specifier: 5.67.1
+ version: 5.67.1(@types/node@24.10.0)(typescript@5.9.3)
lint-staged:
specifier: 16.2.6
version: 16.2.6
neostandard:
specifier: 0.12.2
- version: 0.12.2(@typescript-eslint/utils@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1)))(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
+ version: 0.12.2(@typescript-eslint/utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
npm-run-all2:
specifier: 8.0.4
version: 8.0.4
@@ -173,8 +173,8 @@ importers:
specifier: 5.9.3
version: 5.9.3
typescript-eslint:
- specifier: 8.46.2
- version: 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
+ specifier: 8.46.3
+ version: 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
frontend/interface:
dependencies:
@@ -231,17 +231,17 @@ importers:
specifier: 0.3.0
version: 0.3.0
'@mui/icons-material':
- specifier: 7.3.4
- version: 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
+ specifier: 7.3.5
+ version: 7.3.5(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
'@mui/lab':
specifier: 7.0.0-beta.17
- version: 7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ version: 7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@mui/material':
- specifier: 7.3.4
- version: 7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ specifier: 7.3.5
+ version: 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@mui/x-date-pickers':
specifier: 8.16.0
- version: 8.16.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(dayjs@1.11.19)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ version: 8.16.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(dayjs@1.11.19)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@nyanpasu/interface':
specifier: workspace:^
version: link:../interface
@@ -253,7 +253,7 @@ importers:
version: 4.1.16
'@tanstack/router-zod-adapter':
specifier: 1.81.5
- version: 1.81.5(@tanstack/react-router@1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(zod@4.1.12)
+ version: 1.81.5(@tanstack/react-router@1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(zod@4.1.12)
'@tauri-apps/api':
specifier: 2.8.0
version: 2.8.0
@@ -289,13 +289,13 @@ importers:
version: 0.4.0
material-react-table:
specifier: npm:@greenhat616/material-react-table@4.0.0
- version: '@greenhat616/material-react-table@4.0.0(d79532340dc28deb8e20423caac43274)'
+ version: '@greenhat616/material-react-table@4.0.0(bf2c6fabd24d6294eac9dada3c0cb48c)'
monaco-editor:
specifier: 0.54.0
version: 0.54.0
mui-color-input:
specifier: 7.0.0
- version: 7.0.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ version: 7.0.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react:
specifier: 19.2.0
version: 19.2.0
@@ -310,7 +310,7 @@ importers:
version: 1.6.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react-hook-form-mui:
specifier: 8.0.0
- version: 8.0.0(d9b7a0dfb9e86eb33826a2476815ec9f)
+ version: 8.0.0(d8b8a0b598a4bb03193b0b1d4aca738a)
react-i18next:
specifier: 15.7.4
version: 15.7.4(i18next@25.6.0(typescript@5.9.3))(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(typescript@5.9.3)
@@ -355,14 +355,14 @@ importers:
specifier: 5.90.6
version: 5.90.6(react@19.2.0)
'@tanstack/react-router':
- specifier: 1.134.9
- version: 1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ specifier: 1.134.12
+ version: 1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@tanstack/react-router-devtools':
- specifier: 1.134.9
- version: 1.134.9(@tanstack/react-router@1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.134.9)(@types/node@24.10.0)(csstype@3.1.3)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass-embedded@1.93.3)(sass@1.93.3)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)
+ specifier: 1.134.12
+ version: 1.134.12(@tanstack/react-router@1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.134.12)(@types/node@24.10.0)(csstype@3.1.3)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass-embedded@1.93.3)(sass@1.93.3)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)
'@tanstack/router-plugin':
- specifier: 1.134.9
- version: 1.134.9(@tanstack/react-router@1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.10.0)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass-embedded@1.93.3)(sass@1.93.3)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1))
+ specifier: 1.134.12
+ version: 1.134.12(@tanstack/react-router@1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.10.0)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass-embedded@1.93.3)(sass@1.93.3)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1))
'@tauri-apps/plugin-clipboard-manager':
specifier: 2.3.0
version: 2.3.0
@@ -466,14 +466,14 @@ importers:
specifier: 0.3.0
version: 0.3.0
'@mui/icons-material':
- specifier: 7.3.4
- version: 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
+ specifier: 7.3.5
+ version: 7.3.5(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
'@mui/lab':
specifier: 7.0.0-beta.17
- version: 7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ version: 7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@mui/material':
- specifier: 7.3.4
- version: 7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ specifier: 7.3.5
+ version: 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@radix-ui/react-portal':
specifier: 1.1.9
version: 1.1.9(@types/react-dom@19.2.2(@types/react@19.2.2))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
@@ -1752,8 +1752,8 @@ packages:
resolution: {integrity: sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@eslint/js@9.39.0':
- resolution: {integrity: sha512-BIhe0sW91JGPiaF1mOuPy5v8NflqfjIcDNpC+LbW9f609WVRX1rArrhi6Z2ymvrAry9jw+5POTj4t2t62o8Bmw==}
+ '@eslint/js@9.39.1':
+ resolution: {integrity: sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
'@eslint/object-schema@2.1.7':
@@ -1888,14 +1888,14 @@ packages:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- '@mui/core-downloads-tracker@7.3.4':
- resolution: {integrity: sha512-BIktMapG3r4iXwIhYNpvk97ZfYWTreBBQTWjQKbNbzI64+ULHfYavQEX2w99aSWHS58DvXESWIgbD9adKcUOBw==}
+ '@mui/core-downloads-tracker@7.3.5':
+ resolution: {integrity: sha512-kOLwlcDPnVz2QMhiBv0OQ8le8hTCqKM9cRXlfVPL91l3RGeOsxrIhNRsUt3Xb8wb+pTVUolW+JXKym93vRKxCw==}
- '@mui/icons-material@7.3.4':
- resolution: {integrity: sha512-9n6Xcq7molXWYb680N2Qx+FRW8oT6j/LXF5PZFH3ph9X/Rct0B/BlLAsFI7iL9ySI6LVLuQIVtrLiPT82R7OZw==}
+ '@mui/icons-material@7.3.5':
+ resolution: {integrity: sha512-LciL1GLMZ+VlzyHAALSVAR22t8IST4LCXmljcUSx2NOutgO2XnxdIp8ilFbeNf9wpo0iUFbAuoQcB7h+HHIf3A==}
engines: {node: '>=14.0.0'}
peerDependencies:
- '@mui/material': ^7.3.4
+ '@mui/material': ^7.3.5
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
react: ^17.0.0 || ^18.0.0 || ^19.0.0
peerDependenciesMeta:
@@ -1923,13 +1923,13 @@ packages:
'@types/react':
optional: true
- '@mui/material@7.3.4':
- resolution: {integrity: sha512-gEQL9pbJZZHT7lYJBKQCS723v1MGys2IFc94COXbUIyCTWa+qC77a7hUax4Yjd5ggEm35dk4AyYABpKKWC4MLw==}
+ '@mui/material@7.3.5':
+ resolution: {integrity: sha512-8VVxFmp1GIm9PpmnQoCoYo0UWHoOrdA57tDL62vkpzEgvb/d71Wsbv4FRg7r1Gyx7PuSo0tflH34cdl/NvfHNQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@emotion/react': ^11.5.0
'@emotion/styled': ^11.3.0
- '@mui/material-pigment-css': ^7.3.3
+ '@mui/material-pigment-css': ^7.3.5
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
react: ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -1953,8 +1953,8 @@ packages:
'@types/react':
optional: true
- '@mui/private-theming@7.3.3':
- resolution: {integrity: sha512-OJM+9nj5JIyPUvsZ5ZjaeC9PfktmK+W5YaVLToLR8L0lB/DGmv1gcKE43ssNLSvpoW71Hct0necfade6+kW3zQ==}
+ '@mui/private-theming@7.3.5':
+ resolution: {integrity: sha512-cTx584W2qrLonwhZLbEN7P5pAUu0nZblg8cLBlTrZQ4sIiw8Fbvg7GvuphQaSHxPxrCpa7FDwJKtXdbl2TSmrA==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
@@ -1976,8 +1976,8 @@ packages:
'@emotion/styled':
optional: true
- '@mui/styled-engine@7.3.3':
- resolution: {integrity: sha512-CmFxvRJIBCEaWdilhXMw/5wFJ1+FT9f3xt+m2pPXhHPeVIbBg9MnMvNSJjdALvnQJMPw8jLhrUtXmN7QAZV2fw==}
+ '@mui/styled-engine@7.3.5':
+ resolution: {integrity: sha512-zbsZ0uYYPndFCCPp2+V3RLcAN6+fv4C8pdwRx6OS3BwDkRCN8WBehqks7hWyF3vj1kdQLIWrpdv/5Y0jHRxYXQ==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@emotion/react': ^11.4.1
@@ -2005,8 +2005,8 @@ packages:
'@types/react':
optional: true
- '@mui/system@7.3.3':
- resolution: {integrity: sha512-Lqq3emZr5IzRLKaHPuMaLBDVaGvxoh6z7HMWd1RPKawBM5uMRaQ4ImsmmgXWtwJdfZux5eugfDhXJUo2mliS8Q==}
+ '@mui/system@7.3.5':
+ resolution: {integrity: sha512-yPaf5+gY3v80HNkJcPi6WT+r9ebeM4eJzrREXPxMt7pNTV/1eahyODO4fbH3Qvd8irNxDFYn5RQ3idHW55rA6g==}
engines: {node: '>=14.0.0'}
peerDependencies:
'@emotion/react': ^11.5.0
@@ -2037,6 +2037,14 @@ packages:
'@types/react':
optional: true
+ '@mui/types@7.4.8':
+ resolution: {integrity: sha512-ZNXLBjkPV6ftLCmmRCafak3XmSn8YV0tKE/ZOhzKys7TZXUiE0mZxlH8zKDo6j6TTUaDnuij68gIG+0Ucm7Xhw==}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@mui/utils@7.3.2':
resolution: {integrity: sha512-4DMWQGenOdLnM3y/SdFQFwKsCLM+mqxzvoWp9+x2XdEzXapkznauHLiXtSohHs/mc0+5/9UACt1GdugCX2te5g==}
engines: {node: '>=14.0.0'}
@@ -2057,6 +2065,16 @@ packages:
'@types/react':
optional: true
+ '@mui/utils@7.3.5':
+ resolution: {integrity: sha512-jisvFsEC3sgjUjcPnR4mYfhzjCDIudttSGSbe1o/IXFNu0kZuR+7vqQI0jg8qtcVZBHWrwTfvAZj9MNMumcq1g==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ '@types/react': ^17.0.0 || ^18.0.0 || ^19.0.0
+ react: ^17.0.0 || ^18.0.0 || ^19.0.0
+ peerDependenciesMeta:
+ '@types/react':
+ optional: true
+
'@mui/x-date-pickers@8.16.0':
resolution: {integrity: sha512-zvUoO9ImWiKRaOWvQVbB1vCa6aUQIX5GM0tJ+nAyNNIVV0VqpXz3CvkRR6ovBBFzIcChc7FXlqrMKcJ//EhePQ==}
engines: {node: '>=14.0.0'}
@@ -3135,16 +3153,16 @@ packages:
peerDependencies:
react: ^18 || ^19
- '@tanstack/react-router-devtools@1.134.9':
- resolution: {integrity: sha512-HwAOPK002wlnNgoHdYwchDqU9STl2ehQZOrTXoVOPgkUz5MMAHx/qcC/QZaJSU4znme4A081v8g7R8dI1aVNrw==}
+ '@tanstack/react-router-devtools@1.134.12':
+ resolution: {integrity: sha512-8awl942Lz1R6zI7fzbUTFWlSyUJdV4rykf9FIpnfoH1pO6SfCmj3/s/GH40N15qkV5AaLWD2EnPfLkOPGgMElA==}
engines: {node: '>=12'}
peerDependencies:
- '@tanstack/react-router': ^1.134.9
+ '@tanstack/react-router': ^1.134.12
react: '>=18.0.0 || >=19.0.0'
react-dom: '>=18.0.0 || >=19.0.0'
- '@tanstack/react-router@1.134.9':
- resolution: {integrity: sha512-JIxFamShs3gRIkOxpgz/3bglbSKZHMrzKASwNFg+sQPVXVPOLtN35D5PuEDAFTPPht9Wv48WWUNYE03ZytnNug==}
+ '@tanstack/react-router@1.134.12':
+ resolution: {integrity: sha512-79TUNkSpaJgQorMUNo2cKTa7GnhicmXvCUIxadeQyd1xmsL/A4rg4yxW7TYtvJMCOCDq0q0Ga2eYyJ+Brsvr8A==}
engines: {node: '>=12'}
peerDependencies:
react: '>=18.0.0 || >=19.0.0'
@@ -3169,15 +3187,15 @@ packages:
react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0
- '@tanstack/router-core@1.134.9':
- resolution: {integrity: sha512-9Vr8tYC59I70DYGVRknRf4vjQMjSfHvmc+iTM8vcpwERBh3Vgkv90f8ol85KHKqjorSsCqMeYFhFt8AM4A4CSw==}
+ '@tanstack/router-core@1.134.12':
+ resolution: {integrity: sha512-Nxc/SS5bZMJP2ZIoK6qi/WZBNp9kV1aJH1tqz/ruetHBoFPyrmIYo1Yu6SGqHMLXSdeS5QaVdtUMSjTeytr2Lg==}
engines: {node: '>=12'}
- '@tanstack/router-devtools-core@1.134.9':
- resolution: {integrity: sha512-VIc8ipL2QER+nWZedKinb09q7D7N9oPBpkhxgYfXqPBATAQAdv5oBxUQ2SmHz3v1vbENQZj/HlPpm2CYmsFkRg==}
+ '@tanstack/router-devtools-core@1.134.12':
+ resolution: {integrity: sha512-epaTgIZ9UHfqVsroZhKYg0Rz68cppPPE6THKLF+CWPTRkpHSyoHmr5JmtNUtUUA8SyivUdRie2xKzRfxFzLamg==}
engines: {node: '>=12'}
peerDependencies:
- '@tanstack/router-core': ^1.134.9
+ '@tanstack/router-core': ^1.134.12
csstype: ^3.0.10
solid-js: '>=1.9.5'
tiny-invariant: ^1.3.3
@@ -3185,16 +3203,16 @@ packages:
csstype:
optional: true
- '@tanstack/router-generator@1.134.9':
- resolution: {integrity: sha512-yBPX/xCWE/sdEEtCKOtPBl4cQo+G5Tt7UTB0li49CW8qhmD2eFKTQY1enRb68SwFNH5uwToBXFmJkSG1zPaA5Q==}
+ '@tanstack/router-generator@1.134.12':
+ resolution: {integrity: sha512-/t2N8xe3+XIBHpUNlp3blVWTi7ZPREZzptKJk1VKZLWulW3T15Rj0qw9yMZHkz3iHk2JeiazQYvykR+EeCv1zg==}
engines: {node: '>=12'}
- '@tanstack/router-plugin@1.134.9':
- resolution: {integrity: sha512-iD85GvRADpVhRXkVGRwJqprhIXPLNH+O210UjFDQ8RC2Vn92IwKY6sx8fCgwjHtcYgnTdu3p8eIYJ8CfrLazxA==}
+ '@tanstack/router-plugin@1.134.12':
+ resolution: {integrity: sha512-6JrjZ2wrd8BHlvWA+QuD5p0D67NZt63Zs3Q/XnyR6TcfjKHjIwa9WziNvioZNvIbf0cMUi9jPKLMXYPKRUEWzQ==}
engines: {node: '>=12'}
peerDependencies:
'@rsbuild/core': '>=1.0.2'
- '@tanstack/react-router': ^1.134.9
+ '@tanstack/react-router': ^1.134.12
vite: '>=5.0.0 || >=6.0.0 || >=7.0.0'
vite-plugin-solid: ^2.11.10
webpack: '>=5.92.0'
@@ -3586,46 +3604,40 @@ packages:
'@types/yauzl@2.10.3':
resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==}
- '@typescript-eslint/eslint-plugin@8.46.2':
- resolution: {integrity: sha512-ZGBMToy857/NIPaaCucIUQgqueOiq7HeAKkhlvqVV4lm089zUFW6ikRySx2v+cAhKeUCPuWVHeimyk6Dw1iY3w==}
+ '@typescript-eslint/eslint-plugin@8.46.3':
+ resolution: {integrity: sha512-sbaQ27XBUopBkRiuY/P9sWGOWUW4rl8fDoHIUmLpZd8uldsTyB4/Zg6bWTegPoTLnKj9Hqgn3QD6cjPNB32Odw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.46.2
+ '@typescript-eslint/parser': ^8.46.3
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/parser@8.46.2':
- resolution: {integrity: sha512-BnOroVl1SgrPLywqxyqdJ4l3S2MsKVLDVxZvjI1Eoe8ev2r3kGDo+PcMihNmDE+6/KjkTubSJnmqGZZjQSBq/g==}
+ '@typescript-eslint/parser@8.46.3':
+ resolution: {integrity: sha512-6m1I5RmHBGTnUGS113G04DMu3CpSdxCAU/UvtjNWL4Nuf3MW9tQhiJqRlHzChIkhy6kZSAQmc+I1bcGjE3yNKg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/project-service@8.46.1':
- resolution: {integrity: sha512-FOIaFVMHzRskXr5J4Jp8lFVV0gz5ngv3RHmn+E4HYxSJ3DgDzU7fVI1/M7Ijh1zf6S7HIoaIOtln1H5y8V+9Zg==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
-
'@typescript-eslint/project-service@8.46.2':
resolution: {integrity: sha512-PULOLZ9iqwI7hXcmL4fVfIsBi6AN9YxRc0frbvmg8f+4hQAjQ5GYNKK0DIArNo+rOKmR/iBYwkpBmnIwin4wBg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/scope-manager@8.46.1':
- resolution: {integrity: sha512-weL9Gg3/5F0pVQKiF8eOXFZp8emqWzZsOJuWRUNtHT+UNV2xSJegmpCNQHy37aEQIbToTq7RHKhWvOsmbM680A==}
+ '@typescript-eslint/project-service@8.46.3':
+ resolution: {integrity: sha512-Fz8yFXsp2wDFeUElO88S9n4w1I4CWDTXDqDr9gYvZgUpwXQqmZBr9+NTTql5R3J7+hrJZPdpiWaB9VNhAKYLuQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/scope-manager@8.46.2':
resolution: {integrity: sha512-LF4b/NmGvdWEHD2H4MsHD8ny6JpiVNDzrSZr3CsckEgCbAGZbYM4Cqxvi9L+WqDMT+51Ozy7lt2M+d0JLEuBqA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/tsconfig-utils@8.46.1':
- resolution: {integrity: sha512-X88+J/CwFvlJB+mK09VFqx5FE4H5cXD+H/Bdza2aEWkSb8hnWIQorNcscRl4IEo1Cz9VI/+/r/jnGWkbWPx54g==}
+ '@typescript-eslint/scope-manager@8.46.3':
+ resolution: {integrity: sha512-FCi7Y1zgrmxp3DfWfr+3m9ansUUFoy8dkEdeQSgA9gbm8DaHYvZCdkFRQrtKiedFf3Ha6VmoqoAaP68+i+22kg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/tsconfig-utils@8.46.2':
resolution: {integrity: sha512-a7QH6fw4S57+F5y2FIxxSDyi5M4UfGF+Jl1bCGd7+L4KsaUY80GsiF/t0UoRFDHAguKlBaACWJRmdrc6Xfkkag==}
@@ -3633,8 +3645,14 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/type-utils@8.46.2':
- resolution: {integrity: sha512-HbPM4LbaAAt/DjxXaG9yiS9brOOz6fabal4uvUmaUYe6l3K1phQDMQKBRUrr06BQkxkvIZVVHttqiybM9nJsLA==}
+ '@typescript-eslint/tsconfig-utils@8.46.3':
+ resolution: {integrity: sha512-GLupljMniHNIROP0zE7nCcybptolcH8QZfXOpCfhQDAdwJ/ZTlcaBOYebSOZotpti/3HrHSw7D3PZm75gYFsOA==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.0.0'
+
+ '@typescript-eslint/type-utils@8.46.3':
+ resolution: {integrity: sha512-ZPCADbr+qfz3aiTTYNNkCbUt+cjNwI/5McyANNrFBpVxPt7GqpEYz5ZfdwuFyGUnJ9FdDXbGODUu6iRCI6XRXw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -3644,19 +3662,13 @@ packages:
resolution: {integrity: sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/types@8.46.1':
- resolution: {integrity: sha512-C+soprGBHwWBdkDpbaRC4paGBrkIXxVlNohadL5o0kfhsXqOC6GYH2S/Obmig+I0HTDl8wMaRySwrfrXVP8/pQ==}
- engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
-
'@typescript-eslint/types@8.46.2':
resolution: {integrity: sha512-lNCWCbq7rpg7qDsQrd3D6NyWYu+gkTENkG5IKYhUIcxSb59SQC/hEQ+MrG4sTgBVghTonNWq42bA/d4yYumldQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- '@typescript-eslint/typescript-estree@8.46.1':
- resolution: {integrity: sha512-uIifjT4s8cQKFQ8ZBXXyoUODtRoAd7F7+G8MKmtzj17+1UbdzFl52AzRyZRyKqPHhgzvXunnSckVu36flGy8cg==}
+ '@typescript-eslint/types@8.46.3':
+ resolution: {integrity: sha512-G7Ok9WN/ggW7e/tOf8TQYMaxgID3Iujn231hfi0Pc7ZheztIJVpO44ekY00b7akqc6nZcvregk0Jpah3kep6hA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- peerDependencies:
- typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/typescript-estree@8.46.2':
resolution: {integrity: sha512-f7rW7LJ2b7Uh2EiQ+7sza6RDZnajbNbemn54Ob6fRwQbgcIn+GWfyuHDHRYgRoZu1P4AayVScrRW+YfbTvPQoQ==}
@@ -3664,11 +3676,10 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/utils@8.46.1':
- resolution: {integrity: sha512-vkYUy6LdZS7q1v/Gxb2Zs7zziuXN0wxqsetJdeZdRe/f5dwJFglmuvZBfTUivCtjH725C1jWCDfpadadD95EDQ==}
+ '@typescript-eslint/typescript-estree@8.46.3':
+ resolution: {integrity: sha512-f/NvtRjOm80BtNM5OQtlaBdM5BRFUv7gf381j9wygDNL+qOYSNOgtQ/DCndiYi80iIOv76QqaTmp4fa9hwI0OA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/utils@8.46.2':
@@ -3678,14 +3689,21 @@ packages:
eslint: ^8.57.0 || ^9.0.0
typescript: '>=4.8.4 <6.0.0'
- '@typescript-eslint/visitor-keys@8.46.1':
- resolution: {integrity: sha512-ptkmIf2iDkNUjdeu2bQqhFPV1m6qTnFFjg7PPDjxKWaMaP0Z6I9l30Jr3g5QqbZGdw8YdYvLp+XnqnWWZOg/NA==}
+ '@typescript-eslint/utils@8.46.3':
+ resolution: {integrity: sha512-VXw7qmdkucEx9WkmR3ld/u6VhRyKeiF1uxWwCy/iuNfokjJ7VhsgLSOTjsol8BunSw190zABzpwdNsze2Kpo4g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0
+ typescript: '>=4.8.4 <6.0.0'
'@typescript-eslint/visitor-keys@8.46.2':
resolution: {integrity: sha512-tUFMXI4gxzzMXt4xpGJEsBsTox0XbNQ1y94EwlD/CuZwFcQP79xfQqMhau9HsRc/J0cAPA/HZt1dZPtGn9V/7w==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@typescript-eslint/visitor-keys@8.46.3':
+ resolution: {integrity: sha512-uk574k8IU0rOF/AjniX8qbLSGURJVUCeM5e4MIMKBFFi8weeiLrG1fyQejyLXQpRZbU/1BuQasleV/RfHC3hHg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@ungap/structured-clone@1.2.0':
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
@@ -5161,8 +5179,8 @@ packages:
resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
- eslint@9.39.0:
- resolution: {integrity: sha512-iy2GE3MHrYTL5lrCtMZ0X1KLEKKUjmK0kzwcnefhR66txcEmXZD2YWgR5GNdcEwkNx3a0siYkSvl0vIC+Svjmg==}
+ eslint@9.39.1:
+ resolution: {integrity: sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
peerDependencies:
@@ -6188,8 +6206,8 @@ packages:
resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
engines: {node: '>=0.10.0'}
- knip@5.67.0:
- resolution: {integrity: sha512-zVa7bUx4dPN2xqxCidz48C+74io9l43YQ6YjxBeMcYjIRjOZ8UTbB3FZhfrb+71QETxacYlfGCg0MPMpXZUKQw==}
+ knip@5.67.1:
+ resolution: {integrity: sha512-U5AtiqnZAbWIxihs5wxFFEZlpKhzRLWlXSGwA79na7wvlX+MsE0rSuU6If+kl/A4o3TDzTtKGZ4SjeLyWkNR/A==}
engines: {node: '>=18.18.0'}
hasBin: true
peerDependencies:
@@ -7281,6 +7299,9 @@ packages:
react-is@19.1.1:
resolution: {integrity: sha512-tr41fA15Vn8p4X9ntI+yCyeGSf1TlYaY5vlTZfQmeLBrFo3psOPX6HhTDnFNL9uj3EhP0KAQ80cugCl4b4BERA==}
+ react-is@19.2.0:
+ resolution: {integrity: sha512-x3Ax3kNSMIIkyVYhWPyO09bu0uttcAIoecO/um/rKGQ4EltYWVYtyiGkS/3xMynrbVQdS69Jhlv8FXUEZehlzA==}
+
react-markdown@10.1.0:
resolution: {integrity: sha512-qKxVopLT/TyA6BX3Ue5NwabOsAzm0Q7kAPwq6L+wWDwisYs7R8vZ0nRXqq6rkueboxpkjvLGU9fWifiX/ZZFxQ==}
peerDependencies:
@@ -8241,8 +8262,8 @@ packages:
typedarray-to-buffer@3.1.5:
resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==}
- typescript-eslint@8.46.2:
- resolution: {integrity: sha512-vbw8bOmiuYNdzzV3lsiWv6sRwjyuKJMQqWulBOU7M0RrxedXledX8G8kBbQeiOYDnTfiXz0Y4081E1QMNB6iQg==}
+ typescript-eslint@8.46.3:
+ resolution: {integrity: sha512-bAfgMavTuGo+8n6/QQDVQz4tZ4f7Soqg53RbrlZQEoAltYop/XR4RAts/I0BrO3TTClTSTFJ0wYbla+P8cEWJA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0
@@ -10200,23 +10221,23 @@ snapshots:
'@esbuild/win32-x64@0.25.0':
optional: true
- '@eslint-community/eslint-utils@4.4.1(eslint@9.39.0(jiti@2.6.1))':
+ '@eslint-community/eslint-utils@4.4.1(eslint@9.39.1(jiti@2.6.1))':
dependencies:
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
eslint-visitor-keys: 3.4.3
- '@eslint-community/eslint-utils@4.8.0(eslint@9.39.0(jiti@2.6.1))':
+ '@eslint-community/eslint-utils@4.8.0(eslint@9.39.1(jiti@2.6.1))':
dependencies:
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.1': {}
- '@eslint/compat@1.4.1(eslint@9.39.0(jiti@2.6.1))':
+ '@eslint/compat@1.4.1(eslint@9.39.1(jiti@2.6.1))':
dependencies:
'@eslint/core': 0.17.0
optionalDependencies:
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
'@eslint/config-array@0.21.1':
dependencies:
@@ -10248,7 +10269,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@eslint/js@9.39.0': {}
+ '@eslint/js@9.39.1': {}
'@eslint/object-schema@2.1.7': {}
@@ -10259,13 +10280,13 @@ snapshots:
'@fastify/busboy@2.1.1': {}
- '@greenhat616/material-react-table@4.0.0(d79532340dc28deb8e20423caac43274)':
+ '@greenhat616/material-react-table@4.0.0(bf2c6fabd24d6294eac9dada3c0cb48c)':
dependencies:
'@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0)
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
- '@mui/icons-material': 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
- '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@mui/x-date-pickers': 8.16.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(dayjs@1.11.19)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@mui/icons-material': 7.3.5(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
+ '@mui/material': 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@mui/x-date-pickers': 8.16.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(dayjs@1.11.19)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@tanstack/match-sorter-utils': 8.19.4
'@tanstack/react-table': 8.21.3(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@tanstack/react-virtual': 3.13.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
@@ -10405,20 +10426,20 @@ snapshots:
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
- '@mui/core-downloads-tracker@7.3.4': {}
+ '@mui/core-downloads-tracker@7.3.5': {}
- '@mui/icons-material@7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)':
+ '@mui/icons-material@7.3.5(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)':
dependencies:
'@babel/runtime': 7.28.4
- '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@mui/material': 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react: 19.2.0
optionalDependencies:
'@types/react': 19.2.2
- '@mui/lab@7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@mui/lab@7.0.0-beta.17(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/runtime': 7.28.3
- '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@mui/material': 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
'@mui/system': 7.3.2(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
'@mui/types': 7.4.6(@types/react@19.2.2)
'@mui/utils': 7.3.2(@types/react@19.2.2)(react@19.2.0)
@@ -10431,13 +10452,13 @@ snapshots:
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
'@types/react': 19.2.2
- '@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/runtime': 7.28.4
- '@mui/core-downloads-tracker': 7.3.4
- '@mui/system': 7.3.3(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
- '@mui/types': 7.4.7(@types/react@19.2.2)
- '@mui/utils': 7.3.3(@types/react@19.2.2)(react@19.2.0)
+ '@mui/core-downloads-tracker': 7.3.5
+ '@mui/system': 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
+ '@mui/types': 7.4.8(@types/react@19.2.2)
+ '@mui/utils': 7.3.5(@types/react@19.2.2)(react@19.2.0)
'@popperjs/core': 2.11.8
'@types/react-transition-group': 4.4.12(@types/react@19.2.2)
clsx: 2.1.1
@@ -10445,7 +10466,7 @@ snapshots:
prop-types: 15.8.1
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
- react-is: 19.1.1
+ react-is: 19.2.0
react-transition-group: 4.4.5(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
optionalDependencies:
'@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0)
@@ -10461,10 +10482,10 @@ snapshots:
optionalDependencies:
'@types/react': 19.2.2
- '@mui/private-theming@7.3.3(@types/react@19.2.2)(react@19.2.0)':
+ '@mui/private-theming@7.3.5(@types/react@19.2.2)(react@19.2.0)':
dependencies:
'@babel/runtime': 7.28.4
- '@mui/utils': 7.3.3(@types/react@19.2.2)(react@19.2.0)
+ '@mui/utils': 7.3.5(@types/react@19.2.2)(react@19.2.0)
prop-types: 15.8.1
react: 19.2.0
optionalDependencies:
@@ -10483,7 +10504,7 @@ snapshots:
'@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0)
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
- '@mui/styled-engine@7.3.3(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(react@19.2.0)':
+ '@mui/styled-engine@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(react@19.2.0)':
dependencies:
'@babel/runtime': 7.28.4
'@emotion/cache': 11.14.0
@@ -10512,13 +10533,13 @@ snapshots:
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
'@types/react': 19.2.2
- '@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)':
+ '@mui/system@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)':
dependencies:
'@babel/runtime': 7.28.4
- '@mui/private-theming': 7.3.3(@types/react@19.2.2)(react@19.2.0)
- '@mui/styled-engine': 7.3.3(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(react@19.2.0)
- '@mui/types': 7.4.7(@types/react@19.2.2)
- '@mui/utils': 7.3.3(@types/react@19.2.2)(react@19.2.0)
+ '@mui/private-theming': 7.3.5(@types/react@19.2.2)(react@19.2.0)
+ '@mui/styled-engine': 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(react@19.2.0)
+ '@mui/types': 7.4.8(@types/react@19.2.2)
+ '@mui/utils': 7.3.5(@types/react@19.2.2)(react@19.2.0)
clsx: 2.1.1
csstype: 3.1.3
prop-types: 15.8.1
@@ -10540,6 +10561,12 @@ snapshots:
optionalDependencies:
'@types/react': 19.2.2
+ '@mui/types@7.4.8(@types/react@19.2.2)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ optionalDependencies:
+ '@types/react': 19.2.2
+
'@mui/utils@7.3.2(@types/react@19.2.2)(react@19.2.0)':
dependencies:
'@babel/runtime': 7.28.4
@@ -10564,11 +10591,23 @@ snapshots:
optionalDependencies:
'@types/react': 19.2.2
- '@mui/x-date-pickers@8.16.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(dayjs@1.11.19)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@mui/utils@7.3.5(@types/react@19.2.2)(react@19.2.0)':
dependencies:
'@babel/runtime': 7.28.4
- '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@mui/system': 7.3.3(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
+ '@mui/types': 7.4.8(@types/react@19.2.2)
+ '@types/prop-types': 15.7.15
+ clsx: 2.1.1
+ prop-types: 15.8.1
+ react: 19.2.0
+ react-is: 19.2.0
+ optionalDependencies:
+ '@types/react': 19.2.2
+
+ '@mui/x-date-pickers@8.16.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(dayjs@1.11.19)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ dependencies:
+ '@babel/runtime': 7.28.4
+ '@mui/material': 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@mui/system': 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
'@mui/utils': 7.3.3(@types/react@19.2.2)(react@19.2.0)
'@mui/x-internals': 8.16.0(@types/react@19.2.2)(react@19.2.0)
'@types/react-transition-group': 4.4.12(@types/react@19.2.2)
@@ -11303,10 +11342,10 @@ snapshots:
'@sindresorhus/is@4.6.0': {}
- '@stylistic/eslint-plugin@2.11.0(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@stylistic/eslint-plugin@2.11.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/utils': 8.46.1(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.0(jiti@2.6.1)
+ '@typescript-eslint/utils': 8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.1(jiti@2.6.1)
eslint-visitor-keys: 4.2.1
espree: 10.4.0
estraverse: 5.3.0
@@ -11523,10 +11562,10 @@ snapshots:
'@tanstack/query-core': 5.90.6
react: 19.2.0
- '@tanstack/react-router-devtools@1.134.9(@tanstack/react-router@1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.134.9)(@types/node@24.10.0)(csstype@3.1.3)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass-embedded@1.93.3)(sass@1.93.3)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)':
+ '@tanstack/react-router-devtools@1.134.12(@tanstack/react-router@1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@tanstack/router-core@1.134.12)(@types/node@24.10.0)(csstype@3.1.3)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass-embedded@1.93.3)(sass@1.93.3)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)':
dependencies:
- '@tanstack/react-router': 1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@tanstack/router-devtools-core': 1.134.9(@tanstack/router-core@1.134.9)(@types/node@24.10.0)(csstype@3.1.3)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass-embedded@1.93.3)(sass@1.93.3)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)
+ '@tanstack/react-router': 1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@tanstack/router-devtools-core': 1.134.12(@tanstack/router-core@1.134.12)(@types/node@24.10.0)(csstype@3.1.3)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass-embedded@1.93.3)(sass@1.93.3)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
vite: 7.1.12(@types/node@24.10.0)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass-embedded@1.93.3)(sass@1.93.3)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1)
@@ -11547,11 +11586,11 @@ snapshots:
- tsx
- yaml
- '@tanstack/react-router@1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
+ '@tanstack/react-router@1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)':
dependencies:
'@tanstack/history': 1.133.28
'@tanstack/react-store': 0.8.0(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
- '@tanstack/router-core': 1.134.9
+ '@tanstack/router-core': 1.134.12
isbot: 5.1.28
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
@@ -11577,7 +11616,7 @@ snapshots:
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
- '@tanstack/router-core@1.134.9':
+ '@tanstack/router-core@1.134.12':
dependencies:
'@tanstack/history': 1.133.28
'@tanstack/store': 0.8.0
@@ -11587,9 +11626,9 @@ snapshots:
tiny-invariant: 1.3.3
tiny-warning: 1.0.3
- '@tanstack/router-devtools-core@1.134.9(@tanstack/router-core@1.134.9)(@types/node@24.10.0)(csstype@3.1.3)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass-embedded@1.93.3)(sass@1.93.3)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)':
+ '@tanstack/router-devtools-core@1.134.12(@tanstack/router-core@1.134.12)(@types/node@24.10.0)(csstype@3.1.3)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass-embedded@1.93.3)(sass@1.93.3)(solid-js@1.9.5)(stylus@0.62.0)(terser@5.36.0)(tiny-invariant@1.3.3)(tsx@4.20.6)(yaml@2.8.1)':
dependencies:
- '@tanstack/router-core': 1.134.9
+ '@tanstack/router-core': 1.134.12
clsx: 2.1.1
goober: 2.1.16(csstype@3.1.3)
solid-js: 1.9.5
@@ -11610,9 +11649,9 @@ snapshots:
- tsx
- yaml
- '@tanstack/router-generator@1.134.9':
+ '@tanstack/router-generator@1.134.12':
dependencies:
- '@tanstack/router-core': 1.134.9
+ '@tanstack/router-core': 1.134.12
'@tanstack/router-utils': 1.133.19
'@tanstack/virtual-file-routes': 1.133.19
prettier: 3.6.2
@@ -11623,7 +11662,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@tanstack/router-plugin@1.134.9(@tanstack/react-router@1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.10.0)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass-embedded@1.93.3)(sass@1.93.3)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1))':
+ '@tanstack/router-plugin@1.134.12(@tanstack/react-router@1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(vite@7.1.12(@types/node@24.10.0)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass-embedded@1.93.3)(sass@1.93.3)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1))':
dependencies:
'@babel/core': 7.28.4
'@babel/plugin-syntax-jsx': 7.27.1(@babel/core@7.28.4)
@@ -11631,8 +11670,8 @@ snapshots:
'@babel/template': 7.27.2
'@babel/traverse': 7.28.4
'@babel/types': 7.28.4
- '@tanstack/router-core': 1.134.9
- '@tanstack/router-generator': 1.134.9
+ '@tanstack/router-core': 1.134.12
+ '@tanstack/router-generator': 1.134.12
'@tanstack/router-utils': 1.133.19
'@tanstack/virtual-file-routes': 1.133.19
babel-dead-code-elimination: 1.0.10
@@ -11640,7 +11679,7 @@ snapshots:
unplugin: 2.3.10
zod: 3.25.76
optionalDependencies:
- '@tanstack/react-router': 1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@tanstack/react-router': 1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
vite: 7.1.12(@types/node@24.10.0)(jiti@2.6.1)(less@4.2.0)(lightningcss@1.30.2)(sass-embedded@1.93.3)(sass@1.93.3)(stylus@0.62.0)(terser@5.36.0)(tsx@4.20.6)(yaml@2.8.1)
transitivePeerDependencies:
- supports-color
@@ -11658,9 +11697,9 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@tanstack/router-zod-adapter@1.81.5(@tanstack/react-router@1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(zod@4.1.12)':
+ '@tanstack/router-zod-adapter@1.81.5(@tanstack/react-router@1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(zod@4.1.12)':
dependencies:
- '@tanstack/react-router': 1.134.9(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@tanstack/react-router': 1.134.12(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
zod: 4.1.12
'@tanstack/store@0.8.0': {}
@@ -12046,15 +12085,15 @@ snapshots:
'@types/node': 24.10.0
optional: true
- '@typescript-eslint/eslint-plugin@8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/eslint-plugin@8.46.3(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.1
- '@typescript-eslint/parser': 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/scope-manager': 8.46.2
- '@typescript-eslint/type-utils': 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/utils': 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.46.2
- eslint: 9.39.0(jiti@2.6.1)
+ '@typescript-eslint/parser': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.46.3
+ '@typescript-eslint/type-utils': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.46.3
+ eslint: 9.39.1(jiti@2.6.1)
graphemer: 1.4.0
ignore: 7.0.5
natural-compare: 1.4.0
@@ -12063,23 +12102,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.46.2
- '@typescript-eslint/types': 8.46.2
- '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.46.2
- debug: 4.4.3
- eslint: 9.39.0(jiti@2.6.1)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
-
- '@typescript-eslint/project-service@8.46.1(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3)
- '@typescript-eslint/types': 8.46.1
+ '@typescript-eslint/scope-manager': 8.46.3
+ '@typescript-eslint/types': 8.46.3
+ '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.46.3
debug: 4.4.3
+ eslint: 9.39.1(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -12093,31 +12123,40 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/scope-manager@8.46.1':
+ '@typescript-eslint/project-service@8.46.3(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/types': 8.46.1
- '@typescript-eslint/visitor-keys': 8.46.1
+ '@typescript-eslint/tsconfig-utils': 8.46.3(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.3
+ debug: 4.4.3
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
'@typescript-eslint/scope-manager@8.46.2':
dependencies:
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/visitor-keys': 8.46.2
- '@typescript-eslint/tsconfig-utils@8.46.1(typescript@5.9.3)':
+ '@typescript-eslint/scope-manager@8.46.3':
dependencies:
- typescript: 5.9.3
+ '@typescript-eslint/types': 8.46.3
+ '@typescript-eslint/visitor-keys': 8.46.3
'@typescript-eslint/tsconfig-utils@8.46.2(typescript@5.9.3)':
dependencies:
typescript: 5.9.3
- '@typescript-eslint/type-utils@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/tsconfig-utils@8.46.3(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/types': 8.46.2
- '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
- '@typescript-eslint/utils': 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
+ typescript: 5.9.3
+
+ '@typescript-eslint/type-utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.46.3
+ '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
debug: 4.4.3
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
@@ -12125,25 +12164,9 @@ snapshots:
'@typescript-eslint/types@8.41.0': {}
- '@typescript-eslint/types@8.46.1': {}
-
'@typescript-eslint/types@8.46.2': {}
- '@typescript-eslint/typescript-estree@8.46.1(typescript@5.9.3)':
- dependencies:
- '@typescript-eslint/project-service': 8.46.1(typescript@5.9.3)
- '@typescript-eslint/tsconfig-utils': 8.46.1(typescript@5.9.3)
- '@typescript-eslint/types': 8.46.1
- '@typescript-eslint/visitor-keys': 8.46.1
- debug: 4.4.3
- fast-glob: 3.3.3
- is-glob: 4.0.3
- minimatch: 9.0.5
- semver: 7.7.3
- ts-api-utils: 2.1.0(typescript@5.9.3)
- typescript: 5.9.3
- transitivePeerDependencies:
- - supports-color
+ '@typescript-eslint/types@8.46.3': {}
'@typescript-eslint/typescript-estree@8.46.2(typescript@5.9.3)':
dependencies:
@@ -12161,38 +12184,54 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.46.1(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/typescript-estree@8.46.3(typescript@5.9.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.0(jiti@2.6.1))
- '@typescript-eslint/scope-manager': 8.46.1
- '@typescript-eslint/types': 8.46.1
- '@typescript-eslint/typescript-estree': 8.46.1(typescript@5.9.3)
- eslint: 9.39.0(jiti@2.6.1)
+ '@typescript-eslint/project-service': 8.46.3(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.46.3(typescript@5.9.3)
+ '@typescript-eslint/types': 8.46.3
+ '@typescript-eslint/visitor-keys': 8.46.3
+ debug: 4.4.3
+ fast-glob: 3.3.3
+ is-glob: 4.0.3
+ minimatch: 9.0.5
+ semver: 7.7.3
+ ts-api-utils: 2.1.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/utils@8.46.2(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.0(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.1(jiti@2.6.1))
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/types': 8.46.2
'@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/visitor-keys@8.46.1':
+ '@typescript-eslint/utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/types': 8.46.1
- eslint-visitor-keys: 4.2.1
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.1(jiti@2.6.1))
+ '@typescript-eslint/scope-manager': 8.46.3
+ '@typescript-eslint/types': 8.46.3
+ '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3)
+ eslint: 9.39.1(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
'@typescript-eslint/visitor-keys@8.46.2':
dependencies:
'@typescript-eslint/types': 8.46.2
eslint-visitor-keys: 4.2.1
+ '@typescript-eslint/visitor-keys@8.46.3':
+ dependencies:
+ '@typescript-eslint/types': 8.46.3
+ eslint-visitor-keys: 4.2.1
+
'@ungap/structured-clone@1.2.0': {}
'@unrs/resolver-binding-android-arm-eabi@1.10.1':
@@ -13756,14 +13795,14 @@ snapshots:
escape-string-regexp@5.0.0: {}
- eslint-compat-utils@0.5.1(eslint@9.39.0(jiti@2.6.1)):
+ eslint-compat-utils@0.5.1(eslint@9.39.1(jiti@2.6.1)):
dependencies:
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
semver: 7.7.3
- eslint-config-prettier@10.1.8(eslint@9.39.0(jiti@2.6.1)):
+ eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)):
dependencies:
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
eslint-import-context@0.1.9(unrs-resolver@1.10.1):
dependencies:
@@ -13772,9 +13811,9 @@ snapshots:
optionalDependencies:
unrs-resolver: 1.10.1
- eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1))):
+ eslint-import-resolver-alias@1.1.2(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))):
dependencies:
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1))
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))
eslint-import-resolver-node@0.3.9:
dependencies:
@@ -13784,49 +13823,49 @@ snapshots:
transitivePeerDependencies:
- supports-color
- eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.0(jiti@2.6.1)))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1)))(eslint@9.39.0(jiti@2.6.1)):
+ eslint-import-resolver-typescript@3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.1(jiti@2.6.1)))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1)):
dependencies:
'@nolyfill/is-core-module': 1.0.39
debug: 4.4.3
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
get-tsconfig: 4.10.1
is-bun-module: 2.0.0
stable-hash: 0.0.5
tinyglobby: 0.2.14
unrs-resolver: 1.10.1
optionalDependencies:
- eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1))
- eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.0(jiti@2.6.1))
+ eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))
+ eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.1(jiti@2.6.1))
transitivePeerDependencies:
- supports-color
- eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.0(jiti@2.6.1)):
+ eslint-module-utils@2.12.1(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.1(jiti@2.6.1)):
dependencies:
debug: 3.2.7
optionalDependencies:
- '@typescript-eslint/parser': 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.0(jiti@2.6.1)
+ '@typescript-eslint/parser': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.1(jiti@2.6.1)
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
- eslint-plugin-es-x@7.8.0(eslint@9.39.0(jiti@2.6.1)):
+ eslint-plugin-es-x@7.8.0(eslint@9.39.1(jiti@2.6.1)):
dependencies:
- '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.0(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.1(jiti@2.6.1))
'@eslint-community/regexpp': 4.12.1
- eslint: 9.39.0(jiti@2.6.1)
- eslint-compat-utils: 0.5.1(eslint@9.39.0(jiti@2.6.1))
+ eslint: 9.39.1(jiti@2.6.1)
+ eslint-compat-utils: 0.5.1(eslint@9.39.1(jiti@2.6.1))
eslint-plugin-html@8.1.3:
dependencies:
htmlparser2: 10.0.0
- eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.0(jiti@2.6.1)):
+ eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.1(jiti@2.6.1)):
dependencies:
'@typescript-eslint/types': 8.41.0
comment-parser: 1.4.1
debug: 4.4.3
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
eslint-import-context: 0.1.9(unrs-resolver@1.10.1)
is-glob: 4.0.3
minimatch: 9.0.5
@@ -13834,12 +13873,12 @@ snapshots:
stable-hash-x: 0.2.0
unrs-resolver: 1.10.1
optionalDependencies:
- '@typescript-eslint/utils': 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
eslint-import-resolver-node: 0.3.9
transitivePeerDependencies:
- supports-color
- eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1)):
+ eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)):
dependencies:
'@rtsao/scc': 1.1.0
array-includes: 3.1.9
@@ -13848,9 +13887,9 @@ snapshots:
array.prototype.flatmap: 1.3.3
debug: 3.2.7
doctrine: 2.1.0
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
eslint-import-resolver-node: 0.3.9
- eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.0(jiti@2.6.1))
+ eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.1(jiti@2.6.1))
hasown: 2.0.2
is-core-module: 2.16.1
is-glob: 4.0.3
@@ -13862,18 +13901,18 @@ snapshots:
string.prototype.trimend: 1.0.9
tsconfig-paths: 3.15.0
optionalDependencies:
- '@typescript-eslint/parser': 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
transitivePeerDependencies:
- eslint-import-resolver-typescript
- eslint-import-resolver-webpack
- supports-color
- eslint-plugin-n@17.23.1(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3):
+ eslint-plugin-n@17.23.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3):
dependencies:
- '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.0(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.1(jiti@2.6.1))
enhanced-resolve: 5.18.3
- eslint: 9.39.0(jiti@2.6.1)
- eslint-plugin-es-x: 7.8.0(eslint@9.39.0(jiti@2.6.1))
+ eslint: 9.39.1(jiti@2.6.1)
+ eslint-plugin-es-x: 7.8.0(eslint@9.39.1(jiti@2.6.1))
get-tsconfig: 4.10.1
globals: 15.15.0
globrex: 0.1.2
@@ -13883,44 +13922,44 @@ snapshots:
transitivePeerDependencies:
- typescript
- eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.0(jiti@2.6.1)))(eslint@9.39.0(jiti@2.6.1))(prettier@3.6.2):
+ eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(prettier@3.6.2):
dependencies:
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
prettier: 3.6.2
prettier-linter-helpers: 1.0.0
synckit: 0.11.8
optionalDependencies:
- eslint-config-prettier: 10.1.8(eslint@9.39.0(jiti@2.6.1))
+ eslint-config-prettier: 10.1.8(eslint@9.39.1(jiti@2.6.1))
- eslint-plugin-promise@7.2.1(eslint@9.39.0(jiti@2.6.1)):
+ eslint-plugin-promise@7.2.1(eslint@9.39.1(jiti@2.6.1)):
dependencies:
- '@eslint-community/eslint-utils': 4.4.1(eslint@9.39.0(jiti@2.6.1))
- eslint: 9.39.0(jiti@2.6.1)
+ '@eslint-community/eslint-utils': 4.4.1(eslint@9.39.1(jiti@2.6.1))
+ eslint: 9.39.1(jiti@2.6.1)
- eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.39.0(jiti@2.6.1)):
+ eslint-plugin-react-compiler@19.1.0-rc.2(eslint@9.39.1(jiti@2.6.1)):
dependencies:
'@babel/core': 7.26.10
'@babel/parser': 7.27.0
'@babel/plugin-proposal-private-methods': 7.18.6(@babel/core@7.26.10)
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
hermes-parser: 0.25.1
zod: 3.24.4
zod-validation-error: 3.3.1(zod@3.24.4)
transitivePeerDependencies:
- supports-color
- eslint-plugin-react-hooks@7.0.1(eslint@9.39.0(jiti@2.6.1)):
+ eslint-plugin-react-hooks@7.0.1(eslint@9.39.1(jiti@2.6.1)):
dependencies:
'@babel/core': 7.28.4
'@babel/parser': 7.28.4
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
hermes-parser: 0.25.1
zod: 4.1.12
zod-validation-error: 4.0.2(zod@4.1.12)
transitivePeerDependencies:
- supports-color
- eslint-plugin-react@7.37.5(eslint@9.39.0(jiti@2.6.1)):
+ eslint-plugin-react@7.37.5(eslint@9.39.1(jiti@2.6.1)):
dependencies:
array-includes: 3.1.8
array.prototype.findlast: 1.2.5
@@ -13928,7 +13967,7 @@ snapshots:
array.prototype.tosorted: 1.1.4
doctrine: 2.1.0
es-iterator-helpers: 1.2.1
- eslint: 9.39.0(jiti@2.6.1)
+ eslint: 9.39.1(jiti@2.6.1)
estraverse: 5.3.0
hasown: 2.0.2
jsx-ast-utils: 3.3.5
@@ -13953,15 +13992,15 @@ snapshots:
eslint-visitor-keys@4.2.1: {}
- eslint@9.39.0(jiti@2.6.1):
+ eslint@9.39.1(jiti@2.6.1):
dependencies:
- '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.0(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.8.0(eslint@9.39.1(jiti@2.6.1))
'@eslint-community/regexpp': 4.12.1
'@eslint/config-array': 0.21.1
'@eslint/config-helpers': 0.4.2
'@eslint/core': 0.17.0
'@eslint/eslintrc': 3.3.1
- '@eslint/js': 9.39.0
+ '@eslint/js': 9.39.1
'@eslint/plugin-kit': 0.4.1
'@humanfs/node': 0.16.6
'@humanwhocodes/module-importer': 1.0.1
@@ -15028,7 +15067,7 @@ snapshots:
kind-of@6.0.3: {}
- knip@5.67.0(@types/node@24.10.0)(typescript@5.9.3):
+ knip@5.67.1(@types/node@24.10.0)(typescript@5.9.3):
dependencies:
'@nodelib/fs.walk': 1.2.8
'@types/node': 24.10.0
@@ -15604,12 +15643,12 @@ snapshots:
muggle-string@0.4.1: {}
- mui-color-input@7.0.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
+ mui-color-input@7.0.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0):
dependencies:
'@ctrl/tinycolor': 4.1.0
'@emotion/react': 11.14.0(@types/react@19.2.2)(react@19.2.0)
'@emotion/styled': 11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
- '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@mui/material': 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
optionalDependencies:
@@ -15644,20 +15683,20 @@ snapshots:
sax: 1.3.0
optional: true
- neostandard@0.12.2(@typescript-eslint/utils@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1)))(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3):
+ neostandard@0.12.2(@typescript-eslint/utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3):
dependencies:
'@humanwhocodes/gitignore-to-minimatch': 1.0.2
- '@stylistic/eslint-plugin': 2.11.0(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.0(jiti@2.6.1)
- eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.0(jiti@2.6.1)))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1)))(eslint@9.39.0(jiti@2.6.1))
- eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.0(jiti@2.6.1))
- eslint-plugin-n: 17.23.1(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
- eslint-plugin-promise: 7.2.1(eslint@9.39.0(jiti@2.6.1))
- eslint-plugin-react: 7.37.5(eslint@9.39.0(jiti@2.6.1))
+ '@stylistic/eslint-plugin': 2.11.0(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.1(jiti@2.6.1)
+ eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import-x@4.16.1(@typescript-eslint/utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.1(jiti@2.6.1)))(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1)))(eslint@9.39.1(jiti@2.6.1))
+ eslint-plugin-import-x: 4.16.1(@typescript-eslint/utils@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint-import-resolver-node@0.3.9)(eslint@9.39.1(jiti@2.6.1))
+ eslint-plugin-n: 17.23.1(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
+ eslint-plugin-promise: 7.2.1(eslint@9.39.1(jiti@2.6.1))
+ eslint-plugin-react: 7.37.5(eslint@9.39.1(jiti@2.6.1))
find-up: 5.0.0
globals: 15.15.0
peowly: 1.3.2
- typescript-eslint: 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
+ typescript-eslint: 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
transitivePeerDependencies:
- '@typescript-eslint/utils'
- eslint-import-resolver-node
@@ -16202,14 +16241,14 @@ snapshots:
react: 19.2.0
react-dom: 19.2.0(react@19.2.0)
- react-hook-form-mui@8.0.0(d9b7a0dfb9e86eb33826a2476815ec9f):
+ react-hook-form-mui@8.0.0(d8b8a0b598a4bb03193b0b1d4aca738a):
dependencies:
- '@mui/material': 7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@mui/material': 7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react: 19.2.0
react-hook-form: 7.52.1(react@19.2.0)
optionalDependencies:
- '@mui/icons-material': 7.3.4(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
- '@mui/x-date-pickers': 8.16.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.4(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.3(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(dayjs@1.11.19)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
+ '@mui/icons-material': 7.3.5(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@types/react@19.2.2)(react@19.2.0)
+ '@mui/x-date-pickers': 8.16.0(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@mui/material@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react-dom@19.2.0(react@19.2.0))(react@19.2.0))(@mui/system@7.3.5(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@emotion/styled@11.14.1(@emotion/react@11.14.0(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(react@19.2.0))(@types/react@19.2.2)(dayjs@1.11.19)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)
react-hook-form@7.52.1(react@19.2.0):
dependencies:
@@ -16229,6 +16268,8 @@ snapshots:
react-is@19.1.1: {}
+ react-is@19.2.0: {}
+
react-markdown@10.1.0(@types/react@19.2.2)(react@19.2.0):
dependencies:
'@types/hast': 3.0.4
@@ -17349,13 +17390,13 @@ snapshots:
dependencies:
is-typedarray: 1.0.0
- typescript-eslint@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3):
+ typescript-eslint@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.46.2(@typescript-eslint/parser@8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/parser': 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.3)
- '@typescript-eslint/utils': 8.46.2(eslint@9.39.0(jiti@2.6.1))(typescript@5.9.3)
- eslint: 9.39.0(jiti@2.6.1)
+ '@typescript-eslint/eslint-plugin': 8.46.3(@typescript-eslint/parser@8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.46.3(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.46.3(eslint@9.39.1(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 9.39.1(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
diff --git a/lede/target/linux/amlogic/mesongx/config-6.1 b/lede/target/linux/amlogic/mesongx/config-6.1
index 7109139880..f0511c9139 100644
--- a/lede/target/linux/amlogic/mesongx/config-6.1
+++ b/lede/target/linux/amlogic/mesongx/config-6.1
@@ -60,7 +60,9 @@ CONFIG_BINFMT_MISC=y
CONFIG_BLK_DEV_BSGLIB=y
CONFIG_BLK_DEV_BSG_COMMON=y
CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_INTEGRITY_T10=y
CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_SD=y
CONFIG_BLK_MQ_PCI=y
CONFIG_BLK_MQ_VIRTIO=y
CONFIG_BLK_PM=y
@@ -532,6 +534,13 @@ CONFIG_SCHED_INFO=y
CONFIG_SCHED_MC=y
CONFIG_SCHED_SMT=y
CONFIG_SCHED_THERMAL_PRESSURE=y
+CONFIG_SCSI=y
+CONFIG_SCSI_COMMON=y
+# CONFIG_SCSI_LOWLEVEL is not set
+# CONFIG_SCSI_PROC_FS is not set
+CONFIG_SCSI_SAS_ATTRS=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SAS_LIBSAS=y
CONFIG_SECURITY=y
# CONFIG_SECURITY_NETWORK is not set
CONFIG_SERIAL_8250_FSL=y
diff --git a/lede/target/linux/amlogic/patches-6.1/201-fix-i2ca-and-i2cb-miossing-pins.patch b/lede/target/linux/amlogic/patches-6.1/201-fix-i2ca-and-i2cb-missing-pins.patch
similarity index 100%
rename from lede/target/linux/amlogic/patches-6.1/201-fix-i2ca-and-i2cb-miossing-pins.patch
rename to lede/target/linux/amlogic/patches-6.1/201-fix-i2ca-and-i2cb-missing-pins.patch
diff --git a/mieru/test/deploy/apiserver/test.sh b/mieru/test/deploy/apiserver/test.sh
index 31cde98e25..c1c5c866a4 100755
--- a/mieru/test/deploy/apiserver/test.sh
+++ b/mieru/test/deploy/apiserver/test.sh
@@ -31,7 +31,7 @@ function delete_mieru_client_log() {
}
function run_new_conn_test() {
- config="$1"
+ local config="$1"
sleep 1
echo ">>> socks5 - new connections with API server - $config <<<"
./sockshttpclient -dst_host=127.0.0.1 -dst_port=8080 \
@@ -45,7 +45,7 @@ function run_new_conn_test() {
}
function run_udp_associate_test() {
- config="$1"
+ local config="$1"
sleep 1
echo ">>> socks5 UDP associate - with API server - $config <<<"
./socksudpclient -dst_host=127.0.0.1 -dst_port=9090 \
diff --git a/mieru/test/deploy/mihomo/Dockerfile b/mieru/test/deploy/mihomo/Dockerfile
index face2fbcb9..757ea16aeb 100644
--- a/mieru/test/deploy/mihomo/Dockerfile
+++ b/mieru/test/deploy/mihomo/Dockerfile
@@ -21,11 +21,11 @@ WORKDIR /test
# Copy binaries, data and test script into the container.
COPY mihomo mita httpserver sockshttpclient socksudpclient udpserver \
- test/deploy/mihomo/mihomo-config.yaml \
- test/deploy/mihomo/mihomo-config-no-wait.yaml \
+ test/deploy/mihomo/mihomo-client-tcp.yaml \
+ test/deploy/mihomo/mihomo-client-tcp-no-wait.yaml \
test/deploy/mihomo/server_tcp.json \
test/deploy/mihomo/libtest.sh \
- test/deploy/mihomo/test_tcp.sh \
+ test/deploy/mihomo/test_client_tcp.sh \
test/deploy/mihomo/test.sh /test/
# Create mita user and server config directory.
diff --git a/mieru/test/deploy/mihomo/mihomo-config-no-wait.yaml b/mieru/test/deploy/mihomo/mihomo-client-tcp-no-wait.yaml
similarity index 100%
rename from mieru/test/deploy/mihomo/mihomo-config-no-wait.yaml
rename to mieru/test/deploy/mihomo/mihomo-client-tcp-no-wait.yaml
diff --git a/mieru/test/deploy/mihomo/mihomo-config.yaml b/mieru/test/deploy/mihomo/mihomo-client-tcp.yaml
similarity index 100%
rename from mieru/test/deploy/mihomo/mihomo-config.yaml
rename to mieru/test/deploy/mihomo/mihomo-client-tcp.yaml
diff --git a/mieru/test/deploy/mihomo/test.sh b/mieru/test/deploy/mihomo/test.sh
index 735a05be52..f76a9dca53 100755
--- a/mieru/test/deploy/mihomo/test.sh
+++ b/mieru/test/deploy/mihomo/test.sh
@@ -37,7 +37,7 @@ sleep 1
# Run TCP test.
echo "========== BEGIN OF TCP TEST =========="
-./test_tcp.sh
+./test_client_tcp.sh
echo "========== END OF TCP TEST =========="
echo "Test is successful."
diff --git a/mieru/test/deploy/mihomo/test_client_tcp.sh b/mieru/test/deploy/mihomo/test_client_tcp.sh
new file mode 100755
index 0000000000..debe79af86
--- /dev/null
+++ b/mieru/test/deploy/mihomo/test_client_tcp.sh
@@ -0,0 +1,109 @@
+#!/bin/bash
+
+# Copyright (C) 2024 mieru authors
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+# Make sure this script has executable permission:
+# git update-index --chmod=+x
+
+# Load test library.
+source ./libtest.sh
+
+# Update mieru server with TCP config.
+./mita apply config server_tcp.json
+if [[ "$?" -ne 0 ]]; then
+ echo "command 'mita apply config server_tcp.json' failed"
+ exit 1
+fi
+echo "mieru server config:"
+./mita describe config
+
+# Start mieru server proxy.
+./mita start
+if [[ "$?" -ne 0 ]]; then
+ echo "command 'mita start' failed"
+ exit 1
+fi
+
+# Start mihomo.
+./mihomo -f mihomo-client-tcp.yaml &
+sleep 1
+./mihomo -f mihomo-client-tcp-no-wait.yaml &
+sleep 1
+
+function run_tcp_tests() {
+ local port="$1"
+ local suffix="${2:-}"
+
+ sleep 1
+ echo ">>> socks5 - new connections - TCP ${suffix} <<<"
+ ./sockshttpclient -dst_host=127.0.0.1 -dst_port=8080 \
+ -local_proxy_host=127.0.0.1 -local_proxy_port=${port} \
+ -test_case=new_conn -num_request=3000
+ if [ "$?" -ne "0" ]; then
+ print_mieru_server_thread_dump
+ echo "TCP - test socks5 new_conn ${suffix} failed."
+ exit 1
+ fi
+
+ sleep 1
+ echo ">>> http - new connections - TCP ${suffix} <<<"
+ ./sockshttpclient -proxy_mode=http -dst_host=127.0.0.1 -dst_port=8080 \
+ -local_http_host=127.0.0.1 -local_http_port=${port} \
+ -test_case=new_conn -num_request=1000
+ if [ "$?" -ne "0" ]; then
+ print_mieru_server_thread_dump
+ echo "TCP - test HTTP new_conn ${suffix} failed."
+ exit 1
+ fi
+
+ sleep 1
+ echo ">>> socks5 - reuse one connection - TCP ${suffix} <<<"
+ ./sockshttpclient -dst_host=127.0.0.1 -dst_port=8080 \
+ -local_proxy_host=127.0.0.1 -local_proxy_port=${port} \
+ -test_case=reuse_conn -test_time_sec=30
+ if [ "$?" -ne "0" ]; then
+ print_mieru_server_thread_dump
+ echo "TCP - test socks5 reuse_conn ${suffix} failed."
+ exit 1
+ fi
+
+ sleep 1
+ echo ">>> socks5 UDP associate - TCP ${suffix} <<<"
+ ./socksudpclient -dst_host=127.0.0.1 -dst_port=9090 \
+ -local_proxy_host=127.0.0.1 -local_proxy_port=${port} \
+ -interval_ms=10 -num_request=100 -num_conn=60
+ if [ "$?" -ne "0" ]; then
+ print_mieru_server_thread_dump
+ echo "TCP - test socks5 udp_associate ${suffix} failed."
+ exit 1
+ fi
+}
+
+# Start testing.
+run_tcp_tests 1080
+run_tcp_tests 1081 "(handshake no wait)"
+
+# Print metrics and memory statistics.
+print_mieru_server_metrics
+sleep 1
+
+# Stop mieru server proxy.
+./mita stop
+if [[ "$?" -ne 0 ]]; then
+ echo "command 'mita stop' failed"
+ exit 1
+fi
+sleep 1
diff --git a/mieru/test/deploy/mihomo/test_tcp.sh b/mieru/test/deploy/mihomo/test_tcp.sh
deleted file mode 100755
index 3842ae70c0..0000000000
--- a/mieru/test/deploy/mihomo/test_tcp.sh
+++ /dev/null
@@ -1,145 +0,0 @@
-#!/bin/bash
-
-# Copyright (C) 2024 mieru authors
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see .
-
-# Make sure this script has executable permission:
-# git update-index --chmod=+x
-
-# Load test library.
-source ./libtest.sh
-
-# Update mieru server with TCP config.
-./mita apply config server_tcp.json
-if [[ "$?" -ne 0 ]]; then
- echo "command 'mita apply config server_tcp.json' failed"
- exit 1
-fi
-echo "mieru server config:"
-./mita describe config
-
-# Start mieru server proxy.
-./mita start
-if [[ "$?" -ne 0 ]]; then
- echo "command 'mita start' failed"
- exit 1
-fi
-
-# Start mihomo.
-./mihomo -f mihomo-config.yaml &
-sleep 1
-./mihomo -f mihomo-config-no-wait.yaml &
-sleep 1
-
-# Start testing.
-sleep 2
-echo ">>> socks5 - new connections - TCP <<<"
-./sockshttpclient -dst_host=127.0.0.1 -dst_port=8080 \
- -local_proxy_host=127.0.0.1 -local_proxy_port=1080 \
- -test_case=new_conn -num_request=3000
-if [ "$?" -ne "0" ]; then
- print_mieru_server_thread_dump
- echo "TCP - test socks5 new_conn failed."
- exit 1
-fi
-
-sleep 1
-echo ">>> http - new connections - TCP <<<"
-./sockshttpclient -proxy_mode=http -dst_host=127.0.0.1 -dst_port=8080 \
- -local_http_host=127.0.0.1 -local_http_port=1080 \
- -test_case=new_conn -num_request=1000
-if [ "$?" -ne "0" ]; then
- print_mieru_server_thread_dump
- echo "TCP - test HTTP new_conn failed."
- exit 1
-fi
-
-sleep 1
-echo ">>> socks5 - reuse one connection - TCP <<<"
-./sockshttpclient -dst_host=127.0.0.1 -dst_port=8080 \
- -local_proxy_host=127.0.0.1 -local_proxy_port=1080 \
- -test_case=reuse_conn -test_time_sec=30
-if [ "$?" -ne "0" ]; then
- print_mieru_server_thread_dump
- echo "TCP - test socks5 reuse_conn failed."
- exit 1
-fi
-
-sleep 1
-echo ">>> socks5 UDP associate - TCP <<<"
-./socksudpclient -dst_host=127.0.0.1 -dst_port=9090 \
- -local_proxy_host=127.0.0.1 -local_proxy_port=1080 \
- -interval_ms=10 -num_request=100 -num_conn=60
-if [ "$?" -ne "0" ]; then
- print_mieru_server_thread_dump
- echo "TCP - test socks5 udp_associate failed."
- exit 1
-fi
-
-sleep 1
-echo ">>> socks5 - new connections - TCP - handshake no wait <<<"
-./sockshttpclient -dst_host=127.0.0.1 -dst_port=8080 \
- -local_proxy_host=127.0.0.1 -local_proxy_port=1081 \
- -test_case=new_conn -num_request=3000
-if [ "$?" -ne "0" ]; then
- print_mieru_server_thread_dump
- echo "TCP - test socks5 new_conn (handshake no wait) failed."
- exit 1
-fi
-
-sleep 1
-echo ">>> http - new connections - TCP - handshake no wait <<<"
-./sockshttpclient -proxy_mode=http -dst_host=127.0.0.1 -dst_port=8080 \
- -local_http_host=127.0.0.1 -local_http_port=1081 \
- -test_case=new_conn -num_request=1000
-if [ "$?" -ne "0" ]; then
- print_mieru_server_thread_dump
- echo "TCP - test HTTP new_conn (handshake no wait) failed."
- exit 1
-fi
-
-sleep 1
-echo ">>> socks5 - reuse one connection - TCP - handshake no wait <<<"
-./sockshttpclient -dst_host=127.0.0.1 -dst_port=8080 \
- -local_proxy_host=127.0.0.1 -local_proxy_port=1081 \
- -test_case=reuse_conn -test_time_sec=30
-if [ "$?" -ne "0" ]; then
- print_mieru_server_thread_dump
- echo "TCP - test socks5 reuse_conn (handshake no wait) failed."
- exit 1
-fi
-
-sleep 1
-echo ">>> socks5 UDP associate - TCP - handshake no wait <<<"
-./socksudpclient -dst_host=127.0.0.1 -dst_port=9090 \
- -local_proxy_host=127.0.0.1 -local_proxy_port=1081 \
- -interval_ms=10 -num_request=100 -num_conn=60
-if [ "$?" -ne "0" ]; then
- print_mieru_server_thread_dump
- echo "TCP - test socks5 udp_associate (handshake no wait) failed."
- exit 1
-fi
-
-# Print metrics and memory statistics.
-print_mieru_server_metrics
-sleep 1
-
-# Stop mieru server proxy.
-./mita stop
-if [[ "$?" -ne 0 ]]; then
- echo "command 'mita stop' failed"
- exit 1
-fi
-sleep 1
diff --git a/mihomo/common/net/sing.go b/mihomo/common/net/sing.go
index 72bfd97253..df07bf98df 100644
--- a/mihomo/common/net/sing.go
+++ b/mihomo/common/net/sing.go
@@ -24,6 +24,8 @@ var WriteBuffer = bufio.WriteBuffer
type ReadWaitOptions = network.ReadWaitOptions
var NewReadWaitOptions = network.NewReadWaitOptions
+var CalculateFrontHeadroom = network.CalculateFrontHeadroom
+var CalculateRearHeadroom = network.CalculateRearHeadroom
type ReaderWithUpstream = network.ReaderWithUpstream
type WithUpstreamReader = network.WithUpstreamReader
diff --git a/mihomo/go.mod b/mihomo/go.mod
index 4dc7d32d3f..248325e2bb 100644
--- a/mihomo/go.mod
+++ b/mihomo/go.mod
@@ -16,7 +16,7 @@ require (
github.com/insomniacslk/dhcp v0.0.0-20250109001534-8abf58130905
github.com/klauspost/compress v1.17.9 // lastest version compatible with golang1.20
github.com/mdlayher/netlink v1.7.2
- github.com/metacubex/amneziawg-go v0.0.0-20250902133113-a7f637c14281
+ github.com/metacubex/amneziawg-go v0.0.0-20251104174305-5a0e9f7e361d
github.com/metacubex/bart v0.26.0
github.com/metacubex/bbolt v0.0.0-20250725135710-010dbbbb7a5b
github.com/metacubex/blake3 v0.1.0
diff --git a/mihomo/go.sum b/mihomo/go.sum
index 981d842287..5069ad9a82 100644
--- a/mihomo/go.sum
+++ b/mihomo/go.sum
@@ -90,8 +90,8 @@ github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/
github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw=
github.com/mdlayher/socket v0.4.1 h1:eM9y2/jlbs1M615oshPQOHZzj6R6wMT7bX5NPiQvn2U=
github.com/mdlayher/socket v0.4.1/go.mod h1:cAqeGjoufqdxWkD7DkpyS+wcefOtmu5OQ8KuoJGIReA=
-github.com/metacubex/amneziawg-go v0.0.0-20250902133113-a7f637c14281 h1:09EM0sOLb2kfL0KETGhHujsBLB5iy5U/2yHRHsxf/pI=
-github.com/metacubex/amneziawg-go v0.0.0-20250902133113-a7f637c14281/go.mod h1:MsM/5czONyXMJ3PRr5DbQ4O/BxzAnJWOIcJdLzW6qHY=
+github.com/metacubex/amneziawg-go v0.0.0-20251104174305-5a0e9f7e361d h1:vAJ0ZT4aO803F1uw2roIA9yH7Sxzox34tVVyye1bz6c=
+github.com/metacubex/amneziawg-go v0.0.0-20251104174305-5a0e9f7e361d/go.mod h1:MsM/5czONyXMJ3PRr5DbQ4O/BxzAnJWOIcJdLzW6qHY=
github.com/metacubex/ascon v0.1.0 h1:6ZWxmXYszT1XXtwkf6nxfFhc/OTtQ9R3Vyj1jN32lGM=
github.com/metacubex/ascon v0.1.0/go.mod h1:eV5oim4cVPPdEL8/EYaTZ0iIKARH9pnhAK/fcT5Kacc=
github.com/metacubex/bart v0.26.0 h1:d/bBTvVatfVWGfQbiDpYKI1bXUJgjaabB2KpK1Tnk6w=
diff --git a/mihomo/transport/vless/vision/conn.go b/mihomo/transport/vless/vision/conn.go
index 4e62b1536c..a4d236c1d6 100644
--- a/mihomo/transport/vless/vision/conn.go
+++ b/mihomo/transport/vless/vision/conn.go
@@ -242,14 +242,26 @@ func (vc *Conn) WriteBuffer(buffer *buf.Buffer) (err error) {
}
func (vc *Conn) FrontHeadroom() int {
+ fontHeadroom := PaddingHeaderLen - uuid.Size
if vc.readFilterUUID || vc.writeOnceUserUUID != nil {
- return PaddingHeaderLen
+ fontHeadroom = PaddingHeaderLen
}
- return PaddingHeaderLen - uuid.Size
+ if vc.writeFilterApplicationData { // The writer may be replaced, add the required value for vc.netConn
+ if abs := N.CalculateFrontHeadroom(vc.netConn) - N.CalculateFrontHeadroom(vc.Conn); abs > 0 {
+ fontHeadroom += abs
+ }
+ }
+ return fontHeadroom
}
func (vc *Conn) RearHeadroom() int {
- return 500 + 900
+ rearHeadroom := 500 + 900
+ if vc.writeFilterApplicationData { // The writer may be replaced, add the required value for vc.netConn
+ if abs := N.CalculateRearHeadroom(vc.netConn) - N.CalculateRearHeadroom(vc.Conn); abs > 0 {
+ rearHeadroom += abs
+ }
+ }
+ return rearHeadroom
}
func (vc *Conn) NeedHandshake() bool {
diff --git a/sing-box/service/ssmapi/cache.go b/sing-box/service/ssmapi/cache.go
index 03cc8c3f30..f942265d4a 100644
--- a/sing-box/service/ssmapi/cache.go
+++ b/sing-box/service/ssmapi/cache.go
@@ -49,6 +49,9 @@ func (s *Service) loadCache() error {
os.RemoveAll(basePath)
return err
}
+ s.cacheMutex.Lock()
+ s.lastSavedCache = cacheBinary
+ s.cacheMutex.Unlock()
return nil
}
@@ -56,16 +59,30 @@ func (s *Service) saveCache() error {
if s.cachePath == "" {
return nil
}
+ cacheBinary, err := s.encodeCache()
+ if err != nil {
+ return err
+ }
+ s.cacheMutex.Lock()
+ defer s.cacheMutex.Unlock()
+ if bytes.Equal(s.lastSavedCache, cacheBinary) {
+ return nil
+ }
+ return s.writeCache(cacheBinary)
+}
+
+func (s *Service) writeCache(cacheBinary []byte) error {
basePath := filemanager.BasePath(s.ctx, s.cachePath)
err := os.MkdirAll(filepath.Dir(basePath), 0o777)
if err != nil {
return err
}
- cacheBinary, err := s.encodeCache()
+ err = os.WriteFile(basePath, cacheBinary, 0o644)
if err != nil {
return err
}
- return os.WriteFile(s.cachePath, cacheBinary, 0o644)
+ s.lastSavedCache = cacheBinary
+ return nil
}
func (s *Service) decodeCache(cacheBinary []byte) error {
diff --git a/sing-box/service/ssmapi/server.go b/sing-box/service/ssmapi/server.go
index f9b382af6c..157ea150b4 100644
--- a/sing-box/service/ssmapi/server.go
+++ b/sing-box/service/ssmapi/server.go
@@ -4,6 +4,8 @@ import (
"context"
"errors"
"net/http"
+ "sync"
+ "time"
"github.com/sagernet/sing-box/adapter"
boxService "github.com/sagernet/sing-box/adapter/service"
@@ -28,21 +30,27 @@ func RegisterService(registry *boxService.Registry) {
type Service struct {
boxService.Adapter
- ctx context.Context
- logger log.ContextLogger
- listener *listener.Listener
- tlsConfig tls.ServerConfig
- httpServer *http.Server
- traffics map[string]*TrafficManager
- users map[string]*UserManager
- cachePath string
+ ctx context.Context
+ cancel context.CancelFunc
+ logger log.ContextLogger
+ listener *listener.Listener
+ tlsConfig tls.ServerConfig
+ httpServer *http.Server
+ traffics map[string]*TrafficManager
+ users map[string]*UserManager
+ cachePath string
+ saveTicker *time.Ticker
+ lastSavedCache []byte
+ cacheMutex sync.Mutex
}
func NewService(ctx context.Context, logger log.ContextLogger, tag string, options option.SSMAPIServiceOptions) (adapter.Service, error) {
+ ctx, cancel := context.WithCancel(ctx)
chiRouter := chi.NewRouter()
s := &Service{
Adapter: boxService.NewAdapter(C.TypeSSMAPI, tag),
ctx: ctx,
+ cancel: cancel,
logger: logger,
listener: listener.New(listener.Options{
Context: ctx,
@@ -95,6 +103,8 @@ func (s *Service) Start(stage adapter.StartStage) error {
if err != nil {
s.logger.Error(E.Cause(err, "load cache"))
}
+ s.saveTicker = time.NewTicker(1 * time.Minute)
+ go s.loopSaveCache()
if s.tlsConfig != nil {
err = s.tlsConfig.Start()
if err != nil {
@@ -120,7 +130,27 @@ func (s *Service) Start(stage adapter.StartStage) error {
return nil
}
+func (s *Service) loopSaveCache() {
+ for {
+ select {
+ case <-s.ctx.Done():
+ return
+ case <-s.saveTicker.C:
+ err := s.saveCache()
+ if err != nil {
+ s.logger.Error(E.Cause(err, "save cache"))
+ }
+ }
+ }
+}
+
func (s *Service) Close() error {
+ if s.cancel != nil {
+ s.cancel()
+ }
+ if s.saveTicker != nil {
+ s.saveTicker.Stop()
+ }
err := s.saveCache()
if err != nil {
s.logger.Error(E.Cause(err, "save cache"))
diff --git a/small/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/small/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua
index 4863789ee8..c0e625b1e3 100644
--- a/small/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua
+++ b/small/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua
@@ -1285,15 +1285,26 @@ o = s:option(ListValue, "tuic_alpn", translate("TUIC ALPN"))
o.default = ""
o:value("", translate("Default"))
o:value("h3")
+o:value("h2")
+o:value("h3,h2")
o:value("spdy/3.1")
o:value("h3,spdy/3.1")
o:depends("type", "tuic")
+-- IP STACK PREFERENCE
+o = s:option(ListValue, "ipstack_prefer", translate("IP Stack Preference"))
+o.default = ""
+o:value("", translate("Default"))
+o:value("v4first")
+o:value("v6first")
+o:depends("tuic_dual_stack", true)
+
-- [[ allowInsecure ]]--
o = s:option(Flag, "insecure", translate("allowInsecure"))
o.rmempty = false
o:depends("tls", true)
o:depends("type", "hysteria2")
+o:depends("type", "tuic")
o.description = translate("If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates.")
-- [[ Hysteria2 TLS pinSHA256 ]] --
diff --git a/small/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm b/small/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm
index b24a078713..8e0f80de9b 100644
--- a/small/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm
+++ b/small/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm
@@ -862,12 +862,37 @@ function import_ssr_url(btn, urlname, sid) {
document.getElementsByName('cbid.shadowsocksr.' + sid + '.server')[0].value = url.hostname;
document.getElementsByName('cbid.shadowsocksr.' + sid + '.server_port')[0].value = url.port;
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tuic_uuid')[0].value = method;
- document.getElementsByName('cbid.shadowsocksr.' + sid + '.tuic_ip')[0].value = params.sni || "";
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.tuic_ip')[0].value = params.ip || "";
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tuic_passwd')[0].value = password;
document.getElementsByName('cbid.shadowsocksr.' + sid + '.udp_relay_mode')[0].value = params.udp_relay_mode || "native";
document.getElementsByName('cbid.shadowsocksr.' + sid + '.congestion_control')[0].value = params.congestion_control || "cubic";
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tuic_alpn')[0].value = params.alpn || "";
-
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.heartbeat')[0].value = params.heartbeat || "3";
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.timeout')[0].value = params.timeout || "8";
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.gc_interval')[0].value = params.gc_interval || "3";
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.gc_lifetime')[0].value = params.gc_lifetime || "15";
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.send_window')[0].value = params.send_window || "20971520";
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.receive_window')[0].value = params.receive_window || "10485760";
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.tuic_max_package_size')[0].value = params.max_packet_size || "1500";
+ if (params["disable_sni"] === "1" || params["disable_sni"] === "true") {
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.disable_sni')[0].checked = true;
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.disable_sni')[0].dispatchEvent(event);
+ }
+ if (params["zero_rtt_handshake"] === "1" || params["zero_rtt_handshake"] === "true") {
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.zero_rtt_handshake')[0].checked = true;
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.zero_rtt_handshake')[0].dispatchEvent(event);
+ }
+ if (params["dual_stack"] === "1" || params["dual_stack"] === "true") {
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.tuic_dual_stack')[0].checked = true;
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.tuic_dual_stack')[0].dispatchEvent(event);
+ if (params.ipstack_prefer && params.ipstack_prefer.trim() !== "") {
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.ipstack_prefer')[0].value = params.ipstack_prefer;
+ }
+ }
+ if (params["allowInsecure"] === "1" || params["allowInsecure"] === "true") {
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].checked = true;
+ document.getElementsByName('cbid.shadowsocksr.' + sid + '.insecure')[0].dispatchEvent(event);
+ }
if (param != undefined) {
document.getElementsByName('cbid.shadowsocksr.' + sid + '.alias')[0].value = decodeURIComponent(param);
}
diff --git a/small/luci-app-ssr-plus/po/templates/ssr-plus.pot b/small/luci-app-ssr-plus/po/templates/ssr-plus.pot
index 8a1ce042b8..f104552ee1 100644
--- a/small/luci-app-ssr-plus/po/templates/ssr-plus.pot
+++ b/small/luci-app-ssr-plus/po/templates/ssr-plus.pot
@@ -1,7 +1,7 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:353
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:361
msgid ""
"\"1-3\" is for segmentation at TCP layer, applying to the beginning 1 to 3 "
"data writes by the client. \"tlshello\" is for TLS client hello packet "
@@ -12,27 +12,27 @@ msgstr ""
msgid "0"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:86
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:94
msgid "1 Thread"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:93
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:101
msgid "128 Threads"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1344
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1355
msgid "16"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:90
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:98
msgid "16 Threads"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:87
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:95
msgid "2 Threads"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:91
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:99
msgid "32 Threads"
msgstr ""
@@ -40,31 +40,31 @@ msgstr ""
msgid "360"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:256
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:264
msgid "360 Security DNS (China Telecom) (101.226.4.6)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:257
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:265
msgid "360 Security DNS (China Unicom) (123.125.81.6)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:88
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:96
msgid "4 Threads"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:92
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:100
msgid "64 Threads"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1331
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1342
msgid "8"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:89
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:97
msgid "8 Threads"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:379
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:387
msgid ""
msgstr ""
@@ -74,21 +74,21 @@ msgstr ""
msgid ""
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:30
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:38
msgid ""
"Support SS/SSR/V2RAY/XRAY/TROJAN/TUIC/HYSTERIA2/NAIVEPROXY/SOCKS5/TUN "
"etc.
"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:151
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:177
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:211
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1324
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1337
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1350
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:174
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:200
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:235
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:159
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:185
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:219
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1335
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1348
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1361
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:182
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:208
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:243
msgid "- "
msgstr ""
@@ -96,8 +96,8 @@ msgstr ""
msgid "Access Control"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:169
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:192
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:177
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:200
msgid "AdGuard DNSCrypt SDNS"
msgstr ""
@@ -109,7 +109,7 @@ msgstr ""
msgid "Advertising Data"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:254
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:262
msgid "AliYun Public DNS (223.5.5.5)"
msgstr ""
@@ -121,7 +121,7 @@ msgstr ""
msgid "Alias(optional)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:105
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:113
msgid "All Ports"
msgstr ""
@@ -141,21 +141,21 @@ msgstr ""
msgid "AlterId"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:133
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:164
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:135
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:156
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:187
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:221
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:141
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:172
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:143
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:164
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:195
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:229
msgid "Anti-pollution DNS Server"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:116
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:197
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:124
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:205
msgid "Anti-pollution DNS Server For Shunt Mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:234
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:242
msgid "Apple Domains DNS"
msgstr ""
@@ -163,11 +163,11 @@ msgstr ""
msgid "Apple Domains Data"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:229
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:237
msgid "Apple Domains Update url"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:225
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:233
msgid "Apple domains optimization"
msgstr ""
@@ -188,7 +188,7 @@ msgstr ""
msgid "Auto Switch"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:85
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:93
msgid "Auto Threads"
msgstr ""
@@ -201,7 +201,7 @@ msgid "Auto Update Server subscription, GFW list and CHN route"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:708
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1384
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1395
msgid "BBR"
msgstr ""
@@ -217,7 +217,7 @@ msgstr ""
msgid "Baidu Connectivity"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:255
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:263
msgid "Baidu Public DNS (180.76.76.76)"
msgstr ""
@@ -246,12 +246,12 @@ msgstr ""
msgid "CLOSE WIN"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:258
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:266
msgid "CNNIC SDNS (1.2.4.8)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:709
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1385
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1396
msgid "CUBIC"
msgstr ""
@@ -260,7 +260,7 @@ msgstr ""
msgid "Camouflage Type"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1311
msgid "Certificate fingerprint"
msgstr ""
@@ -278,11 +278,11 @@ msgstr ""
msgid "Check Server Port"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:68
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:76
msgid "Check Try Count"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:63
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:71
msgid "Check timout(second)"
msgstr ""
@@ -295,23 +295,23 @@ msgstr ""
msgid "China IP Data"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:241
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:249
msgid "ChinaDNS-NG query protocol"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:217
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:225
msgid "ChinaDNS-NG shunt query protocol"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:80
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:88
msgid "Chnroute Update url"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:81
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:89
msgid "Clang.CN"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:82
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:90
msgid "Clang.CN.CIDR"
msgstr ""
@@ -319,32 +319,32 @@ msgstr ""
msgid "Clear logs"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:155
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:178
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:163
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:186
msgid "Click here to view or manage the DNS list file"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:390
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:921
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1225
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1252
msgid "Click to the page"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:139
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:162
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:147
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:170
msgid "Cloudflare DNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:127
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:208
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:146
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:232
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:135
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:216
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:154
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:240
msgid "Cloudflare DNS (1.1.1.1)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:170
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:193
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:178
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:201
msgid "Cloudflare DNSCrypt SDNS"
msgstr ""
@@ -389,11 +389,11 @@ msgstr ""
msgid "Create Backup File"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1420
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1431
msgid "Create upload file error."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1440
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1451
msgid "Current Certificate Path"
msgstr ""
@@ -401,26 +401,26 @@ msgstr ""
msgid "Custom"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:173
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:196
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:181
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:204
msgid ""
"Custom DNS Server (support: IP:Port or tls://IP:Port or https://IP/dns-query "
"and other format)."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:141
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:164
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:149
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:172
msgid "Custom DNS Server for MosDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:130
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:212
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:152
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:236
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:138
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:220
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:160
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:244
msgid "Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:264
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:272
msgid "Custom DNS Server format as IP:PORT (default: disabled)"
msgstr ""
@@ -428,11 +428,11 @@ msgstr ""
msgid "Custom Plugin Path"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:107
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:115
msgid "Custom Ports"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:94
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:102
msgid "Customize Netflix IP Url"
msgstr ""
@@ -444,11 +444,11 @@ msgstr ""
msgid "DNS Anti-pollution"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:97
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:105
msgid "DNS Query Mode For Shunt Mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:253
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:261
msgid "DNSPod Public DNS (119.29.29.29)"
msgstr ""
@@ -459,10 +459,11 @@ msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1273
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1286
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1297
msgid "Default"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1351
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1362
msgid "Default reject rejects traffic."
msgstr ""
@@ -470,32 +471,32 @@ msgstr ""
msgid "Default value 0 indicatesno heartbeat."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1325
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1336
msgid ""
"Default: disable. When entering a negative number, such as -1, The Mux "
"module will not be used to carry TCP traffic."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1338
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1349
msgid ""
"Default:16. When entering a negative number, such as -1, The Mux module will "
"not be used to carry UDP traffic, Use original UDP transmission method of "
"proxy protocol."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:175
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:198
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:183
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:206
msgid "Defines the upstreams logic mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:178
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:201
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:186
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:209
msgid ""
"Defines the upstreams logic mode, possible values: load_balance, parallel, "
"fastest_addr (default: load_balance)."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:420
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:428
msgid "Delay (ms)"
msgstr ""
@@ -507,27 +508,27 @@ msgstr ""
msgid "Deny Domain List"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:54
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:62
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:70
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:78
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua:37
msgid "Disable"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:249
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:257
msgid "Disable ChinaDNS-NG"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:143
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:151
msgid "Disable IPv6 In MosDNS Query Mode (Shunt Mode)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:166
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:174
msgid "Disable IPv6 in MOSDNS query mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:188
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:212
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:196
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:220
msgid "Disable IPv6 query mode"
msgstr ""
@@ -555,16 +556,16 @@ msgstr ""
msgid "Do you want to restore the client to default settings?"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:221
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:245
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:229
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:253
msgid "DoT upstream (Need use wolfssl version)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:407
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:415
msgid "Domain Strategy"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:248
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:256
msgid "Domestic DNS Server"
msgstr ""
@@ -593,8 +594,8 @@ msgstr ""
msgid "Edit ShadowSocksR Server"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:263
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:396
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:271
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:404
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:82
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:101
msgid "Enable"
@@ -608,8 +609,8 @@ msgstr ""
msgid "Enable Authentication"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:54
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1454
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:62
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1465
msgid "Enable Auto Switch"
msgstr ""
@@ -625,17 +626,17 @@ msgstr ""
msgid "Enable ML-DSA-65(optional)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1369
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1380
msgid ""
"Enable Multipath TCP, need to be enabled in both server and client "
"configuration."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1305
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1316
msgid "Enable Mux.Cool"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:86
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:94
msgid "Enable Netflix Mode"
msgstr ""
@@ -667,7 +668,7 @@ msgstr ""
msgid "Enable V3 protocol."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:240
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:248
msgid "Enable adblock"
msgstr ""
@@ -683,13 +684,13 @@ msgstr ""
msgid "Enabled Kernel virtual NIC TUN(optional)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:327
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:335
msgid "Enabled Mixed"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:626
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1363
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1446
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1457
msgid "Enabling TCP Fast Open Requires Server Support."
msgstr ""
@@ -704,7 +705,7 @@ msgstr ""
msgid "Encrypt Method"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:108
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:116
msgid "Enter Custom Ports"
msgstr ""
@@ -740,11 +741,11 @@ msgstr ""
msgid "Every Wednesday"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:275
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:283
msgid "Expecting: %s"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:78
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:86
msgid "External Proxy Mode"
msgstr ""
@@ -761,13 +762,13 @@ msgstr ""
msgid "Flow"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:225
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:233
msgid ""
"For Apple domains equipped with Chinese mainland CDN, always responsive to "
"Chinese CDN IP addresses"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:380
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:388
msgid "For specific usage, see:"
msgstr ""
@@ -777,31 +778,31 @@ msgid ""
"(,)."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:80
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:88
msgid "Forward Netflix Proxy through Main Proxy"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:350
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:358
msgid "Fragment"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:366
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374
msgid "Fragment Interval"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:362
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370
msgid "Fragment Length"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:353
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:361
msgid "Fragment Packets"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:366
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374
msgid "Fragmentation interval (ms)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:362
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370
msgid "Fragmented packet length (byte)"
msgstr ""
@@ -809,7 +810,7 @@ msgstr ""
msgid "GFW List Data"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:98
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:106
msgid "GFW List Mode"
msgstr ""
@@ -821,7 +822,7 @@ msgstr ""
msgid "Game Mode UDP Relay"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:61
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:69
msgid "Game Mode UDP Server"
msgstr ""
@@ -837,11 +838,11 @@ msgstr ""
msgid "Global Client"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:100
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:108
msgid "Global Mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:259
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:267
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:133
msgid "Global SOCKS5 Proxy Server"
msgstr ""
@@ -854,27 +855,27 @@ msgstr ""
msgid "Google Connectivity"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:165
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:188
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:173
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:196
msgid "Google DNSCrypt SDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:134
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:157
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:142
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:165
msgid "Google Public DNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:117
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:198
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:136
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:222
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:125
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:206
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:144
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:230
msgid "Google Public DNS (8.8.4.4)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:118
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:199
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:137
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:223
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:126
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:207
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:145
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:231
msgid "Google Public DNS (8.8.8.8)"
msgstr ""
@@ -943,15 +944,19 @@ msgstr ""
msgid "Hysterir QUIC parameters"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:99
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:107
msgid "IP Route Mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:424
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1295
+msgid "IP Stack Preference"
+msgstr ""
+
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:432
msgid "IP Type"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:234
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:242
msgid "If empty, Not change Apple domains parsing DNS (Default is empty)"
msgstr ""
@@ -965,17 +970,17 @@ msgstr ""
msgid "If this option is not set, the socket behavior is platform dependent."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1297
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1308
msgid ""
"If true, allowss insecure connection at TLS client, e.g., TLS server uses "
"unverifiable certificates."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1404
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1415
msgid "If you have a self-signed certificate,please check the box"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:883
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:908
msgid "Import"
msgstr ""
@@ -987,7 +992,7 @@ msgstr ""
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:604
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:692
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:822
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:874
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:899
msgid "Import configuration information successfully."
msgstr ""
@@ -1007,7 +1012,7 @@ msgstr ""
msgid "Invalid JSON format"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:877
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:902
msgid "Invalid format."
msgstr ""
@@ -1015,19 +1020,19 @@ msgstr ""
msgid "KcpTun"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1464
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1475
msgid "KcpTun Enable"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1481
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1492
msgid "KcpTun Param"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1476
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1487
msgid "KcpTun Password"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1470
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1481
msgid "KcpTun Port"
msgstr ""
@@ -1055,64 +1060,64 @@ msgstr ""
msgid "LAN IP AC"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:121
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:202
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:140
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:226
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:129
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:210
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:148
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:234
msgid "Level 3 Public DNS (209.244.0.3)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:122
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:203
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:141
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:227
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:130
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:211
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:149
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:235
msgid "Level 3 Public DNS (209.244.0.4)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:123
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:204
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:142
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:228
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:131
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:212
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:150
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:236
msgid "Level 3 Public DNS (4.2.2.1)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:124
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:205
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:143
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:229
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:132
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:213
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:151
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:237
msgid "Level 3 Public DNS (4.2.2.2)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:125
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:206
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:144
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:230
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:133
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:214
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:152
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:238
msgid "Level 3 Public DNS (4.2.2.3)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:126
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:207
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:145
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:231
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:134
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:215
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:153
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:239
msgid "Level 3 Public DNS (4.2.2.4)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:136
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:159
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:144
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:167
msgid "Level 3 Public DNS-1 (209.244.0.3-4)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:137
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:160
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:145
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:168
msgid "Level 3 Public DNS-2 (4.2.2.1-2)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:138
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:161
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:146
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:169
msgid "Level 3 Public DNS-3 (4.2.2.3-4)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:378
msgid "Limit the maximum number of splits."
msgstr ""
@@ -1120,8 +1125,8 @@ msgstr ""
msgid "Listen only on the given interface or, if unspecified, on all"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:340
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1458
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:348
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1469
msgid "Local Port"
msgstr ""
@@ -1137,11 +1142,11 @@ msgstr ""
msgid "Log"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:76
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:84
msgid "Loukky/gfwlist-by-loukky"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:75
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:83
msgid "Loyalsoldier/v2ray-rules-dat"
msgstr ""
@@ -1149,7 +1154,7 @@ msgstr ""
msgid "ML-DSA-65 Public key"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1369
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1380
msgid "MPTCP"
msgstr ""
@@ -1157,7 +1162,7 @@ msgstr ""
msgid "MTU"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:53
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:61
msgid "Main Server"
msgstr ""
@@ -1165,7 +1170,7 @@ msgstr ""
msgid "Max Early Data"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:378
msgid "Max Split"
msgstr ""
@@ -1173,18 +1178,18 @@ msgstr ""
msgid "Maximum packet size the socks5 server can receive from external"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1339
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1350
msgid ""
"Min value is 1, Max value is 1024. When omitted or set to 0, Will same path "
"as TCP traffic."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1337
msgid ""
"Min value is 1, Max value is 128. When omitted or set to 0, it equals 8."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:327
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:335
msgid "Mixed as an alias of socks, default:Enabled."
msgstr ""
@@ -1196,8 +1201,8 @@ msgstr ""
msgid "Move up"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:213
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:237
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:221
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:245
msgid "Muitiple DNS server can saperate with ','"
msgstr ""
@@ -1205,19 +1210,19 @@ msgstr ""
msgid "Multi"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:84
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:92
msgid "Multi Threads Option"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1305
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1316
msgid "Mux"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:245
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:253
msgid "NEO DEV HOST Full"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:244
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:252
msgid "NEO DEV HOST Lite"
msgstr ""
@@ -1229,7 +1234,7 @@ msgstr ""
msgid "NaiveProxy"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:252
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:260
msgid "Nanjing Xinfeng 114DNS (114.114.114.114)"
msgstr ""
@@ -1241,15 +1246,15 @@ msgstr ""
msgid "Netflix IP Data"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:91
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:99
msgid "Netflix IP Only"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:69
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:77
msgid "Netflix Node"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:92
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:100
msgid "Netflix and AWS"
msgstr ""
@@ -1275,11 +1280,11 @@ msgstr ""
msgid "No new data!"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1436
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1447
msgid "No specify upload file."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382
msgid "Noise"
msgstr ""
@@ -1336,50 +1341,50 @@ msgstr ""
msgid "Obfuscation Type"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:106
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:114
msgid "Only Common Ports"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:316
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:324
msgid "Only when Socks5 Auth Mode is password valid, Mandatory."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:321
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:329
msgid "Only when Socks5 Auth Mode is password valid, Not mandatory."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:135
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:158
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:143
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:166
msgid "OpenDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:120
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:201
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:139
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:225
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:128
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:209
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:147
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:233
msgid "OpenDNS (208.67.220.220)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:119
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:200
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:138
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:224
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:127
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:208
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:146
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:232
msgid "OpenDNS (208.67.222.222)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:101
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:109
msgid "Oversea Mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:147
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:155
msgid "Oversea Mode DNS-1 (114.114.114.114)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:148
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:156
msgid "Oversea Mode DNS-2 (114.114.115.115)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:416
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:424
msgid "Packet"
msgstr ""
@@ -1409,7 +1414,7 @@ msgstr ""
msgid "Ping Latency"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1443
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1454
msgid "Please confirm the current certificate path"
msgstr ""
@@ -1447,7 +1452,7 @@ msgstr ""
msgid "Protocol param (optional)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:104
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:112
msgid "Proxy Ports"
msgstr ""
@@ -1483,8 +1488,8 @@ msgstr ""
msgid "QUIC maxStreamReceiveWindow"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:168
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:191
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:176
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:199
msgid "Quad9 DNSCrypt SDNS"
msgstr ""
@@ -1543,7 +1548,7 @@ msgstr ""
msgid "Refresh..."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1386
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1397
msgid "Reno"
msgstr ""
@@ -1556,11 +1561,11 @@ msgstr ""
msgid "Reset complete"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:251
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:259
msgid "Reset to defaults"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:113
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:121
msgid "Resolve Dns Mode"
msgstr ""
@@ -1590,7 +1595,7 @@ msgstr ""
msgid "Running"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:97
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:105
msgid "Running Mode"
msgstr ""
@@ -1606,9 +1611,9 @@ msgstr ""
msgid "SSR Server"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:269
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:63
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:277
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:71
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:79
msgid "Same as Global Server"
msgstr ""
@@ -1616,8 +1621,8 @@ msgstr ""
msgid "Save Words splited by /"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:149
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:172
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:157
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:180
msgid "Select DNS parse Mode"
msgstr ""
@@ -1626,11 +1631,11 @@ msgstr ""
msgid "Selection ShadowSocks Node Use Version."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1396
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1407
msgid "Self-signed Certificate"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:268
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:276
msgid "Server"
msgstr ""
@@ -1662,7 +1667,7 @@ msgstr ""
msgid "Server Type"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:47
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:55
msgid "Server failsafe auto swith and custom update settings"
msgstr ""
@@ -1678,8 +1683,8 @@ msgstr ""
msgid "Session Ticket"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:158
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:181
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:166
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:189
msgid "Set Single DNS"
msgstr ""
@@ -1717,7 +1722,7 @@ msgstr ""
msgid "ShadowSocksR Plus+"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:30
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:38
msgid "ShadowSocksR Plus+ Settings"
msgstr ""
@@ -1746,7 +1751,7 @@ msgstr ""
msgid "Socks Version"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:302
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:310
msgid "Socks protocol auth methods, default:noauth."
msgstr ""
@@ -1755,15 +1760,15 @@ msgstr ""
msgid "Socks5"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:302
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:310
msgid "Socks5 Auth Mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:321
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:329
msgid "Socks5 Password"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:316
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:324
msgid "Socks5 User"
msgstr ""
@@ -1799,29 +1804,29 @@ msgstr ""
msgid "Subscribe nodes allows insecure connection as TLS client (insecure)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:249
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:257
msgid "Support AdGuardHome and DNSMASQ format list"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:58
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:66
msgid "Switch check cycly(second)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:626
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1363
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1446
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1457
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:149
msgid "TCP Fast Open"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:350
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:358
msgid ""
"TCP fragments, which can deceive the censorship system in some cases, such "
"as bypassing SNI blacklists."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:219
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:243
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:227
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:251
msgid "TCP upstream"
msgstr ""
@@ -1873,8 +1878,8 @@ msgstr ""
msgid "TUIC send window"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:166
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:189
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:174
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:197
msgid "TWNIC-101 DNSCrypt SDNS"
msgstr ""
@@ -1904,12 +1909,12 @@ msgstr ""
msgid "Timeout for establishing a connection to server(second)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:153
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:176
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:161
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:184
msgid "Tips: Dnsproxy DNS Parse List Path:"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:379
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:387
msgid "To send noise packets, select \"Noise\" in Xray Settings."
msgstr ""
@@ -1930,7 +1935,7 @@ msgstr ""
msgid "Trojan"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:400
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:408
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:216
msgid "Type"
msgstr ""
@@ -1939,7 +1944,7 @@ msgstr ""
msgid "UDP"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382
msgid ""
"UDP noise, Under some circumstances it can bypass some UDP based protocol "
"restrictions."
@@ -1953,13 +1958,13 @@ msgstr ""
msgid "UDP relay mode"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:220
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:244
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:228
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:252
msgid "UDP upstream"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:218
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:242
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:226
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:250
msgid "UDP/TCP upstream"
msgstr ""
@@ -2005,57 +2010,57 @@ msgstr ""
msgid "Uplink Capacity(Default:Mbps)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1406
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1417
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm:3
msgid "Upload"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:111
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:130
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:119
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:138
msgid "Use ChinaDNS-NG query and cache"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:159
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:182
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:167
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:190
msgid "Use DNS List File"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:250
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:258
msgid "Use DNS from WAN"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:251
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:259
msgid "Use DNS from WAN and 114DNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:99
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:118
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:107
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:126
msgid "Use DNS2SOCKS query and cache"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:102
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:121
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:110
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:129
msgid "Use DNS2SOCKS-RUST query and cache"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:115
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:123
msgid "Use DNS2TCP query"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:108
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:127
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:116
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:135
msgid "Use DNSPROXY query and cache"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:132
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:140
msgid "Use Local DNS Service listen port 5335"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:124
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:132
msgid "Use MOSDNS query (Not Support Oversea Mode)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:105
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:113
msgid "Use MosDNS query"
msgstr ""
@@ -2154,22 +2159,22 @@ msgstr ""
msgid "WechatVideo"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:87
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:95
msgid "When disabled shunt mode, will same time stopped shunt service."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:189
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:213
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:197
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:221
msgid "When disabled, all AAAA requests are not resolved."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:178
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:202
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:186
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:210
msgid "When two or more DNS servers are deployed, enable this function."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:152
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:175
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:160
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:183
msgid ""
"When use DNS list file, please ensure list file exists and is formatted "
"correctly."
@@ -2209,15 +2214,15 @@ msgstr ""
msgid "XHTTP Path"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:347
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:355
msgid "Xray Fragment Settings"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:377
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:385
msgid "Xray Noise Packets"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:243
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:251
msgid "adblock_url"
msgstr ""
@@ -2225,15 +2230,15 @@ msgstr ""
msgid "aes-128-gcm"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1358
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1369
msgid "allow"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1352
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1363
msgid "allow: Allows use Mux connection."
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1293
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1303
msgid "allowInsecure"
msgstr ""
@@ -2245,7 +2250,7 @@ msgstr ""
msgid "android"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:246
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:254
msgid "anti-AD"
msgstr ""
@@ -2253,7 +2258,7 @@ msgstr ""
msgid "chacha20-poly1305"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:83
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:91
msgid "china-operator-ip"
msgstr ""
@@ -2261,31 +2266,31 @@ msgstr ""
msgid "chrome"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:171
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:194
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:179
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:202
msgid "cloudflare-dns.com DNSCrypt SDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1383
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1394
msgid "comment_tcpcongestion_disable"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1322
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1333
msgid "concurrency"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1380
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1391
msgid "custom_tcpcongestion"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1212
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1330
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1343
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1341
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1354
msgid "disable"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:167
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:190
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:175
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:198
msgid "dns.sb DNSCrypt SDNS"
msgstr ""
@@ -2293,12 +2298,12 @@ msgstr ""
msgid "edge"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:183
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:207
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:191
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:215
msgid "fastest_addr"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:230
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:238
msgid "felixonmars/dnsmasq-china-list"
msgstr ""
@@ -2318,11 +2323,11 @@ msgstr ""
msgid "gRPC Service Name"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:73
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:81
msgid "gfwlist Update url"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:77
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:85
msgid "gfwlist/gfwlist"
msgstr ""
@@ -2330,8 +2335,8 @@ msgstr ""
msgid "ios"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:181
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:205
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:189
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:213
msgid "load_balance"
msgstr ""
@@ -2343,7 +2348,7 @@ msgstr ""
msgid "native UDP characteristics"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:90
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:98
msgid "nfip_url"
msgstr ""
@@ -2357,8 +2362,8 @@ msgstr ""
msgid "obfs-local"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:182
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:206
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:190
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:214
msgid "parallel"
msgstr ""
@@ -2374,7 +2379,7 @@ msgstr ""
msgid "randomized"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1357
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1368
msgid "reject"
msgstr ""
@@ -2394,11 +2399,11 @@ msgstr ""
msgid "shadowTLS protocol Version"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1359
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1370
msgid "skip"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1353
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1364
msgid ""
"skip: Not use Mux module to carry UDP 443 traffic, Use original UDP "
"transmission method of proxy protocol."
@@ -2408,7 +2413,7 @@ msgstr ""
msgid "spiderX"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:74
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:82
msgid "v2fly/domain-list-community"
msgstr ""
@@ -2416,7 +2421,7 @@ msgstr ""
msgid "v2ray-plugin"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:275
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:283
msgid "valid address:port"
msgstr ""
@@ -2432,10 +2437,10 @@ msgstr ""
msgid "xtls-rprx-vision"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1335
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1346
msgid "xudpConcurrency"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1348
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1359
msgid "xudpProxyUDP443"
msgstr ""
diff --git a/small/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po b/small/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po
index ef9e5851b5..a48a1d51cb 100644
--- a/small/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po
+++ b/small/luci-app-ssr-plus/po/zh_Hans/ssr-plus.po
@@ -1,7 +1,7 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8\n"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:353
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:361
msgid ""
"\"1-3\" is for segmentation at TCP layer, applying to the beginning 1 to 3 "
"data writes by the client. \"tlshello\" is for TLS client hello packet "
@@ -14,27 +14,27 @@ msgstr ""
msgid "0"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:86
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:94
msgid "1 Thread"
msgstr "单线程"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:93
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:101
msgid "128 Threads"
msgstr "128 线程"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1344
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1355
msgid "16"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:90
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:98
msgid "16 Threads"
msgstr "16 线程"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:87
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:95
msgid "2 Threads"
msgstr "2 线程"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:91
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:99
msgid "32 Threads"
msgstr "32 线程"
@@ -42,31 +42,31 @@ msgstr "32 线程"
msgid "360"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:256
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:264
msgid "360 Security DNS (China Telecom) (101.226.4.6)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:257
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:265
msgid "360 Security DNS (China Unicom) (123.125.81.6)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:88
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:96
msgid "4 Threads"
msgstr "4 线程"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:92
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:100
msgid "64 Threads"
msgstr "64 线程"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1331
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1342
msgid "8"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:89
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:97
msgid "8 Threads"
msgstr "8 线程"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:379
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:387
msgid ""
msgstr ""
@@ -76,7 +76,7 @@ msgstr ""
msgid ""
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:30
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:38
msgid ""
"
Support SS/SSR/V2RAY/XRAY/TROJAN/TUIC/HYSTERIA2/NAIVEPROXY/SOCKS5/TUN "
"etc.
"
@@ -84,15 +84,15 @@ msgstr ""
"支持 SS/SSR/V2RAY/XRAY/TROJAN/TUIC/HYSTERIA2/NAIVEPROXY/SOCKS5/TUN 等协"
"议。
"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:151
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:177
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:211
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1324
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1337
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1350
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:174
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:200
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:235
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:159
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:185
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:219
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1335
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1348
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1361
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:182
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:208
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:243
msgid "- "
msgstr ""
@@ -100,8 +100,8 @@ msgstr ""
msgid "Access Control"
msgstr "访问控制"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:169
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:192
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:177
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:200
msgid "AdGuard DNSCrypt SDNS"
msgstr ""
@@ -113,7 +113,7 @@ msgstr "高级设置"
msgid "Advertising Data"
msgstr "【广告屏蔽】数据库"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:254
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:262
msgid "AliYun Public DNS (223.5.5.5)"
msgstr ""
@@ -125,7 +125,7 @@ msgstr "别名"
msgid "Alias(optional)"
msgstr "别名(可选)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:105
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:113
msgid "All Ports"
msgstr "所有端口(默认)"
@@ -145,21 +145,21 @@ msgstr "订阅节点允许不验证 TLS 证书"
msgid "AlterId"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:133
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:164
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:135
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:156
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:187
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:221
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:141
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:172
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:143
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:164
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:195
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:229
msgid "Anti-pollution DNS Server"
msgstr "访问国外域名 DNS 服务器"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:116
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:197
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:124
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:205
msgid "Anti-pollution DNS Server For Shunt Mode"
msgstr "分流模式下的访问国外域名 DNS 服务器"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:234
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:242
msgid "Apple Domains DNS"
msgstr "Apple 域名 DNS"
@@ -167,11 +167,11 @@ msgstr "Apple 域名 DNS"
msgid "Apple Domains Data"
msgstr "【Apple 域名】数据库"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:229
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:237
msgid "Apple Domains Update url"
msgstr "Apple 域名更新 URL"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:225
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:233
msgid "Apple domains optimization"
msgstr "Apple 域名解析优化"
@@ -192,7 +192,7 @@ msgstr "是否真的要恢复客户端默认配置?"
msgid "Auto Switch"
msgstr "自动切换"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:85
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:93
msgid "Auto Threads"
msgstr "自动(CPU 线程数)"
@@ -205,7 +205,7 @@ msgid "Auto Update Server subscription, GFW list and CHN route"
msgstr "自动更新服务器订阅、GFW 列表和中国大陆 IP 段"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:708
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1384
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1395
msgid "BBR"
msgstr ""
@@ -221,7 +221,7 @@ msgstr "备份或还原客户端及服务端配置。"
msgid "Baidu Connectivity"
msgstr "【百度】连通性检查"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:255
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:263
msgid "Baidu Public DNS (180.76.76.76)"
msgstr ""
@@ -250,12 +250,12 @@ msgstr "不走代理的域名"
msgid "CLOSE WIN"
msgstr "关闭窗口"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:258
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:266
msgid "CNNIC SDNS (1.2.4.8)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:709
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1385
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1396
msgid "CUBIC"
msgstr ""
@@ -264,7 +264,7 @@ msgstr ""
msgid "Camouflage Type"
msgstr "伪装类型"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1300
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1311
msgid "Certificate fingerprint"
msgstr "证书指纹"
@@ -282,11 +282,11 @@ msgstr "检查服务器"
msgid "Check Server Port"
msgstr "【服务器端口】检查"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:68
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:76
msgid "Check Try Count"
msgstr "切换检查重试次数"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:63
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:71
msgid "Check timout(second)"
msgstr "切换检查超时时间(秒)"
@@ -299,23 +299,23 @@ msgstr "正在检查..."
msgid "China IP Data"
msgstr "【中国大陆 IP 段】数据库"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:241
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:249
msgid "ChinaDNS-NG query protocol"
msgstr "ChinaDNS-NG 查询协议"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:217
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:225
msgid "ChinaDNS-NG shunt query protocol"
msgstr "ChinaDNS-NG 分流查询协议"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:80
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:88
msgid "Chnroute Update url"
msgstr "中国大陆 IP 段更新 URL"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:81
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:89
msgid "Clang.CN"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:82
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:90
msgid "Clang.CN.CIDR"
msgstr ""
@@ -323,32 +323,32 @@ msgstr ""
msgid "Clear logs"
msgstr "清空日志"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:155
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:178
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:163
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:186
msgid "Click here to view or manage the DNS list file"
msgstr "点击此处查看或管理 DNS 列表文件"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:390
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:921
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1225
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1252
msgid "Click to the page"
msgstr "点击前往"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:139
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:162
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:147
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:170
msgid "Cloudflare DNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:127
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:208
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:146
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:232
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:135
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:216
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:154
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:240
msgid "Cloudflare DNS (1.1.1.1)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:170
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:193
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:178
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:201
msgid "Cloudflare DNSCrypt SDNS"
msgstr ""
@@ -393,11 +393,11 @@ msgstr "成功复制 SSR 网址到剪贴板。"
msgid "Create Backup File"
msgstr "创建备份文件"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1420
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1431
msgid "Create upload file error."
msgstr "创建上传文件错误。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1440
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1451
msgid "Current Certificate Path"
msgstr "当前证书路径"
@@ -405,8 +405,8 @@ msgstr "当前证书路径"
msgid "Custom"
msgstr "自定义"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:173
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:196
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:181
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:204
msgid ""
"Custom DNS Server (support: IP:Port or tls://IP:Port or https://IP/dns-query "
"and other format)."
@@ -414,19 +414,19 @@ msgstr ""
"自定义 DNS 服务器(支持格式:IP:端口、tls://IP:端口、https://IP/dns-query 及"
"其他格式)。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:141
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:164
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:149
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:172
msgid "Custom DNS Server for MosDNS"
msgstr "MosDNS 自定义 DNS 服务器"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:130
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:212
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:152
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:236
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:138
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:220
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:160
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:244
msgid "Custom DNS Server format as IP:PORT (default: 8.8.4.4:53)"
msgstr "格式为 IP:Port(默认:8.8.4.4:53)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:264
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:272
msgid "Custom DNS Server format as IP:PORT (default: disabled)"
msgstr "格式为 IP:PORT(默认:禁用)"
@@ -434,11 +434,11 @@ msgstr "格式为 IP:PORT(默认:禁用)"
msgid "Custom Plugin Path"
msgstr "自定义插件路径"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:107
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:115
msgid "Custom Ports"
msgstr "自定义端口"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:94
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:102
msgid "Customize Netflix IP Url"
msgstr ""
"自定义 Netflix IP 段更新 URL(默认项目地址:https://github.com/QiuSimons/"
@@ -452,11 +452,11 @@ msgstr "下载备份"
msgid "DNS Anti-pollution"
msgstr "DNS 防污染服务"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:97
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:105
msgid "DNS Query Mode For Shunt Mode"
msgstr "分流模式下的 DNS 查询模式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:253
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:261
msgid "DNSPod Public DNS (119.29.29.29)"
msgstr ""
@@ -467,10 +467,11 @@ msgstr "DTLS 1.2 数据包"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1273
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1286
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1297
msgid "Default"
msgstr "默认"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1351
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1362
msgid "Default reject rejects traffic."
msgstr "默认 reject 拒绝流量。"
@@ -478,13 +479,13 @@ msgstr "默认 reject 拒绝流量。"
msgid "Default value 0 indicatesno heartbeat."
msgstr "默认为 0 表示无心跳。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1325
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1336
msgid ""
"Default: disable. When entering a negative number, such as -1, The Mux "
"module will not be used to carry TCP traffic."
msgstr "默认:禁用。填负数时,如 -1,不使用 Mux 模块承载 TCP 流量。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1338
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1349
msgid ""
"Default:16. When entering a negative number, such as -1, The Mux module will "
"not be used to carry UDP traffic, Use original UDP transmission method of "
@@ -493,13 +494,13 @@ msgstr ""
"默认值:16。填负数时,如 -1,不使用 Mux 模块承载 UDP 流量。将使用代理协议原本"
"的 UDP 传输方式。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:175
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:198
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:183
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:206
msgid "Defines the upstreams logic mode"
msgstr "定义上游逻辑模式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:178
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:201
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:186
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:209
msgid ""
"Defines the upstreams logic mode, possible values: load_balance, parallel, "
"fastest_addr (default: load_balance)."
@@ -507,7 +508,7 @@ msgstr ""
"定义上游逻辑模式,可选择值:负载均衡、并行查询、最快响应(默认值:负载均"
"衡)。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:420
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:428
msgid "Delay (ms)"
msgstr "延迟(ms)"
@@ -519,27 +520,27 @@ msgstr "删除所有订阅服务器节点"
msgid "Deny Domain List"
msgstr "禁止连接的域名"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:54
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:62
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:70
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:78
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/control.lua:37
msgid "Disable"
msgstr "停用"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:249
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:257
msgid "Disable ChinaDNS-NG"
msgstr "直通模式(禁用 ChinaDNS-NG)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:143
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:151
msgid "Disable IPv6 In MosDNS Query Mode (Shunt Mode)"
msgstr "禁止 MosDNS 返回 IPv6 记录 (分流模式)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:166
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:174
msgid "Disable IPv6 in MOSDNS query mode"
msgstr "禁止 MOSDNS 返回 IPv6 记录"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:188
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:212
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:196
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:220
msgid "Disable IPv6 query mode"
msgstr "禁止返回 IPv6 记录"
@@ -567,16 +568,16 @@ msgstr "执行重置"
msgid "Do you want to restore the client to default settings?"
msgstr "是否要恢复客户端默认配置?"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:221
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:245
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:229
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:253
msgid "DoT upstream (Need use wolfssl version)"
msgstr "DoT 上游(需使用 wolfssl 版本)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:407
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:415
msgid "Domain Strategy"
msgstr "域名解析策略"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:248
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:256
msgid "Domestic DNS Server"
msgstr "国内 DNS 服务器"
@@ -605,8 +606,8 @@ msgstr "前置数据标头"
msgid "Edit ShadowSocksR Server"
msgstr "编辑服务器配置"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:263
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:396
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:271
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:404
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:82
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:101
msgid "Enable"
@@ -620,8 +621,8 @@ msgstr "客户端启用 0-RTT QUIC 连接握手"
msgid "Enable Authentication"
msgstr "启用用户名/密码认证"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:54
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1454
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:62
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1465
msgid "Enable Auto Switch"
msgstr "启用自动切换"
@@ -637,17 +638,17 @@ msgstr "启用懒狗模式"
msgid "Enable ML-DSA-65(optional)"
msgstr "启用 ML-DSA-65 (可选)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1369
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1380
msgid ""
"Enable Multipath TCP, need to be enabled in both server and client "
"configuration."
msgstr "启用 Multipath TCP,需在服务端和客户端配置中同时启用。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1305
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1316
msgid "Enable Mux.Cool"
msgstr "启用 Mux.Cool"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:86
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:94
msgid "Enable Netflix Mode"
msgstr "启用 Netflix 分流模式"
@@ -679,7 +680,7 @@ msgstr "开启 V2 协议。"
msgid "Enable V3 protocol."
msgstr "开启 V3 协议。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:240
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:248
msgid "Enable adblock"
msgstr "启用广告屏蔽"
@@ -695,13 +696,13 @@ msgstr "启用此选项配置 XHTTP 附加项(JSON 格式)。"
msgid "Enabled Kernel virtual NIC TUN(optional)"
msgstr "启用内核的虚拟网卡 TUN(可选)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:327
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:335
msgid "Enabled Mixed"
msgstr "启用 Mixed"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:626
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1363
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1446
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1457
msgid "Enabling TCP Fast Open Requires Server Support."
msgstr "启用 TCP 快速打开需要服务端支持。"
@@ -716,7 +717,7 @@ msgstr "启用 TCP 快速打开需要服务端支持。"
msgid "Encrypt Method"
msgstr "加密方式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:108
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:116
msgid "Enter Custom Ports"
msgstr "输入自定义端口"
@@ -752,11 +753,11 @@ msgstr "每周二"
msgid "Every Wednesday"
msgstr "每周三"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:275
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:283
msgid "Expecting: %s"
msgstr "应为:%s"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:78
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:86
msgid "External Proxy Mode"
msgstr "分流服务器(前置)代理"
@@ -773,13 +774,13 @@ msgstr "指纹伪造"
msgid "Flow"
msgstr "流控(Flow)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:225
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:233
msgid ""
"For Apple domains equipped with Chinese mainland CDN, always responsive to "
"Chinese CDN IP addresses"
msgstr "配备中国大陆 CDN 的 Apple 域名,始终应答中国大陆 CDN 地址"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:380
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:388
msgid "For specific usage, see:"
msgstr "具体使用方法,具体请参见:"
@@ -789,31 +790,31 @@ msgid ""
"(,)."
msgstr "格式为:10000:20000 或 10000-20000 多组时用逗号(,)隔开。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:80
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:88
msgid "Forward Netflix Proxy through Main Proxy"
msgstr "分流服务器流量通过主服务节点中转代理转发"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:350
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:358
msgid "Fragment"
msgstr "分片"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:366
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374
msgid "Fragment Interval"
msgstr "分片间隔"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:362
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370
msgid "Fragment Length"
msgstr "分片包长"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:353
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:361
msgid "Fragment Packets"
msgstr "分片方式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:366
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374
msgid "Fragmentation interval (ms)"
msgstr "分片间隔(ms)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:362
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370
msgid "Fragmented packet length (byte)"
msgstr "分片包长 (byte)"
@@ -821,7 +822,7 @@ msgstr "分片包长 (byte)"
msgid "GFW List Data"
msgstr "【GFW 列表】数据库"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:98
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:106
msgid "GFW List Mode"
msgstr "GFW 列表模式"
@@ -833,7 +834,7 @@ msgstr "增强游戏模式客户端 LAN IP"
msgid "Game Mode UDP Relay"
msgstr "游戏模式 UDP 中继"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:61
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:69
msgid "Game Mode UDP Server"
msgstr "游戏模式 UDP 中继服务器"
@@ -849,11 +850,11 @@ msgstr "UDP 数据包残片在服务器的保留时间(单位:秒)"
msgid "Global Client"
msgstr "TCP 透明代理"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:100
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:108
msgid "Global Mode"
msgstr "全局模式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:259
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:267
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:133
msgid "Global SOCKS5 Proxy Server"
msgstr "SOCKS5 代理服务端(全局)"
@@ -866,27 +867,27 @@ msgstr "全局设置"
msgid "Google Connectivity"
msgstr "【谷歌】连通性检查"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:165
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:188
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:173
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:196
msgid "Google DNSCrypt SDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:134
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:157
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:142
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:165
msgid "Google Public DNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:117
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:198
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:136
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:222
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:125
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:206
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:144
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:230
msgid "Google Public DNS (8.8.4.4)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:118
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:199
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:137
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:223
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:126
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:207
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:145
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:231
msgid "Google Public DNS (8.8.8.8)"
msgstr ""
@@ -955,15 +956,19 @@ msgstr ""
msgid "Hysterir QUIC parameters"
msgstr "QUIC 参数"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:99
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:107
msgid "IP Route Mode"
msgstr "绕过中国大陆 IP 模式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:424
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1295
+msgid "IP Stack Preference"
+msgstr "IP 栈优先级"
+
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:432
msgid "IP Type"
msgstr "IP 类型"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:234
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:242
msgid "If empty, Not change Apple domains parsing DNS (Default is empty)"
msgstr "如果为空,则不更改 Apple 域名解析 DNS(默认为空)"
@@ -977,18 +982,18 @@ msgstr "如果不为空,表示客户端已启用加密客户端,具体请参
msgid "If this option is not set, the socket behavior is platform dependent."
msgstr "如果未设置此选项,则 Socket 行为依赖于平台。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1297
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1308
msgid ""
"If true, allowss insecure connection at TLS client, e.g., TLS server uses "
"unverifiable certificates."
msgstr ""
"是否允许不安全连接。当选择时,将不会检查远端主机所提供的 TLS 证书的有效性。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1404
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1415
msgid "If you have a self-signed certificate,please check the box"
msgstr "如果你使用自签证书,请选择"
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:883
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:908
msgid "Import"
msgstr "导入配置信息"
@@ -1000,7 +1005,7 @@ msgstr "导入配置信息"
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:604
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:692
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:822
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:874
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:899
msgid "Import configuration information successfully."
msgstr "导入配置信息成功。"
@@ -1020,7 +1025,7 @@ msgstr "接口控制"
msgid "Invalid JSON format"
msgstr "无效的 JSON 格式"
-#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:877
+#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm:902
msgid "Invalid format."
msgstr "无效的格式。"
@@ -1028,19 +1033,19 @@ msgstr "无效的格式。"
msgid "KcpTun"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1464
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1475
msgid "KcpTun Enable"
msgstr "KcpTun 启用"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1481
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1492
msgid "KcpTun Param"
msgstr "KcpTun 参数"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1476
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1487
msgid "KcpTun Password"
msgstr "KcpTun 密码"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1470
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1481
msgid "KcpTun Port"
msgstr "KcpTun 端口"
@@ -1068,64 +1073,64 @@ msgstr "内网主机列表"
msgid "LAN IP AC"
msgstr "LAN IP 访问控制"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:121
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:202
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:140
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:226
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:129
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:210
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:148
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:234
msgid "Level 3 Public DNS (209.244.0.3)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:122
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:203
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:141
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:227
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:130
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:211
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:149
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:235
msgid "Level 3 Public DNS (209.244.0.4)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:123
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:204
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:142
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:228
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:131
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:212
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:150
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:236
msgid "Level 3 Public DNS (4.2.2.1)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:124
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:205
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:143
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:229
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:132
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:213
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:151
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:237
msgid "Level 3 Public DNS (4.2.2.2)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:125
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:206
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:144
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:230
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:133
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:214
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:152
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:238
msgid "Level 3 Public DNS (4.2.2.3)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:126
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:207
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:145
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:231
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:134
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:215
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:153
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:239
msgid "Level 3 Public DNS (4.2.2.4)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:136
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:159
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:144
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:167
msgid "Level 3 Public DNS-1 (209.244.0.3-4)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:137
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:160
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:145
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:168
msgid "Level 3 Public DNS-2 (4.2.2.1-2)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:138
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:161
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:146
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:169
msgid "Level 3 Public DNS-3 (4.2.2.3-4)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:378
msgid "Limit the maximum number of splits."
msgstr "限制分片的最大数量。"
@@ -1133,8 +1138,8 @@ msgstr "限制分片的最大数量。"
msgid "Listen only on the given interface or, if unspecified, on all"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:340
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1458
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:348
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1469
msgid "Local Port"
msgstr "本地端口"
@@ -1150,11 +1155,11 @@ msgstr "本地地址"
msgid "Log"
msgstr "日志"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:76
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:84
msgid "Loukky/gfwlist-by-loukky"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:75
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:83
msgid "Loyalsoldier/v2ray-rules-dat"
msgstr ""
@@ -1162,7 +1167,7 @@ msgstr ""
msgid "ML-DSA-65 Public key"
msgstr "ML-DSA-65 公钥"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1369
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1380
msgid "MPTCP"
msgstr ""
@@ -1170,7 +1175,7 @@ msgstr ""
msgid "MTU"
msgstr "最大传输单元"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:53
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:61
msgid "Main Server"
msgstr "主服务器"
@@ -1178,7 +1183,7 @@ msgstr "主服务器"
msgid "Max Early Data"
msgstr "最大前置数据"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:370
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:378
msgid "Max Split"
msgstr "最大分片数"
@@ -1186,7 +1191,7 @@ msgstr "最大分片数"
msgid "Maximum packet size the socks5 server can receive from external"
msgstr "socks5 服务器可以从外部接收的最大数据包大小(单位:字节)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1339
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1350
msgid ""
"Min value is 1, Max value is 1024. When omitted or set to 0, Will same path "
"as TCP traffic."
@@ -1194,12 +1199,12 @@ msgstr ""
"最小值 1,最大值 1024。 省略或者填 0 时,将与 TCP 流量走同一条路,也就是传统"
"的行为。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1326
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1337
msgid ""
"Min value is 1, Max value is 128. When omitted or set to 0, it equals 8."
msgstr "最小值 1,最大值 128。省略或者填 0 时都等于 8。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:327
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:335
msgid "Mixed as an alias of socks, default:Enabled."
msgstr "Mixed 作为 SOCKS 的别名,默认:启用。"
@@ -1211,8 +1216,8 @@ msgstr "下移"
msgid "Move up"
msgstr "上移"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:213
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:237
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:221
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:245
msgid "Muitiple DNS server can saperate with ','"
msgstr "多个上游 DNS 服务器请用 ',' 分隔(注意用英文逗号)"
@@ -1220,19 +1225,19 @@ msgstr "多个上游 DNS 服务器请用 ',' 分隔(注意用英文逗号)"
msgid "Multi"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:84
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:92
msgid "Multi Threads Option"
msgstr "多线程并发转发"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1305
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1316
msgid "Mux"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:245
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:253
msgid "NEO DEV HOST Full"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:244
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:252
msgid "NEO DEV HOST Lite"
msgstr ""
@@ -1244,7 +1249,7 @@ msgstr "未运行"
msgid "NaiveProxy"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:252
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:260
msgid "Nanjing Xinfeng 114DNS (114.114.114.114)"
msgstr ""
@@ -1256,15 +1261,15 @@ msgstr "Netflix 分流域名列表"
msgid "Netflix IP Data"
msgstr "【Netflix IP 段】数据库"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:91
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:99
msgid "Netflix IP Only"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:69
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:77
msgid "Netflix Node"
msgstr "Netflix 分流服务器"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:92
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:100
msgid "Netflix and AWS"
msgstr ""
@@ -1290,11 +1295,11 @@ msgstr "未检查"
msgid "No new data!"
msgstr "你已经是最新数据,无需更新!"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1436
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1447
msgid "No specify upload file."
msgstr "没有上传证书。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382
msgid "Noise"
msgstr "噪声"
@@ -1351,50 +1356,50 @@ msgstr "混淆密码"
msgid "Obfuscation Type"
msgstr "混淆类型"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:106
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:114
msgid "Only Common Ports"
msgstr "仅常用端口(不走 P2P 流量到代理)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:316
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:324
msgid "Only when Socks5 Auth Mode is password valid, Mandatory."
msgstr "仅当 Socks5 认证方式为 Password 时有效,必填。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:321
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:329
msgid "Only when Socks5 Auth Mode is password valid, Not mandatory."
msgstr "仅当 Socks5 认证方式为 Password 时有效,非必填。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:135
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:158
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:143
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:166
msgid "OpenDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:120
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:201
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:139
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:225
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:128
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:209
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:147
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:233
msgid "OpenDNS (208.67.220.220)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:119
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:200
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:138
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:224
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:127
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:208
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:146
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:232
msgid "OpenDNS (208.67.222.222)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:101
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:109
msgid "Oversea Mode"
msgstr "海外用户回国模式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:147
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:155
msgid "Oversea Mode DNS-1 (114.114.114.114)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:148
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:156
msgid "Oversea Mode DNS-2 (114.114.115.115)"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:416
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:424
msgid "Packet"
msgstr "数据包"
@@ -1424,7 +1429,7 @@ msgstr "允许无数据流"
msgid "Ping Latency"
msgstr "Ping 延迟"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1443
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1454
msgid "Please confirm the current certificate path"
msgstr "请选择确认所传证书,证书不正确将无法运行"
@@ -1462,7 +1467,7 @@ msgstr "传输协议"
msgid "Protocol param (optional)"
msgstr "传输协议参数(可选)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:104
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:112
msgid "Proxy Ports"
msgstr "需要代理的端口"
@@ -1498,8 +1503,8 @@ msgstr "QUIC 最长空闲超时时间(单位:秒)"
msgid "QUIC maxStreamReceiveWindow"
msgstr "QUIC 最大的流接收窗口大小"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:168
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:191
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:176
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:199
msgid "Quad9 DNSCrypt SDNS"
msgstr ""
@@ -1558,7 +1563,7 @@ msgstr "更新成功!"
msgid "Refresh..."
msgstr "正在更新,请稍候..."
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1386
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1397
msgid "Reno"
msgstr ""
@@ -1571,11 +1576,11 @@ msgstr "保留字节(可选)"
msgid "Reset complete"
msgstr "重置完成"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:251
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:259
msgid "Reset to defaults"
msgstr "恢复出厂设置"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:113
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:121
msgid "Resolve Dns Mode"
msgstr "DNS 解析方式"
@@ -1605,7 +1610,7 @@ msgstr "恢复默认配置"
msgid "Running"
msgstr "运行中"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:97
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:105
msgid "Running Mode"
msgstr "运行模式"
@@ -1621,9 +1626,9 @@ msgstr "客户端"
msgid "SSR Server"
msgstr "服务端"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:269
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:63
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:277
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:71
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:79
msgid "Same as Global Server"
msgstr "与全局服务器相同"
@@ -1632,8 +1637,8 @@ msgid "Save Words splited by /"
msgstr ""
"命中关键字的节点将被保留。多个关键字用 / 分隔。此项为空则不启用保留匹配"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:149
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:172
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:157
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:180
msgid "Select DNS parse Mode"
msgstr "选择 DNS 解析方式"
@@ -1642,11 +1647,11 @@ msgstr "选择 DNS 解析方式"
msgid "Selection ShadowSocks Node Use Version."
msgstr "选择 ShadowSocks 节点使用版本。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1396
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1407
msgid "Self-signed Certificate"
msgstr "自签证书"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:268
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:276
msgid "Server"
msgstr "服务器"
@@ -1678,7 +1683,7 @@ msgstr "服务端配置"
msgid "Server Type"
msgstr "服务端类型"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:47
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:55
msgid "Server failsafe auto swith and custom update settings"
msgstr "服务器节点故障自动切换/广告屏蔽/中国大陆 IP 段数据库更新设置"
@@ -1694,8 +1699,8 @@ msgstr "服务器节点订阅与管理"
msgid "Session Ticket"
msgstr "会话凭据"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:158
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:181
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:166
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:189
msgid "Set Single DNS"
msgstr "设置单个 DNS"
@@ -1733,7 +1738,7 @@ msgstr "ShadowSocks-rust 版本"
msgid "ShadowSocksR Plus+"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:30
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:38
msgid "ShadowSocksR Plus+ Settings"
msgstr "ShadowSocksR Plus+ 设置"
@@ -1762,7 +1767,7 @@ msgstr ""
msgid "Socks Version"
msgstr "Socks 版本"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:302
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:310
msgid "Socks protocol auth methods, default:noauth."
msgstr "Socks 协议的认证方式,默认值:noauth。"
@@ -1771,15 +1776,15 @@ msgstr "Socks 协议的认证方式,默认值:noauth。"
msgid "Socks5"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:302
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:310
msgid "Socks5 Auth Mode"
msgstr "Socks5 认证方式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:321
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:329
msgid "Socks5 Password"
msgstr "Socks5 密码"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:316
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:324
msgid "Socks5 User"
msgstr "Socks5 用户名"
@@ -1815,29 +1820,29 @@ msgstr "订阅加入的新节点默认开启自动切换"
msgid "Subscribe nodes allows insecure connection as TLS client (insecure)"
msgstr "订阅节点强制开启 不验证TLS客户端证书 (insecure)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:249
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:257
msgid "Support AdGuardHome and DNSMASQ format list"
msgstr "同时支持 AdGuard Home 和 DNSMASQ 格式的过滤列表"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:58
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:66
msgid "Switch check cycly(second)"
msgstr "自动切换检查周期(秒)"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:626
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1363
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1446
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1374
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1457
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:149
msgid "TCP Fast Open"
msgstr "TCP 快速打开"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:350
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:358
msgid ""
"TCP fragments, which can deceive the censorship system in some cases, such "
"as bypassing SNI blacklists."
msgstr "TCP 分片,在某些情况下可以欺骗审查系统,比如绕过 SNI 黑名单。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:219
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:243
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:227
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:251
msgid "TCP upstream"
msgstr "TCP 上游"
@@ -1889,8 +1894,8 @@ msgstr "接收窗口(无需确认即可接收的最大字节数:默认8Mb)
msgid "TUIC send window"
msgstr "发送窗口(无需确认即可发送的最大字节数:默认8Mb*2)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:166
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:189
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:174
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:197
msgid "TWNIC-101 DNSCrypt SDNS"
msgstr ""
@@ -1922,12 +1927,12 @@ msgstr "通过路由器自身代理更新订阅"
msgid "Timeout for establishing a connection to server(second)"
msgstr "连接超时时间(单位:秒)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:153
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:176
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:161
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:184
msgid "Tips: Dnsproxy DNS Parse List Path:"
msgstr "提示:Dnsproxy 的 DNS 解析列表路径:"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:379
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:387
msgid "To send noise packets, select \"Noise\" in Xray Settings."
msgstr "在 Xray 设置中勾选 “噪声” 以发送噪声包。"
@@ -1948,7 +1953,7 @@ msgstr "传输协议"
msgid "Trojan"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:400
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:408
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:216
msgid "Type"
msgstr "类型"
@@ -1957,7 +1962,7 @@ msgstr "类型"
msgid "UDP"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:374
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:382
msgid ""
"UDP noise, Under some circumstances it can bypass some UDP based protocol "
"restrictions."
@@ -1971,13 +1976,13 @@ msgstr ""
msgid "UDP relay mode"
msgstr "UDP 中继模式"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:220
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:244
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:228
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:252
msgid "UDP upstream"
msgstr "UDP 上游"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:218
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:242
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:226
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:250
msgid "UDP/TCP upstream"
msgstr "UDP/TCP 上游"
@@ -2023,57 +2028,57 @@ msgstr "更新时间(每天)"
msgid "Uplink Capacity(Default:Mbps)"
msgstr "上行链路容量(默认:Mbps)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1406
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1417
#: applications/luci-app-ssr-plus/luasrc/view/shadowsocksr/certupload.htm:3
msgid "Upload"
msgstr "上传"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:111
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:130
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:119
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:138
msgid "Use ChinaDNS-NG query and cache"
msgstr "使用 ChinaDNS-NG 查询并缓存"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:159
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:182
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:167
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:190
msgid "Use DNS List File"
msgstr "使用 DNS 列表文件"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:250
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:258
msgid "Use DNS from WAN"
msgstr "使用 WAN 下发的 DNS"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:251
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:259
msgid "Use DNS from WAN and 114DNS"
msgstr "使用 WAN 下发的 DNS 和 114DNS"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:99
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:118
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:107
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:126
msgid "Use DNS2SOCKS query and cache"
msgstr "使用 DNS2SOCKS 查询并缓存"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:102
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:121
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:110
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:129
msgid "Use DNS2SOCKS-RUST query and cache"
msgstr "使用 DNS2SOCKS-RUST 查询并缓存"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:115
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:123
msgid "Use DNS2TCP query"
msgstr "使用 DNS2TCP 查询"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:108
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:127
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:116
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:135
msgid "Use DNSPROXY query and cache"
msgstr "使用 DNSPROXY 查询并缓存"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:132
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:140
msgid "Use Local DNS Service listen port 5335"
msgstr "使用本机端口为 5335 的 DNS 服务"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:124
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:132
msgid "Use MOSDNS query (Not Support Oversea Mode)"
msgstr "使用 MOSDNS 查询 (不支持海外用户回国模式)"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:105
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:113
msgid "Use MosDNS query"
msgstr "使用 MosDNS 查询"
@@ -2174,22 +2179,22 @@ msgstr "WebSocket 路径"
msgid "WechatVideo"
msgstr "微信视频通话"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:87
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:95
msgid "When disabled shunt mode, will same time stopped shunt service."
msgstr "当停用分流模式时,将同时停止分流服务。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:189
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:213
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:197
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:221
msgid "When disabled, all AAAA requests are not resolved."
msgstr "当禁用时,不解析所有 AAAA 请求。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:178
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:202
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:186
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:210
msgid "When two or more DNS servers are deployed, enable this function."
msgstr "当部署两台或两台以上 DNS 服务器时,需要启用该功能。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:152
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:175
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:160
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:183
msgid ""
"When use DNS list file, please ensure list file exists and is formatted "
"correctly."
@@ -2229,15 +2234,15 @@ msgstr "XHTTP 模式"
msgid "XHTTP Path"
msgstr "XHTTP 路径"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:347
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:355
msgid "Xray Fragment Settings"
msgstr "Xray 分片设置"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:377
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:385
msgid "Xray Noise Packets"
msgstr "Xray 噪声数据包"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:243
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:251
msgid "adblock_url"
msgstr "广告屏蔽更新 URL"
@@ -2245,15 +2250,15 @@ msgstr "广告屏蔽更新 URL"
msgid "aes-128-gcm"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1358
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1369
msgid "allow"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1352
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1363
msgid "allow: Allows use Mux connection."
msgstr "allow:允许走 Mux 连接。"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1293
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1303
msgid "allowInsecure"
msgstr "允许不安全连接"
@@ -2265,7 +2270,7 @@ msgstr "allowedIPs(可选)"
msgid "android"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:246
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:254
msgid "anti-AD"
msgstr ""
@@ -2273,7 +2278,7 @@ msgstr ""
msgid "chacha20-poly1305"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:83
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:91
msgid "china-operator-ip"
msgstr ""
@@ -2281,31 +2286,31 @@ msgstr ""
msgid "chrome"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:171
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:194
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:179
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:202
msgid "cloudflare-dns.com DNSCrypt SDNS"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1383
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1394
msgid "comment_tcpcongestion_disable"
msgstr "系统默认值"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1322
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1333
msgid "concurrency"
msgstr "TCP 最大并发连接数"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1380
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1391
msgid "custom_tcpcongestion"
msgstr "连接服务器节点的 TCP 拥塞控制算法"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1212
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1330
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1343
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1341
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1354
msgid "disable"
msgstr "禁用"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:167
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:190
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:175
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:198
msgid "dns.sb DNSCrypt SDNS"
msgstr ""
@@ -2313,12 +2318,12 @@ msgstr ""
msgid "edge"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:183
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:207
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:191
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:215
msgid "fastest_addr"
msgstr "最快响应"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:230
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:238
msgid "felixonmars/dnsmasq-china-list"
msgstr ""
@@ -2338,11 +2343,11 @@ msgstr "gRPC 模式"
msgid "gRPC Service Name"
msgstr "gRPC 服务名称"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:73
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:81
msgid "gfwlist Update url"
msgstr "GFW 列表更新 URL"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:77
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:85
msgid "gfwlist/gfwlist"
msgstr ""
@@ -2350,8 +2355,8 @@ msgstr ""
msgid "ios"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:181
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:205
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:189
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:213
msgid "load_balance"
msgstr "负载均衡"
@@ -2363,7 +2368,7 @@ msgstr "使用 QUIC 流的无损 UDP 中继"
msgid "native UDP characteristics"
msgstr "原生 UDP 特性"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:90
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:98
msgid "nfip_url"
msgstr "Netflix IP 段更新 URL"
@@ -2377,8 +2382,8 @@ msgstr ""
msgid "obfs-local"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:182
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:206
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:190
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:214
msgid "parallel"
msgstr "并行查询"
@@ -2394,7 +2399,7 @@ msgstr ""
msgid "randomized"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1357
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1368
msgid "reject"
msgstr ""
@@ -2414,11 +2419,11 @@ msgstr ""
msgid "shadowTLS protocol Version"
msgstr "ShadowTLS 协议版本"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1359
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1370
msgid "skip"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1353
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1364
msgid ""
"skip: Not use Mux module to carry UDP 443 traffic, Use original UDP "
"transmission method of proxy protocol."
@@ -2429,7 +2434,7 @@ msgstr ""
msgid "spiderX"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:74
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:82
msgid "v2fly/domain-list-community"
msgstr ""
@@ -2437,7 +2442,7 @@ msgstr ""
msgid "v2ray-plugin"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:275
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua:283
msgid "valid address:port"
msgstr "有效的地址:端口"
@@ -2453,11 +2458,11 @@ msgstr ""
msgid "xtls-rprx-vision"
msgstr ""
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1335
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1346
msgid "xudpConcurrency"
msgstr "UDP 最大并发连接数"
-#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1348
+#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1359
msgid "xudpProxyUDP443"
msgstr "对被代理的 UDP/443 流量处理方式"
diff --git a/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua
index 5ca025dcdf..f84bbb7392 100755
--- a/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua
+++ b/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua
@@ -331,8 +331,8 @@ end
mux = (server.v2ray_protocol ~= "wireguard") and {
-- mux
enabled = (server.mux == "1"), -- Mux
- concurrency = (server.mux == "1" and (tonumber(server.concurrency) or -1)) or nil, -- TCP 最大并发
- xudpConcurrency = (server.mux == "1" and (tonumber(server.xudpConcurrency) or 16)) or nil, -- UDP 最大并发
+ concurrency = (server.mux == "1" and (tonumber(server.concurrency) or -1)) or nil, -- TCP 最大并发连接数
+ xudpConcurrency = (server.mux == "1" and (tonumber(server.xudpConcurrency) or 16)) or nil, -- UDP 最大并发连接数
xudpProxyUDP443 = (server.mux == "1" and (server.xudpProxyUDP443 or "reject")) or nil -- 对被代理的 UDP/443 流量处理方式
} or nil
}
@@ -631,6 +631,8 @@ local tuic = {
return nil
end
end)() or nil,
+ ipstack_prefer = (server.tuic_dual_stack == "1") and server.ipstack_prefer or nil,
+ skip_cert_verify = (server.insecure == "1" or server.insecure == true or server.insecure == "true"),
disable_sni = (server.disable_sni == "1") and true or false,
zero_rtt_handshake = (server.zero_rtt_handshake == "1") and true or false,
send_window = tonumber(server.send_window),
@@ -715,3 +717,4 @@ function config:handleIndex(index)
end
local f = config:new()
f:handleIndex(server.type)
+
diff --git a/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua b/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua
index 314c83a8bd..dfa58b9c7b 100755
--- a/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua
+++ b/small/luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua
@@ -877,7 +877,7 @@ local function processData(szType, content)
-- TLS / Reality 标志
local security = params.security or ""
- result.tls = (params.security == "tls" or security == "xtls") and "1" or "0"
+ result.tls = (security == "tls" or security == "xtls") and "1" or "0"
result.reality = (security == "reality") and "1" or "0"
-- 统一 TLS / Reality 公共字段
@@ -1012,9 +1012,16 @@ local function processData(szType, content)
end
result.type = tuic_type
- result.tuic_ip = params.sni or ""
+ result.tuic_ip = params.ip or ""
result.udp_relay_mode = params.udp_relay_mode or "native"
result.congestion_control = params.congestion_control or "cubic"
+ result.heartbeat = params.heartbeat or "3"
+ result.timeout = params.timeout or "8"
+ result.gc_interval = params.gc_interval or "3"
+ result.gc_lifetime = params.gc_lifetime or "15"
+ result.send_window = params.send_window or "20971520"
+ result.receive_window = params.receive_window or "10485760"
+ result.tuic_max_package_size = params.max_packet_size or "1500"
-- alpn 支持逗号或分号分隔
if params.alpn and params.alpn ~= "" then
@@ -1024,6 +1031,46 @@ local function processData(szType, content)
end
result.tuic_alpn = alpn
end
+
+ -- 处理 disable_sni 参数
+ if params.disable_sni then
+ if params.disable_sni == "1" or params.disable_sni == "0" then
+ result.disable_sni = params.disable_sni
+ else
+ result.disable_sni = string.lower(params.disable_sni) == "true" and "1" or "0"
+ end
+ end
+
+ -- 处理 zero_rtt_handshake 参数
+ if params.zero_rtt_handshake then
+ if params.zero_rtt_handshake == "1" or params.zero_rtt_handshake == "0" then
+ result.zero_rtt_handshake = params.zero_rtt_handshake
+ else
+ result.zero_rtt_handshake = string.lower(params.zero_rtt_handshake) == "true" and "1" or "0"
+ end
+ end
+
+ -- 处理 dual_stack 参数
+ if params.dual_stack then
+ if params.dual_stack == "1" or params.dual_stack == "0" then
+ result.dual_stack = params.dual_stack
+ else
+ result.dual_stack = string.lower(params.dual_stack) == "true" and "1" or "0"
+ end
+ -- 处理 ipstack_prefer 参数
+ if params.ipstack_prefer and params.ipstack_prefer ~= "" then
+ result.ipstack_prefer = params.ipstack_prefer
+ end
+ end
+
+ -- 处理 insecure 参数
+ if params.allowInsecure then
+ if params.allowinsecure == "1" or params.allowinsecure == "0" then
+ result.insecure = params.allowInsecure
+ else
+ result.insecure = string.lower(params.allowinsecure) == "true" and "1" or "0"
+ end
+ end
end
if not result.alias then
if result.server and result.server_port then
diff --git a/yt-dlp/README.md b/yt-dlp/README.md
index 4e7f442a60..0274b6fe9f 100644
--- a/yt-dlp/README.md
+++ b/yt-dlp/README.md
@@ -1840,7 +1840,7 @@ The following extractors use this feature:
#### youtube
* `lang`: Prefer translated metadata (`title`, `description` etc) of this language code (case-sensitive). By default, the video primary language metadata is preferred, with a fallback to `en` translated. See [youtube/_base.py](https://github.com/yt-dlp/yt-dlp/blob/415b4c9f955b1a0391204bd24a7132590e7b3bdb/yt_dlp/extractor/youtube/_base.py#L402-L409) for the list of supported content language codes
* `skip`: One or more of `hls`, `dash` or `translated_subs` to skip extraction of the m3u8 manifests, dash manifests and [auto-translated subtitles](https://github.com/yt-dlp/yt-dlp/issues/4090#issuecomment-1158102032) respectively
-* `player_client`: Clients to extract video data from. The currently available clients are `web`, `web_safari`, `web_embedded`, `web_music`, `web_creator`, `mweb`, `ios`, `android`, `android_sdkless`, `android_vr`, `tv`, `tv_simply` and `tv_embedded`. By default, `tv,android_sdkless,web` is used. If no JavaScript runtime is available, then `android_sdkless,web_safari,web` is used. If logged-in cookies are passed to yt-dlp, then `tv,web_safari,web` is used for free accounts and `tv,web_creator,web` is used for premium accounts. The `web_music` client is added for `music.youtube.com` URLs when logged-in cookies are used. The `web_embedded` client is added for age-restricted videos but only works if the video is embeddable. The `tv_embedded` and `web_creator` clients are added for age-restricted videos if account age-verification is required. Some clients, such as `web` and `web_music`, require a `po_token` for their formats to be downloadable. Some clients, such as `web_creator`, will only work with authentication. Not all clients support authentication via cookies. You can use `default` for the default clients, or you can use `all` for all clients (not recommended). You can prefix a client with `-` to exclude it, e.g. `youtube:player_client=default,-ios`
+* `player_client`: Clients to extract video data from. The currently available clients are `web`, `web_safari`, `web_embedded`, `web_music`, `web_creator`, `mweb`, `ios`, `android`, `android_sdkless`, `android_vr`, `tv`, `tv_simply`, `tv_downgraded`, and `tv_embedded`. By default, `tv,android_sdkless,web` is used. If no JavaScript runtime is available, then `android_sdkless,web_safari,web` is used. If logged-in cookies are passed to yt-dlp, then `tv_downgraded,web_safari,web` is used for free accounts and `tv_downgraded,web_creator,web` is used for premium accounts. The `web_music` client is added for `music.youtube.com` URLs when logged-in cookies are used. The `web_embedded` client is added for age-restricted videos but only works if the video is embeddable. The `tv_embedded` and `web_creator` clients are added for age-restricted videos if account age-verification is required. Some clients, such as `web` and `web_music`, require a `po_token` for their formats to be downloadable. Some clients, such as `web_creator`, will only work with authentication. Not all clients support authentication via cookies. You can use `default` for the default clients, or you can use `all` for all clients (not recommended). You can prefix a client with `-` to exclude it, e.g. `youtube:player_client=default,-ios`
* `player_skip`: Skip some network requests that are generally needed for robust extraction. One or more of `configs` (skip client configs), `webpage` (skip initial webpage), `js` (skip js player), `initial_data` (skip initial data/next ep request). While these options can help reduce the number of requests needed or avoid some rate-limiting, they could cause issues such as missing formats or metadata. See [#860](https://github.com/yt-dlp/yt-dlp/pull/860) and [#12826](https://github.com/yt-dlp/yt-dlp/issues/12826) for more details
* `webpage_skip`: Skip extraction of embedded webpage data. One or both of `player_response`, `initial_data`. These options are for testing purposes and don't skip any network requests
* `player_params`: YouTube player parameters to use for player requests. Will overwrite any default ones set by yt-dlp.
diff --git a/yt-dlp/yt_dlp/downloader/external.py b/yt-dlp/yt_dlp/downloader/external.py
index 3b8fd27bc7..1432cdb5e0 100644
--- a/yt-dlp/yt_dlp/downloader/external.py
+++ b/yt-dlp/yt_dlp/downloader/external.py
@@ -488,20 +488,6 @@ class FFmpegFD(ExternalFD):
if not self.params.get('verbose'):
args += ['-hide_banner']
- args += traverse_obj(info_dict, ('downloader_options', 'ffmpeg_args', ...))
-
- # These exists only for compatibility. Extractors should use
- # info_dict['downloader_options']['ffmpeg_args'] instead
- args += info_dict.get('_ffmpeg_args') or []
- seekable = info_dict.get('_seekable')
- if seekable is not None:
- # setting -seekable prevents ffmpeg from guessing if the server
- # supports seeking(by adding the header `Range: bytes=0-`), which
- # can cause problems in some cases
- # https://github.com/ytdl-org/youtube-dl/issues/11800#issuecomment-275037127
- # http://trac.ffmpeg.org/ticket/6125#comment:10
- args += ['-seekable', '1' if seekable else '0']
-
env = None
proxy = self.params.get('proxy')
if proxy:
@@ -521,39 +507,10 @@ class FFmpegFD(ExternalFD):
env['HTTP_PROXY'] = proxy
env['http_proxy'] = proxy
- protocol = info_dict.get('protocol')
-
- if protocol == 'rtmp':
- player_url = info_dict.get('player_url')
- page_url = info_dict.get('page_url')
- app = info_dict.get('app')
- play_path = info_dict.get('play_path')
- tc_url = info_dict.get('tc_url')
- flash_version = info_dict.get('flash_version')
- live = info_dict.get('rtmp_live', False)
- conn = info_dict.get('rtmp_conn')
- if player_url is not None:
- args += ['-rtmp_swfverify', player_url]
- if page_url is not None:
- args += ['-rtmp_pageurl', page_url]
- if app is not None:
- args += ['-rtmp_app', app]
- if play_path is not None:
- args += ['-rtmp_playpath', play_path]
- if tc_url is not None:
- args += ['-rtmp_tcurl', tc_url]
- if flash_version is not None:
- args += ['-rtmp_flashver', flash_version]
- if live:
- args += ['-rtmp_live', 'live']
- if isinstance(conn, list):
- for entry in conn:
- args += ['-rtmp_conn', entry]
- elif isinstance(conn, str):
- args += ['-rtmp_conn', conn]
-
start_time, end_time = info_dict.get('section_start') or 0, info_dict.get('section_end')
+ fallback_input_args = traverse_obj(info_dict, ('downloader_options', 'ffmpeg_args', ...))
+
selected_formats = info_dict.get('requested_formats') or [info_dict]
for i, fmt in enumerate(selected_formats):
is_http = re.match(r'https?://', fmt['url'])
@@ -572,6 +529,37 @@ class FFmpegFD(ExternalFD):
if end_time:
args += ['-t', str(end_time - start_time)]
+ protocol = fmt.get('protocol')
+
+ if protocol == 'rtmp':
+ player_url = fmt.get('player_url')
+ page_url = fmt.get('page_url')
+ app = fmt.get('app')
+ play_path = fmt.get('play_path')
+ tc_url = fmt.get('tc_url')
+ flash_version = fmt.get('flash_version')
+ live = fmt.get('rtmp_live', False)
+ conn = fmt.get('rtmp_conn')
+ if player_url is not None:
+ args += ['-rtmp_swfverify', player_url]
+ if page_url is not None:
+ args += ['-rtmp_pageurl', page_url]
+ if app is not None:
+ args += ['-rtmp_app', app]
+ if play_path is not None:
+ args += ['-rtmp_playpath', play_path]
+ if tc_url is not None:
+ args += ['-rtmp_tcurl', tc_url]
+ if flash_version is not None:
+ args += ['-rtmp_flashver', flash_version]
+ if live:
+ args += ['-rtmp_live', 'live']
+ if isinstance(conn, list):
+ for entry in conn:
+ args += ['-rtmp_conn', entry]
+ elif isinstance(conn, str):
+ args += ['-rtmp_conn', conn]
+
url = fmt['url']
if self.params.get('enable_file_urls') and url.startswith('file:'):
# The default protocol_whitelist is 'file,crypto,data' when reading local m3u8 URLs,
@@ -586,6 +574,7 @@ class FFmpegFD(ExternalFD):
# https://trac.ffmpeg.org/ticket/2702
url = re.sub(r'^file://(?:localhost)?/', 'file:' if os.name == 'nt' else 'file:/', url)
+ args += traverse_obj(fmt, ('downloader_options', 'ffmpeg_args', ...)) or fallback_input_args
args += [*self._configuration_args((f'_i{i + 1}', '_i')), '-i', url]
if not (start_time or end_time) or not self.params.get('force_keyframes_at_cuts'):
diff --git a/yt-dlp/yt_dlp/extractor/youtube/_base.py b/yt-dlp/yt_dlp/extractor/youtube/_base.py
index 062301b5ff..2f7b82cd7c 100644
--- a/yt-dlp/yt_dlp/extractor/youtube/_base.py
+++ b/yt-dlp/yt_dlp/extractor/youtube/_base.py
@@ -327,6 +327,17 @@ INNERTUBE_CLIENTS = {
# See: https://github.com/youtube/cobalt/blob/main/cobalt/browser/user_agent/user_agent_platform_info.cc#L506
'AUTHENTICATED_USER_AGENT': 'Mozilla/5.0 (ChromiumStylePlatform) Cobalt/25.lts.30.1034943-gold (unlike Gecko), Unknown_TV_Unknown_0/Unknown (Unknown, Unknown)',
},
+ 'tv_downgraded': {
+ 'INNERTUBE_CONTEXT': {
+ 'client': {
+ 'clientName': 'TVHTML5',
+ 'clientVersion': '4',
+ 'userAgent': 'Mozilla/5.0 (ChromiumStylePlatform) Cobalt/Version',
+ },
+ },
+ 'INNERTUBE_CONTEXT_CLIENT_NAME': 7,
+ 'SUPPORTS_COOKIES': True,
+ },
'tv_simply': {
'INNERTUBE_CONTEXT': {
'client': {
diff --git a/yt-dlp/yt_dlp/extractor/youtube/_video.py b/yt-dlp/yt_dlp/extractor/youtube/_video.py
index 8706439ae7..c7fc9d8ad2 100644
--- a/yt-dlp/yt_dlp/extractor/youtube/_video.py
+++ b/yt-dlp/yt_dlp/extractor/youtube/_video.py
@@ -147,9 +147,9 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
_SUBTITLE_FORMATS = ('json3', 'srv1', 'srv2', 'srv3', 'ttml', 'srt', 'vtt')
_DEFAULT_CLIENTS = ('tv', 'android_sdkless', 'web')
_DEFAULT_JSLESS_CLIENTS = ('android_sdkless', 'web_safari', 'web')
- _DEFAULT_AUTHED_CLIENTS = ('tv', 'web_safari', 'web')
+ _DEFAULT_AUTHED_CLIENTS = ('tv_downgraded', 'web_safari', 'web')
# Premium does not require POT (except for subtitles)
- _DEFAULT_PREMIUM_CLIENTS = ('tv', 'web_creator', 'web')
+ _DEFAULT_PREMIUM_CLIENTS = ('tv_downgraded', 'web_creator', 'web')
_GEO_BYPASS = False