sandstone-cli 2.3.2 → 2.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/FUNDING.yml +0 -0
- package/.github/workflows/npm-publish.yml +86 -20
- package/LICENSE +0 -0
- package/README.md +6 -0
- package/bun.lock +15 -11
- package/lib/create.js +19 -3
- package/lib/create.js.map +114 -0
- package/lib/index.js +2540 -561
- package/lib/index.js.map +273 -0
- package/package.json +7 -5
- package/src/commands/build/export.ts +2 -2
- package/src/commands/build/index.ts +10 -3
- package/src/commands/create.ts +1 -1
- package/src/commands/dependency.ts +0 -0
- package/src/commands/index.ts +0 -0
- package/src/commands/watch.ts +9 -1
- package/src/create.ts +0 -0
- package/src/index.ts +0 -0
- package/src/shared.ts +0 -0
- package/src/ui/logger.ts +4 -3
- package/src/utils/source-map.ts +191 -0
- package/src/utils.ts +0 -0
- package/src/version.ts +1 -1
- package/tsconfig.json +0 -0
package/.github/FUNDING.yml
CHANGED
|
File without changes
|
|
@@ -1,31 +1,97 @@
|
|
|
1
|
-
name:
|
|
1
|
+
name: Publish to npm
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*'
|
|
7
7
|
workflow_dispatch:
|
|
8
8
|
|
|
9
|
+
permissions:
|
|
10
|
+
id-token: write
|
|
11
|
+
contents: write
|
|
12
|
+
|
|
9
13
|
jobs:
|
|
10
14
|
publish:
|
|
15
|
+
environment: release
|
|
11
16
|
runs-on: ubuntu-latest
|
|
12
17
|
steps:
|
|
13
|
-
- uses: actions/checkout@
|
|
14
|
-
- uses: actions/setup-node@v1
|
|
18
|
+
- uses: actions/checkout@v6
|
|
15
19
|
with:
|
|
16
|
-
|
|
17
|
-
|
|
20
|
+
fetch-depth: 0
|
|
21
|
+
|
|
22
|
+
- name: Setup Bun
|
|
23
|
+
uses: oven-sh/setup-bun@v2
|
|
24
|
+
|
|
25
|
+
- name: Setup Node.js
|
|
26
|
+
uses: actions/setup-node@v6
|
|
18
27
|
with:
|
|
19
|
-
version:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
-
|
|
28
|
+
node-version: '24'
|
|
29
|
+
registry-url: 'https://registry.npmjs.org'
|
|
30
|
+
|
|
31
|
+
# Because GitHub & NPM can't figure out their shit
|
|
32
|
+
- name: Update NPM
|
|
33
|
+
run: npm install -g npm@latest
|
|
34
|
+
|
|
35
|
+
- name: Install dependencies
|
|
36
|
+
run: bun install
|
|
37
|
+
|
|
38
|
+
- name: Build
|
|
39
|
+
run: bun dev:build
|
|
40
|
+
|
|
41
|
+
- name: Publish sandstone-cli
|
|
42
|
+
run: npm publish --provenance
|
|
43
|
+
|
|
44
|
+
- name: Publish create-sandstone
|
|
45
|
+
run: |
|
|
46
|
+
sed -i 's/"sandstone-cli"/"create-sandstone"/g' package.json
|
|
47
|
+
npm publish --provenance
|
|
48
|
+
|
|
49
|
+
- name: Prepare release metadata
|
|
50
|
+
id: release
|
|
51
|
+
run: |
|
|
52
|
+
TAG="${GITHUB_REF_NAME}"
|
|
53
|
+
PREV_TAG=$(git tag --sort=-v:refname | grep -v "^${TAG}$" | head -n1)
|
|
54
|
+
echo "prev_tag=${PREV_TAG}" >> $GITHUB_OUTPUT
|
|
55
|
+
|
|
56
|
+
# Get commit message
|
|
57
|
+
COMMIT_MSG=$(git log -1 --format=%B)
|
|
58
|
+
COMMIT_TITLE=$(echo "$COMMIT_MSG" | head -n1)
|
|
59
|
+
COMMIT_BODY=$(echo "$COMMIT_MSG" | tail -n +3)
|
|
60
|
+
|
|
61
|
+
# Remove emoji prefix from title
|
|
62
|
+
CLEAN_TITLE=$(echo "$COMMIT_TITLE" | sed -E 's/^[^ ]+ //')
|
|
63
|
+
|
|
64
|
+
# Release title
|
|
65
|
+
echo "title=${TAG} - ${CLEAN_TITLE}" >> $GITHUB_OUTPUT
|
|
66
|
+
|
|
67
|
+
# Build release body
|
|
68
|
+
{
|
|
69
|
+
if [[ -n "$COMMIT_BODY" ]]; then
|
|
70
|
+
echo "$COMMIT_BODY"
|
|
71
|
+
echo ""
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
if [[ -n "$PREV_TAG" ]]; then
|
|
75
|
+
echo "<details>"
|
|
76
|
+
echo "<summary>Commits since ${PREV_TAG}</summary>"
|
|
77
|
+
echo ""
|
|
78
|
+
for COMMIT in $(git log --format="%H" "${PREV_TAG}..${TAG}"); do
|
|
79
|
+
SUBJECT=$(git log -1 --format="%s" "$COMMIT")
|
|
80
|
+
AUTHOR=$(git log -1 --format="%an" "$COMMIT")
|
|
81
|
+
COAUTHORS=$(git log -1 --format="%(trailers:key=Co-authored-by,valueonly)" "$COMMIT" | sed -n 's/\(.*\) <.*/\1/p' | sed 's/^/, @/')
|
|
82
|
+
echo "- $COMMIT $SUBJECT (@${AUTHOR}${COAUTHORS})"
|
|
83
|
+
done
|
|
84
|
+
echo ""
|
|
85
|
+
echo "</details>"
|
|
86
|
+
echo ""
|
|
87
|
+
echo "**Full Changelog**: [${PREV_TAG}...${TAG}](https://github.com/sandstone-mc/sandstone-cli/compare/${PREV_TAG}...${TAG})"
|
|
88
|
+
fi
|
|
89
|
+
} > release_body.md
|
|
90
|
+
|
|
91
|
+
- name: Create GitHub Release
|
|
30
92
|
env:
|
|
31
|
-
|
|
93
|
+
GH_TOKEN: ${{ github.token }}
|
|
94
|
+
run: |
|
|
95
|
+
gh release create "${{ github.ref_name }}" \
|
|
96
|
+
--title "${{ steps.release.outputs.title }}" \
|
|
97
|
+
--notes-file release_body.md
|
package/LICENSE
CHANGED
|
File without changes
|
package/README.md
CHANGED
package/bun.lock
CHANGED
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"obliterator": "^2.0.5",
|
|
23
23
|
"react": "^19.2.4",
|
|
24
24
|
"semver": "^7.5.4",
|
|
25
|
+
"source-map-js": "^1.2.1",
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
28
|
"@types/adm-zip": "^0.5.2",
|
|
@@ -31,12 +32,13 @@
|
|
|
31
32
|
"@types/semver": "^7.5.3",
|
|
32
33
|
"bun-types": "^1.3.9",
|
|
33
34
|
"node-pty": "^1.1.0",
|
|
34
|
-
"sandstone": "^1.0.0-beta.
|
|
35
|
+
"sandstone": "^1.0.0-beta.5",
|
|
35
36
|
"typescript": "^5.2.2",
|
|
36
37
|
},
|
|
37
38
|
},
|
|
38
39
|
},
|
|
39
40
|
"trustedDependencies": [
|
|
41
|
+
"node-pty",
|
|
40
42
|
"@parcel/watcher",
|
|
41
43
|
],
|
|
42
44
|
"packages": {
|
|
@@ -144,7 +146,7 @@
|
|
|
144
146
|
|
|
145
147
|
"adm-zip": ["adm-zip@0.5.16", "", {}, "sha512-TGw5yVi4saajsSEgz25grObGHEUaDrniwvA2qwSC060KfqGPdglhvPMA2lPIoxs3PQIItj2iag35fONcQqgUaQ=="],
|
|
146
148
|
|
|
147
|
-
"ajv": ["ajv@6.
|
|
149
|
+
"ajv": ["ajv@6.14.0", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw=="],
|
|
148
150
|
|
|
149
151
|
"ansi-escapes": ["ansi-escapes@7.2.0", "", { "dependencies": { "environment": "^1.0.0" } }, "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw=="],
|
|
150
152
|
|
|
@@ -282,11 +284,11 @@
|
|
|
282
284
|
|
|
283
285
|
"jsonstream-next": ["jsonstream-next@3.0.0", "", { "dependencies": { "jsonparse": "^1.2.0", "through2": "^4.0.2" }, "bin": { "jsonstream-next": "bin.js" } }, "sha512-aAi6oPhdt7BKyQn1SrIIGZBt0ukKuOUE1qV6kJ3GgioSOYzsRc8z9Hfr1BVmacA/jLe9nARfmgMGgn68BqIAgg=="],
|
|
284
286
|
|
|
285
|
-
"lodash": ["lodash@4.
|
|
287
|
+
"lodash": ["lodash@4.18.1", "", {}, "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q=="],
|
|
286
288
|
|
|
287
289
|
"lodash.reduce": ["lodash.reduce@4.6.0", "", {}, "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw=="],
|
|
288
290
|
|
|
289
|
-
"lru-cache": ["lru-cache@11.
|
|
291
|
+
"lru-cache": ["lru-cache@11.3.3", "", {}, "sha512-JvNw9Y81y33E+BEYPr0U7omo+U9AySnsMsEiXgwT6yqd31VQWTLNQqmT4ou5eqPFUrTfIDFta2wKhB1hyohtAQ=="],
|
|
290
292
|
|
|
291
293
|
"merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
|
|
292
294
|
|
|
@@ -294,7 +296,7 @@
|
|
|
294
296
|
|
|
295
297
|
"mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="],
|
|
296
298
|
|
|
297
|
-
"moo": ["moo@0.5.
|
|
299
|
+
"moo": ["moo@0.5.3", "", {}, "sha512-m2fmM2dDm7GZQsY7KK2cme8agi+AAljILjQnof7p1ZMDe6dQ4bdnSMx0cPppudoeNv5hEFQirN6u+O4fDE0IWA=="],
|
|
298
300
|
|
|
299
301
|
"mute-stream": ["mute-stream@3.0.0", "", {}, "sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw=="],
|
|
300
302
|
|
|
@@ -370,7 +372,7 @@
|
|
|
370
372
|
|
|
371
373
|
"safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
|
|
372
374
|
|
|
373
|
-
"sandstone": ["sandstone@1.0.0-beta.
|
|
375
|
+
"sandstone": ["sandstone@1.0.0-beta.5", "", { "dependencies": { "@sinclair/typebox": "^0.31.21", "@smithed-mc/data-types": "^0.1.2", "@types/nearley": "^2.11.5", "@types/node": "24", "@typescript/analyze-trace": "^0.4.0", "adm-zip": "^0.5.10", "fs-extra": "^11.1.1", "lodash": "^4.17.21", "nanoid": "^3.3.6", "nearley": "^2.20.1", "node-fetch": "^3.3.2", "prismarine-nbt": "^2.2.1", "semver": "^7.5.4" } }, "sha512-PzUoOZZ8U1HK36IHdzArRILYz/7yJW4SSRrQ7Hy8LnT1lu4lwkncb6JSVEdlB7rpx1W/2Io/9YZVM9wwUXS4tg=="],
|
|
374
376
|
|
|
375
377
|
"scheduler": ["scheduler@0.27.0", "", {}, "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q=="],
|
|
376
378
|
|
|
@@ -382,13 +384,15 @@
|
|
|
382
384
|
|
|
383
385
|
"slice-ansi": ["slice-ansi@7.1.2", "", { "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^5.0.0" } }, "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w=="],
|
|
384
386
|
|
|
387
|
+
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
|
|
388
|
+
|
|
385
389
|
"spdx-correct": ["spdx-correct@3.2.0", "", { "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA=="],
|
|
386
390
|
|
|
387
391
|
"spdx-exceptions": ["spdx-exceptions@2.5.0", "", {}, "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w=="],
|
|
388
392
|
|
|
389
393
|
"spdx-expression-parse": ["spdx-expression-parse@3.0.1", "", { "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="],
|
|
390
394
|
|
|
391
|
-
"spdx-license-ids": ["spdx-license-ids@3.0.
|
|
395
|
+
"spdx-license-ids": ["spdx-license-ids@3.0.23", "", {}, "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw=="],
|
|
392
396
|
|
|
393
397
|
"split2": ["split2@3.2.2", "", { "dependencies": { "readable-stream": "^3.0.0" } }, "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg=="],
|
|
394
398
|
|
|
@@ -458,17 +462,17 @@
|
|
|
458
462
|
|
|
459
463
|
"figlet/commander": ["commander@14.0.2", "", {}, "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ=="],
|
|
460
464
|
|
|
461
|
-
"micromatch/picomatch": ["picomatch@2.3.
|
|
465
|
+
"micromatch/picomatch": ["picomatch@2.3.2", "", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="],
|
|
462
466
|
|
|
463
467
|
"nearley/commander": ["commander@2.20.3", "", {}, "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="],
|
|
464
468
|
|
|
465
469
|
"protodef/readable-stream": ["readable-stream@4.7.0", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="],
|
|
466
470
|
|
|
467
|
-
"read-package-up/type-fest": ["type-fest@5.
|
|
471
|
+
"read-package-up/type-fest": ["type-fest@5.5.0", "", { "dependencies": { "tagged-tag": "^1.0.0" } }, "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g=="],
|
|
468
472
|
|
|
469
|
-
"read-pkg/type-fest": ["type-fest@5.
|
|
473
|
+
"read-pkg/type-fest": ["type-fest@5.5.0", "", { "dependencies": { "tagged-tag": "^1.0.0" } }, "sha512-PlBfpQwiUvGViBNX84Yxwjsdhd1TUlXr6zjX7eoirtCPIr08NAmxwa+fcYBTeRQxHo9YC9wwF3m9i700sHma8g=="],
|
|
470
474
|
|
|
471
|
-
"sandstone/@types/node": ["@types/node@24.
|
|
475
|
+
"sandstone/@types/node": ["@types/node@24.12.2", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-A1sre26ke7HDIuY/M23nd9gfB+nrmhtYyMINbjI1zHJxYteKR6qSMX56FsmjMcDb3SMcjJg5BiRRgOCC/yBD0g=="],
|
|
472
476
|
|
|
473
477
|
"sandstone/nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
|
|
474
478
|
|
package/lib/create.js
CHANGED
|
@@ -5,15 +5,29 @@ var __getProtoOf = Object.getPrototypeOf;
|
|
|
5
5
|
var __defProp = Object.defineProperty;
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
7
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
function __accessProp(key) {
|
|
9
|
+
return this[key];
|
|
10
|
+
}
|
|
11
|
+
var __toESMCache_node;
|
|
12
|
+
var __toESMCache_esm;
|
|
8
13
|
var __toESM = (mod, isNodeMode, target) => {
|
|
14
|
+
var canCache = mod != null && typeof mod === "object";
|
|
15
|
+
if (canCache) {
|
|
16
|
+
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
17
|
+
var cached = cache.get(mod);
|
|
18
|
+
if (cached)
|
|
19
|
+
return cached;
|
|
20
|
+
}
|
|
9
21
|
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
10
22
|
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
11
23
|
for (let key of __getOwnPropNames(mod))
|
|
12
24
|
if (!__hasOwnProp.call(to, key))
|
|
13
25
|
__defProp(to, key, {
|
|
14
|
-
get: (
|
|
26
|
+
get: __accessProp.bind(mod, key),
|
|
15
27
|
enumerable: true
|
|
16
28
|
});
|
|
29
|
+
if (canCache)
|
|
30
|
+
cache.set(mod, to);
|
|
17
31
|
return to;
|
|
18
32
|
};
|
|
19
33
|
var __commonJS = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
|
|
@@ -5680,7 +5694,7 @@ var {
|
|
|
5680
5694
|
import figlet from "figlet";
|
|
5681
5695
|
|
|
5682
5696
|
// src/version.ts
|
|
5683
|
-
var CLI_VERSION = "2.
|
|
5697
|
+
var CLI_VERSION = "2.4.1";
|
|
5684
5698
|
|
|
5685
5699
|
// src/commands/create.ts
|
|
5686
5700
|
var import_semver = __toESM(require_semver2(), 1);
|
|
@@ -6789,7 +6803,7 @@ async function createCommand2(_project, opts) {
|
|
|
6789
6803
|
default: false
|
|
6790
6804
|
}) === true ? "library" : "pack";
|
|
6791
6805
|
const sv = (v) => new import_semver.SemVer(v);
|
|
6792
|
-
const versions = [[sv("1.0.0-beta.
|
|
6806
|
+
const versions = [[sv("1.0.0-beta.5"), sv(CLI_VERSION)]];
|
|
6793
6807
|
const version = await select({
|
|
6794
6808
|
message: "Which version of Sandstone do you want to use? These are the only supported versions for new projects.",
|
|
6795
6809
|
choices: versions.map((v) => {
|
|
@@ -6972,3 +6986,5 @@ var BuildOptions = {
|
|
|
6972
6986
|
var commander2 = new Command;
|
|
6973
6987
|
console.log(figlet.textSync("Sandstone"));
|
|
6974
6988
|
commander2.version(CLI_VERSION).description("Create a new Sandstone project. \u26CF").addOption(BuildOptions.get("name")).addOption(BuildOptions.get("namespace")).addOption(BuildOptions.get("world")).addOption(BuildOptions.get("clientPath")).addOption(BuildOptions.get("serverPath")).action(createCommand2).addArgument(new Argument("<projectName>", "Not the name of the output pack")).parse(process.argv);
|
|
6989
|
+
|
|
6990
|
+
//# debugId=D71003474AF8F39A64756E2164756E21
|