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