From 3793ddff71c6f9fce370bd56d1955f7a3b3b1372 Mon Sep 17 00:00:00 2001 From: ayman Date: Sun, 18 Aug 2024 18:29:47 +0530 Subject: [PATCH] feat: use rollup and remove Buffer --- package-lock.json | 693 +- package.json | 23 +- rollup.config.ts | 42 + src/cjs/index.cjs | 21534 ++++++++++++++++ src/cjs/index.cjs.map | 1 + src/{ => cjs}/index.d.ts | 11 +- src/cjs/index.d.ts.map | 1 + src/cjs/wordlists/chinese_simplified.d.ts | 2 + src/cjs/wordlists/chinese_simplified.d.ts.map | 1 + src/cjs/wordlists/chinese_traditional.d.ts | 2 + .../wordlists/chinese_traditional.d.ts.map | 1 + src/cjs/wordlists/czech.d.ts | 2 + src/cjs/wordlists/czech.d.ts.map | 1 + src/cjs/wordlists/english.d.ts | 2 + src/cjs/wordlists/english.d.ts.map | 1 + src/cjs/wordlists/french.d.ts | 2 + src/cjs/wordlists/french.d.ts.map | 1 + src/cjs/wordlists/index.d.ts | 11 + src/cjs/wordlists/index.d.ts.map | 1 + src/cjs/wordlists/italian.d.ts | 2 + src/cjs/wordlists/italian.d.ts.map | 1 + src/cjs/wordlists/japanese.d.ts | 2 + src/cjs/wordlists/japanese.d.ts.map | 1 + src/cjs/wordlists/korean.d.ts | 2 + src/cjs/wordlists/korean.d.ts.map | 1 + src/cjs/wordlists/portuguese.d.ts | 2 + src/cjs/wordlists/portuguese.d.ts.map | 1 + src/cjs/wordlists/spanish.d.ts | 2 + src/cjs/wordlists/spanish.d.ts.map | 1 + src/esm/index.d.ts | 10 + src/esm/index.d.ts.map | 1 + src/esm/index.js | 21515 +++++++++++++++ src/esm/index.js.map | 1 + src/esm/wordlists/chinese_simplified.d.ts | 2 + src/esm/wordlists/chinese_simplified.d.ts.map | 1 + src/esm/wordlists/chinese_traditional.d.ts | 2 + .../wordlists/chinese_traditional.d.ts.map | 1 + src/esm/wordlists/czech.d.ts | 2 + src/esm/wordlists/czech.d.ts.map | 1 + src/esm/wordlists/english.d.ts | 2 + src/esm/wordlists/english.d.ts.map | 1 + src/esm/wordlists/french.d.ts | 2 + src/esm/wordlists/french.d.ts.map | 1 + src/esm/wordlists/index.d.ts | 11 + src/esm/wordlists/index.d.ts.map | 1 + src/esm/wordlists/italian.d.ts | 2 + src/esm/wordlists/italian.d.ts.map | 1 + src/esm/wordlists/japanese.d.ts | 2 + src/esm/wordlists/japanese.d.ts.map | 1 + src/esm/wordlists/korean.d.ts | 2 + src/esm/wordlists/korean.d.ts.map | 1 + src/esm/wordlists/portuguese.d.ts | 2 + src/esm/wordlists/portuguese.d.ts.map | 1 + src/esm/wordlists/spanish.d.ts | 2 + src/esm/wordlists/spanish.d.ts.map | 1 + src/index.js | 164 - src/wordlists/chinese_simplified.d.ts | 2 - src/wordlists/chinese_simplified.js | 2050 -- src/wordlists/chinese_traditional.d.ts | 2 - src/wordlists/chinese_traditional.js | 2050 -- src/wordlists/czech.d.ts | 2 - src/wordlists/czech.js | 2050 -- src/wordlists/english.d.ts | 2 - src/wordlists/english.js | 2050 -- src/wordlists/french.d.ts | 2 - src/wordlists/french.js | 2050 -- src/wordlists/italian.d.ts | 2 - src/wordlists/italian.js | 2050 -- src/wordlists/japanese.d.ts | 2 - src/wordlists/japanese.js | 2050 -- src/wordlists/korean.d.ts | 2 - src/wordlists/korean.js | 2050 -- src/wordlists/portuguese.d.ts | 2 - src/wordlists/portuguese.js | 2050 -- src/wordlists/spanish.d.ts | 2 - src/wordlists/spanish.js | 2050 -- test/index.js | 38 +- ts_src/index.ts | 63 +- ts_src/wordlists/chinese_simplified.ts | 2 +- ts_src/wordlists/chinese_traditional.ts | 2 +- ts_src/wordlists/czech.ts | 2 +- ts_src/wordlists/english.ts | 2 +- ts_src/wordlists/french.ts | 2 +- ts_src/wordlists/index.ts | 10 + ts_src/wordlists/italian.ts | 2 +- ts_src/wordlists/japanese.ts | 2 +- ts_src/wordlists/korean.ts | 2 +- ts_src/wordlists/portuguese.ts | 2 +- ts_src/wordlists/spanish.ts | 2 +- tsconfig.json | 40 +- 90 files changed, 43977 insertions(+), 20794 deletions(-) create mode 100644 rollup.config.ts create mode 100644 src/cjs/index.cjs create mode 100644 src/cjs/index.cjs.map rename src/{ => cjs}/index.d.ts (54%) create mode 100644 src/cjs/index.d.ts.map create mode 100644 src/cjs/wordlists/chinese_simplified.d.ts create mode 100644 src/cjs/wordlists/chinese_simplified.d.ts.map create mode 100644 src/cjs/wordlists/chinese_traditional.d.ts create mode 100644 src/cjs/wordlists/chinese_traditional.d.ts.map create mode 100644 src/cjs/wordlists/czech.d.ts create mode 100644 src/cjs/wordlists/czech.d.ts.map create mode 100644 src/cjs/wordlists/english.d.ts create mode 100644 src/cjs/wordlists/english.d.ts.map create mode 100644 src/cjs/wordlists/french.d.ts create mode 100644 src/cjs/wordlists/french.d.ts.map create mode 100644 src/cjs/wordlists/index.d.ts create mode 100644 src/cjs/wordlists/index.d.ts.map create mode 100644 src/cjs/wordlists/italian.d.ts create mode 100644 src/cjs/wordlists/italian.d.ts.map create mode 100644 src/cjs/wordlists/japanese.d.ts create mode 100644 src/cjs/wordlists/japanese.d.ts.map create mode 100644 src/cjs/wordlists/korean.d.ts create mode 100644 src/cjs/wordlists/korean.d.ts.map create mode 100644 src/cjs/wordlists/portuguese.d.ts create mode 100644 src/cjs/wordlists/portuguese.d.ts.map create mode 100644 src/cjs/wordlists/spanish.d.ts create mode 100644 src/cjs/wordlists/spanish.d.ts.map create mode 100644 src/esm/index.d.ts create mode 100644 src/esm/index.d.ts.map create mode 100644 src/esm/index.js create mode 100644 src/esm/index.js.map create mode 100644 src/esm/wordlists/chinese_simplified.d.ts create mode 100644 src/esm/wordlists/chinese_simplified.d.ts.map create mode 100644 src/esm/wordlists/chinese_traditional.d.ts create mode 100644 src/esm/wordlists/chinese_traditional.d.ts.map create mode 100644 src/esm/wordlists/czech.d.ts create mode 100644 src/esm/wordlists/czech.d.ts.map create mode 100644 src/esm/wordlists/english.d.ts create mode 100644 src/esm/wordlists/english.d.ts.map create mode 100644 src/esm/wordlists/french.d.ts create mode 100644 src/esm/wordlists/french.d.ts.map create mode 100644 src/esm/wordlists/index.d.ts create mode 100644 src/esm/wordlists/index.d.ts.map create mode 100644 src/esm/wordlists/italian.d.ts create mode 100644 src/esm/wordlists/italian.d.ts.map create mode 100644 src/esm/wordlists/japanese.d.ts create mode 100644 src/esm/wordlists/japanese.d.ts.map create mode 100644 src/esm/wordlists/korean.d.ts create mode 100644 src/esm/wordlists/korean.d.ts.map create mode 100644 src/esm/wordlists/portuguese.d.ts create mode 100644 src/esm/wordlists/portuguese.d.ts.map create mode 100644 src/esm/wordlists/spanish.d.ts create mode 100644 src/esm/wordlists/spanish.d.ts.map delete mode 100644 src/index.js delete mode 100644 src/wordlists/chinese_simplified.d.ts delete mode 100644 src/wordlists/chinese_simplified.js delete mode 100644 src/wordlists/chinese_traditional.d.ts delete mode 100644 src/wordlists/chinese_traditional.js delete mode 100644 src/wordlists/czech.d.ts delete mode 100644 src/wordlists/czech.js delete mode 100644 src/wordlists/english.d.ts delete mode 100644 src/wordlists/english.js delete mode 100644 src/wordlists/french.d.ts delete mode 100644 src/wordlists/french.js delete mode 100644 src/wordlists/italian.d.ts delete mode 100644 src/wordlists/italian.js delete mode 100644 src/wordlists/japanese.d.ts delete mode 100644 src/wordlists/japanese.js delete mode 100644 src/wordlists/korean.d.ts delete mode 100644 src/wordlists/korean.js delete mode 100644 src/wordlists/portuguese.d.ts delete mode 100644 src/wordlists/portuguese.js delete mode 100644 src/wordlists/spanish.d.ts delete mode 100644 src/wordlists/spanish.js create mode 100644 ts_src/wordlists/index.ts diff --git a/package-lock.json b/package-lock.json index 21b414a..73e7234 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,17 +9,23 @@ "version": "3.1.0", "license": "ISC", "dependencies": { - "@noble/hashes": "^1.2.0" + "@noble/hashes": "^1.2.0", + "uint8array-tools": "^0.0.8" }, "devDependencies": { + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^11.1.6", "@types/node": "11.11.6", "node-fetch": "2.6.9", "nyc": "^15.0.0", "prettier": "1.16.4", "proxyquire": "^1.7.10", + "rollup": "^4.9.6", "tape": "^5.3.0", "tslint": "^6.1.0", - "typescript": "3.3.4000" + "typescript": "5.0.4" } }, "node_modules/@babel/code-frame": { @@ -356,14 +362,14 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -379,24 +385,34 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", "dev": true, "engines": { "node": ">=6.0.0" } }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -439,18 +455,445 @@ } ] }, + "node_modules/@rollup/plugin-commonjs": { + "version": "25.0.8", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.8.tgz", + "integrity": "sha512-ZEZWTK5n6Qde0to4vS9Mr5x/0UZoqCxPVR9KRUjU4kA2sO7GEUn1fop0DAwpO6z0Nw/kJON9bDmSxdWxO/TT1A==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "glob": "^8.0.3", + "is-reference": "1.2.1", + "magic-string": "^0.30.3" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.68.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@rollup/plugin-commonjs/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "15.2.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz", + "integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.0.1", + "@types/resolve": "1.20.2", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.2.1", + "is-module": "^1.0.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.78.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-node-resolve/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz", + "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript/node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.20.0.tgz", + "integrity": "sha512-TSpWzflCc4VGAUJZlPpgAJE1+V60MePDQnBd7PPkpuEmOy8i87aL6tinFGKBFKuEDikYpig72QzdT3QPYIi+oA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.20.0.tgz", + "integrity": "sha512-u00Ro/nok7oGzVuh/FMYfNoGqxU5CPWz1mxV85S2w9LxHR8OoMQBuSk+3BKVIDYgkpeOET5yXkx90OYFc+ytpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.20.0.tgz", + "integrity": "sha512-uFVfvzvsdGtlSLuL0ZlvPJvl6ZmrH4CBwLGEFPe7hUmf7htGAN+aXo43R/V6LATyxlKVC/m6UsLb7jbG+LG39Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.20.0.tgz", + "integrity": "sha512-xbrMDdlev53vNXexEa6l0LffojxhqDTBeL+VUxuuIXys4x6xyvbKq5XqTXBCEUA8ty8iEJblHvFaWRJTk/icAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.20.0.tgz", + "integrity": "sha512-jMYvxZwGmoHFBTbr12Xc6wOdc2xA5tF5F2q6t7Rcfab68TT0n+r7dgawD4qhPEvasDsVpQi+MgDzj2faOLsZjA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.20.0.tgz", + "integrity": "sha512-1asSTl4HKuIHIB1GcdFHNNZhxAYEdqML/MW4QmPS4G0ivbEcBr1JKlFLKsIRqjSwOBkdItn3/ZDlyvZ/N6KPlw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.20.0.tgz", + "integrity": "sha512-COBb8Bkx56KldOYJfMf6wKeYJrtJ9vEgBRAOkfw6Ens0tnmzPqvlpjZiLgkhg6cA3DGzCmLmmd319pmHvKWWlQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.20.0.tgz", + "integrity": "sha512-+it+mBSyMslVQa8wSPvBx53fYuZK/oLTu5RJoXogjk6x7Q7sz1GNRsXWjn6SwyJm8E/oMjNVwPhmNdIjwP135Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.20.0.tgz", + "integrity": "sha512-yAMvqhPfGKsAxHN8I4+jE0CpLWD8cv4z7CK7BMmhjDuz606Q2tFKkWRY8bHR9JQXYcoLfopo5TTqzxgPUjUMfw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.20.0.tgz", + "integrity": "sha512-qmuxFpfmi/2SUkAw95TtNq/w/I7Gpjurx609OOOV7U4vhvUhBcftcmXwl3rqAek+ADBwSjIC4IVNLiszoj3dPA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.20.0.tgz", + "integrity": "sha512-I0BtGXddHSHjV1mqTNkgUZLnS3WtsqebAXv11D5BZE/gfw5KoyXSAXVqyJximQXNvNzUo4GKlCK/dIwXlz+jlg==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.20.0.tgz", + "integrity": "sha512-y+eoL2I3iphUg9tN9GB6ku1FA8kOfmF4oUEWhztDJ4KXJy1agk/9+pejOuZkNFhRwHAOxMsBPLbXPd6mJiCwew==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.20.0.tgz", + "integrity": "sha512-hM3nhW40kBNYUkZb/r9k2FKK+/MnKglX7UYd4ZUy5DJs8/sMsIbqWK2piZtVGE3kcXVNj3B2IrUYROJMMCikNg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.20.0.tgz", + "integrity": "sha512-psegMvP+Ik/Bg7QRJbv8w8PAytPA7Uo8fpFjXyCRHWm6Nt42L+JtoqH8eDQ5hRP7/XW2UiIriy1Z46jf0Oa1kA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.20.0.tgz", + "integrity": "sha512-GabekH3w4lgAJpVxkk7hUzUf2hICSQO0a/BLFA11/RMxQT92MabKAqyubzDZmMOC/hcJNlc+rrypzNzYl4Dx7A==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.20.0.tgz", + "integrity": "sha512-aJ1EJSuTdGnM6qbVC4B5DSmozPTqIag9fSzXRNNo+humQLG89XpPgdt16Ia56ORD7s+H8Pmyx44uczDQ0yDzpg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@types/color-name": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "node_modules/@types/node": { "version": "11.11.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==", "dev": true }, + "node_modules/@types/resolve": { + "version": "1.20.2", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", + "integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==", + "dev": true + }, + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/aggregate-error": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", @@ -600,6 +1043,12 @@ "concat-map": "0.0.1" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -844,6 +1293,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/default-require-extensions": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", @@ -1098,6 +1556,12 @@ "node": ">=4" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -1184,6 +1648,20 @@ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -1581,6 +2059,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-builtin-module": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", + "integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-builtin-module/node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -1656,6 +2161,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, "node_modules/is-negative-zero": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", @@ -1689,6 +2200,15 @@ "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", "dev": true }, + "node_modules/is-reference": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", + "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", + "dev": true, + "dependencies": { + "@types/estree": "*" + } + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -2039,6 +2559,15 @@ "integrity": "sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=", "dev": true }, + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", + "dev": true, + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0" + } + }, "node_modules/make-dir": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", @@ -2357,6 +2886,18 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -2413,6 +2954,15 @@ "resolve": "~1.1.7" } }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/regexp.prototype.flags": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", @@ -2489,6 +3039,41 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rollup": { + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.20.0.tgz", + "integrity": "sha512-6rbWBChcnSGzIlXeIdNIZTopKYad8ZG8ajhl78lGRLsI2rX8IkaotQhVas2Ma+GPxJav19wrSzvRvuiv0YKzWw==", + "dev": true, + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.20.0", + "@rollup/rollup-android-arm64": "4.20.0", + "@rollup/rollup-darwin-arm64": "4.20.0", + "@rollup/rollup-darwin-x64": "4.20.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.20.0", + "@rollup/rollup-linux-arm-musleabihf": "4.20.0", + "@rollup/rollup-linux-arm64-gnu": "4.20.0", + "@rollup/rollup-linux-arm64-musl": "4.20.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.20.0", + "@rollup/rollup-linux-riscv64-gnu": "4.20.0", + "@rollup/rollup-linux-s390x-gnu": "4.20.0", + "@rollup/rollup-linux-x64-gnu": "4.20.0", + "@rollup/rollup-linux-x64-musl": "4.20.0", + "@rollup/rollup-win32-arm64-msvc": "4.20.0", + "@rollup/rollup-win32-ia32-msvc": "4.20.0", + "@rollup/rollup-win32-x64-msvc": "4.20.0", + "fsevents": "~2.3.2" + } + }, "node_modules/safe-array-concat": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", @@ -2539,6 +3124,15 @@ "semver": "bin/semver.js" } }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -2622,6 +3216,12 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "node_modules/smob": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.5.0.tgz", + "integrity": "sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig==", + "dev": true + }, "node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -2631,6 +3231,25 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/spawn-wrap": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz", @@ -2730,12 +3349,12 @@ } }, "node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" @@ -2833,6 +3452,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/terser": { + "version": "5.31.5", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.5.tgz", + "integrity": "sha512-YPmas0L0rE1UyLL/llTWA0SiDOqIcAQYLeUj7cJYzXHlRTAnMSg9pPe4VJ5PlKvTrPQsdVFuiRiwyeNlYgwh2Q==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -3024,16 +3661,24 @@ } }, "node_modules/typescript": { - "version": "3.3.4000", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.3.4000.tgz", - "integrity": "sha512-jjOcCZvpkl2+z7JFn0yBOoLQyLoIkNZAs/fYJkUG6VKy6zLPHJGfQJYFHzibB6GJaF/8QrcECtlQ5cpvRHSMEA==", + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=12.20" + } + }, + "node_modules/uint8array-tools": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/uint8array-tools/-/uint8array-tools-0.0.8.tgz", + "integrity": "sha512-xS6+s8e0Xbx++5/0L+yyexukU7pz//Yg6IHg3BKhXotg1JcYtgxVcUctQ0HxLByiJzpAkNFawz1Nz5Xadzo82g==", + "engines": { + "node": ">=14.0.0" } }, "node_modules/unbox-primitive": { diff --git a/package.json b/package.json index abc0e37..49a1be4 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,14 @@ "version": "3.1.0", "description": "Bitcoin BIP39: Mnemonic code for generating deterministic keys", "type": "module", + "main": "src/cjs/index.cjs", + "module": "src/esm/index.js", + "types": "src/cjs/index.d.ts", "exports": { ".": { - "types": "./src/index.d.ts", - "import": "./src/index.js" + "types": "./src/cjs/index.d.ts", + "import": "./src/esm/index.js", + "require": "./src/cjs/index.cjs" }, "./wordlists": { "import": "./src/wordlists" @@ -43,7 +47,7 @@ } }, "scripts": { - "build": "npm run clean && tsc -p tsconfig.json", + "build": "rollup -c rollup.config.ts --configPlugin typescript", "clean": "rm -rf src", "coverage": "nyc --branches 85 --functions 100 --check-coverage npm run unit", "format": "npm run prettier -- --write", @@ -72,16 +76,23 @@ "src" ], "dependencies": { - "@noble/hashes": "^1.2.0" + "@noble/hashes": "^1.2.0", + "uint8array-tools": "^0.0.8" }, "devDependencies": { + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-node-resolve": "^15.2.3", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^11.1.6", "@types/node": "11.11.6", "node-fetch": "2.6.9", "nyc": "^15.0.0", "prettier": "1.16.4", "proxyquire": "^1.7.10", + "rollup": "^4.9.6", "tape": "^5.3.0", "tslint": "^6.1.0", - "typescript": "3.3.4000" - } + "typescript": "5.0.4" + }, + "sideEffects": false } diff --git a/rollup.config.ts b/rollup.config.ts new file mode 100644 index 0000000..86c669e --- /dev/null +++ b/rollup.config.ts @@ -0,0 +1,42 @@ +import commonjs from '@rollup/plugin-commonjs' +import nodeResolve from '@rollup/plugin-node-resolve' +import typescript from '@rollup/plugin-typescript' +import terser from '@rollup/plugin-terser'; + + +const treeshake = { + moduleSideEffects : false, + propertyReadSideEffects : false, + tryCatchDeoptimization : false +} + +const onwarn = (warning) => { + if ( + warning.code === 'INVALID_ANNOTATION' && + warning.message.includes('@__PURE__') + ) { + return + } + throw new Error(warning) +} + +export default { + plugins: [ typescript(), nodeResolve(), commonjs() ], + input: 'ts_src/index.ts', + onwarn, + output: [ + { + file: 'src/cjs/index.cjs', + format: 'cjs', + sourcemap: true, + }, + { + file: 'src/esm/index.js', + format: 'es', + sourcemap: true, + minifyInternalExports: false + } + ], + strictDeprecations: true, + treeshake +} \ No newline at end of file diff --git a/src/cjs/index.cjs b/src/cjs/index.cjs new file mode 100644 index 0000000..2b86223 --- /dev/null +++ b/src/cjs/index.cjs @@ -0,0 +1,21534 @@ +'use strict'; + +function number(n) { + if (!Number.isSafeInteger(n) || n < 0) + throw new Error(`Wrong positive integer: ${n}`); +} +function bool(b) { + if (typeof b !== 'boolean') + throw new Error(`Expected boolean, not ${b}`); +} +function bytes(b, ...lengths) { + if (!(b instanceof Uint8Array)) + throw new TypeError('Expected Uint8Array'); + if (lengths.length > 0 && !lengths.includes(b.length)) + throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`); +} +function hash(hash) { + if (typeof hash !== 'function' || typeof hash.create !== 'function') + throw new Error('Hash should be wrapped by utils.wrapConstructor'); + number(hash.outputLen); + number(hash.blockLen); +} +function exists(instance, checkFinished = true) { + if (instance.destroyed) + throw new Error('Hash instance has been destroyed'); + if (checkFinished && instance.finished) + throw new Error('Hash#digest() has already been called'); +} +function output(out, instance) { + bytes(out); + const min = instance.outputLen; + if (out.length < min) { + throw new Error(`digestInto() expects output buffer of length at least ${min}`); + } +} +const assert = { + number, + bool, + bytes, + hash, + exists, + output, +}; + +/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +// The import here is via the package name. This is to ensure +// that exports mapping/resolution does fall into place. +// Cast array to view +const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength); +// The rotate right (circular right shift) operation for uint32 +const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift); +const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44; +// There is almost no big endian hardware, but js typed arrays uses platform specific endianness. +// So, just to be sure not to corrupt anything. +if (!isLE) + throw new Error('Non little-endian hardware is not supported'); +Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0')); +// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise +// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need. +const nextTick = async () => { }; +// Returns control to thread each 'tick' ms to avoid blocking +async function asyncLoop(iters, tick, cb) { + let ts = Date.now(); + for (let i = 0; i < iters; i++) { + cb(i); + // Date.now() is not monotonic, so in case if clock goes backwards we return return control too + const diff = Date.now() - ts; + if (diff >= 0 && diff < tick) + continue; + await nextTick(); + ts += diff; + } +} +function utf8ToBytes(str) { + if (typeof str !== 'string') { + throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`); + } + return new TextEncoder().encode(str); +} +function toBytes(data) { + if (typeof data === 'string') + data = utf8ToBytes(data); + if (!(data instanceof Uint8Array)) + throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`); + return data; +} +// For runtime check if class implements interface +class Hash { + // Safe version that clones internal state + clone() { + return this._cloneInto(); + } +} +// Check if object doens't have custom constructor (like Uint8Array/Array) +const isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object; +function checkOpts(defaults, opts) { + if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts))) + throw new TypeError('Options should be object or undefined'); + const merged = Object.assign(defaults, opts); + return merged; +} +function wrapConstructor(hashConstructor) { + const hashC = (message) => hashConstructor().update(toBytes(message)).digest(); + const tmp = hashConstructor(); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = () => hashConstructor(); + return hashC; +} + +// Polyfill for Safari 14 +function setBigUint64(view, byteOffset, value, isLE) { + if (typeof view.setBigUint64 === 'function') + return view.setBigUint64(byteOffset, value, isLE); + const _32n = BigInt(32); + const _u32_max = BigInt(0xffffffff); + const wh = Number((value >> _32n) & _u32_max); + const wl = Number(value & _u32_max); + const h = isLE ? 4 : 0; + const l = isLE ? 0 : 4; + view.setUint32(byteOffset + h, wh, isLE); + view.setUint32(byteOffset + l, wl, isLE); +} +// Base SHA2 class (RFC 6234) +class SHA2 extends Hash { + constructor(blockLen, outputLen, padOffset, isLE) { + super(); + this.blockLen = blockLen; + this.outputLen = outputLen; + this.padOffset = padOffset; + this.isLE = isLE; + this.finished = false; + this.length = 0; + this.pos = 0; + this.destroyed = false; + this.buffer = new Uint8Array(blockLen); + this.view = createView(this.buffer); + } + update(data) { + assert.exists(this); + const { view, buffer, blockLen } = this; + data = toBytes(data); + const len = data.length; + for (let pos = 0; pos < len;) { + const take = Math.min(blockLen - this.pos, len - pos); + // Fast path: we have at least one block in input, cast it to view and process + if (take === blockLen) { + const dataView = createView(data); + for (; blockLen <= len - pos; pos += blockLen) + this.process(dataView, pos); + continue; + } + buffer.set(data.subarray(pos, pos + take), this.pos); + this.pos += take; + pos += take; + if (this.pos === blockLen) { + this.process(view, 0); + this.pos = 0; + } + } + this.length += data.length; + this.roundClean(); + return this; + } + digestInto(out) { + assert.exists(this); + assert.output(out, this); + this.finished = true; + // Padding + // We can avoid allocation of buffer for padding completely if it + // was previously not allocated here. But it won't change performance. + const { buffer, view, blockLen, isLE } = this; + let { pos } = this; + // append the bit '1' to the message + buffer[pos++] = 0b10000000; + this.buffer.subarray(pos).fill(0); + // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again + if (this.padOffset > blockLen - pos) { + this.process(view, 0); + pos = 0; + } + // Pad until full block byte with zeros + for (let i = pos; i < blockLen; i++) + buffer[i] = 0; + // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that + // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen. + // So we just write lowest 64 bits of that value. + setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE); + this.process(view, 0); + const oview = createView(out); + const len = this.outputLen; + // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT + if (len % 4) + throw new Error('_sha2: outputLen should be aligned to 32bit'); + const outLen = len / 4; + const state = this.get(); + if (outLen > state.length) + throw new Error('_sha2: outputLen bigger than state'); + for (let i = 0; i < outLen; i++) + oview.setUint32(4 * i, state[i], isLE); + } + digest() { + const { buffer, outputLen } = this; + this.digestInto(buffer); + const res = buffer.slice(0, outputLen); + this.destroy(); + return res; + } + _cloneInto(to) { + to || (to = new this.constructor()); + to.set(...this.get()); + const { blockLen, buffer, length, finished, destroyed, pos } = this; + to.length = length; + to.pos = pos; + to.finished = finished; + to.destroyed = destroyed; + if (length % blockLen) + to.buffer.set(buffer); + return to; + } +} + +// Choice: a ? b : c +const Chi = (a, b, c) => (a & b) ^ (~a & c); +// Majority function, true if any two inpust is true +const Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c); +// Round constants: +// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311) +// prettier-ignore +const SHA256_K = new Uint32Array([ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +]); +// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19): +// prettier-ignore +const IV = new Uint32Array([ + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 +]); +// Temporary buffer, not used to store anything between runs +// Named this way because it matches specification. +const SHA256_W = new Uint32Array(64); +class SHA256 extends SHA2 { + constructor() { + super(64, 32, 8, false); + // We cannot use array here since array allows indexing by variable + // which means optimizer/compiler cannot use registers. + this.A = IV[0] | 0; + this.B = IV[1] | 0; + this.C = IV[2] | 0; + this.D = IV[3] | 0; + this.E = IV[4] | 0; + this.F = IV[5] | 0; + this.G = IV[6] | 0; + this.H = IV[7] | 0; + } + get() { + const { A, B, C, D, E, F, G, H } = this; + return [A, B, C, D, E, F, G, H]; + } + // prettier-ignore + set(A, B, C, D, E, F, G, H) { + this.A = A | 0; + this.B = B | 0; + this.C = C | 0; + this.D = D | 0; + this.E = E | 0; + this.F = F | 0; + this.G = G | 0; + this.H = H | 0; + } + process(view, offset) { + // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array + for (let i = 0; i < 16; i++, offset += 4) + SHA256_W[i] = view.getUint32(offset, false); + for (let i = 16; i < 64; i++) { + const W15 = SHA256_W[i - 15]; + const W2 = SHA256_W[i - 2]; + const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3); + const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10); + SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0; + } + // Compression function main loop, 64 rounds + let { A, B, C, D, E, F, G, H } = this; + for (let i = 0; i < 64; i++) { + const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25); + const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0; + const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22); + const T2 = (sigma0 + Maj(A, B, C)) | 0; + H = G; + G = F; + F = E; + E = (D + T1) | 0; + D = C; + C = B; + B = A; + A = (T1 + T2) | 0; + } + // Add the compressed chunk to the current hash value + A = (A + this.A) | 0; + B = (B + this.B) | 0; + C = (C + this.C) | 0; + D = (D + this.D) | 0; + E = (E + this.E) | 0; + F = (F + this.F) | 0; + G = (G + this.G) | 0; + H = (H + this.H) | 0; + this.set(A, B, C, D, E, F, G, H); + } + roundClean() { + SHA256_W.fill(0); + } + destroy() { + this.set(0, 0, 0, 0, 0, 0, 0, 0); + this.buffer.fill(0); + } +} +// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf +class SHA224 extends SHA256 { + constructor() { + super(); + this.A = 0xc1059ed8 | 0; + this.B = 0x367cd507 | 0; + this.C = 0x3070dd17 | 0; + this.D = 0xf70e5939 | 0; + this.E = 0xffc00b31 | 0; + this.F = 0x68581511 | 0; + this.G = 0x64f98fa7 | 0; + this.H = 0xbefa4fa4 | 0; + this.outputLen = 28; + } +} +/** + * SHA2-256 hash function + * @param message - data that would be hashed + */ +const sha256 = wrapConstructor(() => new SHA256()); +wrapConstructor(() => new SHA224()); + +const U32_MASK64 = BigInt(2 ** 32 - 1); +const _32n = BigInt(32); +// We are not using BigUint64Array, because they are extremely slow as per 2022 +function fromBig(n, le = false) { + if (le) + return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) }; + return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 }; +} +function split(lst, le = false) { + let Ah = new Uint32Array(lst.length); + let Al = new Uint32Array(lst.length); + for (let i = 0; i < lst.length; i++) { + const { h, l } = fromBig(lst[i], le); + [Ah[i], Al[i]] = [h, l]; + } + return [Ah, Al]; +} +const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0); +// for Shift in [0, 32) +const shrSH = (h, l, s) => h >>> s; +const shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s); +// Right rotate for Shift in [1, 32) +const rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s)); +const rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s); +// Right rotate for Shift in (32, 64), NOTE: 32 is special case. +const rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32)); +const rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s)); +// Right rotate for shift===32 (just swaps l&h) +const rotr32H = (h, l) => l; +const rotr32L = (h, l) => h; +// Left rotate for Shift in [1, 32) +const rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s)); +const rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s)); +// Left rotate for Shift in (32, 64), NOTE: 32 is special case. +const rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s)); +const rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s)); +// JS uses 32-bit signed integers for bitwise operations which means we cannot +// simple take carry out of low bit sum by shift, we need to use division. +// Removing "export" has 5% perf penalty -_- +function add(Ah, Al, Bh, Bl) { + const l = (Al >>> 0) + (Bl >>> 0); + return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 }; +} +// Addition with more than 2 elements +const add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0); +const add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0; +const add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0); +const add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0; +const add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0); +const add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0; +// prettier-ignore +const u64 = { + fromBig, split, toBig, + shrSH, shrSL, + rotrSH, rotrSL, rotrBH, rotrBL, + rotr32H, rotr32L, + rotlSH, rotlSL, rotlBH, rotlBL, + add, add3L, add3H, add4L, add4H, add5H, add5L, +}; + +// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409): +// prettier-ignore +const [SHA512_Kh, SHA512_Kl] = u64.split([ + '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc', + '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118', + '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2', + '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694', + '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65', + '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5', + '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4', + '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70', + '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df', + '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b', + '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30', + '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8', + '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8', + '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3', + '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec', + '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b', + '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178', + '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b', + '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c', + '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817' +].map(n => BigInt(n))); +// Temporary buffer, not used to store anything between runs +const SHA512_W_H = new Uint32Array(80); +const SHA512_W_L = new Uint32Array(80); +class SHA512 extends SHA2 { + constructor() { + super(128, 64, 16, false); + // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers. + // Also looks cleaner and easier to verify with spec. + // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19): + // h -- high 32 bits, l -- low 32 bits + this.Ah = 0x6a09e667 | 0; + this.Al = 0xf3bcc908 | 0; + this.Bh = 0xbb67ae85 | 0; + this.Bl = 0x84caa73b | 0; + this.Ch = 0x3c6ef372 | 0; + this.Cl = 0xfe94f82b | 0; + this.Dh = 0xa54ff53a | 0; + this.Dl = 0x5f1d36f1 | 0; + this.Eh = 0x510e527f | 0; + this.El = 0xade682d1 | 0; + this.Fh = 0x9b05688c | 0; + this.Fl = 0x2b3e6c1f | 0; + this.Gh = 0x1f83d9ab | 0; + this.Gl = 0xfb41bd6b | 0; + this.Hh = 0x5be0cd19 | 0; + this.Hl = 0x137e2179 | 0; + } + // prettier-ignore + get() { + const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this; + return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl]; + } + // prettier-ignore + set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) { + this.Ah = Ah | 0; + this.Al = Al | 0; + this.Bh = Bh | 0; + this.Bl = Bl | 0; + this.Ch = Ch | 0; + this.Cl = Cl | 0; + this.Dh = Dh | 0; + this.Dl = Dl | 0; + this.Eh = Eh | 0; + this.El = El | 0; + this.Fh = Fh | 0; + this.Fl = Fl | 0; + this.Gh = Gh | 0; + this.Gl = Gl | 0; + this.Hh = Hh | 0; + this.Hl = Hl | 0; + } + process(view, offset) { + // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array + for (let i = 0; i < 16; i++, offset += 4) { + SHA512_W_H[i] = view.getUint32(offset); + SHA512_W_L[i] = view.getUint32((offset += 4)); + } + for (let i = 16; i < 80; i++) { + // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7) + const W15h = SHA512_W_H[i - 15] | 0; + const W15l = SHA512_W_L[i - 15] | 0; + const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7); + const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7); + // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6) + const W2h = SHA512_W_H[i - 2] | 0; + const W2l = SHA512_W_L[i - 2] | 0; + const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6); + const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6); + // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16]; + const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]); + const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]); + SHA512_W_H[i] = SUMh | 0; + SHA512_W_L[i] = SUMl | 0; + } + let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this; + // Compression function main loop, 80 rounds + for (let i = 0; i < 80; i++) { + // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41) + const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41); + const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41); + //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0; + const CHIh = (Eh & Fh) ^ (~Eh & Gh); + const CHIl = (El & Fl) ^ (~El & Gl); + // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i] + // prettier-ignore + const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]); + const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]); + const T1l = T1ll | 0; + // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39) + const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39); + const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39); + const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch); + const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl); + Hh = Gh | 0; + Hl = Gl | 0; + Gh = Fh | 0; + Gl = Fl | 0; + Fh = Eh | 0; + Fl = El | 0; + ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0)); + Dh = Ch | 0; + Dl = Cl | 0; + Ch = Bh | 0; + Cl = Bl | 0; + Bh = Ah | 0; + Bl = Al | 0; + const All = u64.add3L(T1l, sigma0l, MAJl); + Ah = u64.add3H(All, T1h, sigma0h, MAJh); + Al = All | 0; + } + // Add the compressed chunk to the current hash value + ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0)); + ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0)); + ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0)); + ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0)); + ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0)); + ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0)); + ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0)); + ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0)); + this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl); + } + roundClean() { + SHA512_W_H.fill(0); + SHA512_W_L.fill(0); + } + destroy() { + this.buffer.fill(0); + this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + } +} +class SHA512_224 extends SHA512 { + constructor() { + super(); + // h -- high 32 bits, l -- low 32 bits + this.Ah = 0x8c3d37c8 | 0; + this.Al = 0x19544da2 | 0; + this.Bh = 0x73e19966 | 0; + this.Bl = 0x89dcd4d6 | 0; + this.Ch = 0x1dfab7ae | 0; + this.Cl = 0x32ff9c82 | 0; + this.Dh = 0x679dd514 | 0; + this.Dl = 0x582f9fcf | 0; + this.Eh = 0x0f6d2b69 | 0; + this.El = 0x7bd44da8 | 0; + this.Fh = 0x77e36f73 | 0; + this.Fl = 0x04c48942 | 0; + this.Gh = 0x3f9d85a8 | 0; + this.Gl = 0x6a1d36c8 | 0; + this.Hh = 0x1112e6ad | 0; + this.Hl = 0x91d692a1 | 0; + this.outputLen = 28; + } +} +class SHA512_256 extends SHA512 { + constructor() { + super(); + // h -- high 32 bits, l -- low 32 bits + this.Ah = 0x22312194 | 0; + this.Al = 0xfc2bf72c | 0; + this.Bh = 0x9f555fa3 | 0; + this.Bl = 0xc84c64c2 | 0; + this.Ch = 0x2393b86b | 0; + this.Cl = 0x6f53b151 | 0; + this.Dh = 0x96387719 | 0; + this.Dl = 0x5940eabd | 0; + this.Eh = 0x96283ee2 | 0; + this.El = 0xa88effe3 | 0; + this.Fh = 0xbe5e1e25 | 0; + this.Fl = 0x53863992 | 0; + this.Gh = 0x2b0199fc | 0; + this.Gl = 0x2c85b8aa | 0; + this.Hh = 0x0eb72ddc | 0; + this.Hl = 0x81c52ca2 | 0; + this.outputLen = 32; + } +} +class SHA384 extends SHA512 { + constructor() { + super(); + // h -- high 32 bits, l -- low 32 bits + this.Ah = 0xcbbb9d5d | 0; + this.Al = 0xc1059ed8 | 0; + this.Bh = 0x629a292a | 0; + this.Bl = 0x367cd507 | 0; + this.Ch = 0x9159015a | 0; + this.Cl = 0x3070dd17 | 0; + this.Dh = 0x152fecd8 | 0; + this.Dl = 0xf70e5939 | 0; + this.Eh = 0x67332667 | 0; + this.El = 0xffc00b31 | 0; + this.Fh = 0x8eb44a87 | 0; + this.Fl = 0x68581511 | 0; + this.Gh = 0xdb0c2e0d | 0; + this.Gl = 0x64f98fa7 | 0; + this.Hh = 0x47b5481d | 0; + this.Hl = 0xbefa4fa4 | 0; + this.outputLen = 48; + } +} +const sha512 = wrapConstructor(() => new SHA512()); +wrapConstructor(() => new SHA512_224()); +wrapConstructor(() => new SHA512_256()); +wrapConstructor(() => new SHA384()); + +// HMAC (RFC 2104) +class HMAC extends Hash { + constructor(hash, _key) { + super(); + this.finished = false; + this.destroyed = false; + assert.hash(hash); + const key = toBytes(_key); + this.iHash = hash.create(); + if (typeof this.iHash.update !== 'function') + throw new TypeError('Expected instance of class which extends utils.Hash'); + this.blockLen = this.iHash.blockLen; + this.outputLen = this.iHash.outputLen; + const blockLen = this.blockLen; + const pad = new Uint8Array(blockLen); + // blockLen can be bigger than outputLen + pad.set(key.length > blockLen ? hash.create().update(key).digest() : key); + for (let i = 0; i < pad.length; i++) + pad[i] ^= 0x36; + this.iHash.update(pad); + // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone + this.oHash = hash.create(); + // Undo internal XOR && apply outer XOR + for (let i = 0; i < pad.length; i++) + pad[i] ^= 0x36 ^ 0x5c; + this.oHash.update(pad); + pad.fill(0); + } + update(buf) { + assert.exists(this); + this.iHash.update(buf); + return this; + } + digestInto(out) { + assert.exists(this); + assert.bytes(out, this.outputLen); + this.finished = true; + this.iHash.digestInto(out); + this.oHash.update(out); + this.oHash.digestInto(out); + this.destroy(); + } + digest() { + const out = new Uint8Array(this.oHash.outputLen); + this.digestInto(out); + return out; + } + _cloneInto(to) { + // Create new instance without calling constructor since key already in state and we don't know it. + to || (to = Object.create(Object.getPrototypeOf(this), {})); + const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this; + to = to; + to.finished = finished; + to.destroyed = destroyed; + to.blockLen = blockLen; + to.outputLen = outputLen; + to.oHash = oHash._cloneInto(to.oHash); + to.iHash = iHash._cloneInto(to.iHash); + return to; + } + destroy() { + this.destroyed = true; + this.oHash.destroy(); + this.iHash.destroy(); + } +} +/** + * HMAC: RFC2104 message authentication code. + * @param hash - function that would be used e.g. sha256 + * @param key - message key + * @param message - message data + */ +const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest(); +hmac.create = (hash, key) => new HMAC(hash, key); + +// Common prologue and epilogue for sync/async functions +function pbkdf2Init(hash, _password, _salt, _opts) { + assert.hash(hash); + const opts = checkOpts({ dkLen: 32, asyncTick: 10 }, _opts); + const { c, dkLen, asyncTick } = opts; + assert.number(c); + assert.number(dkLen); + assert.number(asyncTick); + if (c < 1) + throw new Error('PBKDF2: iterations (c) should be >= 1'); + const password = toBytes(_password); + const salt = toBytes(_salt); + // DK = PBKDF2(PRF, Password, Salt, c, dkLen); + const DK = new Uint8Array(dkLen); + // U1 = PRF(Password, Salt + INT_32_BE(i)) + const PRF = hmac.create(hash, password); + const PRFSalt = PRF._cloneInto().update(salt); + return { c, dkLen, asyncTick, DK, PRF, PRFSalt }; +} +function pbkdf2Output(PRF, PRFSalt, DK, prfW, u) { + PRF.destroy(); + PRFSalt.destroy(); + if (prfW) + prfW.destroy(); + u.fill(0); + return DK; +} +/** + * PBKDF2-HMAC: RFC 2898 key derivation function + * @param hash - hash function that would be used e.g. sha256 + * @param password - password from which a derived key is generated + * @param salt - cryptographic salt + * @param opts - {c, dkLen} where c is work factor and dkLen is output message size + */ +function pbkdf2(hash, password, salt, opts) { + const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts); + let prfW; // Working copy + const arr = new Uint8Array(4); + const view = createView(arr); + const u = new Uint8Array(PRF.outputLen); + // DK = T1 + T2 + ⋯ + Tdklen/hlen + for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) { + // Ti = F(Password, Salt, c, i) + const Ti = DK.subarray(pos, pos + PRF.outputLen); + view.setInt32(0, ti, false); + // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc + // U1 = PRF(Password, Salt + INT_32_BE(i)) + (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u); + Ti.set(u.subarray(0, Ti.length)); + for (let ui = 1; ui < c; ui++) { + // Uc = PRF(Password, Uc−1) + PRF._cloneInto(prfW).update(u).digestInto(u); + for (let i = 0; i < Ti.length; i++) + Ti[i] ^= u[i]; + } + } + return pbkdf2Output(PRF, PRFSalt, DK, prfW, u); +} +async function pbkdf2Async(hash, password, salt, opts) { + const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts); + let prfW; // Working copy + const arr = new Uint8Array(4); + const view = createView(arr); + const u = new Uint8Array(PRF.outputLen); + // DK = T1 + T2 + ⋯ + Tdklen/hlen + for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) { + // Ti = F(Password, Salt, c, i) + const Ti = DK.subarray(pos, pos + PRF.outputLen); + view.setInt32(0, ti, false); + // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc + // U1 = PRF(Password, Salt + INT_32_BE(i)) + (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u); + Ti.set(u.subarray(0, Ti.length)); + await asyncLoop(c - 1, asyncTick, (i) => { + // Uc = PRF(Password, Uc−1) + PRF._cloneInto(prfW).update(u).digestInto(u); + for (let i = 0; i < Ti.length; i++) + Ti[i] ^= u[i]; + }); + } + return pbkdf2Output(PRF, PRFSalt, DK, prfW, u); +} + +const HEX_STRINGS = "0123456789abcdefABCDEF"; +const HEX_CODES = HEX_STRINGS.split("").map((c) => c.codePointAt(0)); +const HEX_CODEPOINTS = Array(256) + .fill(true) + .map((_, i) => { + const s = String.fromCodePoint(i); + const index = HEX_STRINGS.indexOf(s); + // ABCDEF will use 10 - 15 + return index < 0 ? undefined : index < 16 ? index : index - 6; +}); +const ENCODER = new TextEncoder(); +const DECODER = new TextDecoder(); +function fromUtf8(s) { + return ENCODER.encode(s); +} +// There are two implementations. +// One optimizes for length of the bytes, and uses TextDecoder. +// One optimizes for iteration count, and appends strings. +// This removes the overhead of TextDecoder. +function toHex(bytes) { + const b = bytes || new Uint8Array(); + return b.length > 512 ? _toHexLengthPerf(b) : _toHexIterPerf(b); +} +function _toHexIterPerf(bytes) { + let s = ""; + for (let i = 0; i < bytes.length; ++i) { + s += HEX_STRINGS[HEX_CODEPOINTS[HEX_CODES[bytes[i] >> 4]]]; + s += HEX_STRINGS[HEX_CODEPOINTS[HEX_CODES[bytes[i] & 15]]]; + } + return s; +} +function _toHexLengthPerf(bytes) { + const hexBytes = new Uint8Array(bytes.length * 2); + for (let i = 0; i < bytes.length; ++i) { + hexBytes[i * 2] = HEX_CODES[bytes[i] >> 4]; + hexBytes[i * 2 + 1] = HEX_CODES[bytes[i] & 15]; + } + return DECODER.decode(hexBytes); +} +// Mimics Buffer.from(x, 'hex') logic +// Stops on first non-hex string and returns +// https://github.com/nodejs/node/blob/v14.18.1/src/string_bytes.cc#L246-L261 +function fromHex(hexString) { + const hexBytes = ENCODER.encode(hexString || ""); + const resultBytes = new Uint8Array(Math.floor(hexBytes.length / 2)); + let i; + for (i = 0; i < resultBytes.length; i++) { + const a = HEX_CODEPOINTS[hexBytes[i * 2]]; + const b = HEX_CODEPOINTS[hexBytes[i * 2 + 1]]; + if (a === undefined || b === undefined) { + break; + } + resultBytes[i] = (a << 4) | b; + } + return i === resultBytes.length ? resultBytes : resultBytes.slice(0, i); +} + +const chineseSimplified = [ + '的', + '一', + '是', + '在', + '不', + '了', + '有', + '和', + '人', + '这', + '中', + '大', + '为', + '上', + '个', + '国', + '我', + '以', + '要', + '他', + '时', + '来', + '用', + '们', + '生', + '到', + '作', + '地', + '于', + '出', + '就', + '分', + '对', + '成', + '会', + '可', + '主', + '发', + '年', + '动', + '同', + '工', + '也', + '能', + '下', + '过', + '子', + '说', + '产', + '种', + '面', + '而', + '方', + '后', + '多', + '定', + '行', + '学', + '法', + '所', + '民', + '得', + '经', + '十', + '三', + '之', + '进', + '着', + '等', + '部', + '度', + '家', + '电', + '力', + '里', + '如', + '水', + '化', + '高', + '自', + '二', + '理', + '起', + '小', + '物', + '现', + '实', + '加', + '量', + '都', + '两', + '体', + '制', + '机', + '当', + '使', + '点', + '从', + '业', + '本', + '去', + '把', + '性', + '好', + '应', + '开', + '它', + '合', + '还', + '因', + '由', + '其', + '些', + '然', + '前', + '外', + '天', + '政', + '四', + '日', + '那', + '社', + '义', + '事', + '平', + '形', + '相', + '全', + '表', + '间', + '样', + '与', + '关', + '各', + '重', + '新', + '线', + '内', + '数', + '正', + '心', + '反', + '你', + '明', + '看', + '原', + '又', + '么', + '利', + '比', + '或', + '但', + '质', + '气', + '第', + '向', + '道', + '命', + '此', + '变', + '条', + '只', + '没', + '结', + '解', + '问', + '意', + '建', + '月', + '公', + '无', + '系', + '军', + '很', + '情', + '者', + '最', + '立', + '代', + '想', + '已', + '通', + '并', + '提', + '直', + '题', + '党', + '程', + '展', + '五', + '果', + '料', + '象', + '员', + '革', + '位', + '入', + '常', + '文', + '总', + '次', + '品', + '式', + '活', + '设', + '及', + '管', + '特', + '件', + '长', + '求', + '老', + '头', + '基', + '资', + '边', + '流', + '路', + '级', + '少', + '图', + '山', + '统', + '接', + '知', + '较', + '将', + '组', + '见', + '计', + '别', + '她', + '手', + '角', + '期', + '根', + '论', + '运', + '农', + '指', + '几', + '九', + '区', + '强', + '放', + '决', + '西', + '被', + '干', + '做', + '必', + '战', + '先', + '回', + '则', + '任', + '取', + '据', + '处', + '队', + '南', + '给', + '色', + '光', + '门', + '即', + '保', + '治', + '北', + '造', + '百', + '规', + '热', + '领', + '七', + '海', + '口', + '东', + '导', + '器', + '压', + '志', + '世', + '金', + '增', + '争', + '济', + '阶', + '油', + '思', + '术', + '极', + '交', + '受', + '联', + '什', + '认', + '六', + '共', + '权', + '收', + '证', + '改', + '清', + '美', + '再', + '采', + '转', + '更', + '单', + '风', + '切', + '打', + '白', + '教', + '速', + '花', + '带', + '安', + '场', + '身', + '车', + '例', + '真', + '务', + '具', + '万', + '每', + '目', + '至', + '达', + '走', + '积', + '示', + '议', + '声', + '报', + '斗', + '完', + '类', + '八', + '离', + '华', + '名', + '确', + '才', + '科', + '张', + '信', + '马', + '节', + '话', + '米', + '整', + '空', + '元', + '况', + '今', + '集', + '温', + '传', + '土', + '许', + '步', + '群', + '广', + '石', + '记', + '需', + '段', + '研', + '界', + '拉', + '林', + '律', + '叫', + '且', + '究', + '观', + '越', + '织', + '装', + '影', + '算', + '低', + '持', + '音', + '众', + '书', + '布', + '复', + '容', + '儿', + '须', + '际', + '商', + '非', + '验', + '连', + '断', + '深', + '难', + '近', + '矿', + '千', + '周', + '委', + '素', + '技', + '备', + '半', + '办', + '青', + '省', + '列', + '习', + '响', + '约', + '支', + '般', + '史', + '感', + '劳', + '便', + '团', + '往', + '酸', + '历', + '市', + '克', + '何', + '除', + '消', + '构', + '府', + '称', + '太', + '准', + '精', + '值', + '号', + '率', + '族', + '维', + '划', + '选', + '标', + '写', + '存', + '候', + '毛', + '亲', + '快', + '效', + '斯', + '院', + '查', + '江', + '型', + '眼', + '王', + '按', + '格', + '养', + '易', + '置', + '派', + '层', + '片', + '始', + '却', + '专', + '状', + '育', + '厂', + '京', + '识', + '适', + '属', + '圆', + '包', + '火', + '住', + '调', + '满', + '县', + '局', + '照', + '参', + '红', + '细', + '引', + '听', + '该', + '铁', + '价', + '严', + '首', + '底', + '液', + '官', + '德', + '随', + '病', + '苏', + '失', + '尔', + '死', + '讲', + '配', + '女', + '黄', + '推', + '显', + '谈', + '罪', + '神', + '艺', + '呢', + '席', + '含', + '企', + '望', + '密', + '批', + '营', + '项', + '防', + '举', + '球', + '英', + '氧', + '势', + '告', + '李', + '台', + '落', + '木', + '帮', + '轮', + '破', + '亚', + '师', + '围', + '注', + '远', + '字', + '材', + '排', + '供', + '河', + '态', + '封', + '另', + '施', + '减', + '树', + '溶', + '怎', + '止', + '案', + '言', + '士', + '均', + '武', + '固', + '叶', + '鱼', + '波', + '视', + '仅', + '费', + '紧', + '爱', + '左', + '章', + '早', + '朝', + '害', + '续', + '轻', + '服', + '试', + '食', + '充', + '兵', + '源', + '判', + '护', + '司', + '足', + '某', + '练', + '差', + '致', + '板', + '田', + '降', + '黑', + '犯', + '负', + '击', + '范', + '继', + '兴', + '似', + '余', + '坚', + '曲', + '输', + '修', + '故', + '城', + '夫', + '够', + '送', + '笔', + '船', + '占', + '右', + '财', + '吃', + '富', + '春', + '职', + '觉', + '汉', + '画', + '功', + '巴', + '跟', + '虽', + '杂', + '飞', + '检', + '吸', + '助', + '升', + '阳', + '互', + '初', + '创', + '抗', + '考', + '投', + '坏', + '策', + '古', + '径', + '换', + '未', + '跑', + '留', + '钢', + '曾', + '端', + '责', + '站', + '简', + '述', + '钱', + '副', + '尽', + '帝', + '射', + '草', + '冲', + '承', + '独', + '令', + '限', + '阿', + '宣', + '环', + '双', + '请', + '超', + '微', + '让', + '控', + '州', + '良', + '轴', + '找', + '否', + '纪', + '益', + '依', + '优', + '顶', + '础', + '载', + '倒', + '房', + '突', + '坐', + '粉', + '敌', + '略', + '客', + '袁', + '冷', + '胜', + '绝', + '析', + '块', + '剂', + '测', + '丝', + '协', + '诉', + '念', + '陈', + '仍', + '罗', + '盐', + '友', + '洋', + '错', + '苦', + '夜', + '刑', + '移', + '频', + '逐', + '靠', + '混', + '母', + '短', + '皮', + '终', + '聚', + '汽', + '村', + '云', + '哪', + '既', + '距', + '卫', + '停', + '烈', + '央', + '察', + '烧', + '迅', + '境', + '若', + '印', + '洲', + '刻', + '括', + '激', + '孔', + '搞', + '甚', + '室', + '待', + '核', + '校', + '散', + '侵', + '吧', + '甲', + '游', + '久', + '菜', + '味', + '旧', + '模', + '湖', + '货', + '损', + '预', + '阻', + '毫', + '普', + '稳', + '乙', + '妈', + '植', + '息', + '扩', + '银', + '语', + '挥', + '酒', + '守', + '拿', + '序', + '纸', + '医', + '缺', + '雨', + '吗', + '针', + '刘', + '啊', + '急', + '唱', + '误', + '训', + '愿', + '审', + '附', + '获', + '茶', + '鲜', + '粮', + '斤', + '孩', + '脱', + '硫', + '肥', + '善', + '龙', + '演', + '父', + '渐', + '血', + '欢', + '械', + '掌', + '歌', + '沙', + '刚', + '攻', + '谓', + '盾', + '讨', + '晚', + '粒', + '乱', + '燃', + '矛', + '乎', + '杀', + '药', + '宁', + '鲁', + '贵', + '钟', + '煤', + '读', + '班', + '伯', + '香', + '介', + '迫', + '句', + '丰', + '培', + '握', + '兰', + '担', + '弦', + '蛋', + '沉', + '假', + '穿', + '执', + '答', + '乐', + '谁', + '顺', + '烟', + '缩', + '征', + '脸', + '喜', + '松', + '脚', + '困', + '异', + '免', + '背', + '星', + '福', + '买', + '染', + '井', + '概', + '慢', + '怕', + '磁', + '倍', + '祖', + '皇', + '促', + '静', + '补', + '评', + '翻', + '肉', + '践', + '尼', + '衣', + '宽', + '扬', + '棉', + '希', + '伤', + '操', + '垂', + '秋', + '宜', + '氢', + '套', + '督', + '振', + '架', + '亮', + '末', + '宪', + '庆', + '编', + '牛', + '触', + '映', + '雷', + '销', + '诗', + '座', + '居', + '抓', + '裂', + '胞', + '呼', + '娘', + '景', + '威', + '绿', + '晶', + '厚', + '盟', + '衡', + '鸡', + '孙', + '延', + '危', + '胶', + '屋', + '乡', + '临', + '陆', + '顾', + '掉', + '呀', + '灯', + '岁', + '措', + '束', + '耐', + '剧', + '玉', + '赵', + '跳', + '哥', + '季', + '课', + '凯', + '胡', + '额', + '款', + '绍', + '卷', + '齐', + '伟', + '蒸', + '殖', + '永', + '宗', + '苗', + '川', + '炉', + '岩', + '弱', + '零', + '杨', + '奏', + '沿', + '露', + '杆', + '探', + '滑', + '镇', + '饭', + '浓', + '航', + '怀', + '赶', + '库', + '夺', + '伊', + '灵', + '税', + '途', + '灭', + '赛', + '归', + '召', + '鼓', + '播', + '盘', + '裁', + '险', + '康', + '唯', + '录', + '菌', + '纯', + '借', + '糖', + '盖', + '横', + '符', + '私', + '努', + '堂', + '域', + '枪', + '润', + '幅', + '哈', + '竟', + '熟', + '虫', + '泽', + '脑', + '壤', + '碳', + '欧', + '遍', + '侧', + '寨', + '敢', + '彻', + '虑', + '斜', + '薄', + '庭', + '纳', + '弹', + '饲', + '伸', + '折', + '麦', + '湿', + '暗', + '荷', + '瓦', + '塞', + '床', + '筑', + '恶', + '户', + '访', + '塔', + '奇', + '透', + '梁', + '刀', + '旋', + '迹', + '卡', + '氯', + '遇', + '份', + '毒', + '泥', + '退', + '洗', + '摆', + '灰', + '彩', + '卖', + '耗', + '夏', + '择', + '忙', + '铜', + '献', + '硬', + '予', + '繁', + '圈', + '雪', + '函', + '亦', + '抽', + '篇', + '阵', + '阴', + '丁', + '尺', + '追', + '堆', + '雄', + '迎', + '泛', + '爸', + '楼', + '避', + '谋', + '吨', + '野', + '猪', + '旗', + '累', + '偏', + '典', + '馆', + '索', + '秦', + '脂', + '潮', + '爷', + '豆', + '忽', + '托', + '惊', + '塑', + '遗', + '愈', + '朱', + '替', + '纤', + '粗', + '倾', + '尚', + '痛', + '楚', + '谢', + '奋', + '购', + '磨', + '君', + '池', + '旁', + '碎', + '骨', + '监', + '捕', + '弟', + '暴', + '割', + '贯', + '殊', + '释', + '词', + '亡', + '壁', + '顿', + '宝', + '午', + '尘', + '闻', + '揭', + '炮', + '残', + '冬', + '桥', + '妇', + '警', + '综', + '招', + '吴', + '付', + '浮', + '遭', + '徐', + '您', + '摇', + '谷', + '赞', + '箱', + '隔', + '订', + '男', + '吹', + '园', + '纷', + '唐', + '败', + '宋', + '玻', + '巨', + '耕', + '坦', + '荣', + '闭', + '湾', + '键', + '凡', + '驻', + '锅', + '救', + '恩', + '剥', + '凝', + '碱', + '齿', + '截', + '炼', + '麻', + '纺', + '禁', + '废', + '盛', + '版', + '缓', + '净', + '睛', + '昌', + '婚', + '涉', + '筒', + '嘴', + '插', + '岸', + '朗', + '庄', + '街', + '藏', + '姑', + '贸', + '腐', + '奴', + '啦', + '惯', + '乘', + '伙', + '恢', + '匀', + '纱', + '扎', + '辩', + '耳', + '彪', + '臣', + '亿', + '璃', + '抵', + '脉', + '秀', + '萨', + '俄', + '网', + '舞', + '店', + '喷', + '纵', + '寸', + '汗', + '挂', + '洪', + '贺', + '闪', + '柬', + '爆', + '烯', + '津', + '稻', + '墙', + '软', + '勇', + '像', + '滚', + '厘', + '蒙', + '芳', + '肯', + '坡', + '柱', + '荡', + '腿', + '仪', + '旅', + '尾', + '轧', + '冰', + '贡', + '登', + '黎', + '削', + '钻', + '勒', + '逃', + '障', + '氨', + '郭', + '峰', + '币', + '港', + '伏', + '轨', + '亩', + '毕', + '擦', + '莫', + '刺', + '浪', + '秘', + '援', + '株', + '健', + '售', + '股', + '岛', + '甘', + '泡', + '睡', + '童', + '铸', + '汤', + '阀', + '休', + '汇', + '舍', + '牧', + '绕', + '炸', + '哲', + '磷', + '绩', + '朋', + '淡', + '尖', + '启', + '陷', + '柴', + '呈', + '徒', + '颜', + '泪', + '稍', + '忘', + '泵', + '蓝', + '拖', + '洞', + '授', + '镜', + '辛', + '壮', + '锋', + '贫', + '虚', + '弯', + '摩', + '泰', + '幼', + '廷', + '尊', + '窗', + '纲', + '弄', + '隶', + '疑', + '氏', + '宫', + '姐', + '震', + '瑞', + '怪', + '尤', + '琴', + '循', + '描', + '膜', + '违', + '夹', + '腰', + '缘', + '珠', + '穷', + '森', + '枝', + '竹', + '沟', + '催', + '绳', + '忆', + '邦', + '剩', + '幸', + '浆', + '栏', + '拥', + '牙', + '贮', + '礼', + '滤', + '钠', + '纹', + '罢', + '拍', + '咱', + '喊', + '袖', + '埃', + '勤', + '罚', + '焦', + '潜', + '伍', + '墨', + '欲', + '缝', + '姓', + '刊', + '饱', + '仿', + '奖', + '铝', + '鬼', + '丽', + '跨', + '默', + '挖', + '链', + '扫', + '喝', + '袋', + '炭', + '污', + '幕', + '诸', + '弧', + '励', + '梅', + '奶', + '洁', + '灾', + '舟', + '鉴', + '苯', + '讼', + '抱', + '毁', + '懂', + '寒', + '智', + '埔', + '寄', + '届', + '跃', + '渡', + '挑', + '丹', + '艰', + '贝', + '碰', + '拔', + '爹', + '戴', + '码', + '梦', + '芽', + '熔', + '赤', + '渔', + '哭', + '敬', + '颗', + '奔', + '铅', + '仲', + '虎', + '稀', + '妹', + '乏', + '珍', + '申', + '桌', + '遵', + '允', + '隆', + '螺', + '仓', + '魏', + '锐', + '晓', + '氮', + '兼', + '隐', + '碍', + '赫', + '拨', + '忠', + '肃', + '缸', + '牵', + '抢', + '博', + '巧', + '壳', + '兄', + '杜', + '讯', + '诚', + '碧', + '祥', + '柯', + '页', + '巡', + '矩', + '悲', + '灌', + '龄', + '伦', + '票', + '寻', + '桂', + '铺', + '圣', + '恐', + '恰', + '郑', + '趣', + '抬', + '荒', + '腾', + '贴', + '柔', + '滴', + '猛', + '阔', + '辆', + '妻', + '填', + '撤', + '储', + '签', + '闹', + '扰', + '紫', + '砂', + '递', + '戏', + '吊', + '陶', + '伐', + '喂', + '疗', + '瓶', + '婆', + '抚', + '臂', + '摸', + '忍', + '虾', + '蜡', + '邻', + '胸', + '巩', + '挤', + '偶', + '弃', + '槽', + '劲', + '乳', + '邓', + '吉', + '仁', + '烂', + '砖', + '租', + '乌', + '舰', + '伴', + '瓜', + '浅', + '丙', + '暂', + '燥', + '橡', + '柳', + '迷', + '暖', + '牌', + '秧', + '胆', + '详', + '簧', + '踏', + '瓷', + '谱', + '呆', + '宾', + '糊', + '洛', + '辉', + '愤', + '竞', + '隙', + '怒', + '粘', + '乃', + '绪', + '肩', + '籍', + '敏', + '涂', + '熙', + '皆', + '侦', + '悬', + '掘', + '享', + '纠', + '醒', + '狂', + '锁', + '淀', + '恨', + '牲', + '霸', + '爬', + '赏', + '逆', + '玩', + '陵', + '祝', + '秒', + '浙', + '貌', + '役', + '彼', + '悉', + '鸭', + '趋', + '凤', + '晨', + '畜', + '辈', + '秩', + '卵', + '署', + '梯', + '炎', + '滩', + '棋', + '驱', + '筛', + '峡', + '冒', + '啥', + '寿', + '译', + '浸', + '泉', + '帽', + '迟', + '硅', + '疆', + '贷', + '漏', + '稿', + '冠', + '嫩', + '胁', + '芯', + '牢', + '叛', + '蚀', + '奥', + '鸣', + '岭', + '羊', + '凭', + '串', + '塘', + '绘', + '酵', + '融', + '盆', + '锡', + '庙', + '筹', + '冻', + '辅', + '摄', + '袭', + '筋', + '拒', + '僚', + '旱', + '钾', + '鸟', + '漆', + '沈', + '眉', + '疏', + '添', + '棒', + '穗', + '硝', + '韩', + '逼', + '扭', + '侨', + '凉', + '挺', + '碗', + '栽', + '炒', + '杯', + '患', + '馏', + '劝', + '豪', + '辽', + '勃', + '鸿', + '旦', + '吏', + '拜', + '狗', + '埋', + '辊', + '掩', + '饮', + '搬', + '骂', + '辞', + '勾', + '扣', + '估', + '蒋', + '绒', + '雾', + '丈', + '朵', + '姆', + '拟', + '宇', + '辑', + '陕', + '雕', + '偿', + '蓄', + '崇', + '剪', + '倡', + '厅', + '咬', + '驶', + '薯', + '刷', + '斥', + '番', + '赋', + '奉', + '佛', + '浇', + '漫', + '曼', + '扇', + '钙', + '桃', + '扶', + '仔', + '返', + '俗', + '亏', + '腔', + '鞋', + '棱', + '覆', + '框', + '悄', + '叔', + '撞', + '骗', + '勘', + '旺', + '沸', + '孤', + '吐', + '孟', + '渠', + '屈', + '疾', + '妙', + '惜', + '仰', + '狠', + '胀', + '谐', + '抛', + '霉', + '桑', + '岗', + '嘛', + '衰', + '盗', + '渗', + '脏', + '赖', + '涌', + '甜', + '曹', + '阅', + '肌', + '哩', + '厉', + '烃', + '纬', + '毅', + '昨', + '伪', + '症', + '煮', + '叹', + '钉', + '搭', + '茎', + '笼', + '酷', + '偷', + '弓', + '锥', + '恒', + '杰', + '坑', + '鼻', + '翼', + '纶', + '叙', + '狱', + '逮', + '罐', + '络', + '棚', + '抑', + '膨', + '蔬', + '寺', + '骤', + '穆', + '冶', + '枯', + '册', + '尸', + '凸', + '绅', + '坯', + '牺', + '焰', + '轰', + '欣', + '晋', + '瘦', + '御', + '锭', + '锦', + '丧', + '旬', + '锻', + '垄', + '搜', + '扑', + '邀', + '亭', + '酯', + '迈', + '舒', + '脆', + '酶', + '闲', + '忧', + '酚', + '顽', + '羽', + '涨', + '卸', + '仗', + '陪', + '辟', + '惩', + '杭', + '姚', + '肚', + '捉', + '飘', + '漂', + '昆', + '欺', + '吾', + '郎', + '烷', + '汁', + '呵', + '饰', + '萧', + '雅', + '邮', + '迁', + '燕', + '撒', + '姻', + '赴', + '宴', + '烦', + '债', + '帐', + '斑', + '铃', + '旨', + '醇', + '董', + '饼', + '雏', + '姿', + '拌', + '傅', + '腹', + '妥', + '揉', + '贤', + '拆', + '歪', + '葡', + '胺', + '丢', + '浩', + '徽', + '昂', + '垫', + '挡', + '览', + '贪', + '慰', + '缴', + '汪', + '慌', + '冯', + '诺', + '姜', + '谊', + '凶', + '劣', + '诬', + '耀', + '昏', + '躺', + '盈', + '骑', + '乔', + '溪', + '丛', + '卢', + '抹', + '闷', + '咨', + '刮', + '驾', + '缆', + '悟', + '摘', + '铒', + '掷', + '颇', + '幻', + '柄', + '惠', + '惨', + '佳', + '仇', + '腊', + '窝', + '涤', + '剑', + '瞧', + '堡', + '泼', + '葱', + '罩', + '霍', + '捞', + '胎', + '苍', + '滨', + '俩', + '捅', + '湘', + '砍', + '霞', + '邵', + '萄', + '疯', + '淮', + '遂', + '熊', + '粪', + '烘', + '宿', + '档', + '戈', + '驳', + '嫂', + '裕', + '徙', + '箭', + '捐', + '肠', + '撑', + '晒', + '辨', + '殿', + '莲', + '摊', + '搅', + '酱', + '屏', + '疫', + '哀', + '蔡', + '堵', + '沫', + '皱', + '畅', + '叠', + '阁', + '莱', + '敲', + '辖', + '钩', + '痕', + '坝', + '巷', + '饿', + '祸', + '丘', + '玄', + '溜', + '曰', + '逻', + '彭', + '尝', + '卿', + '妨', + '艇', + '吞', + '韦', + '怨', + '矮', + '歇', +]; + +const chineseTraditional = [ + '的', + '一', + '是', + '在', + '不', + '了', + '有', + '和', + '人', + '這', + '中', + '大', + '為', + '上', + '個', + '國', + '我', + '以', + '要', + '他', + '時', + '來', + '用', + '們', + '生', + '到', + '作', + '地', + '於', + '出', + '就', + '分', + '對', + '成', + '會', + '可', + '主', + '發', + '年', + '動', + '同', + '工', + '也', + '能', + '下', + '過', + '子', + '說', + '產', + '種', + '面', + '而', + '方', + '後', + '多', + '定', + '行', + '學', + '法', + '所', + '民', + '得', + '經', + '十', + '三', + '之', + '進', + '著', + '等', + '部', + '度', + '家', + '電', + '力', + '裡', + '如', + '水', + '化', + '高', + '自', + '二', + '理', + '起', + '小', + '物', + '現', + '實', + '加', + '量', + '都', + '兩', + '體', + '制', + '機', + '當', + '使', + '點', + '從', + '業', + '本', + '去', + '把', + '性', + '好', + '應', + '開', + '它', + '合', + '還', + '因', + '由', + '其', + '些', + '然', + '前', + '外', + '天', + '政', + '四', + '日', + '那', + '社', + '義', + '事', + '平', + '形', + '相', + '全', + '表', + '間', + '樣', + '與', + '關', + '各', + '重', + '新', + '線', + '內', + '數', + '正', + '心', + '反', + '你', + '明', + '看', + '原', + '又', + '麼', + '利', + '比', + '或', + '但', + '質', + '氣', + '第', + '向', + '道', + '命', + '此', + '變', + '條', + '只', + '沒', + '結', + '解', + '問', + '意', + '建', + '月', + '公', + '無', + '系', + '軍', + '很', + '情', + '者', + '最', + '立', + '代', + '想', + '已', + '通', + '並', + '提', + '直', + '題', + '黨', + '程', + '展', + '五', + '果', + '料', + '象', + '員', + '革', + '位', + '入', + '常', + '文', + '總', + '次', + '品', + '式', + '活', + '設', + '及', + '管', + '特', + '件', + '長', + '求', + '老', + '頭', + '基', + '資', + '邊', + '流', + '路', + '級', + '少', + '圖', + '山', + '統', + '接', + '知', + '較', + '將', + '組', + '見', + '計', + '別', + '她', + '手', + '角', + '期', + '根', + '論', + '運', + '農', + '指', + '幾', + '九', + '區', + '強', + '放', + '決', + '西', + '被', + '幹', + '做', + '必', + '戰', + '先', + '回', + '則', + '任', + '取', + '據', + '處', + '隊', + '南', + '給', + '色', + '光', + '門', + '即', + '保', + '治', + '北', + '造', + '百', + '規', + '熱', + '領', + '七', + '海', + '口', + '東', + '導', + '器', + '壓', + '志', + '世', + '金', + '增', + '爭', + '濟', + '階', + '油', + '思', + '術', + '極', + '交', + '受', + '聯', + '什', + '認', + '六', + '共', + '權', + '收', + '證', + '改', + '清', + '美', + '再', + '採', + '轉', + '更', + '單', + '風', + '切', + '打', + '白', + '教', + '速', + '花', + '帶', + '安', + '場', + '身', + '車', + '例', + '真', + '務', + '具', + '萬', + '每', + '目', + '至', + '達', + '走', + '積', + '示', + '議', + '聲', + '報', + '鬥', + '完', + '類', + '八', + '離', + '華', + '名', + '確', + '才', + '科', + '張', + '信', + '馬', + '節', + '話', + '米', + '整', + '空', + '元', + '況', + '今', + '集', + '溫', + '傳', + '土', + '許', + '步', + '群', + '廣', + '石', + '記', + '需', + '段', + '研', + '界', + '拉', + '林', + '律', + '叫', + '且', + '究', + '觀', + '越', + '織', + '裝', + '影', + '算', + '低', + '持', + '音', + '眾', + '書', + '布', + '复', + '容', + '兒', + '須', + '際', + '商', + '非', + '驗', + '連', + '斷', + '深', + '難', + '近', + '礦', + '千', + '週', + '委', + '素', + '技', + '備', + '半', + '辦', + '青', + '省', + '列', + '習', + '響', + '約', + '支', + '般', + '史', + '感', + '勞', + '便', + '團', + '往', + '酸', + '歷', + '市', + '克', + '何', + '除', + '消', + '構', + '府', + '稱', + '太', + '準', + '精', + '值', + '號', + '率', + '族', + '維', + '劃', + '選', + '標', + '寫', + '存', + '候', + '毛', + '親', + '快', + '效', + '斯', + '院', + '查', + '江', + '型', + '眼', + '王', + '按', + '格', + '養', + '易', + '置', + '派', + '層', + '片', + '始', + '卻', + '專', + '狀', + '育', + '廠', + '京', + '識', + '適', + '屬', + '圓', + '包', + '火', + '住', + '調', + '滿', + '縣', + '局', + '照', + '參', + '紅', + '細', + '引', + '聽', + '該', + '鐵', + '價', + '嚴', + '首', + '底', + '液', + '官', + '德', + '隨', + '病', + '蘇', + '失', + '爾', + '死', + '講', + '配', + '女', + '黃', + '推', + '顯', + '談', + '罪', + '神', + '藝', + '呢', + '席', + '含', + '企', + '望', + '密', + '批', + '營', + '項', + '防', + '舉', + '球', + '英', + '氧', + '勢', + '告', + '李', + '台', + '落', + '木', + '幫', + '輪', + '破', + '亞', + '師', + '圍', + '注', + '遠', + '字', + '材', + '排', + '供', + '河', + '態', + '封', + '另', + '施', + '減', + '樹', + '溶', + '怎', + '止', + '案', + '言', + '士', + '均', + '武', + '固', + '葉', + '魚', + '波', + '視', + '僅', + '費', + '緊', + '愛', + '左', + '章', + '早', + '朝', + '害', + '續', + '輕', + '服', + '試', + '食', + '充', + '兵', + '源', + '判', + '護', + '司', + '足', + '某', + '練', + '差', + '致', + '板', + '田', + '降', + '黑', + '犯', + '負', + '擊', + '范', + '繼', + '興', + '似', + '餘', + '堅', + '曲', + '輸', + '修', + '故', + '城', + '夫', + '夠', + '送', + '筆', + '船', + '佔', + '右', + '財', + '吃', + '富', + '春', + '職', + '覺', + '漢', + '畫', + '功', + '巴', + '跟', + '雖', + '雜', + '飛', + '檢', + '吸', + '助', + '昇', + '陽', + '互', + '初', + '創', + '抗', + '考', + '投', + '壞', + '策', + '古', + '徑', + '換', + '未', + '跑', + '留', + '鋼', + '曾', + '端', + '責', + '站', + '簡', + '述', + '錢', + '副', + '盡', + '帝', + '射', + '草', + '衝', + '承', + '獨', + '令', + '限', + '阿', + '宣', + '環', + '雙', + '請', + '超', + '微', + '讓', + '控', + '州', + '良', + '軸', + '找', + '否', + '紀', + '益', + '依', + '優', + '頂', + '礎', + '載', + '倒', + '房', + '突', + '坐', + '粉', + '敵', + '略', + '客', + '袁', + '冷', + '勝', + '絕', + '析', + '塊', + '劑', + '測', + '絲', + '協', + '訴', + '念', + '陳', + '仍', + '羅', + '鹽', + '友', + '洋', + '錯', + '苦', + '夜', + '刑', + '移', + '頻', + '逐', + '靠', + '混', + '母', + '短', + '皮', + '終', + '聚', + '汽', + '村', + '雲', + '哪', + '既', + '距', + '衛', + '停', + '烈', + '央', + '察', + '燒', + '迅', + '境', + '若', + '印', + '洲', + '刻', + '括', + '激', + '孔', + '搞', + '甚', + '室', + '待', + '核', + '校', + '散', + '侵', + '吧', + '甲', + '遊', + '久', + '菜', + '味', + '舊', + '模', + '湖', + '貨', + '損', + '預', + '阻', + '毫', + '普', + '穩', + '乙', + '媽', + '植', + '息', + '擴', + '銀', + '語', + '揮', + '酒', + '守', + '拿', + '序', + '紙', + '醫', + '缺', + '雨', + '嗎', + '針', + '劉', + '啊', + '急', + '唱', + '誤', + '訓', + '願', + '審', + '附', + '獲', + '茶', + '鮮', + '糧', + '斤', + '孩', + '脫', + '硫', + '肥', + '善', + '龍', + '演', + '父', + '漸', + '血', + '歡', + '械', + '掌', + '歌', + '沙', + '剛', + '攻', + '謂', + '盾', + '討', + '晚', + '粒', + '亂', + '燃', + '矛', + '乎', + '殺', + '藥', + '寧', + '魯', + '貴', + '鐘', + '煤', + '讀', + '班', + '伯', + '香', + '介', + '迫', + '句', + '豐', + '培', + '握', + '蘭', + '擔', + '弦', + '蛋', + '沉', + '假', + '穿', + '執', + '答', + '樂', + '誰', + '順', + '煙', + '縮', + '徵', + '臉', + '喜', + '松', + '腳', + '困', + '異', + '免', + '背', + '星', + '福', + '買', + '染', + '井', + '概', + '慢', + '怕', + '磁', + '倍', + '祖', + '皇', + '促', + '靜', + '補', + '評', + '翻', + '肉', + '踐', + '尼', + '衣', + '寬', + '揚', + '棉', + '希', + '傷', + '操', + '垂', + '秋', + '宜', + '氫', + '套', + '督', + '振', + '架', + '亮', + '末', + '憲', + '慶', + '編', + '牛', + '觸', + '映', + '雷', + '銷', + '詩', + '座', + '居', + '抓', + '裂', + '胞', + '呼', + '娘', + '景', + '威', + '綠', + '晶', + '厚', + '盟', + '衡', + '雞', + '孫', + '延', + '危', + '膠', + '屋', + '鄉', + '臨', + '陸', + '顧', + '掉', + '呀', + '燈', + '歲', + '措', + '束', + '耐', + '劇', + '玉', + '趙', + '跳', + '哥', + '季', + '課', + '凱', + '胡', + '額', + '款', + '紹', + '卷', + '齊', + '偉', + '蒸', + '殖', + '永', + '宗', + '苗', + '川', + '爐', + '岩', + '弱', + '零', + '楊', + '奏', + '沿', + '露', + '桿', + '探', + '滑', + '鎮', + '飯', + '濃', + '航', + '懷', + '趕', + '庫', + '奪', + '伊', + '靈', + '稅', + '途', + '滅', + '賽', + '歸', + '召', + '鼓', + '播', + '盤', + '裁', + '險', + '康', + '唯', + '錄', + '菌', + '純', + '借', + '糖', + '蓋', + '橫', + '符', + '私', + '努', + '堂', + '域', + '槍', + '潤', + '幅', + '哈', + '竟', + '熟', + '蟲', + '澤', + '腦', + '壤', + '碳', + '歐', + '遍', + '側', + '寨', + '敢', + '徹', + '慮', + '斜', + '薄', + '庭', + '納', + '彈', + '飼', + '伸', + '折', + '麥', + '濕', + '暗', + '荷', + '瓦', + '塞', + '床', + '築', + '惡', + '戶', + '訪', + '塔', + '奇', + '透', + '梁', + '刀', + '旋', + '跡', + '卡', + '氯', + '遇', + '份', + '毒', + '泥', + '退', + '洗', + '擺', + '灰', + '彩', + '賣', + '耗', + '夏', + '擇', + '忙', + '銅', + '獻', + '硬', + '予', + '繁', + '圈', + '雪', + '函', + '亦', + '抽', + '篇', + '陣', + '陰', + '丁', + '尺', + '追', + '堆', + '雄', + '迎', + '泛', + '爸', + '樓', + '避', + '謀', + '噸', + '野', + '豬', + '旗', + '累', + '偏', + '典', + '館', + '索', + '秦', + '脂', + '潮', + '爺', + '豆', + '忽', + '托', + '驚', + '塑', + '遺', + '愈', + '朱', + '替', + '纖', + '粗', + '傾', + '尚', + '痛', + '楚', + '謝', + '奮', + '購', + '磨', + '君', + '池', + '旁', + '碎', + '骨', + '監', + '捕', + '弟', + '暴', + '割', + '貫', + '殊', + '釋', + '詞', + '亡', + '壁', + '頓', + '寶', + '午', + '塵', + '聞', + '揭', + '炮', + '殘', + '冬', + '橋', + '婦', + '警', + '綜', + '招', + '吳', + '付', + '浮', + '遭', + '徐', + '您', + '搖', + '谷', + '贊', + '箱', + '隔', + '訂', + '男', + '吹', + '園', + '紛', + '唐', + '敗', + '宋', + '玻', + '巨', + '耕', + '坦', + '榮', + '閉', + '灣', + '鍵', + '凡', + '駐', + '鍋', + '救', + '恩', + '剝', + '凝', + '鹼', + '齒', + '截', + '煉', + '麻', + '紡', + '禁', + '廢', + '盛', + '版', + '緩', + '淨', + '睛', + '昌', + '婚', + '涉', + '筒', + '嘴', + '插', + '岸', + '朗', + '莊', + '街', + '藏', + '姑', + '貿', + '腐', + '奴', + '啦', + '慣', + '乘', + '夥', + '恢', + '勻', + '紗', + '扎', + '辯', + '耳', + '彪', + '臣', + '億', + '璃', + '抵', + '脈', + '秀', + '薩', + '俄', + '網', + '舞', + '店', + '噴', + '縱', + '寸', + '汗', + '掛', + '洪', + '賀', + '閃', + '柬', + '爆', + '烯', + '津', + '稻', + '牆', + '軟', + '勇', + '像', + '滾', + '厘', + '蒙', + '芳', + '肯', + '坡', + '柱', + '盪', + '腿', + '儀', + '旅', + '尾', + '軋', + '冰', + '貢', + '登', + '黎', + '削', + '鑽', + '勒', + '逃', + '障', + '氨', + '郭', + '峰', + '幣', + '港', + '伏', + '軌', + '畝', + '畢', + '擦', + '莫', + '刺', + '浪', + '秘', + '援', + '株', + '健', + '售', + '股', + '島', + '甘', + '泡', + '睡', + '童', + '鑄', + '湯', + '閥', + '休', + '匯', + '舍', + '牧', + '繞', + '炸', + '哲', + '磷', + '績', + '朋', + '淡', + '尖', + '啟', + '陷', + '柴', + '呈', + '徒', + '顏', + '淚', + '稍', + '忘', + '泵', + '藍', + '拖', + '洞', + '授', + '鏡', + '辛', + '壯', + '鋒', + '貧', + '虛', + '彎', + '摩', + '泰', + '幼', + '廷', + '尊', + '窗', + '綱', + '弄', + '隸', + '疑', + '氏', + '宮', + '姐', + '震', + '瑞', + '怪', + '尤', + '琴', + '循', + '描', + '膜', + '違', + '夾', + '腰', + '緣', + '珠', + '窮', + '森', + '枝', + '竹', + '溝', + '催', + '繩', + '憶', + '邦', + '剩', + '幸', + '漿', + '欄', + '擁', + '牙', + '貯', + '禮', + '濾', + '鈉', + '紋', + '罷', + '拍', + '咱', + '喊', + '袖', + '埃', + '勤', + '罰', + '焦', + '潛', + '伍', + '墨', + '欲', + '縫', + '姓', + '刊', + '飽', + '仿', + '獎', + '鋁', + '鬼', + '麗', + '跨', + '默', + '挖', + '鏈', + '掃', + '喝', + '袋', + '炭', + '污', + '幕', + '諸', + '弧', + '勵', + '梅', + '奶', + '潔', + '災', + '舟', + '鑑', + '苯', + '訟', + '抱', + '毀', + '懂', + '寒', + '智', + '埔', + '寄', + '屆', + '躍', + '渡', + '挑', + '丹', + '艱', + '貝', + '碰', + '拔', + '爹', + '戴', + '碼', + '夢', + '芽', + '熔', + '赤', + '漁', + '哭', + '敬', + '顆', + '奔', + '鉛', + '仲', + '虎', + '稀', + '妹', + '乏', + '珍', + '申', + '桌', + '遵', + '允', + '隆', + '螺', + '倉', + '魏', + '銳', + '曉', + '氮', + '兼', + '隱', + '礙', + '赫', + '撥', + '忠', + '肅', + '缸', + '牽', + '搶', + '博', + '巧', + '殼', + '兄', + '杜', + '訊', + '誠', + '碧', + '祥', + '柯', + '頁', + '巡', + '矩', + '悲', + '灌', + '齡', + '倫', + '票', + '尋', + '桂', + '鋪', + '聖', + '恐', + '恰', + '鄭', + '趣', + '抬', + '荒', + '騰', + '貼', + '柔', + '滴', + '猛', + '闊', + '輛', + '妻', + '填', + '撤', + '儲', + '簽', + '鬧', + '擾', + '紫', + '砂', + '遞', + '戲', + '吊', + '陶', + '伐', + '餵', + '療', + '瓶', + '婆', + '撫', + '臂', + '摸', + '忍', + '蝦', + '蠟', + '鄰', + '胸', + '鞏', + '擠', + '偶', + '棄', + '槽', + '勁', + '乳', + '鄧', + '吉', + '仁', + '爛', + '磚', + '租', + '烏', + '艦', + '伴', + '瓜', + '淺', + '丙', + '暫', + '燥', + '橡', + '柳', + '迷', + '暖', + '牌', + '秧', + '膽', + '詳', + '簧', + '踏', + '瓷', + '譜', + '呆', + '賓', + '糊', + '洛', + '輝', + '憤', + '競', + '隙', + '怒', + '粘', + '乃', + '緒', + '肩', + '籍', + '敏', + '塗', + '熙', + '皆', + '偵', + '懸', + '掘', + '享', + '糾', + '醒', + '狂', + '鎖', + '淀', + '恨', + '牲', + '霸', + '爬', + '賞', + '逆', + '玩', + '陵', + '祝', + '秒', + '浙', + '貌', + '役', + '彼', + '悉', + '鴨', + '趨', + '鳳', + '晨', + '畜', + '輩', + '秩', + '卵', + '署', + '梯', + '炎', + '灘', + '棋', + '驅', + '篩', + '峽', + '冒', + '啥', + '壽', + '譯', + '浸', + '泉', + '帽', + '遲', + '矽', + '疆', + '貸', + '漏', + '稿', + '冠', + '嫩', + '脅', + '芯', + '牢', + '叛', + '蝕', + '奧', + '鳴', + '嶺', + '羊', + '憑', + '串', + '塘', + '繪', + '酵', + '融', + '盆', + '錫', + '廟', + '籌', + '凍', + '輔', + '攝', + '襲', + '筋', + '拒', + '僚', + '旱', + '鉀', + '鳥', + '漆', + '沈', + '眉', + '疏', + '添', + '棒', + '穗', + '硝', + '韓', + '逼', + '扭', + '僑', + '涼', + '挺', + '碗', + '栽', + '炒', + '杯', + '患', + '餾', + '勸', + '豪', + '遼', + '勃', + '鴻', + '旦', + '吏', + '拜', + '狗', + '埋', + '輥', + '掩', + '飲', + '搬', + '罵', + '辭', + '勾', + '扣', + '估', + '蔣', + '絨', + '霧', + '丈', + '朵', + '姆', + '擬', + '宇', + '輯', + '陝', + '雕', + '償', + '蓄', + '崇', + '剪', + '倡', + '廳', + '咬', + '駛', + '薯', + '刷', + '斥', + '番', + '賦', + '奉', + '佛', + '澆', + '漫', + '曼', + '扇', + '鈣', + '桃', + '扶', + '仔', + '返', + '俗', + '虧', + '腔', + '鞋', + '棱', + '覆', + '框', + '悄', + '叔', + '撞', + '騙', + '勘', + '旺', + '沸', + '孤', + '吐', + '孟', + '渠', + '屈', + '疾', + '妙', + '惜', + '仰', + '狠', + '脹', + '諧', + '拋', + '黴', + '桑', + '崗', + '嘛', + '衰', + '盜', + '滲', + '臟', + '賴', + '湧', + '甜', + '曹', + '閱', + '肌', + '哩', + '厲', + '烴', + '緯', + '毅', + '昨', + '偽', + '症', + '煮', + '嘆', + '釘', + '搭', + '莖', + '籠', + '酷', + '偷', + '弓', + '錐', + '恆', + '傑', + '坑', + '鼻', + '翼', + '綸', + '敘', + '獄', + '逮', + '罐', + '絡', + '棚', + '抑', + '膨', + '蔬', + '寺', + '驟', + '穆', + '冶', + '枯', + '冊', + '屍', + '凸', + '紳', + '坯', + '犧', + '焰', + '轟', + '欣', + '晉', + '瘦', + '禦', + '錠', + '錦', + '喪', + '旬', + '鍛', + '壟', + '搜', + '撲', + '邀', + '亭', + '酯', + '邁', + '舒', + '脆', + '酶', + '閒', + '憂', + '酚', + '頑', + '羽', + '漲', + '卸', + '仗', + '陪', + '闢', + '懲', + '杭', + '姚', + '肚', + '捉', + '飄', + '漂', + '昆', + '欺', + '吾', + '郎', + '烷', + '汁', + '呵', + '飾', + '蕭', + '雅', + '郵', + '遷', + '燕', + '撒', + '姻', + '赴', + '宴', + '煩', + '債', + '帳', + '斑', + '鈴', + '旨', + '醇', + '董', + '餅', + '雛', + '姿', + '拌', + '傅', + '腹', + '妥', + '揉', + '賢', + '拆', + '歪', + '葡', + '胺', + '丟', + '浩', + '徽', + '昂', + '墊', + '擋', + '覽', + '貪', + '慰', + '繳', + '汪', + '慌', + '馮', + '諾', + '姜', + '誼', + '兇', + '劣', + '誣', + '耀', + '昏', + '躺', + '盈', + '騎', + '喬', + '溪', + '叢', + '盧', + '抹', + '悶', + '諮', + '刮', + '駕', + '纜', + '悟', + '摘', + '鉺', + '擲', + '頗', + '幻', + '柄', + '惠', + '慘', + '佳', + '仇', + '臘', + '窩', + '滌', + '劍', + '瞧', + '堡', + '潑', + '蔥', + '罩', + '霍', + '撈', + '胎', + '蒼', + '濱', + '倆', + '捅', + '湘', + '砍', + '霞', + '邵', + '萄', + '瘋', + '淮', + '遂', + '熊', + '糞', + '烘', + '宿', + '檔', + '戈', + '駁', + '嫂', + '裕', + '徙', + '箭', + '捐', + '腸', + '撐', + '曬', + '辨', + '殿', + '蓮', + '攤', + '攪', + '醬', + '屏', + '疫', + '哀', + '蔡', + '堵', + '沫', + '皺', + '暢', + '疊', + '閣', + '萊', + '敲', + '轄', + '鉤', + '痕', + '壩', + '巷', + '餓', + '禍', + '丘', + '玄', + '溜', + '曰', + '邏', + '彭', + '嘗', + '卿', + '妨', + '艇', + '吞', + '韋', + '怨', + '矮', + '歇', +]; + +const czech = [ + 'abdikace', + 'abeceda', + 'adresa', + 'agrese', + 'akce', + 'aktovka', + 'alej', + 'alkohol', + 'amputace', + 'ananas', + 'andulka', + 'anekdota', + 'anketa', + 'antika', + 'anulovat', + 'archa', + 'arogance', + 'asfalt', + 'asistent', + 'aspirace', + 'astma', + 'astronom', + 'atlas', + 'atletika', + 'atol', + 'autobus', + 'azyl', + 'babka', + 'bachor', + 'bacil', + 'baculka', + 'badatel', + 'bageta', + 'bagr', + 'bahno', + 'bakterie', + 'balada', + 'baletka', + 'balkon', + 'balonek', + 'balvan', + 'balza', + 'bambus', + 'bankomat', + 'barbar', + 'baret', + 'barman', + 'baroko', + 'barva', + 'baterka', + 'batoh', + 'bavlna', + 'bazalka', + 'bazilika', + 'bazuka', + 'bedna', + 'beran', + 'beseda', + 'bestie', + 'beton', + 'bezinka', + 'bezmoc', + 'beztak', + 'bicykl', + 'bidlo', + 'biftek', + 'bikiny', + 'bilance', + 'biograf', + 'biolog', + 'bitva', + 'bizon', + 'blahobyt', + 'blatouch', + 'blecha', + 'bledule', + 'blesk', + 'blikat', + 'blizna', + 'blokovat', + 'bloudit', + 'blud', + 'bobek', + 'bobr', + 'bodlina', + 'bodnout', + 'bohatost', + 'bojkot', + 'bojovat', + 'bokorys', + 'bolest', + 'borec', + 'borovice', + 'bota', + 'boubel', + 'bouchat', + 'bouda', + 'boule', + 'bourat', + 'boxer', + 'bradavka', + 'brambora', + 'branka', + 'bratr', + 'brepta', + 'briketa', + 'brko', + 'brloh', + 'bronz', + 'broskev', + 'brunetka', + 'brusinka', + 'brzda', + 'brzy', + 'bublina', + 'bubnovat', + 'buchta', + 'buditel', + 'budka', + 'budova', + 'bufet', + 'bujarost', + 'bukvice', + 'buldok', + 'bulva', + 'bunda', + 'bunkr', + 'burza', + 'butik', + 'buvol', + 'buzola', + 'bydlet', + 'bylina', + 'bytovka', + 'bzukot', + 'capart', + 'carevna', + 'cedr', + 'cedule', + 'cejch', + 'cejn', + 'cela', + 'celer', + 'celkem', + 'celnice', + 'cenina', + 'cennost', + 'cenovka', + 'centrum', + 'cenzor', + 'cestopis', + 'cetka', + 'chalupa', + 'chapadlo', + 'charita', + 'chata', + 'chechtat', + 'chemie', + 'chichot', + 'chirurg', + 'chlad', + 'chleba', + 'chlubit', + 'chmel', + 'chmura', + 'chobot', + 'chochol', + 'chodba', + 'cholera', + 'chomout', + 'chopit', + 'choroba', + 'chov', + 'chrapot', + 'chrlit', + 'chrt', + 'chrup', + 'chtivost', + 'chudina', + 'chutnat', + 'chvat', + 'chvilka', + 'chvost', + 'chyba', + 'chystat', + 'chytit', + 'cibule', + 'cigareta', + 'cihelna', + 'cihla', + 'cinkot', + 'cirkus', + 'cisterna', + 'citace', + 'citrus', + 'cizinec', + 'cizost', + 'clona', + 'cokoliv', + 'couvat', + 'ctitel', + 'ctnost', + 'cudnost', + 'cuketa', + 'cukr', + 'cupot', + 'cvaknout', + 'cval', + 'cvik', + 'cvrkot', + 'cyklista', + 'daleko', + 'dareba', + 'datel', + 'datum', + 'dcera', + 'debata', + 'dechovka', + 'decibel', + 'deficit', + 'deflace', + 'dekl', + 'dekret', + 'demokrat', + 'deprese', + 'derby', + 'deska', + 'detektiv', + 'dikobraz', + 'diktovat', + 'dioda', + 'diplom', + 'disk', + 'displej', + 'divadlo', + 'divoch', + 'dlaha', + 'dlouho', + 'dluhopis', + 'dnes', + 'dobro', + 'dobytek', + 'docent', + 'dochutit', + 'dodnes', + 'dohled', + 'dohoda', + 'dohra', + 'dojem', + 'dojnice', + 'doklad', + 'dokola', + 'doktor', + 'dokument', + 'dolar', + 'doleva', + 'dolina', + 'doma', + 'dominant', + 'domluvit', + 'domov', + 'donutit', + 'dopad', + 'dopis', + 'doplnit', + 'doposud', + 'doprovod', + 'dopustit', + 'dorazit', + 'dorost', + 'dort', + 'dosah', + 'doslov', + 'dostatek', + 'dosud', + 'dosyta', + 'dotaz', + 'dotek', + 'dotknout', + 'doufat', + 'doutnat', + 'dovozce', + 'dozadu', + 'doznat', + 'dozorce', + 'drahota', + 'drak', + 'dramatik', + 'dravec', + 'draze', + 'drdol', + 'drobnost', + 'drogerie', + 'drozd', + 'drsnost', + 'drtit', + 'drzost', + 'duben', + 'duchovno', + 'dudek', + 'duha', + 'duhovka', + 'dusit', + 'dusno', + 'dutost', + 'dvojice', + 'dvorec', + 'dynamit', + 'ekolog', + 'ekonomie', + 'elektron', + 'elipsa', + 'email', + 'emise', + 'emoce', + 'empatie', + 'epizoda', + 'epocha', + 'epopej', + 'epos', + 'esej', + 'esence', + 'eskorta', + 'eskymo', + 'etiketa', + 'euforie', + 'evoluce', + 'exekuce', + 'exkurze', + 'expedice', + 'exploze', + 'export', + 'extrakt', + 'facka', + 'fajfka', + 'fakulta', + 'fanatik', + 'fantazie', + 'farmacie', + 'favorit', + 'fazole', + 'federace', + 'fejeton', + 'fenka', + 'fialka', + 'figurant', + 'filozof', + 'filtr', + 'finance', + 'finta', + 'fixace', + 'fjord', + 'flanel', + 'flirt', + 'flotila', + 'fond', + 'fosfor', + 'fotbal', + 'fotka', + 'foton', + 'frakce', + 'freska', + 'fronta', + 'fukar', + 'funkce', + 'fyzika', + 'galeje', + 'garant', + 'genetika', + 'geolog', + 'gilotina', + 'glazura', + 'glejt', + 'golem', + 'golfista', + 'gotika', + 'graf', + 'gramofon', + 'granule', + 'grep', + 'gril', + 'grog', + 'groteska', + 'guma', + 'hadice', + 'hadr', + 'hala', + 'halenka', + 'hanba', + 'hanopis', + 'harfa', + 'harpuna', + 'havran', + 'hebkost', + 'hejkal', + 'hejno', + 'hejtman', + 'hektar', + 'helma', + 'hematom', + 'herec', + 'herna', + 'heslo', + 'hezky', + 'historik', + 'hladovka', + 'hlasivky', + 'hlava', + 'hledat', + 'hlen', + 'hlodavec', + 'hloh', + 'hloupost', + 'hltat', + 'hlubina', + 'hluchota', + 'hmat', + 'hmota', + 'hmyz', + 'hnis', + 'hnojivo', + 'hnout', + 'hoblina', + 'hoboj', + 'hoch', + 'hodiny', + 'hodlat', + 'hodnota', + 'hodovat', + 'hojnost', + 'hokej', + 'holinka', + 'holka', + 'holub', + 'homole', + 'honitba', + 'honorace', + 'horal', + 'horda', + 'horizont', + 'horko', + 'horlivec', + 'hormon', + 'hornina', + 'horoskop', + 'horstvo', + 'hospoda', + 'hostina', + 'hotovost', + 'houba', + 'houf', + 'houpat', + 'houska', + 'hovor', + 'hradba', + 'hranice', + 'hravost', + 'hrazda', + 'hrbolek', + 'hrdina', + 'hrdlo', + 'hrdost', + 'hrnek', + 'hrobka', + 'hromada', + 'hrot', + 'hrouda', + 'hrozen', + 'hrstka', + 'hrubost', + 'hryzat', + 'hubenost', + 'hubnout', + 'hudba', + 'hukot', + 'humr', + 'husita', + 'hustota', + 'hvozd', + 'hybnost', + 'hydrant', + 'hygiena', + 'hymna', + 'hysterik', + 'idylka', + 'ihned', + 'ikona', + 'iluze', + 'imunita', + 'infekce', + 'inflace', + 'inkaso', + 'inovace', + 'inspekce', + 'internet', + 'invalida', + 'investor', + 'inzerce', + 'ironie', + 'jablko', + 'jachta', + 'jahoda', + 'jakmile', + 'jakost', + 'jalovec', + 'jantar', + 'jarmark', + 'jaro', + 'jasan', + 'jasno', + 'jatka', + 'javor', + 'jazyk', + 'jedinec', + 'jedle', + 'jednatel', + 'jehlan', + 'jekot', + 'jelen', + 'jelito', + 'jemnost', + 'jenom', + 'jepice', + 'jeseter', + 'jevit', + 'jezdec', + 'jezero', + 'jinak', + 'jindy', + 'jinoch', + 'jiskra', + 'jistota', + 'jitrnice', + 'jizva', + 'jmenovat', + 'jogurt', + 'jurta', + 'kabaret', + 'kabel', + 'kabinet', + 'kachna', + 'kadet', + 'kadidlo', + 'kahan', + 'kajak', + 'kajuta', + 'kakao', + 'kaktus', + 'kalamita', + 'kalhoty', + 'kalibr', + 'kalnost', + 'kamera', + 'kamkoliv', + 'kamna', + 'kanibal', + 'kanoe', + 'kantor', + 'kapalina', + 'kapela', + 'kapitola', + 'kapka', + 'kaple', + 'kapota', + 'kapr', + 'kapusta', + 'kapybara', + 'karamel', + 'karotka', + 'karton', + 'kasa', + 'katalog', + 'katedra', + 'kauce', + 'kauza', + 'kavalec', + 'kazajka', + 'kazeta', + 'kazivost', + 'kdekoliv', + 'kdesi', + 'kedluben', + 'kemp', + 'keramika', + 'kino', + 'klacek', + 'kladivo', + 'klam', + 'klapot', + 'klasika', + 'klaun', + 'klec', + 'klenba', + 'klepat', + 'klesnout', + 'klid', + 'klima', + 'klisna', + 'klobouk', + 'klokan', + 'klopa', + 'kloub', + 'klubovna', + 'klusat', + 'kluzkost', + 'kmen', + 'kmitat', + 'kmotr', + 'kniha', + 'knot', + 'koalice', + 'koberec', + 'kobka', + 'kobliha', + 'kobyla', + 'kocour', + 'kohout', + 'kojenec', + 'kokos', + 'koktejl', + 'kolaps', + 'koleda', + 'kolize', + 'kolo', + 'komando', + 'kometa', + 'komik', + 'komnata', + 'komora', + 'kompas', + 'komunita', + 'konat', + 'koncept', + 'kondice', + 'konec', + 'konfese', + 'kongres', + 'konina', + 'konkurs', + 'kontakt', + 'konzerva', + 'kopanec', + 'kopie', + 'kopnout', + 'koprovka', + 'korbel', + 'korektor', + 'kormidlo', + 'koroptev', + 'korpus', + 'koruna', + 'koryto', + 'korzet', + 'kosatec', + 'kostka', + 'kotel', + 'kotleta', + 'kotoul', + 'koukat', + 'koupelna', + 'kousek', + 'kouzlo', + 'kovboj', + 'koza', + 'kozoroh', + 'krabice', + 'krach', + 'krajina', + 'kralovat', + 'krasopis', + 'kravata', + 'kredit', + 'krejcar', + 'kresba', + 'kreveta', + 'kriket', + 'kritik', + 'krize', + 'krkavec', + 'krmelec', + 'krmivo', + 'krocan', + 'krok', + 'kronika', + 'kropit', + 'kroupa', + 'krovka', + 'krtek', + 'kruhadlo', + 'krupice', + 'krutost', + 'krvinka', + 'krychle', + 'krypta', + 'krystal', + 'kryt', + 'kudlanka', + 'kufr', + 'kujnost', + 'kukla', + 'kulajda', + 'kulich', + 'kulka', + 'kulomet', + 'kultura', + 'kuna', + 'kupodivu', + 'kurt', + 'kurzor', + 'kutil', + 'kvalita', + 'kvasinka', + 'kvestor', + 'kynolog', + 'kyselina', + 'kytara', + 'kytice', + 'kytka', + 'kytovec', + 'kyvadlo', + 'labrador', + 'lachtan', + 'ladnost', + 'laik', + 'lakomec', + 'lamela', + 'lampa', + 'lanovka', + 'lasice', + 'laso', + 'lastura', + 'latinka', + 'lavina', + 'lebka', + 'leckdy', + 'leden', + 'lednice', + 'ledovka', + 'ledvina', + 'legenda', + 'legie', + 'legrace', + 'lehce', + 'lehkost', + 'lehnout', + 'lektvar', + 'lenochod', + 'lentilka', + 'lepenka', + 'lepidlo', + 'letadlo', + 'letec', + 'letmo', + 'letokruh', + 'levhart', + 'levitace', + 'levobok', + 'libra', + 'lichotka', + 'lidojed', + 'lidskost', + 'lihovina', + 'lijavec', + 'lilek', + 'limetka', + 'linie', + 'linka', + 'linoleum', + 'listopad', + 'litina', + 'litovat', + 'lobista', + 'lodivod', + 'logika', + 'logoped', + 'lokalita', + 'loket', + 'lomcovat', + 'lopata', + 'lopuch', + 'lord', + 'losos', + 'lotr', + 'loudal', + 'louh', + 'louka', + 'louskat', + 'lovec', + 'lstivost', + 'lucerna', + 'lucifer', + 'lump', + 'lusk', + 'lustrace', + 'lvice', + 'lyra', + 'lyrika', + 'lysina', + 'madam', + 'madlo', + 'magistr', + 'mahagon', + 'majetek', + 'majitel', + 'majorita', + 'makak', + 'makovice', + 'makrela', + 'malba', + 'malina', + 'malovat', + 'malvice', + 'maminka', + 'mandle', + 'manko', + 'marnost', + 'masakr', + 'maskot', + 'masopust', + 'matice', + 'matrika', + 'maturita', + 'mazanec', + 'mazivo', + 'mazlit', + 'mazurka', + 'mdloba', + 'mechanik', + 'meditace', + 'medovina', + 'melasa', + 'meloun', + 'mentolka', + 'metla', + 'metoda', + 'metr', + 'mezera', + 'migrace', + 'mihnout', + 'mihule', + 'mikina', + 'mikrofon', + 'milenec', + 'milimetr', + 'milost', + 'mimika', + 'mincovna', + 'minibar', + 'minomet', + 'minulost', + 'miska', + 'mistr', + 'mixovat', + 'mladost', + 'mlha', + 'mlhovina', + 'mlok', + 'mlsat', + 'mluvit', + 'mnich', + 'mnohem', + 'mobil', + 'mocnost', + 'modelka', + 'modlitba', + 'mohyla', + 'mokro', + 'molekula', + 'momentka', + 'monarcha', + 'monokl', + 'monstrum', + 'montovat', + 'monzun', + 'mosaz', + 'moskyt', + 'most', + 'motivace', + 'motorka', + 'motyka', + 'moucha', + 'moudrost', + 'mozaika', + 'mozek', + 'mozol', + 'mramor', + 'mravenec', + 'mrkev', + 'mrtvola', + 'mrzet', + 'mrzutost', + 'mstitel', + 'mudrc', + 'muflon', + 'mulat', + 'mumie', + 'munice', + 'muset', + 'mutace', + 'muzeum', + 'muzikant', + 'myslivec', + 'mzda', + 'nabourat', + 'nachytat', + 'nadace', + 'nadbytek', + 'nadhoz', + 'nadobro', + 'nadpis', + 'nahlas', + 'nahnat', + 'nahodile', + 'nahradit', + 'naivita', + 'najednou', + 'najisto', + 'najmout', + 'naklonit', + 'nakonec', + 'nakrmit', + 'nalevo', + 'namazat', + 'namluvit', + 'nanometr', + 'naoko', + 'naopak', + 'naostro', + 'napadat', + 'napevno', + 'naplnit', + 'napnout', + 'naposled', + 'naprosto', + 'narodit', + 'naruby', + 'narychlo', + 'nasadit', + 'nasekat', + 'naslepo', + 'nastat', + 'natolik', + 'navenek', + 'navrch', + 'navzdory', + 'nazvat', + 'nebe', + 'nechat', + 'necky', + 'nedaleko', + 'nedbat', + 'neduh', + 'negace', + 'nehet', + 'nehoda', + 'nejen', + 'nejprve', + 'neklid', + 'nelibost', + 'nemilost', + 'nemoc', + 'neochota', + 'neonka', + 'nepokoj', + 'nerost', + 'nerv', + 'nesmysl', + 'nesoulad', + 'netvor', + 'neuron', + 'nevina', + 'nezvykle', + 'nicota', + 'nijak', + 'nikam', + 'nikdy', + 'nikl', + 'nikterak', + 'nitro', + 'nocleh', + 'nohavice', + 'nominace', + 'nora', + 'norek', + 'nositel', + 'nosnost', + 'nouze', + 'noviny', + 'novota', + 'nozdra', + 'nuda', + 'nudle', + 'nuget', + 'nutit', + 'nutnost', + 'nutrie', + 'nymfa', + 'obal', + 'obarvit', + 'obava', + 'obdiv', + 'obec', + 'obehnat', + 'obejmout', + 'obezita', + 'obhajoba', + 'obilnice', + 'objasnit', + 'objekt', + 'obklopit', + 'oblast', + 'oblek', + 'obliba', + 'obloha', + 'obluda', + 'obnos', + 'obohatit', + 'obojek', + 'obout', + 'obrazec', + 'obrna', + 'obruba', + 'obrys', + 'obsah', + 'obsluha', + 'obstarat', + 'obuv', + 'obvaz', + 'obvinit', + 'obvod', + 'obvykle', + 'obyvatel', + 'obzor', + 'ocas', + 'ocel', + 'ocenit', + 'ochladit', + 'ochota', + 'ochrana', + 'ocitnout', + 'odboj', + 'odbyt', + 'odchod', + 'odcizit', + 'odebrat', + 'odeslat', + 'odevzdat', + 'odezva', + 'odhadce', + 'odhodit', + 'odjet', + 'odjinud', + 'odkaz', + 'odkoupit', + 'odliv', + 'odluka', + 'odmlka', + 'odolnost', + 'odpad', + 'odpis', + 'odplout', + 'odpor', + 'odpustit', + 'odpykat', + 'odrazka', + 'odsoudit', + 'odstup', + 'odsun', + 'odtok', + 'odtud', + 'odvaha', + 'odveta', + 'odvolat', + 'odvracet', + 'odznak', + 'ofina', + 'ofsajd', + 'ohlas', + 'ohnisko', + 'ohrada', + 'ohrozit', + 'ohryzek', + 'okap', + 'okenice', + 'oklika', + 'okno', + 'okouzlit', + 'okovy', + 'okrasa', + 'okres', + 'okrsek', + 'okruh', + 'okupant', + 'okurka', + 'okusit', + 'olejnina', + 'olizovat', + 'omak', + 'omeleta', + 'omezit', + 'omladina', + 'omlouvat', + 'omluva', + 'omyl', + 'onehdy', + 'opakovat', + 'opasek', + 'operace', + 'opice', + 'opilost', + 'opisovat', + 'opora', + 'opozice', + 'opravdu', + 'oproti', + 'orbital', + 'orchestr', + 'orgie', + 'orlice', + 'orloj', + 'ortel', + 'osada', + 'oschnout', + 'osika', + 'osivo', + 'oslava', + 'oslepit', + 'oslnit', + 'oslovit', + 'osnova', + 'osoba', + 'osolit', + 'ospalec', + 'osten', + 'ostraha', + 'ostuda', + 'ostych', + 'osvojit', + 'oteplit', + 'otisk', + 'otop', + 'otrhat', + 'otrlost', + 'otrok', + 'otruby', + 'otvor', + 'ovanout', + 'ovar', + 'oves', + 'ovlivnit', + 'ovoce', + 'oxid', + 'ozdoba', + 'pachatel', + 'pacient', + 'padouch', + 'pahorek', + 'pakt', + 'palanda', + 'palec', + 'palivo', + 'paluba', + 'pamflet', + 'pamlsek', + 'panenka', + 'panika', + 'panna', + 'panovat', + 'panstvo', + 'pantofle', + 'paprika', + 'parketa', + 'parodie', + 'parta', + 'paruka', + 'paryba', + 'paseka', + 'pasivita', + 'pastelka', + 'patent', + 'patrona', + 'pavouk', + 'pazneht', + 'pazourek', + 'pecka', + 'pedagog', + 'pejsek', + 'peklo', + 'peloton', + 'penalta', + 'pendrek', + 'penze', + 'periskop', + 'pero', + 'pestrost', + 'petarda', + 'petice', + 'petrolej', + 'pevnina', + 'pexeso', + 'pianista', + 'piha', + 'pijavice', + 'pikle', + 'piknik', + 'pilina', + 'pilnost', + 'pilulka', + 'pinzeta', + 'pipeta', + 'pisatel', + 'pistole', + 'pitevna', + 'pivnice', + 'pivovar', + 'placenta', + 'plakat', + 'plamen', + 'planeta', + 'plastika', + 'platit', + 'plavidlo', + 'plaz', + 'plech', + 'plemeno', + 'plenta', + 'ples', + 'pletivo', + 'plevel', + 'plivat', + 'plnit', + 'plno', + 'plocha', + 'plodina', + 'plomba', + 'plout', + 'pluk', + 'plyn', + 'pobavit', + 'pobyt', + 'pochod', + 'pocit', + 'poctivec', + 'podat', + 'podcenit', + 'podepsat', + 'podhled', + 'podivit', + 'podklad', + 'podmanit', + 'podnik', + 'podoba', + 'podpora', + 'podraz', + 'podstata', + 'podvod', + 'podzim', + 'poezie', + 'pohanka', + 'pohnutka', + 'pohovor', + 'pohroma', + 'pohyb', + 'pointa', + 'pojistka', + 'pojmout', + 'pokazit', + 'pokles', + 'pokoj', + 'pokrok', + 'pokuta', + 'pokyn', + 'poledne', + 'polibek', + 'polknout', + 'poloha', + 'polynom', + 'pomalu', + 'pominout', + 'pomlka', + 'pomoc', + 'pomsta', + 'pomyslet', + 'ponechat', + 'ponorka', + 'ponurost', + 'popadat', + 'popel', + 'popisek', + 'poplach', + 'poprosit', + 'popsat', + 'popud', + 'poradce', + 'porce', + 'porod', + 'porucha', + 'poryv', + 'posadit', + 'posed', + 'posila', + 'poskok', + 'poslanec', + 'posoudit', + 'pospolu', + 'postava', + 'posudek', + 'posyp', + 'potah', + 'potkan', + 'potlesk', + 'potomek', + 'potrava', + 'potupa', + 'potvora', + 'poukaz', + 'pouto', + 'pouzdro', + 'povaha', + 'povidla', + 'povlak', + 'povoz', + 'povrch', + 'povstat', + 'povyk', + 'povzdech', + 'pozdrav', + 'pozemek', + 'poznatek', + 'pozor', + 'pozvat', + 'pracovat', + 'prahory', + 'praktika', + 'prales', + 'praotec', + 'praporek', + 'prase', + 'pravda', + 'princip', + 'prkno', + 'probudit', + 'procento', + 'prodej', + 'profese', + 'prohra', + 'projekt', + 'prolomit', + 'promile', + 'pronikat', + 'propad', + 'prorok', + 'prosba', + 'proton', + 'proutek', + 'provaz', + 'prskavka', + 'prsten', + 'prudkost', + 'prut', + 'prvek', + 'prvohory', + 'psanec', + 'psovod', + 'pstruh', + 'ptactvo', + 'puberta', + 'puch', + 'pudl', + 'pukavec', + 'puklina', + 'pukrle', + 'pult', + 'pumpa', + 'punc', + 'pupen', + 'pusa', + 'pusinka', + 'pustina', + 'putovat', + 'putyka', + 'pyramida', + 'pysk', + 'pytel', + 'racek', + 'rachot', + 'radiace', + 'radnice', + 'radon', + 'raft', + 'ragby', + 'raketa', + 'rakovina', + 'rameno', + 'rampouch', + 'rande', + 'rarach', + 'rarita', + 'rasovna', + 'rastr', + 'ratolest', + 'razance', + 'razidlo', + 'reagovat', + 'reakce', + 'recept', + 'redaktor', + 'referent', + 'reflex', + 'rejnok', + 'reklama', + 'rekord', + 'rekrut', + 'rektor', + 'reputace', + 'revize', + 'revma', + 'revolver', + 'rezerva', + 'riskovat', + 'riziko', + 'robotika', + 'rodokmen', + 'rohovka', + 'rokle', + 'rokoko', + 'romaneto', + 'ropovod', + 'ropucha', + 'rorejs', + 'rosol', + 'rostlina', + 'rotmistr', + 'rotoped', + 'rotunda', + 'roubenka', + 'roucho', + 'roup', + 'roura', + 'rovina', + 'rovnice', + 'rozbor', + 'rozchod', + 'rozdat', + 'rozeznat', + 'rozhodce', + 'rozinka', + 'rozjezd', + 'rozkaz', + 'rozloha', + 'rozmar', + 'rozpad', + 'rozruch', + 'rozsah', + 'roztok', + 'rozum', + 'rozvod', + 'rubrika', + 'ruchadlo', + 'rukavice', + 'rukopis', + 'ryba', + 'rybolov', + 'rychlost', + 'rydlo', + 'rypadlo', + 'rytina', + 'ryzost', + 'sadista', + 'sahat', + 'sako', + 'samec', + 'samizdat', + 'samota', + 'sanitka', + 'sardinka', + 'sasanka', + 'satelit', + 'sazba', + 'sazenice', + 'sbor', + 'schovat', + 'sebranka', + 'secese', + 'sedadlo', + 'sediment', + 'sedlo', + 'sehnat', + 'sejmout', + 'sekera', + 'sekta', + 'sekunda', + 'sekvoje', + 'semeno', + 'seno', + 'servis', + 'sesadit', + 'seshora', + 'seskok', + 'seslat', + 'sestra', + 'sesuv', + 'sesypat', + 'setba', + 'setina', + 'setkat', + 'setnout', + 'setrvat', + 'sever', + 'seznam', + 'shoda', + 'shrnout', + 'sifon', + 'silnice', + 'sirka', + 'sirotek', + 'sirup', + 'situace', + 'skafandr', + 'skalisko', + 'skanzen', + 'skaut', + 'skeptik', + 'skica', + 'skladba', + 'sklenice', + 'sklo', + 'skluz', + 'skoba', + 'skokan', + 'skoro', + 'skripta', + 'skrz', + 'skupina', + 'skvost', + 'skvrna', + 'slabika', + 'sladidlo', + 'slanina', + 'slast', + 'slavnost', + 'sledovat', + 'slepec', + 'sleva', + 'slezina', + 'slib', + 'slina', + 'sliznice', + 'slon', + 'sloupek', + 'slovo', + 'sluch', + 'sluha', + 'slunce', + 'slupka', + 'slza', + 'smaragd', + 'smetana', + 'smilstvo', + 'smlouva', + 'smog', + 'smrad', + 'smrk', + 'smrtka', + 'smutek', + 'smysl', + 'snad', + 'snaha', + 'snob', + 'sobota', + 'socha', + 'sodovka', + 'sokol', + 'sopka', + 'sotva', + 'souboj', + 'soucit', + 'soudce', + 'souhlas', + 'soulad', + 'soumrak', + 'souprava', + 'soused', + 'soutok', + 'souviset', + 'spalovna', + 'spasitel', + 'spis', + 'splav', + 'spodek', + 'spojenec', + 'spolu', + 'sponzor', + 'spornost', + 'spousta', + 'sprcha', + 'spustit', + 'sranda', + 'sraz', + 'srdce', + 'srna', + 'srnec', + 'srovnat', + 'srpen', + 'srst', + 'srub', + 'stanice', + 'starosta', + 'statika', + 'stavba', + 'stehno', + 'stezka', + 'stodola', + 'stolek', + 'stopa', + 'storno', + 'stoupat', + 'strach', + 'stres', + 'strhnout', + 'strom', + 'struna', + 'studna', + 'stupnice', + 'stvol', + 'styk', + 'subjekt', + 'subtropy', + 'suchar', + 'sudost', + 'sukno', + 'sundat', + 'sunout', + 'surikata', + 'surovina', + 'svah', + 'svalstvo', + 'svetr', + 'svatba', + 'svazek', + 'svisle', + 'svitek', + 'svoboda', + 'svodidlo', + 'svorka', + 'svrab', + 'sykavka', + 'sykot', + 'synek', + 'synovec', + 'sypat', + 'sypkost', + 'syrovost', + 'sysel', + 'sytost', + 'tabletka', + 'tabule', + 'tahoun', + 'tajemno', + 'tajfun', + 'tajga', + 'tajit', + 'tajnost', + 'taktika', + 'tamhle', + 'tampon', + 'tancovat', + 'tanec', + 'tanker', + 'tapeta', + 'tavenina', + 'tazatel', + 'technika', + 'tehdy', + 'tekutina', + 'telefon', + 'temnota', + 'tendence', + 'tenista', + 'tenor', + 'teplota', + 'tepna', + 'teprve', + 'terapie', + 'termoska', + 'textil', + 'ticho', + 'tiskopis', + 'titulek', + 'tkadlec', + 'tkanina', + 'tlapka', + 'tleskat', + 'tlukot', + 'tlupa', + 'tmel', + 'toaleta', + 'topinka', + 'topol', + 'torzo', + 'touha', + 'toulec', + 'tradice', + 'traktor', + 'tramp', + 'trasa', + 'traverza', + 'trefit', + 'trest', + 'trezor', + 'trhavina', + 'trhlina', + 'trochu', + 'trojice', + 'troska', + 'trouba', + 'trpce', + 'trpitel', + 'trpkost', + 'trubec', + 'truchlit', + 'truhlice', + 'trus', + 'trvat', + 'tudy', + 'tuhnout', + 'tuhost', + 'tundra', + 'turista', + 'turnaj', + 'tuzemsko', + 'tvaroh', + 'tvorba', + 'tvrdost', + 'tvrz', + 'tygr', + 'tykev', + 'ubohost', + 'uboze', + 'ubrat', + 'ubrousek', + 'ubrus', + 'ubytovna', + 'ucho', + 'uctivost', + 'udivit', + 'uhradit', + 'ujednat', + 'ujistit', + 'ujmout', + 'ukazatel', + 'uklidnit', + 'uklonit', + 'ukotvit', + 'ukrojit', + 'ulice', + 'ulita', + 'ulovit', + 'umyvadlo', + 'unavit', + 'uniforma', + 'uniknout', + 'upadnout', + 'uplatnit', + 'uplynout', + 'upoutat', + 'upravit', + 'uran', + 'urazit', + 'usednout', + 'usilovat', + 'usmrtit', + 'usnadnit', + 'usnout', + 'usoudit', + 'ustlat', + 'ustrnout', + 'utahovat', + 'utkat', + 'utlumit', + 'utonout', + 'utopenec', + 'utrousit', + 'uvalit', + 'uvolnit', + 'uvozovka', + 'uzdravit', + 'uzel', + 'uzenina', + 'uzlina', + 'uznat', + 'vagon', + 'valcha', + 'valoun', + 'vana', + 'vandal', + 'vanilka', + 'varan', + 'varhany', + 'varovat', + 'vcelku', + 'vchod', + 'vdova', + 'vedro', + 'vegetace', + 'vejce', + 'velbloud', + 'veletrh', + 'velitel', + 'velmoc', + 'velryba', + 'venkov', + 'veranda', + 'verze', + 'veselka', + 'veskrze', + 'vesnice', + 'vespodu', + 'vesta', + 'veterina', + 'veverka', + 'vibrace', + 'vichr', + 'videohra', + 'vidina', + 'vidle', + 'vila', + 'vinice', + 'viset', + 'vitalita', + 'vize', + 'vizitka', + 'vjezd', + 'vklad', + 'vkus', + 'vlajka', + 'vlak', + 'vlasec', + 'vlevo', + 'vlhkost', + 'vliv', + 'vlnovka', + 'vloupat', + 'vnucovat', + 'vnuk', + 'voda', + 'vodivost', + 'vodoznak', + 'vodstvo', + 'vojensky', + 'vojna', + 'vojsko', + 'volant', + 'volba', + 'volit', + 'volno', + 'voskovka', + 'vozidlo', + 'vozovna', + 'vpravo', + 'vrabec', + 'vracet', + 'vrah', + 'vrata', + 'vrba', + 'vrcholek', + 'vrhat', + 'vrstva', + 'vrtule', + 'vsadit', + 'vstoupit', + 'vstup', + 'vtip', + 'vybavit', + 'vybrat', + 'vychovat', + 'vydat', + 'vydra', + 'vyfotit', + 'vyhledat', + 'vyhnout', + 'vyhodit', + 'vyhradit', + 'vyhubit', + 'vyjasnit', + 'vyjet', + 'vyjmout', + 'vyklopit', + 'vykonat', + 'vylekat', + 'vymazat', + 'vymezit', + 'vymizet', + 'vymyslet', + 'vynechat', + 'vynikat', + 'vynutit', + 'vypadat', + 'vyplatit', + 'vypravit', + 'vypustit', + 'vyrazit', + 'vyrovnat', + 'vyrvat', + 'vyslovit', + 'vysoko', + 'vystavit', + 'vysunout', + 'vysypat', + 'vytasit', + 'vytesat', + 'vytratit', + 'vyvinout', + 'vyvolat', + 'vyvrhel', + 'vyzdobit', + 'vyznat', + 'vzadu', + 'vzbudit', + 'vzchopit', + 'vzdor', + 'vzduch', + 'vzdychat', + 'vzestup', + 'vzhledem', + 'vzkaz', + 'vzlykat', + 'vznik', + 'vzorek', + 'vzpoura', + 'vztah', + 'vztek', + 'xylofon', + 'zabrat', + 'zabydlet', + 'zachovat', + 'zadarmo', + 'zadusit', + 'zafoukat', + 'zahltit', + 'zahodit', + 'zahrada', + 'zahynout', + 'zajatec', + 'zajet', + 'zajistit', + 'zaklepat', + 'zakoupit', + 'zalepit', + 'zamezit', + 'zamotat', + 'zamyslet', + 'zanechat', + 'zanikat', + 'zaplatit', + 'zapojit', + 'zapsat', + 'zarazit', + 'zastavit', + 'zasunout', + 'zatajit', + 'zatemnit', + 'zatknout', + 'zaujmout', + 'zavalit', + 'zavelet', + 'zavinit', + 'zavolat', + 'zavrtat', + 'zazvonit', + 'zbavit', + 'zbrusu', + 'zbudovat', + 'zbytek', + 'zdaleka', + 'zdarma', + 'zdatnost', + 'zdivo', + 'zdobit', + 'zdroj', + 'zdvih', + 'zdymadlo', + 'zelenina', + 'zeman', + 'zemina', + 'zeptat', + 'zezadu', + 'zezdola', + 'zhatit', + 'zhltnout', + 'zhluboka', + 'zhotovit', + 'zhruba', + 'zima', + 'zimnice', + 'zjemnit', + 'zklamat', + 'zkoumat', + 'zkratka', + 'zkumavka', + 'zlato', + 'zlehka', + 'zloba', + 'zlom', + 'zlost', + 'zlozvyk', + 'zmapovat', + 'zmar', + 'zmatek', + 'zmije', + 'zmizet', + 'zmocnit', + 'zmodrat', + 'zmrzlina', + 'zmutovat', + 'znak', + 'znalost', + 'znamenat', + 'znovu', + 'zobrazit', + 'zotavit', + 'zoubek', + 'zoufale', + 'zplodit', + 'zpomalit', + 'zprava', + 'zprostit', + 'zprudka', + 'zprvu', + 'zrada', + 'zranit', + 'zrcadlo', + 'zrnitost', + 'zrno', + 'zrovna', + 'zrychlit', + 'zrzavost', + 'zticha', + 'ztratit', + 'zubovina', + 'zubr', + 'zvednout', + 'zvenku', + 'zvesela', + 'zvon', + 'zvrat', + 'zvukovod', + 'zvyk', +]; + +const english = [ + 'abandon', + 'ability', + 'able', + 'about', + 'above', + 'absent', + 'absorb', + 'abstract', + 'absurd', + 'abuse', + 'access', + 'accident', + 'account', + 'accuse', + 'achieve', + 'acid', + 'acoustic', + 'acquire', + 'across', + 'act', + 'action', + 'actor', + 'actress', + 'actual', + 'adapt', + 'add', + 'addict', + 'address', + 'adjust', + 'admit', + 'adult', + 'advance', + 'advice', + 'aerobic', + 'affair', + 'afford', + 'afraid', + 'again', + 'age', + 'agent', + 'agree', + 'ahead', + 'aim', + 'air', + 'airport', + 'aisle', + 'alarm', + 'album', + 'alcohol', + 'alert', + 'alien', + 'all', + 'alley', + 'allow', + 'almost', + 'alone', + 'alpha', + 'already', + 'also', + 'alter', + 'always', + 'amateur', + 'amazing', + 'among', + 'amount', + 'amused', + 'analyst', + 'anchor', + 'ancient', + 'anger', + 'angle', + 'angry', + 'animal', + 'ankle', + 'announce', + 'annual', + 'another', + 'answer', + 'antenna', + 'antique', + 'anxiety', + 'any', + 'apart', + 'apology', + 'appear', + 'apple', + 'approve', + 'april', + 'arch', + 'arctic', + 'area', + 'arena', + 'argue', + 'arm', + 'armed', + 'armor', + 'army', + 'around', + 'arrange', + 'arrest', + 'arrive', + 'arrow', + 'art', + 'artefact', + 'artist', + 'artwork', + 'ask', + 'aspect', + 'assault', + 'asset', + 'assist', + 'assume', + 'asthma', + 'athlete', + 'atom', + 'attack', + 'attend', + 'attitude', + 'attract', + 'auction', + 'audit', + 'august', + 'aunt', + 'author', + 'auto', + 'autumn', + 'average', + 'avocado', + 'avoid', + 'awake', + 'aware', + 'away', + 'awesome', + 'awful', + 'awkward', + 'axis', + 'baby', + 'bachelor', + 'bacon', + 'badge', + 'bag', + 'balance', + 'balcony', + 'ball', + 'bamboo', + 'banana', + 'banner', + 'bar', + 'barely', + 'bargain', + 'barrel', + 'base', + 'basic', + 'basket', + 'battle', + 'beach', + 'bean', + 'beauty', + 'because', + 'become', + 'beef', + 'before', + 'begin', + 'behave', + 'behind', + 'believe', + 'below', + 'belt', + 'bench', + 'benefit', + 'best', + 'betray', + 'better', + 'between', + 'beyond', + 'bicycle', + 'bid', + 'bike', + 'bind', + 'biology', + 'bird', + 'birth', + 'bitter', + 'black', + 'blade', + 'blame', + 'blanket', + 'blast', + 'bleak', + 'bless', + 'blind', + 'blood', + 'blossom', + 'blouse', + 'blue', + 'blur', + 'blush', + 'board', + 'boat', + 'body', + 'boil', + 'bomb', + 'bone', + 'bonus', + 'book', + 'boost', + 'border', + 'boring', + 'borrow', + 'boss', + 'bottom', + 'bounce', + 'box', + 'boy', + 'bracket', + 'brain', + 'brand', + 'brass', + 'brave', + 'bread', + 'breeze', + 'brick', + 'bridge', + 'brief', + 'bright', + 'bring', + 'brisk', + 'broccoli', + 'broken', + 'bronze', + 'broom', + 'brother', + 'brown', + 'brush', + 'bubble', + 'buddy', + 'budget', + 'buffalo', + 'build', + 'bulb', + 'bulk', + 'bullet', + 'bundle', + 'bunker', + 'burden', + 'burger', + 'burst', + 'bus', + 'business', + 'busy', + 'butter', + 'buyer', + 'buzz', + 'cabbage', + 'cabin', + 'cable', + 'cactus', + 'cage', + 'cake', + 'call', + 'calm', + 'camera', + 'camp', + 'can', + 'canal', + 'cancel', + 'candy', + 'cannon', + 'canoe', + 'canvas', + 'canyon', + 'capable', + 'capital', + 'captain', + 'car', + 'carbon', + 'card', + 'cargo', + 'carpet', + 'carry', + 'cart', + 'case', + 'cash', + 'casino', + 'castle', + 'casual', + 'cat', + 'catalog', + 'catch', + 'category', + 'cattle', + 'caught', + 'cause', + 'caution', + 'cave', + 'ceiling', + 'celery', + 'cement', + 'census', + 'century', + 'cereal', + 'certain', + 'chair', + 'chalk', + 'champion', + 'change', + 'chaos', + 'chapter', + 'charge', + 'chase', + 'chat', + 'cheap', + 'check', + 'cheese', + 'chef', + 'cherry', + 'chest', + 'chicken', + 'chief', + 'child', + 'chimney', + 'choice', + 'choose', + 'chronic', + 'chuckle', + 'chunk', + 'churn', + 'cigar', + 'cinnamon', + 'circle', + 'citizen', + 'city', + 'civil', + 'claim', + 'clap', + 'clarify', + 'claw', + 'clay', + 'clean', + 'clerk', + 'clever', + 'click', + 'client', + 'cliff', + 'climb', + 'clinic', + 'clip', + 'clock', + 'clog', + 'close', + 'cloth', + 'cloud', + 'clown', + 'club', + 'clump', + 'cluster', + 'clutch', + 'coach', + 'coast', + 'coconut', + 'code', + 'coffee', + 'coil', + 'coin', + 'collect', + 'color', + 'column', + 'combine', + 'come', + 'comfort', + 'comic', + 'common', + 'company', + 'concert', + 'conduct', + 'confirm', + 'congress', + 'connect', + 'consider', + 'control', + 'convince', + 'cook', + 'cool', + 'copper', + 'copy', + 'coral', + 'core', + 'corn', + 'correct', + 'cost', + 'cotton', + 'couch', + 'country', + 'couple', + 'course', + 'cousin', + 'cover', + 'coyote', + 'crack', + 'cradle', + 'craft', + 'cram', + 'crane', + 'crash', + 'crater', + 'crawl', + 'crazy', + 'cream', + 'credit', + 'creek', + 'crew', + 'cricket', + 'crime', + 'crisp', + 'critic', + 'crop', + 'cross', + 'crouch', + 'crowd', + 'crucial', + 'cruel', + 'cruise', + 'crumble', + 'crunch', + 'crush', + 'cry', + 'crystal', + 'cube', + 'culture', + 'cup', + 'cupboard', + 'curious', + 'current', + 'curtain', + 'curve', + 'cushion', + 'custom', + 'cute', + 'cycle', + 'dad', + 'damage', + 'damp', + 'dance', + 'danger', + 'daring', + 'dash', + 'daughter', + 'dawn', + 'day', + 'deal', + 'debate', + 'debris', + 'decade', + 'december', + 'decide', + 'decline', + 'decorate', + 'decrease', + 'deer', + 'defense', + 'define', + 'defy', + 'degree', + 'delay', + 'deliver', + 'demand', + 'demise', + 'denial', + 'dentist', + 'deny', + 'depart', + 'depend', + 'deposit', + 'depth', + 'deputy', + 'derive', + 'describe', + 'desert', + 'design', + 'desk', + 'despair', + 'destroy', + 'detail', + 'detect', + 'develop', + 'device', + 'devote', + 'diagram', + 'dial', + 'diamond', + 'diary', + 'dice', + 'diesel', + 'diet', + 'differ', + 'digital', + 'dignity', + 'dilemma', + 'dinner', + 'dinosaur', + 'direct', + 'dirt', + 'disagree', + 'discover', + 'disease', + 'dish', + 'dismiss', + 'disorder', + 'display', + 'distance', + 'divert', + 'divide', + 'divorce', + 'dizzy', + 'doctor', + 'document', + 'dog', + 'doll', + 'dolphin', + 'domain', + 'donate', + 'donkey', + 'donor', + 'door', + 'dose', + 'double', + 'dove', + 'draft', + 'dragon', + 'drama', + 'drastic', + 'draw', + 'dream', + 'dress', + 'drift', + 'drill', + 'drink', + 'drip', + 'drive', + 'drop', + 'drum', + 'dry', + 'duck', + 'dumb', + 'dune', + 'during', + 'dust', + 'dutch', + 'duty', + 'dwarf', + 'dynamic', + 'eager', + 'eagle', + 'early', + 'earn', + 'earth', + 'easily', + 'east', + 'easy', + 'echo', + 'ecology', + 'economy', + 'edge', + 'edit', + 'educate', + 'effort', + 'egg', + 'eight', + 'either', + 'elbow', + 'elder', + 'electric', + 'elegant', + 'element', + 'elephant', + 'elevator', + 'elite', + 'else', + 'embark', + 'embody', + 'embrace', + 'emerge', + 'emotion', + 'employ', + 'empower', + 'empty', + 'enable', + 'enact', + 'end', + 'endless', + 'endorse', + 'enemy', + 'energy', + 'enforce', + 'engage', + 'engine', + 'enhance', + 'enjoy', + 'enlist', + 'enough', + 'enrich', + 'enroll', + 'ensure', + 'enter', + 'entire', + 'entry', + 'envelope', + 'episode', + 'equal', + 'equip', + 'era', + 'erase', + 'erode', + 'erosion', + 'error', + 'erupt', + 'escape', + 'essay', + 'essence', + 'estate', + 'eternal', + 'ethics', + 'evidence', + 'evil', + 'evoke', + 'evolve', + 'exact', + 'example', + 'excess', + 'exchange', + 'excite', + 'exclude', + 'excuse', + 'execute', + 'exercise', + 'exhaust', + 'exhibit', + 'exile', + 'exist', + 'exit', + 'exotic', + 'expand', + 'expect', + 'expire', + 'explain', + 'expose', + 'express', + 'extend', + 'extra', + 'eye', + 'eyebrow', + 'fabric', + 'face', + 'faculty', + 'fade', + 'faint', + 'faith', + 'fall', + 'false', + 'fame', + 'family', + 'famous', + 'fan', + 'fancy', + 'fantasy', + 'farm', + 'fashion', + 'fat', + 'fatal', + 'father', + 'fatigue', + 'fault', + 'favorite', + 'feature', + 'february', + 'federal', + 'fee', + 'feed', + 'feel', + 'female', + 'fence', + 'festival', + 'fetch', + 'fever', + 'few', + 'fiber', + 'fiction', + 'field', + 'figure', + 'file', + 'film', + 'filter', + 'final', + 'find', + 'fine', + 'finger', + 'finish', + 'fire', + 'firm', + 'first', + 'fiscal', + 'fish', + 'fit', + 'fitness', + 'fix', + 'flag', + 'flame', + 'flash', + 'flat', + 'flavor', + 'flee', + 'flight', + 'flip', + 'float', + 'flock', + 'floor', + 'flower', + 'fluid', + 'flush', + 'fly', + 'foam', + 'focus', + 'fog', + 'foil', + 'fold', + 'follow', + 'food', + 'foot', + 'force', + 'forest', + 'forget', + 'fork', + 'fortune', + 'forum', + 'forward', + 'fossil', + 'foster', + 'found', + 'fox', + 'fragile', + 'frame', + 'frequent', + 'fresh', + 'friend', + 'fringe', + 'frog', + 'front', + 'frost', + 'frown', + 'frozen', + 'fruit', + 'fuel', + 'fun', + 'funny', + 'furnace', + 'fury', + 'future', + 'gadget', + 'gain', + 'galaxy', + 'gallery', + 'game', + 'gap', + 'garage', + 'garbage', + 'garden', + 'garlic', + 'garment', + 'gas', + 'gasp', + 'gate', + 'gather', + 'gauge', + 'gaze', + 'general', + 'genius', + 'genre', + 'gentle', + 'genuine', + 'gesture', + 'ghost', + 'giant', + 'gift', + 'giggle', + 'ginger', + 'giraffe', + 'girl', + 'give', + 'glad', + 'glance', + 'glare', + 'glass', + 'glide', + 'glimpse', + 'globe', + 'gloom', + 'glory', + 'glove', + 'glow', + 'glue', + 'goat', + 'goddess', + 'gold', + 'good', + 'goose', + 'gorilla', + 'gospel', + 'gossip', + 'govern', + 'gown', + 'grab', + 'grace', + 'grain', + 'grant', + 'grape', + 'grass', + 'gravity', + 'great', + 'green', + 'grid', + 'grief', + 'grit', + 'grocery', + 'group', + 'grow', + 'grunt', + 'guard', + 'guess', + 'guide', + 'guilt', + 'guitar', + 'gun', + 'gym', + 'habit', + 'hair', + 'half', + 'hammer', + 'hamster', + 'hand', + 'happy', + 'harbor', + 'hard', + 'harsh', + 'harvest', + 'hat', + 'have', + 'hawk', + 'hazard', + 'head', + 'health', + 'heart', + 'heavy', + 'hedgehog', + 'height', + 'hello', + 'helmet', + 'help', + 'hen', + 'hero', + 'hidden', + 'high', + 'hill', + 'hint', + 'hip', + 'hire', + 'history', + 'hobby', + 'hockey', + 'hold', + 'hole', + 'holiday', + 'hollow', + 'home', + 'honey', + 'hood', + 'hope', + 'horn', + 'horror', + 'horse', + 'hospital', + 'host', + 'hotel', + 'hour', + 'hover', + 'hub', + 'huge', + 'human', + 'humble', + 'humor', + 'hundred', + 'hungry', + 'hunt', + 'hurdle', + 'hurry', + 'hurt', + 'husband', + 'hybrid', + 'ice', + 'icon', + 'idea', + 'identify', + 'idle', + 'ignore', + 'ill', + 'illegal', + 'illness', + 'image', + 'imitate', + 'immense', + 'immune', + 'impact', + 'impose', + 'improve', + 'impulse', + 'inch', + 'include', + 'income', + 'increase', + 'index', + 'indicate', + 'indoor', + 'industry', + 'infant', + 'inflict', + 'inform', + 'inhale', + 'inherit', + 'initial', + 'inject', + 'injury', + 'inmate', + 'inner', + 'innocent', + 'input', + 'inquiry', + 'insane', + 'insect', + 'inside', + 'inspire', + 'install', + 'intact', + 'interest', + 'into', + 'invest', + 'invite', + 'involve', + 'iron', + 'island', + 'isolate', + 'issue', + 'item', + 'ivory', + 'jacket', + 'jaguar', + 'jar', + 'jazz', + 'jealous', + 'jeans', + 'jelly', + 'jewel', + 'job', + 'join', + 'joke', + 'journey', + 'joy', + 'judge', + 'juice', + 'jump', + 'jungle', + 'junior', + 'junk', + 'just', + 'kangaroo', + 'keen', + 'keep', + 'ketchup', + 'key', + 'kick', + 'kid', + 'kidney', + 'kind', + 'kingdom', + 'kiss', + 'kit', + 'kitchen', + 'kite', + 'kitten', + 'kiwi', + 'knee', + 'knife', + 'knock', + 'know', + 'lab', + 'label', + 'labor', + 'ladder', + 'lady', + 'lake', + 'lamp', + 'language', + 'laptop', + 'large', + 'later', + 'latin', + 'laugh', + 'laundry', + 'lava', + 'law', + 'lawn', + 'lawsuit', + 'layer', + 'lazy', + 'leader', + 'leaf', + 'learn', + 'leave', + 'lecture', + 'left', + 'leg', + 'legal', + 'legend', + 'leisure', + 'lemon', + 'lend', + 'length', + 'lens', + 'leopard', + 'lesson', + 'letter', + 'level', + 'liar', + 'liberty', + 'library', + 'license', + 'life', + 'lift', + 'light', + 'like', + 'limb', + 'limit', + 'link', + 'lion', + 'liquid', + 'list', + 'little', + 'live', + 'lizard', + 'load', + 'loan', + 'lobster', + 'local', + 'lock', + 'logic', + 'lonely', + 'long', + 'loop', + 'lottery', + 'loud', + 'lounge', + 'love', + 'loyal', + 'lucky', + 'luggage', + 'lumber', + 'lunar', + 'lunch', + 'luxury', + 'lyrics', + 'machine', + 'mad', + 'magic', + 'magnet', + 'maid', + 'mail', + 'main', + 'major', + 'make', + 'mammal', + 'man', + 'manage', + 'mandate', + 'mango', + 'mansion', + 'manual', + 'maple', + 'marble', + 'march', + 'margin', + 'marine', + 'market', + 'marriage', + 'mask', + 'mass', + 'master', + 'match', + 'material', + 'math', + 'matrix', + 'matter', + 'maximum', + 'maze', + 'meadow', + 'mean', + 'measure', + 'meat', + 'mechanic', + 'medal', + 'media', + 'melody', + 'melt', + 'member', + 'memory', + 'mention', + 'menu', + 'mercy', + 'merge', + 'merit', + 'merry', + 'mesh', + 'message', + 'metal', + 'method', + 'middle', + 'midnight', + 'milk', + 'million', + 'mimic', + 'mind', + 'minimum', + 'minor', + 'minute', + 'miracle', + 'mirror', + 'misery', + 'miss', + 'mistake', + 'mix', + 'mixed', + 'mixture', + 'mobile', + 'model', + 'modify', + 'mom', + 'moment', + 'monitor', + 'monkey', + 'monster', + 'month', + 'moon', + 'moral', + 'more', + 'morning', + 'mosquito', + 'mother', + 'motion', + 'motor', + 'mountain', + 'mouse', + 'move', + 'movie', + 'much', + 'muffin', + 'mule', + 'multiply', + 'muscle', + 'museum', + 'mushroom', + 'music', + 'must', + 'mutual', + 'myself', + 'mystery', + 'myth', + 'naive', + 'name', + 'napkin', + 'narrow', + 'nasty', + 'nation', + 'nature', + 'near', + 'neck', + 'need', + 'negative', + 'neglect', + 'neither', + 'nephew', + 'nerve', + 'nest', + 'net', + 'network', + 'neutral', + 'never', + 'news', + 'next', + 'nice', + 'night', + 'noble', + 'noise', + 'nominee', + 'noodle', + 'normal', + 'north', + 'nose', + 'notable', + 'note', + 'nothing', + 'notice', + 'novel', + 'now', + 'nuclear', + 'number', + 'nurse', + 'nut', + 'oak', + 'obey', + 'object', + 'oblige', + 'obscure', + 'observe', + 'obtain', + 'obvious', + 'occur', + 'ocean', + 'october', + 'odor', + 'off', + 'offer', + 'office', + 'often', + 'oil', + 'okay', + 'old', + 'olive', + 'olympic', + 'omit', + 'once', + 'one', + 'onion', + 'online', + 'only', + 'open', + 'opera', + 'opinion', + 'oppose', + 'option', + 'orange', + 'orbit', + 'orchard', + 'order', + 'ordinary', + 'organ', + 'orient', + 'original', + 'orphan', + 'ostrich', + 'other', + 'outdoor', + 'outer', + 'output', + 'outside', + 'oval', + 'oven', + 'over', + 'own', + 'owner', + 'oxygen', + 'oyster', + 'ozone', + 'pact', + 'paddle', + 'page', + 'pair', + 'palace', + 'palm', + 'panda', + 'panel', + 'panic', + 'panther', + 'paper', + 'parade', + 'parent', + 'park', + 'parrot', + 'party', + 'pass', + 'patch', + 'path', + 'patient', + 'patrol', + 'pattern', + 'pause', + 'pave', + 'payment', + 'peace', + 'peanut', + 'pear', + 'peasant', + 'pelican', + 'pen', + 'penalty', + 'pencil', + 'people', + 'pepper', + 'perfect', + 'permit', + 'person', + 'pet', + 'phone', + 'photo', + 'phrase', + 'physical', + 'piano', + 'picnic', + 'picture', + 'piece', + 'pig', + 'pigeon', + 'pill', + 'pilot', + 'pink', + 'pioneer', + 'pipe', + 'pistol', + 'pitch', + 'pizza', + 'place', + 'planet', + 'plastic', + 'plate', + 'play', + 'please', + 'pledge', + 'pluck', + 'plug', + 'plunge', + 'poem', + 'poet', + 'point', + 'polar', + 'pole', + 'police', + 'pond', + 'pony', + 'pool', + 'popular', + 'portion', + 'position', + 'possible', + 'post', + 'potato', + 'pottery', + 'poverty', + 'powder', + 'power', + 'practice', + 'praise', + 'predict', + 'prefer', + 'prepare', + 'present', + 'pretty', + 'prevent', + 'price', + 'pride', + 'primary', + 'print', + 'priority', + 'prison', + 'private', + 'prize', + 'problem', + 'process', + 'produce', + 'profit', + 'program', + 'project', + 'promote', + 'proof', + 'property', + 'prosper', + 'protect', + 'proud', + 'provide', + 'public', + 'pudding', + 'pull', + 'pulp', + 'pulse', + 'pumpkin', + 'punch', + 'pupil', + 'puppy', + 'purchase', + 'purity', + 'purpose', + 'purse', + 'push', + 'put', + 'puzzle', + 'pyramid', + 'quality', + 'quantum', + 'quarter', + 'question', + 'quick', + 'quit', + 'quiz', + 'quote', + 'rabbit', + 'raccoon', + 'race', + 'rack', + 'radar', + 'radio', + 'rail', + 'rain', + 'raise', + 'rally', + 'ramp', + 'ranch', + 'random', + 'range', + 'rapid', + 'rare', + 'rate', + 'rather', + 'raven', + 'raw', + 'razor', + 'ready', + 'real', + 'reason', + 'rebel', + 'rebuild', + 'recall', + 'receive', + 'recipe', + 'record', + 'recycle', + 'reduce', + 'reflect', + 'reform', + 'refuse', + 'region', + 'regret', + 'regular', + 'reject', + 'relax', + 'release', + 'relief', + 'rely', + 'remain', + 'remember', + 'remind', + 'remove', + 'render', + 'renew', + 'rent', + 'reopen', + 'repair', + 'repeat', + 'replace', + 'report', + 'require', + 'rescue', + 'resemble', + 'resist', + 'resource', + 'response', + 'result', + 'retire', + 'retreat', + 'return', + 'reunion', + 'reveal', + 'review', + 'reward', + 'rhythm', + 'rib', + 'ribbon', + 'rice', + 'rich', + 'ride', + 'ridge', + 'rifle', + 'right', + 'rigid', + 'ring', + 'riot', + 'ripple', + 'risk', + 'ritual', + 'rival', + 'river', + 'road', + 'roast', + 'robot', + 'robust', + 'rocket', + 'romance', + 'roof', + 'rookie', + 'room', + 'rose', + 'rotate', + 'rough', + 'round', + 'route', + 'royal', + 'rubber', + 'rude', + 'rug', + 'rule', + 'run', + 'runway', + 'rural', + 'sad', + 'saddle', + 'sadness', + 'safe', + 'sail', + 'salad', + 'salmon', + 'salon', + 'salt', + 'salute', + 'same', + 'sample', + 'sand', + 'satisfy', + 'satoshi', + 'sauce', + 'sausage', + 'save', + 'say', + 'scale', + 'scan', + 'scare', + 'scatter', + 'scene', + 'scheme', + 'school', + 'science', + 'scissors', + 'scorpion', + 'scout', + 'scrap', + 'screen', + 'script', + 'scrub', + 'sea', + 'search', + 'season', + 'seat', + 'second', + 'secret', + 'section', + 'security', + 'seed', + 'seek', + 'segment', + 'select', + 'sell', + 'seminar', + 'senior', + 'sense', + 'sentence', + 'series', + 'service', + 'session', + 'settle', + 'setup', + 'seven', + 'shadow', + 'shaft', + 'shallow', + 'share', + 'shed', + 'shell', + 'sheriff', + 'shield', + 'shift', + 'shine', + 'ship', + 'shiver', + 'shock', + 'shoe', + 'shoot', + 'shop', + 'short', + 'shoulder', + 'shove', + 'shrimp', + 'shrug', + 'shuffle', + 'shy', + 'sibling', + 'sick', + 'side', + 'siege', + 'sight', + 'sign', + 'silent', + 'silk', + 'silly', + 'silver', + 'similar', + 'simple', + 'since', + 'sing', + 'siren', + 'sister', + 'situate', + 'six', + 'size', + 'skate', + 'sketch', + 'ski', + 'skill', + 'skin', + 'skirt', + 'skull', + 'slab', + 'slam', + 'sleep', + 'slender', + 'slice', + 'slide', + 'slight', + 'slim', + 'slogan', + 'slot', + 'slow', + 'slush', + 'small', + 'smart', + 'smile', + 'smoke', + 'smooth', + 'snack', + 'snake', + 'snap', + 'sniff', + 'snow', + 'soap', + 'soccer', + 'social', + 'sock', + 'soda', + 'soft', + 'solar', + 'soldier', + 'solid', + 'solution', + 'solve', + 'someone', + 'song', + 'soon', + 'sorry', + 'sort', + 'soul', + 'sound', + 'soup', + 'source', + 'south', + 'space', + 'spare', + 'spatial', + 'spawn', + 'speak', + 'special', + 'speed', + 'spell', + 'spend', + 'sphere', + 'spice', + 'spider', + 'spike', + 'spin', + 'spirit', + 'split', + 'spoil', + 'sponsor', + 'spoon', + 'sport', + 'spot', + 'spray', + 'spread', + 'spring', + 'spy', + 'square', + 'squeeze', + 'squirrel', + 'stable', + 'stadium', + 'staff', + 'stage', + 'stairs', + 'stamp', + 'stand', + 'start', + 'state', + 'stay', + 'steak', + 'steel', + 'stem', + 'step', + 'stereo', + 'stick', + 'still', + 'sting', + 'stock', + 'stomach', + 'stone', + 'stool', + 'story', + 'stove', + 'strategy', + 'street', + 'strike', + 'strong', + 'struggle', + 'student', + 'stuff', + 'stumble', + 'style', + 'subject', + 'submit', + 'subway', + 'success', + 'such', + 'sudden', + 'suffer', + 'sugar', + 'suggest', + 'suit', + 'summer', + 'sun', + 'sunny', + 'sunset', + 'super', + 'supply', + 'supreme', + 'sure', + 'surface', + 'surge', + 'surprise', + 'surround', + 'survey', + 'suspect', + 'sustain', + 'swallow', + 'swamp', + 'swap', + 'swarm', + 'swear', + 'sweet', + 'swift', + 'swim', + 'swing', + 'switch', + 'sword', + 'symbol', + 'symptom', + 'syrup', + 'system', + 'table', + 'tackle', + 'tag', + 'tail', + 'talent', + 'talk', + 'tank', + 'tape', + 'target', + 'task', + 'taste', + 'tattoo', + 'taxi', + 'teach', + 'team', + 'tell', + 'ten', + 'tenant', + 'tennis', + 'tent', + 'term', + 'test', + 'text', + 'thank', + 'that', + 'theme', + 'then', + 'theory', + 'there', + 'they', + 'thing', + 'this', + 'thought', + 'three', + 'thrive', + 'throw', + 'thumb', + 'thunder', + 'ticket', + 'tide', + 'tiger', + 'tilt', + 'timber', + 'time', + 'tiny', + 'tip', + 'tired', + 'tissue', + 'title', + 'toast', + 'tobacco', + 'today', + 'toddler', + 'toe', + 'together', + 'toilet', + 'token', + 'tomato', + 'tomorrow', + 'tone', + 'tongue', + 'tonight', + 'tool', + 'tooth', + 'top', + 'topic', + 'topple', + 'torch', + 'tornado', + 'tortoise', + 'toss', + 'total', + 'tourist', + 'toward', + 'tower', + 'town', + 'toy', + 'track', + 'trade', + 'traffic', + 'tragic', + 'train', + 'transfer', + 'trap', + 'trash', + 'travel', + 'tray', + 'treat', + 'tree', + 'trend', + 'trial', + 'tribe', + 'trick', + 'trigger', + 'trim', + 'trip', + 'trophy', + 'trouble', + 'truck', + 'true', + 'truly', + 'trumpet', + 'trust', + 'truth', + 'try', + 'tube', + 'tuition', + 'tumble', + 'tuna', + 'tunnel', + 'turkey', + 'turn', + 'turtle', + 'twelve', + 'twenty', + 'twice', + 'twin', + 'twist', + 'two', + 'type', + 'typical', + 'ugly', + 'umbrella', + 'unable', + 'unaware', + 'uncle', + 'uncover', + 'under', + 'undo', + 'unfair', + 'unfold', + 'unhappy', + 'uniform', + 'unique', + 'unit', + 'universe', + 'unknown', + 'unlock', + 'until', + 'unusual', + 'unveil', + 'update', + 'upgrade', + 'uphold', + 'upon', + 'upper', + 'upset', + 'urban', + 'urge', + 'usage', + 'use', + 'used', + 'useful', + 'useless', + 'usual', + 'utility', + 'vacant', + 'vacuum', + 'vague', + 'valid', + 'valley', + 'valve', + 'van', + 'vanish', + 'vapor', + 'various', + 'vast', + 'vault', + 'vehicle', + 'velvet', + 'vendor', + 'venture', + 'venue', + 'verb', + 'verify', + 'version', + 'very', + 'vessel', + 'veteran', + 'viable', + 'vibrant', + 'vicious', + 'victory', + 'video', + 'view', + 'village', + 'vintage', + 'violin', + 'virtual', + 'virus', + 'visa', + 'visit', + 'visual', + 'vital', + 'vivid', + 'vocal', + 'voice', + 'void', + 'volcano', + 'volume', + 'vote', + 'voyage', + 'wage', + 'wagon', + 'wait', + 'walk', + 'wall', + 'walnut', + 'want', + 'warfare', + 'warm', + 'warrior', + 'wash', + 'wasp', + 'waste', + 'water', + 'wave', + 'way', + 'wealth', + 'weapon', + 'wear', + 'weasel', + 'weather', + 'web', + 'wedding', + 'weekend', + 'weird', + 'welcome', + 'west', + 'wet', + 'whale', + 'what', + 'wheat', + 'wheel', + 'when', + 'where', + 'whip', + 'whisper', + 'wide', + 'width', + 'wife', + 'wild', + 'will', + 'win', + 'window', + 'wine', + 'wing', + 'wink', + 'winner', + 'winter', + 'wire', + 'wisdom', + 'wise', + 'wish', + 'witness', + 'wolf', + 'woman', + 'wonder', + 'wood', + 'wool', + 'word', + 'work', + 'world', + 'worry', + 'worth', + 'wrap', + 'wreck', + 'wrestle', + 'wrist', + 'write', + 'wrong', + 'yard', + 'year', + 'yellow', + 'you', + 'young', + 'youth', + 'zebra', + 'zero', + 'zone', + 'zoo', +]; + +const french = [ + 'abaisser', + 'abandon', + 'abdiquer', + 'abeille', + 'abolir', + 'aborder', + 'aboutir', + 'aboyer', + 'abrasif', + 'abreuver', + 'abriter', + 'abroger', + 'abrupt', + 'absence', + 'absolu', + 'absurde', + 'abusif', + 'abyssal', + 'académie', + 'acajou', + 'acarien', + 'accabler', + 'accepter', + 'acclamer', + 'accolade', + 'accroche', + 'accuser', + 'acerbe', + 'achat', + 'acheter', + 'aciduler', + 'acier', + 'acompte', + 'acquérir', + 'acronyme', + 'acteur', + 'actif', + 'actuel', + 'adepte', + 'adéquat', + 'adhésif', + 'adjectif', + 'adjuger', + 'admettre', + 'admirer', + 'adopter', + 'adorer', + 'adoucir', + 'adresse', + 'adroit', + 'adulte', + 'adverbe', + 'aérer', + 'aéronef', + 'affaire', + 'affecter', + 'affiche', + 'affreux', + 'affubler', + 'agacer', + 'agencer', + 'agile', + 'agiter', + 'agrafer', + 'agréable', + 'agrume', + 'aider', + 'aiguille', + 'ailier', + 'aimable', + 'aisance', + 'ajouter', + 'ajuster', + 'alarmer', + 'alchimie', + 'alerte', + 'algèbre', + 'algue', + 'aliéner', + 'aliment', + 'alléger', + 'alliage', + 'allouer', + 'allumer', + 'alourdir', + 'alpaga', + 'altesse', + 'alvéole', + 'amateur', + 'ambigu', + 'ambre', + 'aménager', + 'amertume', + 'amidon', + 'amiral', + 'amorcer', + 'amour', + 'amovible', + 'amphibie', + 'ampleur', + 'amusant', + 'analyse', + 'anaphore', + 'anarchie', + 'anatomie', + 'ancien', + 'anéantir', + 'angle', + 'angoisse', + 'anguleux', + 'animal', + 'annexer', + 'annonce', + 'annuel', + 'anodin', + 'anomalie', + 'anonyme', + 'anormal', + 'antenne', + 'antidote', + 'anxieux', + 'apaiser', + 'apéritif', + 'aplanir', + 'apologie', + 'appareil', + 'appeler', + 'apporter', + 'appuyer', + 'aquarium', + 'aqueduc', + 'arbitre', + 'arbuste', + 'ardeur', + 'ardoise', + 'argent', + 'arlequin', + 'armature', + 'armement', + 'armoire', + 'armure', + 'arpenter', + 'arracher', + 'arriver', + 'arroser', + 'arsenic', + 'artériel', + 'article', + 'aspect', + 'asphalte', + 'aspirer', + 'assaut', + 'asservir', + 'assiette', + 'associer', + 'assurer', + 'asticot', + 'astre', + 'astuce', + 'atelier', + 'atome', + 'atrium', + 'atroce', + 'attaque', + 'attentif', + 'attirer', + 'attraper', + 'aubaine', + 'auberge', + 'audace', + 'audible', + 'augurer', + 'aurore', + 'automne', + 'autruche', + 'avaler', + 'avancer', + 'avarice', + 'avenir', + 'averse', + 'aveugle', + 'aviateur', + 'avide', + 'avion', + 'aviser', + 'avoine', + 'avouer', + 'avril', + 'axial', + 'axiome', + 'badge', + 'bafouer', + 'bagage', + 'baguette', + 'baignade', + 'balancer', + 'balcon', + 'baleine', + 'balisage', + 'bambin', + 'bancaire', + 'bandage', + 'banlieue', + 'bannière', + 'banquier', + 'barbier', + 'baril', + 'baron', + 'barque', + 'barrage', + 'bassin', + 'bastion', + 'bataille', + 'bateau', + 'batterie', + 'baudrier', + 'bavarder', + 'belette', + 'bélier', + 'belote', + 'bénéfice', + 'berceau', + 'berger', + 'berline', + 'bermuda', + 'besace', + 'besogne', + 'bétail', + 'beurre', + 'biberon', + 'bicycle', + 'bidule', + 'bijou', + 'bilan', + 'bilingue', + 'billard', + 'binaire', + 'biologie', + 'biopsie', + 'biotype', + 'biscuit', + 'bison', + 'bistouri', + 'bitume', + 'bizarre', + 'blafard', + 'blague', + 'blanchir', + 'blessant', + 'blinder', + 'blond', + 'bloquer', + 'blouson', + 'bobard', + 'bobine', + 'boire', + 'boiser', + 'bolide', + 'bonbon', + 'bondir', + 'bonheur', + 'bonifier', + 'bonus', + 'bordure', + 'borne', + 'botte', + 'boucle', + 'boueux', + 'bougie', + 'boulon', + 'bouquin', + 'bourse', + 'boussole', + 'boutique', + 'boxeur', + 'branche', + 'brasier', + 'brave', + 'brebis', + 'brèche', + 'breuvage', + 'bricoler', + 'brigade', + 'brillant', + 'brioche', + 'brique', + 'brochure', + 'broder', + 'bronzer', + 'brousse', + 'broyeur', + 'brume', + 'brusque', + 'brutal', + 'bruyant', + 'buffle', + 'buisson', + 'bulletin', + 'bureau', + 'burin', + 'bustier', + 'butiner', + 'butoir', + 'buvable', + 'buvette', + 'cabanon', + 'cabine', + 'cachette', + 'cadeau', + 'cadre', + 'caféine', + 'caillou', + 'caisson', + 'calculer', + 'calepin', + 'calibre', + 'calmer', + 'calomnie', + 'calvaire', + 'camarade', + 'caméra', + 'camion', + 'campagne', + 'canal', + 'caneton', + 'canon', + 'cantine', + 'canular', + 'capable', + 'caporal', + 'caprice', + 'capsule', + 'capter', + 'capuche', + 'carabine', + 'carbone', + 'caresser', + 'caribou', + 'carnage', + 'carotte', + 'carreau', + 'carton', + 'cascade', + 'casier', + 'casque', + 'cassure', + 'causer', + 'caution', + 'cavalier', + 'caverne', + 'caviar', + 'cédille', + 'ceinture', + 'céleste', + 'cellule', + 'cendrier', + 'censurer', + 'central', + 'cercle', + 'cérébral', + 'cerise', + 'cerner', + 'cerveau', + 'cesser', + 'chagrin', + 'chaise', + 'chaleur', + 'chambre', + 'chance', + 'chapitre', + 'charbon', + 'chasseur', + 'chaton', + 'chausson', + 'chavirer', + 'chemise', + 'chenille', + 'chéquier', + 'chercher', + 'cheval', + 'chien', + 'chiffre', + 'chignon', + 'chimère', + 'chiot', + 'chlorure', + 'chocolat', + 'choisir', + 'chose', + 'chouette', + 'chrome', + 'chute', + 'cigare', + 'cigogne', + 'cimenter', + 'cinéma', + 'cintrer', + 'circuler', + 'cirer', + 'cirque', + 'citerne', + 'citoyen', + 'citron', + 'civil', + 'clairon', + 'clameur', + 'claquer', + 'classe', + 'clavier', + 'client', + 'cligner', + 'climat', + 'clivage', + 'cloche', + 'clonage', + 'cloporte', + 'cobalt', + 'cobra', + 'cocasse', + 'cocotier', + 'coder', + 'codifier', + 'coffre', + 'cogner', + 'cohésion', + 'coiffer', + 'coincer', + 'colère', + 'colibri', + 'colline', + 'colmater', + 'colonel', + 'combat', + 'comédie', + 'commande', + 'compact', + 'concert', + 'conduire', + 'confier', + 'congeler', + 'connoter', + 'consonne', + 'contact', + 'convexe', + 'copain', + 'copie', + 'corail', + 'corbeau', + 'cordage', + 'corniche', + 'corpus', + 'correct', + 'cortège', + 'cosmique', + 'costume', + 'coton', + 'coude', + 'coupure', + 'courage', + 'couteau', + 'couvrir', + 'coyote', + 'crabe', + 'crainte', + 'cravate', + 'crayon', + 'créature', + 'créditer', + 'crémeux', + 'creuser', + 'crevette', + 'cribler', + 'crier', + 'cristal', + 'critère', + 'croire', + 'croquer', + 'crotale', + 'crucial', + 'cruel', + 'crypter', + 'cubique', + 'cueillir', + 'cuillère', + 'cuisine', + 'cuivre', + 'culminer', + 'cultiver', + 'cumuler', + 'cupide', + 'curatif', + 'curseur', + 'cyanure', + 'cycle', + 'cylindre', + 'cynique', + 'daigner', + 'damier', + 'danger', + 'danseur', + 'dauphin', + 'débattre', + 'débiter', + 'déborder', + 'débrider', + 'débutant', + 'décaler', + 'décembre', + 'déchirer', + 'décider', + 'déclarer', + 'décorer', + 'décrire', + 'décupler', + 'dédale', + 'déductif', + 'déesse', + 'défensif', + 'défiler', + 'défrayer', + 'dégager', + 'dégivrer', + 'déglutir', + 'dégrafer', + 'déjeuner', + 'délice', + 'déloger', + 'demander', + 'demeurer', + 'démolir', + 'dénicher', + 'dénouer', + 'dentelle', + 'dénuder', + 'départ', + 'dépenser', + 'déphaser', + 'déplacer', + 'déposer', + 'déranger', + 'dérober', + 'désastre', + 'descente', + 'désert', + 'désigner', + 'désobéir', + 'dessiner', + 'destrier', + 'détacher', + 'détester', + 'détourer', + 'détresse', + 'devancer', + 'devenir', + 'deviner', + 'devoir', + 'diable', + 'dialogue', + 'diamant', + 'dicter', + 'différer', + 'digérer', + 'digital', + 'digne', + 'diluer', + 'dimanche', + 'diminuer', + 'dioxyde', + 'directif', + 'diriger', + 'discuter', + 'disposer', + 'dissiper', + 'distance', + 'divertir', + 'diviser', + 'docile', + 'docteur', + 'dogme', + 'doigt', + 'domaine', + 'domicile', + 'dompter', + 'donateur', + 'donjon', + 'donner', + 'dopamine', + 'dortoir', + 'dorure', + 'dosage', + 'doseur', + 'dossier', + 'dotation', + 'douanier', + 'double', + 'douceur', + 'douter', + 'doyen', + 'dragon', + 'draper', + 'dresser', + 'dribbler', + 'droiture', + 'duperie', + 'duplexe', + 'durable', + 'durcir', + 'dynastie', + 'éblouir', + 'écarter', + 'écharpe', + 'échelle', + 'éclairer', + 'éclipse', + 'éclore', + 'écluse', + 'école', + 'économie', + 'écorce', + 'écouter', + 'écraser', + 'écrémer', + 'écrivain', + 'écrou', + 'écume', + 'écureuil', + 'édifier', + 'éduquer', + 'effacer', + 'effectif', + 'effigie', + 'effort', + 'effrayer', + 'effusion', + 'égaliser', + 'égarer', + 'éjecter', + 'élaborer', + 'élargir', + 'électron', + 'élégant', + 'éléphant', + 'élève', + 'éligible', + 'élitisme', + 'éloge', + 'élucider', + 'éluder', + 'emballer', + 'embellir', + 'embryon', + 'émeraude', + 'émission', + 'emmener', + 'émotion', + 'émouvoir', + 'empereur', + 'employer', + 'emporter', + 'emprise', + 'émulsion', + 'encadrer', + 'enchère', + 'enclave', + 'encoche', + 'endiguer', + 'endosser', + 'endroit', + 'enduire', + 'énergie', + 'enfance', + 'enfermer', + 'enfouir', + 'engager', + 'engin', + 'englober', + 'énigme', + 'enjamber', + 'enjeu', + 'enlever', + 'ennemi', + 'ennuyeux', + 'enrichir', + 'enrobage', + 'enseigne', + 'entasser', + 'entendre', + 'entier', + 'entourer', + 'entraver', + 'énumérer', + 'envahir', + 'enviable', + 'envoyer', + 'enzyme', + 'éolien', + 'épaissir', + 'épargne', + 'épatant', + 'épaule', + 'épicerie', + 'épidémie', + 'épier', + 'épilogue', + 'épine', + 'épisode', + 'épitaphe', + 'époque', + 'épreuve', + 'éprouver', + 'épuisant', + 'équerre', + 'équipe', + 'ériger', + 'érosion', + 'erreur', + 'éruption', + 'escalier', + 'espadon', + 'espèce', + 'espiègle', + 'espoir', + 'esprit', + 'esquiver', + 'essayer', + 'essence', + 'essieu', + 'essorer', + 'estime', + 'estomac', + 'estrade', + 'étagère', + 'étaler', + 'étanche', + 'étatique', + 'éteindre', + 'étendoir', + 'éternel', + 'éthanol', + 'éthique', + 'ethnie', + 'étirer', + 'étoffer', + 'étoile', + 'étonnant', + 'étourdir', + 'étrange', + 'étroit', + 'étude', + 'euphorie', + 'évaluer', + 'évasion', + 'éventail', + 'évidence', + 'éviter', + 'évolutif', + 'évoquer', + 'exact', + 'exagérer', + 'exaucer', + 'exceller', + 'excitant', + 'exclusif', + 'excuse', + 'exécuter', + 'exemple', + 'exercer', + 'exhaler', + 'exhorter', + 'exigence', + 'exiler', + 'exister', + 'exotique', + 'expédier', + 'explorer', + 'exposer', + 'exprimer', + 'exquis', + 'extensif', + 'extraire', + 'exulter', + 'fable', + 'fabuleux', + 'facette', + 'facile', + 'facture', + 'faiblir', + 'falaise', + 'fameux', + 'famille', + 'farceur', + 'farfelu', + 'farine', + 'farouche', + 'fasciner', + 'fatal', + 'fatigue', + 'faucon', + 'fautif', + 'faveur', + 'favori', + 'fébrile', + 'féconder', + 'fédérer', + 'félin', + 'femme', + 'fémur', + 'fendoir', + 'féodal', + 'fermer', + 'féroce', + 'ferveur', + 'festival', + 'feuille', + 'feutre', + 'février', + 'fiasco', + 'ficeler', + 'fictif', + 'fidèle', + 'figure', + 'filature', + 'filetage', + 'filière', + 'filleul', + 'filmer', + 'filou', + 'filtrer', + 'financer', + 'finir', + 'fiole', + 'firme', + 'fissure', + 'fixer', + 'flairer', + 'flamme', + 'flasque', + 'flatteur', + 'fléau', + 'flèche', + 'fleur', + 'flexion', + 'flocon', + 'flore', + 'fluctuer', + 'fluide', + 'fluvial', + 'folie', + 'fonderie', + 'fongible', + 'fontaine', + 'forcer', + 'forgeron', + 'formuler', + 'fortune', + 'fossile', + 'foudre', + 'fougère', + 'fouiller', + 'foulure', + 'fourmi', + 'fragile', + 'fraise', + 'franchir', + 'frapper', + 'frayeur', + 'frégate', + 'freiner', + 'frelon', + 'frémir', + 'frénésie', + 'frère', + 'friable', + 'friction', + 'frisson', + 'frivole', + 'froid', + 'fromage', + 'frontal', + 'frotter', + 'fruit', + 'fugitif', + 'fuite', + 'fureur', + 'furieux', + 'furtif', + 'fusion', + 'futur', + 'gagner', + 'galaxie', + 'galerie', + 'gambader', + 'garantir', + 'gardien', + 'garnir', + 'garrigue', + 'gazelle', + 'gazon', + 'géant', + 'gélatine', + 'gélule', + 'gendarme', + 'général', + 'génie', + 'genou', + 'gentil', + 'géologie', + 'géomètre', + 'géranium', + 'germe', + 'gestuel', + 'geyser', + 'gibier', + 'gicler', + 'girafe', + 'givre', + 'glace', + 'glaive', + 'glisser', + 'globe', + 'gloire', + 'glorieux', + 'golfeur', + 'gomme', + 'gonfler', + 'gorge', + 'gorille', + 'goudron', + 'gouffre', + 'goulot', + 'goupille', + 'gourmand', + 'goutte', + 'graduel', + 'graffiti', + 'graine', + 'grand', + 'grappin', + 'gratuit', + 'gravir', + 'grenat', + 'griffure', + 'griller', + 'grimper', + 'grogner', + 'gronder', + 'grotte', + 'groupe', + 'gruger', + 'grutier', + 'gruyère', + 'guépard', + 'guerrier', + 'guide', + 'guimauve', + 'guitare', + 'gustatif', + 'gymnaste', + 'gyrostat', + 'habitude', + 'hachoir', + 'halte', + 'hameau', + 'hangar', + 'hanneton', + 'haricot', + 'harmonie', + 'harpon', + 'hasard', + 'hélium', + 'hématome', + 'herbe', + 'hérisson', + 'hermine', + 'héron', + 'hésiter', + 'heureux', + 'hiberner', + 'hibou', + 'hilarant', + 'histoire', + 'hiver', + 'homard', + 'hommage', + 'homogène', + 'honneur', + 'honorer', + 'honteux', + 'horde', + 'horizon', + 'horloge', + 'hormone', + 'horrible', + 'houleux', + 'housse', + 'hublot', + 'huileux', + 'humain', + 'humble', + 'humide', + 'humour', + 'hurler', + 'hydromel', + 'hygiène', + 'hymne', + 'hypnose', + 'idylle', + 'ignorer', + 'iguane', + 'illicite', + 'illusion', + 'image', + 'imbiber', + 'imiter', + 'immense', + 'immobile', + 'immuable', + 'impact', + 'impérial', + 'implorer', + 'imposer', + 'imprimer', + 'imputer', + 'incarner', + 'incendie', + 'incident', + 'incliner', + 'incolore', + 'indexer', + 'indice', + 'inductif', + 'inédit', + 'ineptie', + 'inexact', + 'infini', + 'infliger', + 'informer', + 'infusion', + 'ingérer', + 'inhaler', + 'inhiber', + 'injecter', + 'injure', + 'innocent', + 'inoculer', + 'inonder', + 'inscrire', + 'insecte', + 'insigne', + 'insolite', + 'inspirer', + 'instinct', + 'insulter', + 'intact', + 'intense', + 'intime', + 'intrigue', + 'intuitif', + 'inutile', + 'invasion', + 'inventer', + 'inviter', + 'invoquer', + 'ironique', + 'irradier', + 'irréel', + 'irriter', + 'isoler', + 'ivoire', + 'ivresse', + 'jaguar', + 'jaillir', + 'jambe', + 'janvier', + 'jardin', + 'jauger', + 'jaune', + 'javelot', + 'jetable', + 'jeton', + 'jeudi', + 'jeunesse', + 'joindre', + 'joncher', + 'jongler', + 'joueur', + 'jouissif', + 'journal', + 'jovial', + 'joyau', + 'joyeux', + 'jubiler', + 'jugement', + 'junior', + 'jupon', + 'juriste', + 'justice', + 'juteux', + 'juvénile', + 'kayak', + 'kimono', + 'kiosque', + 'label', + 'labial', + 'labourer', + 'lacérer', + 'lactose', + 'lagune', + 'laine', + 'laisser', + 'laitier', + 'lambeau', + 'lamelle', + 'lampe', + 'lanceur', + 'langage', + 'lanterne', + 'lapin', + 'largeur', + 'larme', + 'laurier', + 'lavabo', + 'lavoir', + 'lecture', + 'légal', + 'léger', + 'légume', + 'lessive', + 'lettre', + 'levier', + 'lexique', + 'lézard', + 'liasse', + 'libérer', + 'libre', + 'licence', + 'licorne', + 'liège', + 'lièvre', + 'ligature', + 'ligoter', + 'ligue', + 'limer', + 'limite', + 'limonade', + 'limpide', + 'linéaire', + 'lingot', + 'lionceau', + 'liquide', + 'lisière', + 'lister', + 'lithium', + 'litige', + 'littoral', + 'livreur', + 'logique', + 'lointain', + 'loisir', + 'lombric', + 'loterie', + 'louer', + 'lourd', + 'loutre', + 'louve', + 'loyal', + 'lubie', + 'lucide', + 'lucratif', + 'lueur', + 'lugubre', + 'luisant', + 'lumière', + 'lunaire', + 'lundi', + 'luron', + 'lutter', + 'luxueux', + 'machine', + 'magasin', + 'magenta', + 'magique', + 'maigre', + 'maillon', + 'maintien', + 'mairie', + 'maison', + 'majorer', + 'malaxer', + 'maléfice', + 'malheur', + 'malice', + 'mallette', + 'mammouth', + 'mandater', + 'maniable', + 'manquant', + 'manteau', + 'manuel', + 'marathon', + 'marbre', + 'marchand', + 'mardi', + 'maritime', + 'marqueur', + 'marron', + 'marteler', + 'mascotte', + 'massif', + 'matériel', + 'matière', + 'matraque', + 'maudire', + 'maussade', + 'mauve', + 'maximal', + 'méchant', + 'méconnu', + 'médaille', + 'médecin', + 'méditer', + 'méduse', + 'meilleur', + 'mélange', + 'mélodie', + 'membre', + 'mémoire', + 'menacer', + 'mener', + 'menhir', + 'mensonge', + 'mentor', + 'mercredi', + 'mérite', + 'merle', + 'messager', + 'mesure', + 'métal', + 'météore', + 'méthode', + 'métier', + 'meuble', + 'miauler', + 'microbe', + 'miette', + 'mignon', + 'migrer', + 'milieu', + 'million', + 'mimique', + 'mince', + 'minéral', + 'minimal', + 'minorer', + 'minute', + 'miracle', + 'miroiter', + 'missile', + 'mixte', + 'mobile', + 'moderne', + 'moelleux', + 'mondial', + 'moniteur', + 'monnaie', + 'monotone', + 'monstre', + 'montagne', + 'monument', + 'moqueur', + 'morceau', + 'morsure', + 'mortier', + 'moteur', + 'motif', + 'mouche', + 'moufle', + 'moulin', + 'mousson', + 'mouton', + 'mouvant', + 'multiple', + 'munition', + 'muraille', + 'murène', + 'murmure', + 'muscle', + 'muséum', + 'musicien', + 'mutation', + 'muter', + 'mutuel', + 'myriade', + 'myrtille', + 'mystère', + 'mythique', + 'nageur', + 'nappe', + 'narquois', + 'narrer', + 'natation', + 'nation', + 'nature', + 'naufrage', + 'nautique', + 'navire', + 'nébuleux', + 'nectar', + 'néfaste', + 'négation', + 'négliger', + 'négocier', + 'neige', + 'nerveux', + 'nettoyer', + 'neurone', + 'neutron', + 'neveu', + 'niche', + 'nickel', + 'nitrate', + 'niveau', + 'noble', + 'nocif', + 'nocturne', + 'noirceur', + 'noisette', + 'nomade', + 'nombreux', + 'nommer', + 'normatif', + 'notable', + 'notifier', + 'notoire', + 'nourrir', + 'nouveau', + 'novateur', + 'novembre', + 'novice', + 'nuage', + 'nuancer', + 'nuire', + 'nuisible', + 'numéro', + 'nuptial', + 'nuque', + 'nutritif', + 'obéir', + 'objectif', + 'obliger', + 'obscur', + 'observer', + 'obstacle', + 'obtenir', + 'obturer', + 'occasion', + 'occuper', + 'océan', + 'octobre', + 'octroyer', + 'octupler', + 'oculaire', + 'odeur', + 'odorant', + 'offenser', + 'officier', + 'offrir', + 'ogive', + 'oiseau', + 'oisillon', + 'olfactif', + 'olivier', + 'ombrage', + 'omettre', + 'onctueux', + 'onduler', + 'onéreux', + 'onirique', + 'opale', + 'opaque', + 'opérer', + 'opinion', + 'opportun', + 'opprimer', + 'opter', + 'optique', + 'orageux', + 'orange', + 'orbite', + 'ordonner', + 'oreille', + 'organe', + 'orgueil', + 'orifice', + 'ornement', + 'orque', + 'ortie', + 'osciller', + 'osmose', + 'ossature', + 'otarie', + 'ouragan', + 'ourson', + 'outil', + 'outrager', + 'ouvrage', + 'ovation', + 'oxyde', + 'oxygène', + 'ozone', + 'paisible', + 'palace', + 'palmarès', + 'palourde', + 'palper', + 'panache', + 'panda', + 'pangolin', + 'paniquer', + 'panneau', + 'panorama', + 'pantalon', + 'papaye', + 'papier', + 'papoter', + 'papyrus', + 'paradoxe', + 'parcelle', + 'paresse', + 'parfumer', + 'parler', + 'parole', + 'parrain', + 'parsemer', + 'partager', + 'parure', + 'parvenir', + 'passion', + 'pastèque', + 'paternel', + 'patience', + 'patron', + 'pavillon', + 'pavoiser', + 'payer', + 'paysage', + 'peigne', + 'peintre', + 'pelage', + 'pélican', + 'pelle', + 'pelouse', + 'peluche', + 'pendule', + 'pénétrer', + 'pénible', + 'pensif', + 'pénurie', + 'pépite', + 'péplum', + 'perdrix', + 'perforer', + 'période', + 'permuter', + 'perplexe', + 'persil', + 'perte', + 'peser', + 'pétale', + 'petit', + 'pétrir', + 'peuple', + 'pharaon', + 'phobie', + 'phoque', + 'photon', + 'phrase', + 'physique', + 'piano', + 'pictural', + 'pièce', + 'pierre', + 'pieuvre', + 'pilote', + 'pinceau', + 'pipette', + 'piquer', + 'pirogue', + 'piscine', + 'piston', + 'pivoter', + 'pixel', + 'pizza', + 'placard', + 'plafond', + 'plaisir', + 'planer', + 'plaque', + 'plastron', + 'plateau', + 'pleurer', + 'plexus', + 'pliage', + 'plomb', + 'plonger', + 'pluie', + 'plumage', + 'pochette', + 'poésie', + 'poète', + 'pointe', + 'poirier', + 'poisson', + 'poivre', + 'polaire', + 'policier', + 'pollen', + 'polygone', + 'pommade', + 'pompier', + 'ponctuel', + 'pondérer', + 'poney', + 'portique', + 'position', + 'posséder', + 'posture', + 'potager', + 'poteau', + 'potion', + 'pouce', + 'poulain', + 'poumon', + 'pourpre', + 'poussin', + 'pouvoir', + 'prairie', + 'pratique', + 'précieux', + 'prédire', + 'préfixe', + 'prélude', + 'prénom', + 'présence', + 'prétexte', + 'prévoir', + 'primitif', + 'prince', + 'prison', + 'priver', + 'problème', + 'procéder', + 'prodige', + 'profond', + 'progrès', + 'proie', + 'projeter', + 'prologue', + 'promener', + 'propre', + 'prospère', + 'protéger', + 'prouesse', + 'proverbe', + 'prudence', + 'pruneau', + 'psychose', + 'public', + 'puceron', + 'puiser', + 'pulpe', + 'pulsar', + 'punaise', + 'punitif', + 'pupitre', + 'purifier', + 'puzzle', + 'pyramide', + 'quasar', + 'querelle', + 'question', + 'quiétude', + 'quitter', + 'quotient', + 'racine', + 'raconter', + 'radieux', + 'ragondin', + 'raideur', + 'raisin', + 'ralentir', + 'rallonge', + 'ramasser', + 'rapide', + 'rasage', + 'ratisser', + 'ravager', + 'ravin', + 'rayonner', + 'réactif', + 'réagir', + 'réaliser', + 'réanimer', + 'recevoir', + 'réciter', + 'réclamer', + 'récolter', + 'recruter', + 'reculer', + 'recycler', + 'rédiger', + 'redouter', + 'refaire', + 'réflexe', + 'réformer', + 'refrain', + 'refuge', + 'régalien', + 'région', + 'réglage', + 'régulier', + 'réitérer', + 'rejeter', + 'rejouer', + 'relatif', + 'relever', + 'relief', + 'remarque', + 'remède', + 'remise', + 'remonter', + 'remplir', + 'remuer', + 'renard', + 'renfort', + 'renifler', + 'renoncer', + 'rentrer', + 'renvoi', + 'replier', + 'reporter', + 'reprise', + 'reptile', + 'requin', + 'réserve', + 'résineux', + 'résoudre', + 'respect', + 'rester', + 'résultat', + 'rétablir', + 'retenir', + 'réticule', + 'retomber', + 'retracer', + 'réunion', + 'réussir', + 'revanche', + 'revivre', + 'révolte', + 'révulsif', + 'richesse', + 'rideau', + 'rieur', + 'rigide', + 'rigoler', + 'rincer', + 'riposter', + 'risible', + 'risque', + 'rituel', + 'rival', + 'rivière', + 'rocheux', + 'romance', + 'rompre', + 'ronce', + 'rondin', + 'roseau', + 'rosier', + 'rotatif', + 'rotor', + 'rotule', + 'rouge', + 'rouille', + 'rouleau', + 'routine', + 'royaume', + 'ruban', + 'rubis', + 'ruche', + 'ruelle', + 'rugueux', + 'ruiner', + 'ruisseau', + 'ruser', + 'rustique', + 'rythme', + 'sabler', + 'saboter', + 'sabre', + 'sacoche', + 'safari', + 'sagesse', + 'saisir', + 'salade', + 'salive', + 'salon', + 'saluer', + 'samedi', + 'sanction', + 'sanglier', + 'sarcasme', + 'sardine', + 'saturer', + 'saugrenu', + 'saumon', + 'sauter', + 'sauvage', + 'savant', + 'savonner', + 'scalpel', + 'scandale', + 'scélérat', + 'scénario', + 'sceptre', + 'schéma', + 'science', + 'scinder', + 'score', + 'scrutin', + 'sculpter', + 'séance', + 'sécable', + 'sécher', + 'secouer', + 'sécréter', + 'sédatif', + 'séduire', + 'seigneur', + 'séjour', + 'sélectif', + 'semaine', + 'sembler', + 'semence', + 'séminal', + 'sénateur', + 'sensible', + 'sentence', + 'séparer', + 'séquence', + 'serein', + 'sergent', + 'sérieux', + 'serrure', + 'sérum', + 'service', + 'sésame', + 'sévir', + 'sevrage', + 'sextuple', + 'sidéral', + 'siècle', + 'siéger', + 'siffler', + 'sigle', + 'signal', + 'silence', + 'silicium', + 'simple', + 'sincère', + 'sinistre', + 'siphon', + 'sirop', + 'sismique', + 'situer', + 'skier', + 'social', + 'socle', + 'sodium', + 'soigneux', + 'soldat', + 'soleil', + 'solitude', + 'soluble', + 'sombre', + 'sommeil', + 'somnoler', + 'sonde', + 'songeur', + 'sonnette', + 'sonore', + 'sorcier', + 'sortir', + 'sosie', + 'sottise', + 'soucieux', + 'soudure', + 'souffle', + 'soulever', + 'soupape', + 'source', + 'soutirer', + 'souvenir', + 'spacieux', + 'spatial', + 'spécial', + 'sphère', + 'spiral', + 'stable', + 'station', + 'sternum', + 'stimulus', + 'stipuler', + 'strict', + 'studieux', + 'stupeur', + 'styliste', + 'sublime', + 'substrat', + 'subtil', + 'subvenir', + 'succès', + 'sucre', + 'suffixe', + 'suggérer', + 'suiveur', + 'sulfate', + 'superbe', + 'supplier', + 'surface', + 'suricate', + 'surmener', + 'surprise', + 'sursaut', + 'survie', + 'suspect', + 'syllabe', + 'symbole', + 'symétrie', + 'synapse', + 'syntaxe', + 'système', + 'tabac', + 'tablier', + 'tactile', + 'tailler', + 'talent', + 'talisman', + 'talonner', + 'tambour', + 'tamiser', + 'tangible', + 'tapis', + 'taquiner', + 'tarder', + 'tarif', + 'tartine', + 'tasse', + 'tatami', + 'tatouage', + 'taupe', + 'taureau', + 'taxer', + 'témoin', + 'temporel', + 'tenaille', + 'tendre', + 'teneur', + 'tenir', + 'tension', + 'terminer', + 'terne', + 'terrible', + 'tétine', + 'texte', + 'thème', + 'théorie', + 'thérapie', + 'thorax', + 'tibia', + 'tiède', + 'timide', + 'tirelire', + 'tiroir', + 'tissu', + 'titane', + 'titre', + 'tituber', + 'toboggan', + 'tolérant', + 'tomate', + 'tonique', + 'tonneau', + 'toponyme', + 'torche', + 'tordre', + 'tornade', + 'torpille', + 'torrent', + 'torse', + 'tortue', + 'totem', + 'toucher', + 'tournage', + 'tousser', + 'toxine', + 'traction', + 'trafic', + 'tragique', + 'trahir', + 'train', + 'trancher', + 'travail', + 'trèfle', + 'tremper', + 'trésor', + 'treuil', + 'triage', + 'tribunal', + 'tricoter', + 'trilogie', + 'triomphe', + 'tripler', + 'triturer', + 'trivial', + 'trombone', + 'tronc', + 'tropical', + 'troupeau', + 'tuile', + 'tulipe', + 'tumulte', + 'tunnel', + 'turbine', + 'tuteur', + 'tutoyer', + 'tuyau', + 'tympan', + 'typhon', + 'typique', + 'tyran', + 'ubuesque', + 'ultime', + 'ultrason', + 'unanime', + 'unifier', + 'union', + 'unique', + 'unitaire', + 'univers', + 'uranium', + 'urbain', + 'urticant', + 'usage', + 'usine', + 'usuel', + 'usure', + 'utile', + 'utopie', + 'vacarme', + 'vaccin', + 'vagabond', + 'vague', + 'vaillant', + 'vaincre', + 'vaisseau', + 'valable', + 'valise', + 'vallon', + 'valve', + 'vampire', + 'vanille', + 'vapeur', + 'varier', + 'vaseux', + 'vassal', + 'vaste', + 'vecteur', + 'vedette', + 'végétal', + 'véhicule', + 'veinard', + 'véloce', + 'vendredi', + 'vénérer', + 'venger', + 'venimeux', + 'ventouse', + 'verdure', + 'vérin', + 'vernir', + 'verrou', + 'verser', + 'vertu', + 'veston', + 'vétéran', + 'vétuste', + 'vexant', + 'vexer', + 'viaduc', + 'viande', + 'victoire', + 'vidange', + 'vidéo', + 'vignette', + 'vigueur', + 'vilain', + 'village', + 'vinaigre', + 'violon', + 'vipère', + 'virement', + 'virtuose', + 'virus', + 'visage', + 'viseur', + 'vision', + 'visqueux', + 'visuel', + 'vital', + 'vitesse', + 'viticole', + 'vitrine', + 'vivace', + 'vivipare', + 'vocation', + 'voguer', + 'voile', + 'voisin', + 'voiture', + 'volaille', + 'volcan', + 'voltiger', + 'volume', + 'vorace', + 'vortex', + 'voter', + 'vouloir', + 'voyage', + 'voyelle', + 'wagon', + 'xénon', + 'yacht', + 'zèbre', + 'zénith', + 'zeste', + 'zoologie', +]; + +const italian = [ + 'abaco', + 'abbaglio', + 'abbinato', + 'abete', + 'abisso', + 'abolire', + 'abrasivo', + 'abrogato', + 'accadere', + 'accenno', + 'accusato', + 'acetone', + 'achille', + 'acido', + 'acqua', + 'acre', + 'acrilico', + 'acrobata', + 'acuto', + 'adagio', + 'addebito', + 'addome', + 'adeguato', + 'aderire', + 'adipe', + 'adottare', + 'adulare', + 'affabile', + 'affetto', + 'affisso', + 'affranto', + 'aforisma', + 'afoso', + 'africano', + 'agave', + 'agente', + 'agevole', + 'aggancio', + 'agire', + 'agitare', + 'agonismo', + 'agricolo', + 'agrumeto', + 'aguzzo', + 'alabarda', + 'alato', + 'albatro', + 'alberato', + 'albo', + 'albume', + 'alce', + 'alcolico', + 'alettone', + 'alfa', + 'algebra', + 'aliante', + 'alibi', + 'alimento', + 'allagato', + 'allegro', + 'allievo', + 'allodola', + 'allusivo', + 'almeno', + 'alogeno', + 'alpaca', + 'alpestre', + 'altalena', + 'alterno', + 'alticcio', + 'altrove', + 'alunno', + 'alveolo', + 'alzare', + 'amalgama', + 'amanita', + 'amarena', + 'ambito', + 'ambrato', + 'ameba', + 'america', + 'ametista', + 'amico', + 'ammasso', + 'ammenda', + 'ammirare', + 'ammonito', + 'amore', + 'ampio', + 'ampliare', + 'amuleto', + 'anacardo', + 'anagrafe', + 'analista', + 'anarchia', + 'anatra', + 'anca', + 'ancella', + 'ancora', + 'andare', + 'andrea', + 'anello', + 'angelo', + 'angolare', + 'angusto', + 'anima', + 'annegare', + 'annidato', + 'anno', + 'annuncio', + 'anonimo', + 'anticipo', + 'anzi', + 'apatico', + 'apertura', + 'apode', + 'apparire', + 'appetito', + 'appoggio', + 'approdo', + 'appunto', + 'aprile', + 'arabica', + 'arachide', + 'aragosta', + 'araldica', + 'arancio', + 'aratura', + 'arazzo', + 'arbitro', + 'archivio', + 'ardito', + 'arenile', + 'argento', + 'argine', + 'arguto', + 'aria', + 'armonia', + 'arnese', + 'arredato', + 'arringa', + 'arrosto', + 'arsenico', + 'arso', + 'artefice', + 'arzillo', + 'asciutto', + 'ascolto', + 'asepsi', + 'asettico', + 'asfalto', + 'asino', + 'asola', + 'aspirato', + 'aspro', + 'assaggio', + 'asse', + 'assoluto', + 'assurdo', + 'asta', + 'astenuto', + 'astice', + 'astratto', + 'atavico', + 'ateismo', + 'atomico', + 'atono', + 'attesa', + 'attivare', + 'attorno', + 'attrito', + 'attuale', + 'ausilio', + 'austria', + 'autista', + 'autonomo', + 'autunno', + 'avanzato', + 'avere', + 'avvenire', + 'avviso', + 'avvolgere', + 'azione', + 'azoto', + 'azzimo', + 'azzurro', + 'babele', + 'baccano', + 'bacino', + 'baco', + 'badessa', + 'badilata', + 'bagnato', + 'baita', + 'balcone', + 'baldo', + 'balena', + 'ballata', + 'balzano', + 'bambino', + 'bandire', + 'baraonda', + 'barbaro', + 'barca', + 'baritono', + 'barlume', + 'barocco', + 'basilico', + 'basso', + 'batosta', + 'battuto', + 'baule', + 'bava', + 'bavosa', + 'becco', + 'beffa', + 'belgio', + 'belva', + 'benda', + 'benevole', + 'benigno', + 'benzina', + 'bere', + 'berlina', + 'beta', + 'bibita', + 'bici', + 'bidone', + 'bifido', + 'biga', + 'bilancia', + 'bimbo', + 'binocolo', + 'biologo', + 'bipede', + 'bipolare', + 'birbante', + 'birra', + 'biscotto', + 'bisesto', + 'bisnonno', + 'bisonte', + 'bisturi', + 'bizzarro', + 'blando', + 'blatta', + 'bollito', + 'bonifico', + 'bordo', + 'bosco', + 'botanico', + 'bottino', + 'bozzolo', + 'braccio', + 'bradipo', + 'brama', + 'branca', + 'bravura', + 'bretella', + 'brevetto', + 'brezza', + 'briglia', + 'brillante', + 'brindare', + 'broccolo', + 'brodo', + 'bronzina', + 'brullo', + 'bruno', + 'bubbone', + 'buca', + 'budino', + 'buffone', + 'buio', + 'bulbo', + 'buono', + 'burlone', + 'burrasca', + 'bussola', + 'busta', + 'cadetto', + 'caduco', + 'calamaro', + 'calcolo', + 'calesse', + 'calibro', + 'calmo', + 'caloria', + 'cambusa', + 'camerata', + 'camicia', + 'cammino', + 'camola', + 'campale', + 'canapa', + 'candela', + 'cane', + 'canino', + 'canotto', + 'cantina', + 'capace', + 'capello', + 'capitolo', + 'capogiro', + 'cappero', + 'capra', + 'capsula', + 'carapace', + 'carcassa', + 'cardo', + 'carisma', + 'carovana', + 'carretto', + 'cartolina', + 'casaccio', + 'cascata', + 'caserma', + 'caso', + 'cassone', + 'castello', + 'casuale', + 'catasta', + 'catena', + 'catrame', + 'cauto', + 'cavillo', + 'cedibile', + 'cedrata', + 'cefalo', + 'celebre', + 'cellulare', + 'cena', + 'cenone', + 'centesimo', + 'ceramica', + 'cercare', + 'certo', + 'cerume', + 'cervello', + 'cesoia', + 'cespo', + 'ceto', + 'chela', + 'chiaro', + 'chicca', + 'chiedere', + 'chimera', + 'china', + 'chirurgo', + 'chitarra', + 'ciao', + 'ciclismo', + 'cifrare', + 'cigno', + 'cilindro', + 'ciottolo', + 'circa', + 'cirrosi', + 'citrico', + 'cittadino', + 'ciuffo', + 'civetta', + 'civile', + 'classico', + 'clinica', + 'cloro', + 'cocco', + 'codardo', + 'codice', + 'coerente', + 'cognome', + 'collare', + 'colmato', + 'colore', + 'colposo', + 'coltivato', + 'colza', + 'coma', + 'cometa', + 'commando', + 'comodo', + 'computer', + 'comune', + 'conciso', + 'condurre', + 'conferma', + 'congelare', + 'coniuge', + 'connesso', + 'conoscere', + 'consumo', + 'continuo', + 'convegno', + 'coperto', + 'copione', + 'coppia', + 'copricapo', + 'corazza', + 'cordata', + 'coricato', + 'cornice', + 'corolla', + 'corpo', + 'corredo', + 'corsia', + 'cortese', + 'cosmico', + 'costante', + 'cottura', + 'covato', + 'cratere', + 'cravatta', + 'creato', + 'credere', + 'cremoso', + 'crescita', + 'creta', + 'criceto', + 'crinale', + 'crisi', + 'critico', + 'croce', + 'cronaca', + 'crostata', + 'cruciale', + 'crusca', + 'cucire', + 'cuculo', + 'cugino', + 'cullato', + 'cupola', + 'curatore', + 'cursore', + 'curvo', + 'cuscino', + 'custode', + 'dado', + 'daino', + 'dalmata', + 'damerino', + 'daniela', + 'dannoso', + 'danzare', + 'datato', + 'davanti', + 'davvero', + 'debutto', + 'decennio', + 'deciso', + 'declino', + 'decollo', + 'decreto', + 'dedicato', + 'definito', + 'deforme', + 'degno', + 'delegare', + 'delfino', + 'delirio', + 'delta', + 'demenza', + 'denotato', + 'dentro', + 'deposito', + 'derapata', + 'derivare', + 'deroga', + 'descritto', + 'deserto', + 'desiderio', + 'desumere', + 'detersivo', + 'devoto', + 'diametro', + 'dicembre', + 'diedro', + 'difeso', + 'diffuso', + 'digerire', + 'digitale', + 'diluvio', + 'dinamico', + 'dinnanzi', + 'dipinto', + 'diploma', + 'dipolo', + 'diradare', + 'dire', + 'dirotto', + 'dirupo', + 'disagio', + 'discreto', + 'disfare', + 'disgelo', + 'disposto', + 'distanza', + 'disumano', + 'dito', + 'divano', + 'divelto', + 'dividere', + 'divorato', + 'doblone', + 'docente', + 'doganale', + 'dogma', + 'dolce', + 'domato', + 'domenica', + 'dominare', + 'dondolo', + 'dono', + 'dormire', + 'dote', + 'dottore', + 'dovuto', + 'dozzina', + 'drago', + 'druido', + 'dubbio', + 'dubitare', + 'ducale', + 'duna', + 'duomo', + 'duplice', + 'duraturo', + 'ebano', + 'eccesso', + 'ecco', + 'eclissi', + 'economia', + 'edera', + 'edicola', + 'edile', + 'editoria', + 'educare', + 'egemonia', + 'egli', + 'egoismo', + 'egregio', + 'elaborato', + 'elargire', + 'elegante', + 'elencato', + 'eletto', + 'elevare', + 'elfico', + 'elica', + 'elmo', + 'elsa', + 'eluso', + 'emanato', + 'emblema', + 'emesso', + 'emiro', + 'emotivo', + 'emozione', + 'empirico', + 'emulo', + 'endemico', + 'enduro', + 'energia', + 'enfasi', + 'enoteca', + 'entrare', + 'enzima', + 'epatite', + 'epilogo', + 'episodio', + 'epocale', + 'eppure', + 'equatore', + 'erario', + 'erba', + 'erboso', + 'erede', + 'eremita', + 'erigere', + 'ermetico', + 'eroe', + 'erosivo', + 'errante', + 'esagono', + 'esame', + 'esanime', + 'esaudire', + 'esca', + 'esempio', + 'esercito', + 'esibito', + 'esigente', + 'esistere', + 'esito', + 'esofago', + 'esortato', + 'esoso', + 'espanso', + 'espresso', + 'essenza', + 'esso', + 'esteso', + 'estimare', + 'estonia', + 'estroso', + 'esultare', + 'etilico', + 'etnico', + 'etrusco', + 'etto', + 'euclideo', + 'europa', + 'evaso', + 'evidenza', + 'evitato', + 'evoluto', + 'evviva', + 'fabbrica', + 'faccenda', + 'fachiro', + 'falco', + 'famiglia', + 'fanale', + 'fanfara', + 'fango', + 'fantasma', + 'fare', + 'farfalla', + 'farinoso', + 'farmaco', + 'fascia', + 'fastoso', + 'fasullo', + 'faticare', + 'fato', + 'favoloso', + 'febbre', + 'fecola', + 'fede', + 'fegato', + 'felpa', + 'feltro', + 'femmina', + 'fendere', + 'fenomeno', + 'fermento', + 'ferro', + 'fertile', + 'fessura', + 'festivo', + 'fetta', + 'feudo', + 'fiaba', + 'fiducia', + 'fifa', + 'figurato', + 'filo', + 'finanza', + 'finestra', + 'finire', + 'fiore', + 'fiscale', + 'fisico', + 'fiume', + 'flacone', + 'flamenco', + 'flebo', + 'flemma', + 'florido', + 'fluente', + 'fluoro', + 'fobico', + 'focaccia', + 'focoso', + 'foderato', + 'foglio', + 'folata', + 'folclore', + 'folgore', + 'fondente', + 'fonetico', + 'fonia', + 'fontana', + 'forbito', + 'forchetta', + 'foresta', + 'formica', + 'fornaio', + 'foro', + 'fortezza', + 'forzare', + 'fosfato', + 'fosso', + 'fracasso', + 'frana', + 'frassino', + 'fratello', + 'freccetta', + 'frenata', + 'fresco', + 'frigo', + 'frollino', + 'fronde', + 'frugale', + 'frutta', + 'fucilata', + 'fucsia', + 'fuggente', + 'fulmine', + 'fulvo', + 'fumante', + 'fumetto', + 'fumoso', + 'fune', + 'funzione', + 'fuoco', + 'furbo', + 'furgone', + 'furore', + 'fuso', + 'futile', + 'gabbiano', + 'gaffe', + 'galateo', + 'gallina', + 'galoppo', + 'gambero', + 'gamma', + 'garanzia', + 'garbo', + 'garofano', + 'garzone', + 'gasdotto', + 'gasolio', + 'gastrico', + 'gatto', + 'gaudio', + 'gazebo', + 'gazzella', + 'geco', + 'gelatina', + 'gelso', + 'gemello', + 'gemmato', + 'gene', + 'genitore', + 'gennaio', + 'genotipo', + 'gergo', + 'ghepardo', + 'ghiaccio', + 'ghisa', + 'giallo', + 'gilda', + 'ginepro', + 'giocare', + 'gioiello', + 'giorno', + 'giove', + 'girato', + 'girone', + 'gittata', + 'giudizio', + 'giurato', + 'giusto', + 'globulo', + 'glutine', + 'gnomo', + 'gobba', + 'golf', + 'gomito', + 'gommone', + 'gonfio', + 'gonna', + 'governo', + 'gracile', + 'grado', + 'grafico', + 'grammo', + 'grande', + 'grattare', + 'gravoso', + 'grazia', + 'greca', + 'gregge', + 'grifone', + 'grigio', + 'grinza', + 'grotta', + 'gruppo', + 'guadagno', + 'guaio', + 'guanto', + 'guardare', + 'gufo', + 'guidare', + 'ibernato', + 'icona', + 'identico', + 'idillio', + 'idolo', + 'idra', + 'idrico', + 'idrogeno', + 'igiene', + 'ignaro', + 'ignorato', + 'ilare', + 'illeso', + 'illogico', + 'illudere', + 'imballo', + 'imbevuto', + 'imbocco', + 'imbuto', + 'immane', + 'immerso', + 'immolato', + 'impacco', + 'impeto', + 'impiego', + 'importo', + 'impronta', + 'inalare', + 'inarcare', + 'inattivo', + 'incanto', + 'incendio', + 'inchino', + 'incisivo', + 'incluso', + 'incontro', + 'incrocio', + 'incubo', + 'indagine', + 'india', + 'indole', + 'inedito', + 'infatti', + 'infilare', + 'inflitto', + 'ingaggio', + 'ingegno', + 'inglese', + 'ingordo', + 'ingrosso', + 'innesco', + 'inodore', + 'inoltrare', + 'inondato', + 'insano', + 'insetto', + 'insieme', + 'insonnia', + 'insulina', + 'intasato', + 'intero', + 'intonaco', + 'intuito', + 'inumidire', + 'invalido', + 'invece', + 'invito', + 'iperbole', + 'ipnotico', + 'ipotesi', + 'ippica', + 'iride', + 'irlanda', + 'ironico', + 'irrigato', + 'irrorare', + 'isolato', + 'isotopo', + 'isterico', + 'istituto', + 'istrice', + 'italia', + 'iterare', + 'labbro', + 'labirinto', + 'lacca', + 'lacerato', + 'lacrima', + 'lacuna', + 'laddove', + 'lago', + 'lampo', + 'lancetta', + 'lanterna', + 'lardoso', + 'larga', + 'laringe', + 'lastra', + 'latenza', + 'latino', + 'lattuga', + 'lavagna', + 'lavoro', + 'legale', + 'leggero', + 'lembo', + 'lentezza', + 'lenza', + 'leone', + 'lepre', + 'lesivo', + 'lessato', + 'lesto', + 'letterale', + 'leva', + 'levigato', + 'libero', + 'lido', + 'lievito', + 'lilla', + 'limatura', + 'limitare', + 'limpido', + 'lineare', + 'lingua', + 'liquido', + 'lira', + 'lirica', + 'lisca', + 'lite', + 'litigio', + 'livrea', + 'locanda', + 'lode', + 'logica', + 'lombare', + 'londra', + 'longevo', + 'loquace', + 'lorenzo', + 'loto', + 'lotteria', + 'luce', + 'lucidato', + 'lumaca', + 'luminoso', + 'lungo', + 'lupo', + 'luppolo', + 'lusinga', + 'lusso', + 'lutto', + 'macabro', + 'macchina', + 'macero', + 'macinato', + 'madama', + 'magico', + 'maglia', + 'magnete', + 'magro', + 'maiolica', + 'malafede', + 'malgrado', + 'malinteso', + 'malsano', + 'malto', + 'malumore', + 'mana', + 'mancia', + 'mandorla', + 'mangiare', + 'manifesto', + 'mannaro', + 'manovra', + 'mansarda', + 'mantide', + 'manubrio', + 'mappa', + 'maratona', + 'marcire', + 'maretta', + 'marmo', + 'marsupio', + 'maschera', + 'massaia', + 'mastino', + 'materasso', + 'matricola', + 'mattone', + 'maturo', + 'mazurca', + 'meandro', + 'meccanico', + 'mecenate', + 'medesimo', + 'meditare', + 'mega', + 'melassa', + 'melis', + 'melodia', + 'meninge', + 'meno', + 'mensola', + 'mercurio', + 'merenda', + 'merlo', + 'meschino', + 'mese', + 'messere', + 'mestolo', + 'metallo', + 'metodo', + 'mettere', + 'miagolare', + 'mica', + 'micelio', + 'michele', + 'microbo', + 'midollo', + 'miele', + 'migliore', + 'milano', + 'milite', + 'mimosa', + 'minerale', + 'mini', + 'minore', + 'mirino', + 'mirtillo', + 'miscela', + 'missiva', + 'misto', + 'misurare', + 'mitezza', + 'mitigare', + 'mitra', + 'mittente', + 'mnemonico', + 'modello', + 'modifica', + 'modulo', + 'mogano', + 'mogio', + 'mole', + 'molosso', + 'monastero', + 'monco', + 'mondina', + 'monetario', + 'monile', + 'monotono', + 'monsone', + 'montato', + 'monviso', + 'mora', + 'mordere', + 'morsicato', + 'mostro', + 'motivato', + 'motosega', + 'motto', + 'movenza', + 'movimento', + 'mozzo', + 'mucca', + 'mucosa', + 'muffa', + 'mughetto', + 'mugnaio', + 'mulatto', + 'mulinello', + 'multiplo', + 'mummia', + 'munto', + 'muovere', + 'murale', + 'musa', + 'muscolo', + 'musica', + 'mutevole', + 'muto', + 'nababbo', + 'nafta', + 'nanometro', + 'narciso', + 'narice', + 'narrato', + 'nascere', + 'nastrare', + 'naturale', + 'nautica', + 'naviglio', + 'nebulosa', + 'necrosi', + 'negativo', + 'negozio', + 'nemmeno', + 'neofita', + 'neretto', + 'nervo', + 'nessuno', + 'nettuno', + 'neutrale', + 'neve', + 'nevrotico', + 'nicchia', + 'ninfa', + 'nitido', + 'nobile', + 'nocivo', + 'nodo', + 'nome', + 'nomina', + 'nordico', + 'normale', + 'norvegese', + 'nostrano', + 'notare', + 'notizia', + 'notturno', + 'novella', + 'nucleo', + 'nulla', + 'numero', + 'nuovo', + 'nutrire', + 'nuvola', + 'nuziale', + 'oasi', + 'obbedire', + 'obbligo', + 'obelisco', + 'oblio', + 'obolo', + 'obsoleto', + 'occasione', + 'occhio', + 'occidente', + 'occorrere', + 'occultare', + 'ocra', + 'oculato', + 'odierno', + 'odorare', + 'offerta', + 'offrire', + 'offuscato', + 'oggetto', + 'oggi', + 'ognuno', + 'olandese', + 'olfatto', + 'oliato', + 'oliva', + 'ologramma', + 'oltre', + 'omaggio', + 'ombelico', + 'ombra', + 'omega', + 'omissione', + 'ondoso', + 'onere', + 'onice', + 'onnivoro', + 'onorevole', + 'onta', + 'operato', + 'opinione', + 'opposto', + 'oracolo', + 'orafo', + 'ordine', + 'orecchino', + 'orefice', + 'orfano', + 'organico', + 'origine', + 'orizzonte', + 'orma', + 'ormeggio', + 'ornativo', + 'orologio', + 'orrendo', + 'orribile', + 'ortensia', + 'ortica', + 'orzata', + 'orzo', + 'osare', + 'oscurare', + 'osmosi', + 'ospedale', + 'ospite', + 'ossa', + 'ossidare', + 'ostacolo', + 'oste', + 'otite', + 'otre', + 'ottagono', + 'ottimo', + 'ottobre', + 'ovale', + 'ovest', + 'ovino', + 'oviparo', + 'ovocito', + 'ovunque', + 'ovviare', + 'ozio', + 'pacchetto', + 'pace', + 'pacifico', + 'padella', + 'padrone', + 'paese', + 'paga', + 'pagina', + 'palazzina', + 'palesare', + 'pallido', + 'palo', + 'palude', + 'pandoro', + 'pannello', + 'paolo', + 'paonazzo', + 'paprica', + 'parabola', + 'parcella', + 'parere', + 'pargolo', + 'pari', + 'parlato', + 'parola', + 'partire', + 'parvenza', + 'parziale', + 'passivo', + 'pasticca', + 'patacca', + 'patologia', + 'pattume', + 'pavone', + 'peccato', + 'pedalare', + 'pedonale', + 'peggio', + 'peloso', + 'penare', + 'pendice', + 'penisola', + 'pennuto', + 'penombra', + 'pensare', + 'pentola', + 'pepe', + 'pepita', + 'perbene', + 'percorso', + 'perdonato', + 'perforare', + 'pergamena', + 'periodo', + 'permesso', + 'perno', + 'perplesso', + 'persuaso', + 'pertugio', + 'pervaso', + 'pesatore', + 'pesista', + 'peso', + 'pestifero', + 'petalo', + 'pettine', + 'petulante', + 'pezzo', + 'piacere', + 'pianta', + 'piattino', + 'piccino', + 'picozza', + 'piega', + 'pietra', + 'piffero', + 'pigiama', + 'pigolio', + 'pigro', + 'pila', + 'pilifero', + 'pillola', + 'pilota', + 'pimpante', + 'pineta', + 'pinna', + 'pinolo', + 'pioggia', + 'piombo', + 'piramide', + 'piretico', + 'pirite', + 'pirolisi', + 'pitone', + 'pizzico', + 'placebo', + 'planare', + 'plasma', + 'platano', + 'plenario', + 'pochezza', + 'poderoso', + 'podismo', + 'poesia', + 'poggiare', + 'polenta', + 'poligono', + 'pollice', + 'polmonite', + 'polpetta', + 'polso', + 'poltrona', + 'polvere', + 'pomice', + 'pomodoro', + 'ponte', + 'popoloso', + 'porfido', + 'poroso', + 'porpora', + 'porre', + 'portata', + 'posa', + 'positivo', + 'possesso', + 'postulato', + 'potassio', + 'potere', + 'pranzo', + 'prassi', + 'pratica', + 'precluso', + 'predica', + 'prefisso', + 'pregiato', + 'prelievo', + 'premere', + 'prenotare', + 'preparato', + 'presenza', + 'pretesto', + 'prevalso', + 'prima', + 'principe', + 'privato', + 'problema', + 'procura', + 'produrre', + 'profumo', + 'progetto', + 'prolunga', + 'promessa', + 'pronome', + 'proposta', + 'proroga', + 'proteso', + 'prova', + 'prudente', + 'prugna', + 'prurito', + 'psiche', + 'pubblico', + 'pudica', + 'pugilato', + 'pugno', + 'pulce', + 'pulito', + 'pulsante', + 'puntare', + 'pupazzo', + 'pupilla', + 'puro', + 'quadro', + 'qualcosa', + 'quasi', + 'querela', + 'quota', + 'raccolto', + 'raddoppio', + 'radicale', + 'radunato', + 'raffica', + 'ragazzo', + 'ragione', + 'ragno', + 'ramarro', + 'ramingo', + 'ramo', + 'randagio', + 'rantolare', + 'rapato', + 'rapina', + 'rappreso', + 'rasatura', + 'raschiato', + 'rasente', + 'rassegna', + 'rastrello', + 'rata', + 'ravveduto', + 'reale', + 'recepire', + 'recinto', + 'recluta', + 'recondito', + 'recupero', + 'reddito', + 'redimere', + 'regalato', + 'registro', + 'regola', + 'regresso', + 'relazione', + 'remare', + 'remoto', + 'renna', + 'replica', + 'reprimere', + 'reputare', + 'resa', + 'residente', + 'responso', + 'restauro', + 'rete', + 'retina', + 'retorica', + 'rettifica', + 'revocato', + 'riassunto', + 'ribadire', + 'ribelle', + 'ribrezzo', + 'ricarica', + 'ricco', + 'ricevere', + 'riciclato', + 'ricordo', + 'ricreduto', + 'ridicolo', + 'ridurre', + 'rifasare', + 'riflesso', + 'riforma', + 'rifugio', + 'rigare', + 'rigettato', + 'righello', + 'rilassato', + 'rilevato', + 'rimanere', + 'rimbalzo', + 'rimedio', + 'rimorchio', + 'rinascita', + 'rincaro', + 'rinforzo', + 'rinnovo', + 'rinomato', + 'rinsavito', + 'rintocco', + 'rinuncia', + 'rinvenire', + 'riparato', + 'ripetuto', + 'ripieno', + 'riportare', + 'ripresa', + 'ripulire', + 'risata', + 'rischio', + 'riserva', + 'risibile', + 'riso', + 'rispetto', + 'ristoro', + 'risultato', + 'risvolto', + 'ritardo', + 'ritegno', + 'ritmico', + 'ritrovo', + 'riunione', + 'riva', + 'riverso', + 'rivincita', + 'rivolto', + 'rizoma', + 'roba', + 'robotico', + 'robusto', + 'roccia', + 'roco', + 'rodaggio', + 'rodere', + 'roditore', + 'rogito', + 'rollio', + 'romantico', + 'rompere', + 'ronzio', + 'rosolare', + 'rospo', + 'rotante', + 'rotondo', + 'rotula', + 'rovescio', + 'rubizzo', + 'rubrica', + 'ruga', + 'rullino', + 'rumine', + 'rumoroso', + 'ruolo', + 'rupe', + 'russare', + 'rustico', + 'sabato', + 'sabbiare', + 'sabotato', + 'sagoma', + 'salasso', + 'saldatura', + 'salgemma', + 'salivare', + 'salmone', + 'salone', + 'saltare', + 'saluto', + 'salvo', + 'sapere', + 'sapido', + 'saporito', + 'saraceno', + 'sarcasmo', + 'sarto', + 'sassoso', + 'satellite', + 'satira', + 'satollo', + 'saturno', + 'savana', + 'savio', + 'saziato', + 'sbadiglio', + 'sbalzo', + 'sbancato', + 'sbarra', + 'sbattere', + 'sbavare', + 'sbendare', + 'sbirciare', + 'sbloccato', + 'sbocciato', + 'sbrinare', + 'sbruffone', + 'sbuffare', + 'scabroso', + 'scadenza', + 'scala', + 'scambiare', + 'scandalo', + 'scapola', + 'scarso', + 'scatenare', + 'scavato', + 'scelto', + 'scenico', + 'scettro', + 'scheda', + 'schiena', + 'sciarpa', + 'scienza', + 'scindere', + 'scippo', + 'sciroppo', + 'scivolo', + 'sclerare', + 'scodella', + 'scolpito', + 'scomparto', + 'sconforto', + 'scoprire', + 'scorta', + 'scossone', + 'scozzese', + 'scriba', + 'scrollare', + 'scrutinio', + 'scuderia', + 'scultore', + 'scuola', + 'scuro', + 'scusare', + 'sdebitare', + 'sdoganare', + 'seccatura', + 'secondo', + 'sedano', + 'seggiola', + 'segnalato', + 'segregato', + 'seguito', + 'selciato', + 'selettivo', + 'sella', + 'selvaggio', + 'semaforo', + 'sembrare', + 'seme', + 'seminato', + 'sempre', + 'senso', + 'sentire', + 'sepolto', + 'sequenza', + 'serata', + 'serbato', + 'sereno', + 'serio', + 'serpente', + 'serraglio', + 'servire', + 'sestina', + 'setola', + 'settimana', + 'sfacelo', + 'sfaldare', + 'sfamato', + 'sfarzoso', + 'sfaticato', + 'sfera', + 'sfida', + 'sfilato', + 'sfinge', + 'sfocato', + 'sfoderare', + 'sfogo', + 'sfoltire', + 'sforzato', + 'sfratto', + 'sfruttato', + 'sfuggito', + 'sfumare', + 'sfuso', + 'sgabello', + 'sgarbato', + 'sgonfiare', + 'sgorbio', + 'sgrassato', + 'sguardo', + 'sibilo', + 'siccome', + 'sierra', + 'sigla', + 'signore', + 'silenzio', + 'sillaba', + 'simbolo', + 'simpatico', + 'simulato', + 'sinfonia', + 'singolo', + 'sinistro', + 'sino', + 'sintesi', + 'sinusoide', + 'sipario', + 'sisma', + 'sistole', + 'situato', + 'slitta', + 'slogatura', + 'sloveno', + 'smarrito', + 'smemorato', + 'smentito', + 'smeraldo', + 'smilzo', + 'smontare', + 'smottato', + 'smussato', + 'snellire', + 'snervato', + 'snodo', + 'sobbalzo', + 'sobrio', + 'soccorso', + 'sociale', + 'sodale', + 'soffitto', + 'sogno', + 'soldato', + 'solenne', + 'solido', + 'sollazzo', + 'solo', + 'solubile', + 'solvente', + 'somatico', + 'somma', + 'sonda', + 'sonetto', + 'sonnifero', + 'sopire', + 'soppeso', + 'sopra', + 'sorgere', + 'sorpasso', + 'sorriso', + 'sorso', + 'sorteggio', + 'sorvolato', + 'sospiro', + 'sosta', + 'sottile', + 'spada', + 'spalla', + 'spargere', + 'spatola', + 'spavento', + 'spazzola', + 'specie', + 'spedire', + 'spegnere', + 'spelatura', + 'speranza', + 'spessore', + 'spettrale', + 'spezzato', + 'spia', + 'spigoloso', + 'spillato', + 'spinoso', + 'spirale', + 'splendido', + 'sportivo', + 'sposo', + 'spranga', + 'sprecare', + 'spronato', + 'spruzzo', + 'spuntino', + 'squillo', + 'sradicare', + 'srotolato', + 'stabile', + 'stacco', + 'staffa', + 'stagnare', + 'stampato', + 'stantio', + 'starnuto', + 'stasera', + 'statuto', + 'stelo', + 'steppa', + 'sterzo', + 'stiletto', + 'stima', + 'stirpe', + 'stivale', + 'stizzoso', + 'stonato', + 'storico', + 'strappo', + 'stregato', + 'stridulo', + 'strozzare', + 'strutto', + 'stuccare', + 'stufo', + 'stupendo', + 'subentro', + 'succoso', + 'sudore', + 'suggerito', + 'sugo', + 'sultano', + 'suonare', + 'superbo', + 'supporto', + 'surgelato', + 'surrogato', + 'sussurro', + 'sutura', + 'svagare', + 'svedese', + 'sveglio', + 'svelare', + 'svenuto', + 'svezia', + 'sviluppo', + 'svista', + 'svizzera', + 'svolta', + 'svuotare', + 'tabacco', + 'tabulato', + 'tacciare', + 'taciturno', + 'tale', + 'talismano', + 'tampone', + 'tannino', + 'tara', + 'tardivo', + 'targato', + 'tariffa', + 'tarpare', + 'tartaruga', + 'tasto', + 'tattico', + 'taverna', + 'tavolata', + 'tazza', + 'teca', + 'tecnico', + 'telefono', + 'temerario', + 'tempo', + 'temuto', + 'tendone', + 'tenero', + 'tensione', + 'tentacolo', + 'teorema', + 'terme', + 'terrazzo', + 'terzetto', + 'tesi', + 'tesserato', + 'testato', + 'tetro', + 'tettoia', + 'tifare', + 'tigella', + 'timbro', + 'tinto', + 'tipico', + 'tipografo', + 'tiraggio', + 'tiro', + 'titanio', + 'titolo', + 'titubante', + 'tizio', + 'tizzone', + 'toccare', + 'tollerare', + 'tolto', + 'tombola', + 'tomo', + 'tonfo', + 'tonsilla', + 'topazio', + 'topologia', + 'toppa', + 'torba', + 'tornare', + 'torrone', + 'tortora', + 'toscano', + 'tossire', + 'tostatura', + 'totano', + 'trabocco', + 'trachea', + 'trafila', + 'tragedia', + 'tralcio', + 'tramonto', + 'transito', + 'trapano', + 'trarre', + 'trasloco', + 'trattato', + 'trave', + 'treccia', + 'tremolio', + 'trespolo', + 'tributo', + 'tricheco', + 'trifoglio', + 'trillo', + 'trincea', + 'trio', + 'tristezza', + 'triturato', + 'trivella', + 'tromba', + 'trono', + 'troppo', + 'trottola', + 'trovare', + 'truccato', + 'tubatura', + 'tuffato', + 'tulipano', + 'tumulto', + 'tunisia', + 'turbare', + 'turchino', + 'tuta', + 'tutela', + 'ubicato', + 'uccello', + 'uccisore', + 'udire', + 'uditivo', + 'uffa', + 'ufficio', + 'uguale', + 'ulisse', + 'ultimato', + 'umano', + 'umile', + 'umorismo', + 'uncinetto', + 'ungere', + 'ungherese', + 'unicorno', + 'unificato', + 'unisono', + 'unitario', + 'unte', + 'uovo', + 'upupa', + 'uragano', + 'urgenza', + 'urlo', + 'usanza', + 'usato', + 'uscito', + 'usignolo', + 'usuraio', + 'utensile', + 'utilizzo', + 'utopia', + 'vacante', + 'vaccinato', + 'vagabondo', + 'vagliato', + 'valanga', + 'valgo', + 'valico', + 'valletta', + 'valoroso', + 'valutare', + 'valvola', + 'vampata', + 'vangare', + 'vanitoso', + 'vano', + 'vantaggio', + 'vanvera', + 'vapore', + 'varano', + 'varcato', + 'variante', + 'vasca', + 'vedetta', + 'vedova', + 'veduto', + 'vegetale', + 'veicolo', + 'velcro', + 'velina', + 'velluto', + 'veloce', + 'venato', + 'vendemmia', + 'vento', + 'verace', + 'verbale', + 'vergogna', + 'verifica', + 'vero', + 'verruca', + 'verticale', + 'vescica', + 'vessillo', + 'vestale', + 'veterano', + 'vetrina', + 'vetusto', + 'viandante', + 'vibrante', + 'vicenda', + 'vichingo', + 'vicinanza', + 'vidimare', + 'vigilia', + 'vigneto', + 'vigore', + 'vile', + 'villano', + 'vimini', + 'vincitore', + 'viola', + 'vipera', + 'virgola', + 'virologo', + 'virulento', + 'viscoso', + 'visione', + 'vispo', + 'vissuto', + 'visura', + 'vita', + 'vitello', + 'vittima', + 'vivanda', + 'vivido', + 'viziare', + 'voce', + 'voga', + 'volatile', + 'volere', + 'volpe', + 'voragine', + 'vulcano', + 'zampogna', + 'zanna', + 'zappato', + 'zattera', + 'zavorra', + 'zefiro', + 'zelante', + 'zelo', + 'zenzero', + 'zerbino', + 'zibetto', + 'zinco', + 'zircone', + 'zitto', + 'zolla', + 'zotico', + 'zucchero', + 'zufolo', + 'zulu', + 'zuppa', +]; + +const japanese = [ + 'あいこくしん', + 'あいさつ', + 'あいだ', + 'あおぞら', + 'あかちゃん', + 'あきる', + 'あけがた', + 'あける', + 'あこがれる', + 'あさい', + 'あさひ', + 'あしあと', + 'あじわう', + 'あずかる', + 'あずき', + 'あそぶ', + 'あたえる', + 'あたためる', + 'あたりまえ', + 'あたる', + 'あつい', + 'あつかう', + 'あっしゅく', + 'あつまり', + 'あつめる', + 'あてな', + 'あてはまる', + 'あひる', + 'あぶら', + 'あぶる', + 'あふれる', + 'あまい', + 'あまど', + 'あまやかす', + 'あまり', + 'あみもの', + 'あめりか', + 'あやまる', + 'あゆむ', + 'あらいぐま', + 'あらし', + 'あらすじ', + 'あらためる', + 'あらゆる', + 'あらわす', + 'ありがとう', + 'あわせる', + 'あわてる', + 'あんい', + 'あんがい', + 'あんこ', + 'あんぜん', + 'あんてい', + 'あんない', + 'あんまり', + 'いいだす', + 'いおん', + 'いがい', + 'いがく', + 'いきおい', + 'いきなり', + 'いきもの', + 'いきる', + 'いくじ', + 'いくぶん', + 'いけばな', + 'いけん', + 'いこう', + 'いこく', + 'いこつ', + 'いさましい', + 'いさん', + 'いしき', + 'いじゅう', + 'いじょう', + 'いじわる', + 'いずみ', + 'いずれ', + 'いせい', + 'いせえび', + 'いせかい', + 'いせき', + 'いぜん', + 'いそうろう', + 'いそがしい', + 'いだい', + 'いだく', + 'いたずら', + 'いたみ', + 'いたりあ', + 'いちおう', + 'いちじ', + 'いちど', + 'いちば', + 'いちぶ', + 'いちりゅう', + 'いつか', + 'いっしゅん', + 'いっせい', + 'いっそう', + 'いったん', + 'いっち', + 'いってい', + 'いっぽう', + 'いてざ', + 'いてん', + 'いどう', + 'いとこ', + 'いない', + 'いなか', + 'いねむり', + 'いのち', + 'いのる', + 'いはつ', + 'いばる', + 'いはん', + 'いびき', + 'いひん', + 'いふく', + 'いへん', + 'いほう', + 'いみん', + 'いもうと', + 'いもたれ', + 'いもり', + 'いやがる', + 'いやす', + 'いよかん', + 'いよく', + 'いらい', + 'いらすと', + 'いりぐち', + 'いりょう', + 'いれい', + 'いれもの', + 'いれる', + 'いろえんぴつ', + 'いわい', + 'いわう', + 'いわかん', + 'いわば', + 'いわゆる', + 'いんげんまめ', + 'いんさつ', + 'いんしょう', + 'いんよう', + 'うえき', + 'うえる', + 'うおざ', + 'うがい', + 'うかぶ', + 'うかべる', + 'うきわ', + 'うくらいな', + 'うくれれ', + 'うけたまわる', + 'うけつけ', + 'うけとる', + 'うけもつ', + 'うける', + 'うごかす', + 'うごく', + 'うこん', + 'うさぎ', + 'うしなう', + 'うしろがみ', + 'うすい', + 'うすぎ', + 'うすぐらい', + 'うすめる', + 'うせつ', + 'うちあわせ', + 'うちがわ', + 'うちき', + 'うちゅう', + 'うっかり', + 'うつくしい', + 'うったえる', + 'うつる', + 'うどん', + 'うなぎ', + 'うなじ', + 'うなずく', + 'うなる', + 'うねる', + 'うのう', + 'うぶげ', + 'うぶごえ', + 'うまれる', + 'うめる', + 'うもう', + 'うやまう', + 'うよく', + 'うらがえす', + 'うらぐち', + 'うらない', + 'うりあげ', + 'うりきれ', + 'うるさい', + 'うれしい', + 'うれゆき', + 'うれる', + 'うろこ', + 'うわき', + 'うわさ', + 'うんこう', + 'うんちん', + 'うんてん', + 'うんどう', + 'えいえん', + 'えいが', + 'えいきょう', + 'えいご', + 'えいせい', + 'えいぶん', + 'えいよう', + 'えいわ', + 'えおり', + 'えがお', + 'えがく', + 'えきたい', + 'えくせる', + 'えしゃく', + 'えすて', + 'えつらん', + 'えのぐ', + 'えほうまき', + 'えほん', + 'えまき', + 'えもじ', + 'えもの', + 'えらい', + 'えらぶ', + 'えりあ', + 'えんえん', + 'えんかい', + 'えんぎ', + 'えんげき', + 'えんしゅう', + 'えんぜつ', + 'えんそく', + 'えんちょう', + 'えんとつ', + 'おいかける', + 'おいこす', + 'おいしい', + 'おいつく', + 'おうえん', + 'おうさま', + 'おうじ', + 'おうせつ', + 'おうたい', + 'おうふく', + 'おうべい', + 'おうよう', + 'おえる', + 'おおい', + 'おおう', + 'おおどおり', + 'おおや', + 'おおよそ', + 'おかえり', + 'おかず', + 'おがむ', + 'おかわり', + 'おぎなう', + 'おきる', + 'おくさま', + 'おくじょう', + 'おくりがな', + 'おくる', + 'おくれる', + 'おこす', + 'おこなう', + 'おこる', + 'おさえる', + 'おさない', + 'おさめる', + 'おしいれ', + 'おしえる', + 'おじぎ', + 'おじさん', + 'おしゃれ', + 'おそらく', + 'おそわる', + 'おたがい', + 'おたく', + 'おだやか', + 'おちつく', + 'おっと', + 'おつり', + 'おでかけ', + 'おとしもの', + 'おとなしい', + 'おどり', + 'おどろかす', + 'おばさん', + 'おまいり', + 'おめでとう', + 'おもいで', + 'おもう', + 'おもたい', + 'おもちゃ', + 'おやつ', + 'おやゆび', + 'およぼす', + 'おらんだ', + 'おろす', + 'おんがく', + 'おんけい', + 'おんしゃ', + 'おんせん', + 'おんだん', + 'おんちゅう', + 'おんどけい', + 'かあつ', + 'かいが', + 'がいき', + 'がいけん', + 'がいこう', + 'かいさつ', + 'かいしゃ', + 'かいすいよく', + 'かいぜん', + 'かいぞうど', + 'かいつう', + 'かいてん', + 'かいとう', + 'かいふく', + 'がいへき', + 'かいほう', + 'かいよう', + 'がいらい', + 'かいわ', + 'かえる', + 'かおり', + 'かかえる', + 'かがく', + 'かがし', + 'かがみ', + 'かくご', + 'かくとく', + 'かざる', + 'がぞう', + 'かたい', + 'かたち', + 'がちょう', + 'がっきゅう', + 'がっこう', + 'がっさん', + 'がっしょう', + 'かなざわし', + 'かのう', + 'がはく', + 'かぶか', + 'かほう', + 'かほご', + 'かまう', + 'かまぼこ', + 'かめれおん', + 'かゆい', + 'かようび', + 'からい', + 'かるい', + 'かろう', + 'かわく', + 'かわら', + 'がんか', + 'かんけい', + 'かんこう', + 'かんしゃ', + 'かんそう', + 'かんたん', + 'かんち', + 'がんばる', + 'きあい', + 'きあつ', + 'きいろ', + 'ぎいん', + 'きうい', + 'きうん', + 'きえる', + 'きおう', + 'きおく', + 'きおち', + 'きおん', + 'きかい', + 'きかく', + 'きかんしゃ', + 'ききて', + 'きくばり', + 'きくらげ', + 'きけんせい', + 'きこう', + 'きこえる', + 'きこく', + 'きさい', + 'きさく', + 'きさま', + 'きさらぎ', + 'ぎじかがく', + 'ぎしき', + 'ぎじたいけん', + 'ぎじにってい', + 'ぎじゅつしゃ', + 'きすう', + 'きせい', + 'きせき', + 'きせつ', + 'きそう', + 'きぞく', + 'きぞん', + 'きたえる', + 'きちょう', + 'きつえん', + 'ぎっちり', + 'きつつき', + 'きつね', + 'きてい', + 'きどう', + 'きどく', + 'きない', + 'きなが', + 'きなこ', + 'きぬごし', + 'きねん', + 'きのう', + 'きのした', + 'きはく', + 'きびしい', + 'きひん', + 'きふく', + 'きぶん', + 'きぼう', + 'きほん', + 'きまる', + 'きみつ', + 'きむずかしい', + 'きめる', + 'きもだめし', + 'きもち', + 'きもの', + 'きゃく', + 'きやく', + 'ぎゅうにく', + 'きよう', + 'きょうりゅう', + 'きらい', + 'きらく', + 'きりん', + 'きれい', + 'きれつ', + 'きろく', + 'ぎろん', + 'きわめる', + 'ぎんいろ', + 'きんかくじ', + 'きんじょ', + 'きんようび', + 'ぐあい', + 'くいず', + 'くうかん', + 'くうき', + 'くうぐん', + 'くうこう', + 'ぐうせい', + 'くうそう', + 'ぐうたら', + 'くうふく', + 'くうぼ', + 'くかん', + 'くきょう', + 'くげん', + 'ぐこう', + 'くさい', + 'くさき', + 'くさばな', + 'くさる', + 'くしゃみ', + 'くしょう', + 'くすのき', + 'くすりゆび', + 'くせげ', + 'くせん', + 'ぐたいてき', + 'くださる', + 'くたびれる', + 'くちこみ', + 'くちさき', + 'くつした', + 'ぐっすり', + 'くつろぐ', + 'くとうてん', + 'くどく', + 'くなん', + 'くねくね', + 'くのう', + 'くふう', + 'くみあわせ', + 'くみたてる', + 'くめる', + 'くやくしょ', + 'くらす', + 'くらべる', + 'くるま', + 'くれる', + 'くろう', + 'くわしい', + 'ぐんかん', + 'ぐんしょく', + 'ぐんたい', + 'ぐんて', + 'けあな', + 'けいかく', + 'けいけん', + 'けいこ', + 'けいさつ', + 'げいじゅつ', + 'けいたい', + 'げいのうじん', + 'けいれき', + 'けいろ', + 'けおとす', + 'けおりもの', + 'げきか', + 'げきげん', + 'げきだん', + 'げきちん', + 'げきとつ', + 'げきは', + 'げきやく', + 'げこう', + 'げこくじょう', + 'げざい', + 'けさき', + 'げざん', + 'けしき', + 'けしごむ', + 'けしょう', + 'げすと', + 'けたば', + 'けちゃっぷ', + 'けちらす', + 'けつあつ', + 'けつい', + 'けつえき', + 'けっこん', + 'けつじょ', + 'けっせき', + 'けってい', + 'けつまつ', + 'げつようび', + 'げつれい', + 'けつろん', + 'げどく', + 'けとばす', + 'けとる', + 'けなげ', + 'けなす', + 'けなみ', + 'けぬき', + 'げねつ', + 'けねん', + 'けはい', + 'げひん', + 'けぶかい', + 'げぼく', + 'けまり', + 'けみかる', + 'けむし', + 'けむり', + 'けもの', + 'けらい', + 'けろけろ', + 'けわしい', + 'けんい', + 'けんえつ', + 'けんお', + 'けんか', + 'げんき', + 'けんげん', + 'けんこう', + 'けんさく', + 'けんしゅう', + 'けんすう', + 'げんそう', + 'けんちく', + 'けんてい', + 'けんとう', + 'けんない', + 'けんにん', + 'げんぶつ', + 'けんま', + 'けんみん', + 'けんめい', + 'けんらん', + 'けんり', + 'こあくま', + 'こいぬ', + 'こいびと', + 'ごうい', + 'こうえん', + 'こうおん', + 'こうかん', + 'ごうきゅう', + 'ごうけい', + 'こうこう', + 'こうさい', + 'こうじ', + 'こうすい', + 'ごうせい', + 'こうそく', + 'こうたい', + 'こうちゃ', + 'こうつう', + 'こうてい', + 'こうどう', + 'こうない', + 'こうはい', + 'ごうほう', + 'ごうまん', + 'こうもく', + 'こうりつ', + 'こえる', + 'こおり', + 'ごかい', + 'ごがつ', + 'ごかん', + 'こくご', + 'こくさい', + 'こくとう', + 'こくない', + 'こくはく', + 'こぐま', + 'こけい', + 'こける', + 'ここのか', + 'こころ', + 'こさめ', + 'こしつ', + 'こすう', + 'こせい', + 'こせき', + 'こぜん', + 'こそだて', + 'こたい', + 'こたえる', + 'こたつ', + 'こちょう', + 'こっか', + 'こつこつ', + 'こつばん', + 'こつぶ', + 'こてい', + 'こてん', + 'ことがら', + 'ことし', + 'ことば', + 'ことり', + 'こなごな', + 'こねこね', + 'このまま', + 'このみ', + 'このよ', + 'ごはん', + 'こひつじ', + 'こふう', + 'こふん', + 'こぼれる', + 'ごまあぶら', + 'こまかい', + 'ごますり', + 'こまつな', + 'こまる', + 'こむぎこ', + 'こもじ', + 'こもち', + 'こもの', + 'こもん', + 'こやく', + 'こやま', + 'こゆう', + 'こゆび', + 'こよい', + 'こよう', + 'こりる', + 'これくしょん', + 'ころっけ', + 'こわもて', + 'こわれる', + 'こんいん', + 'こんかい', + 'こんき', + 'こんしゅう', + 'こんすい', + 'こんだて', + 'こんとん', + 'こんなん', + 'こんびに', + 'こんぽん', + 'こんまけ', + 'こんや', + 'こんれい', + 'こんわく', + 'ざいえき', + 'さいかい', + 'さいきん', + 'ざいげん', + 'ざいこ', + 'さいしょ', + 'さいせい', + 'ざいたく', + 'ざいちゅう', + 'さいてき', + 'ざいりょう', + 'さうな', + 'さかいし', + 'さがす', + 'さかな', + 'さかみち', + 'さがる', + 'さぎょう', + 'さくし', + 'さくひん', + 'さくら', + 'さこく', + 'さこつ', + 'さずかる', + 'ざせき', + 'さたん', + 'さつえい', + 'ざつおん', + 'ざっか', + 'ざつがく', + 'さっきょく', + 'ざっし', + 'さつじん', + 'ざっそう', + 'さつたば', + 'さつまいも', + 'さてい', + 'さといも', + 'さとう', + 'さとおや', + 'さとし', + 'さとる', + 'さのう', + 'さばく', + 'さびしい', + 'さべつ', + 'さほう', + 'さほど', + 'さます', + 'さみしい', + 'さみだれ', + 'さむけ', + 'さめる', + 'さやえんどう', + 'さゆう', + 'さよう', + 'さよく', + 'さらだ', + 'ざるそば', + 'さわやか', + 'さわる', + 'さんいん', + 'さんか', + 'さんきゃく', + 'さんこう', + 'さんさい', + 'ざんしょ', + 'さんすう', + 'さんせい', + 'さんそ', + 'さんち', + 'さんま', + 'さんみ', + 'さんらん', + 'しあい', + 'しあげ', + 'しあさって', + 'しあわせ', + 'しいく', + 'しいん', + 'しうち', + 'しえい', + 'しおけ', + 'しかい', + 'しかく', + 'じかん', + 'しごと', + 'しすう', + 'じだい', + 'したうけ', + 'したぎ', + 'したて', + 'したみ', + 'しちょう', + 'しちりん', + 'しっかり', + 'しつじ', + 'しつもん', + 'してい', + 'してき', + 'してつ', + 'じてん', + 'じどう', + 'しなぎれ', + 'しなもの', + 'しなん', + 'しねま', + 'しねん', + 'しのぐ', + 'しのぶ', + 'しはい', + 'しばかり', + 'しはつ', + 'しはらい', + 'しはん', + 'しひょう', + 'しふく', + 'じぶん', + 'しへい', + 'しほう', + 'しほん', + 'しまう', + 'しまる', + 'しみん', + 'しむける', + 'じむしょ', + 'しめい', + 'しめる', + 'しもん', + 'しゃいん', + 'しゃうん', + 'しゃおん', + 'じゃがいも', + 'しやくしょ', + 'しゃくほう', + 'しゃけん', + 'しゃこ', + 'しゃざい', + 'しゃしん', + 'しゃせん', + 'しゃそう', + 'しゃたい', + 'しゃちょう', + 'しゃっきん', + 'じゃま', + 'しゃりん', + 'しゃれい', + 'じゆう', + 'じゅうしょ', + 'しゅくはく', + 'じゅしん', + 'しゅっせき', + 'しゅみ', + 'しゅらば', + 'じゅんばん', + 'しょうかい', + 'しょくたく', + 'しょっけん', + 'しょどう', + 'しょもつ', + 'しらせる', + 'しらべる', + 'しんか', + 'しんこう', + 'じんじゃ', + 'しんせいじ', + 'しんちく', + 'しんりん', + 'すあげ', + 'すあし', + 'すあな', + 'ずあん', + 'すいえい', + 'すいか', + 'すいとう', + 'ずいぶん', + 'すいようび', + 'すうがく', + 'すうじつ', + 'すうせん', + 'すおどり', + 'すきま', + 'すくう', + 'すくない', + 'すける', + 'すごい', + 'すこし', + 'ずさん', + 'すずしい', + 'すすむ', + 'すすめる', + 'すっかり', + 'ずっしり', + 'ずっと', + 'すてき', + 'すてる', + 'すねる', + 'すのこ', + 'すはだ', + 'すばらしい', + 'ずひょう', + 'ずぶぬれ', + 'すぶり', + 'すふれ', + 'すべて', + 'すべる', + 'ずほう', + 'すぼん', + 'すまい', + 'すめし', + 'すもう', + 'すやき', + 'すらすら', + 'するめ', + 'すれちがう', + 'すろっと', + 'すわる', + 'すんぜん', + 'すんぽう', + 'せあぶら', + 'せいかつ', + 'せいげん', + 'せいじ', + 'せいよう', + 'せおう', + 'せかいかん', + 'せきにん', + 'せきむ', + 'せきゆ', + 'せきらんうん', + 'せけん', + 'せこう', + 'せすじ', + 'せたい', + 'せたけ', + 'せっかく', + 'せっきゃく', + 'ぜっく', + 'せっけん', + 'せっこつ', + 'せっさたくま', + 'せつぞく', + 'せつだん', + 'せつでん', + 'せっぱん', + 'せつび', + 'せつぶん', + 'せつめい', + 'せつりつ', + 'せなか', + 'せのび', + 'せはば', + 'せびろ', + 'せぼね', + 'せまい', + 'せまる', + 'せめる', + 'せもたれ', + 'せりふ', + 'ぜんあく', + 'せんい', + 'せんえい', + 'せんか', + 'せんきょ', + 'せんく', + 'せんげん', + 'ぜんご', + 'せんさい', + 'せんしゅ', + 'せんすい', + 'せんせい', + 'せんぞ', + 'せんたく', + 'せんちょう', + 'せんてい', + 'せんとう', + 'せんぬき', + 'せんねん', + 'せんぱい', + 'ぜんぶ', + 'ぜんぽう', + 'せんむ', + 'せんめんじょ', + 'せんもん', + 'せんやく', + 'せんゆう', + 'せんよう', + 'ぜんら', + 'ぜんりゃく', + 'せんれい', + 'せんろ', + 'そあく', + 'そいとげる', + 'そいね', + 'そうがんきょう', + 'そうき', + 'そうご', + 'そうしん', + 'そうだん', + 'そうなん', + 'そうび', + 'そうめん', + 'そうり', + 'そえもの', + 'そえん', + 'そがい', + 'そげき', + 'そこう', + 'そこそこ', + 'そざい', + 'そしな', + 'そせい', + 'そせん', + 'そそぐ', + 'そだてる', + 'そつう', + 'そつえん', + 'そっかん', + 'そつぎょう', + 'そっけつ', + 'そっこう', + 'そっせん', + 'そっと', + 'そとがわ', + 'そとづら', + 'そなえる', + 'そなた', + 'そふぼ', + 'そぼく', + 'そぼろ', + 'そまつ', + 'そまる', + 'そむく', + 'そむりえ', + 'そめる', + 'そもそも', + 'そよかぜ', + 'そらまめ', + 'そろう', + 'そんかい', + 'そんけい', + 'そんざい', + 'そんしつ', + 'そんぞく', + 'そんちょう', + 'ぞんび', + 'ぞんぶん', + 'そんみん', + 'たあい', + 'たいいん', + 'たいうん', + 'たいえき', + 'たいおう', + 'だいがく', + 'たいき', + 'たいぐう', + 'たいけん', + 'たいこ', + 'たいざい', + 'だいじょうぶ', + 'だいすき', + 'たいせつ', + 'たいそう', + 'だいたい', + 'たいちょう', + 'たいてい', + 'だいどころ', + 'たいない', + 'たいねつ', + 'たいのう', + 'たいはん', + 'だいひょう', + 'たいふう', + 'たいへん', + 'たいほ', + 'たいまつばな', + 'たいみんぐ', + 'たいむ', + 'たいめん', + 'たいやき', + 'たいよう', + 'たいら', + 'たいりょく', + 'たいる', + 'たいわん', + 'たうえ', + 'たえる', + 'たおす', + 'たおる', + 'たおれる', + 'たかい', + 'たかね', + 'たきび', + 'たくさん', + 'たこく', + 'たこやき', + 'たさい', + 'たしざん', + 'だじゃれ', + 'たすける', + 'たずさわる', + 'たそがれ', + 'たたかう', + 'たたく', + 'ただしい', + 'たたみ', + 'たちばな', + 'だっかい', + 'だっきゃく', + 'だっこ', + 'だっしゅつ', + 'だったい', + 'たてる', + 'たとえる', + 'たなばた', + 'たにん', + 'たぬき', + 'たのしみ', + 'たはつ', + 'たぶん', + 'たべる', + 'たぼう', + 'たまご', + 'たまる', + 'だむる', + 'ためいき', + 'ためす', + 'ためる', + 'たもつ', + 'たやすい', + 'たよる', + 'たらす', + 'たりきほんがん', + 'たりょう', + 'たりる', + 'たると', + 'たれる', + 'たれんと', + 'たろっと', + 'たわむれる', + 'だんあつ', + 'たんい', + 'たんおん', + 'たんか', + 'たんき', + 'たんけん', + 'たんご', + 'たんさん', + 'たんじょうび', + 'だんせい', + 'たんそく', + 'たんたい', + 'だんち', + 'たんてい', + 'たんとう', + 'だんな', + 'たんにん', + 'だんねつ', + 'たんのう', + 'たんぴん', + 'だんぼう', + 'たんまつ', + 'たんめい', + 'だんれつ', + 'だんろ', + 'だんわ', + 'ちあい', + 'ちあん', + 'ちいき', + 'ちいさい', + 'ちえん', + 'ちかい', + 'ちから', + 'ちきゅう', + 'ちきん', + 'ちけいず', + 'ちけん', + 'ちこく', + 'ちさい', + 'ちしき', + 'ちしりょう', + 'ちせい', + 'ちそう', + 'ちたい', + 'ちたん', + 'ちちおや', + 'ちつじょ', + 'ちてき', + 'ちてん', + 'ちぬき', + 'ちぬり', + 'ちのう', + 'ちひょう', + 'ちへいせん', + 'ちほう', + 'ちまた', + 'ちみつ', + 'ちみどろ', + 'ちめいど', + 'ちゃんこなべ', + 'ちゅうい', + 'ちゆりょく', + 'ちょうし', + 'ちょさくけん', + 'ちらし', + 'ちらみ', + 'ちりがみ', + 'ちりょう', + 'ちるど', + 'ちわわ', + 'ちんたい', + 'ちんもく', + 'ついか', + 'ついたち', + 'つうか', + 'つうじょう', + 'つうはん', + 'つうわ', + 'つかう', + 'つかれる', + 'つくね', + 'つくる', + 'つけね', + 'つける', + 'つごう', + 'つたえる', + 'つづく', + 'つつじ', + 'つつむ', + 'つとめる', + 'つながる', + 'つなみ', + 'つねづね', + 'つのる', + 'つぶす', + 'つまらない', + 'つまる', + 'つみき', + 'つめたい', + 'つもり', + 'つもる', + 'つよい', + 'つるぼ', + 'つるみく', + 'つわもの', + 'つわり', + 'てあし', + 'てあて', + 'てあみ', + 'ていおん', + 'ていか', + 'ていき', + 'ていけい', + 'ていこく', + 'ていさつ', + 'ていし', + 'ていせい', + 'ていたい', + 'ていど', + 'ていねい', + 'ていひょう', + 'ていへん', + 'ていぼう', + 'てうち', + 'ておくれ', + 'てきとう', + 'てくび', + 'でこぼこ', + 'てさぎょう', + 'てさげ', + 'てすり', + 'てそう', + 'てちがい', + 'てちょう', + 'てつがく', + 'てつづき', + 'でっぱ', + 'てつぼう', + 'てつや', + 'でぬかえ', + 'てぬき', + 'てぬぐい', + 'てのひら', + 'てはい', + 'てぶくろ', + 'てふだ', + 'てほどき', + 'てほん', + 'てまえ', + 'てまきずし', + 'てみじか', + 'てみやげ', + 'てらす', + 'てれび', + 'てわけ', + 'てわたし', + 'でんあつ', + 'てんいん', + 'てんかい', + 'てんき', + 'てんぐ', + 'てんけん', + 'てんごく', + 'てんさい', + 'てんし', + 'てんすう', + 'でんち', + 'てんてき', + 'てんとう', + 'てんない', + 'てんぷら', + 'てんぼうだい', + 'てんめつ', + 'てんらんかい', + 'でんりょく', + 'でんわ', + 'どあい', + 'といれ', + 'どうかん', + 'とうきゅう', + 'どうぐ', + 'とうし', + 'とうむぎ', + 'とおい', + 'とおか', + 'とおく', + 'とおす', + 'とおる', + 'とかい', + 'とかす', + 'ときおり', + 'ときどき', + 'とくい', + 'とくしゅう', + 'とくてん', + 'とくに', + 'とくべつ', + 'とけい', + 'とける', + 'とこや', + 'とさか', + 'としょかん', + 'とそう', + 'とたん', + 'とちゅう', + 'とっきゅう', + 'とっくん', + 'とつぜん', + 'とつにゅう', + 'とどける', + 'ととのえる', + 'とない', + 'となえる', + 'となり', + 'とのさま', + 'とばす', + 'どぶがわ', + 'とほう', + 'とまる', + 'とめる', + 'ともだち', + 'ともる', + 'どようび', + 'とらえる', + 'とんかつ', + 'どんぶり', + 'ないかく', + 'ないこう', + 'ないしょ', + 'ないす', + 'ないせん', + 'ないそう', + 'なおす', + 'ながい', + 'なくす', + 'なげる', + 'なこうど', + 'なさけ', + 'なたでここ', + 'なっとう', + 'なつやすみ', + 'ななおし', + 'なにごと', + 'なにもの', + 'なにわ', + 'なのか', + 'なふだ', + 'なまいき', + 'なまえ', + 'なまみ', + 'なみだ', + 'なめらか', + 'なめる', + 'なやむ', + 'ならう', + 'ならび', + 'ならぶ', + 'なれる', + 'なわとび', + 'なわばり', + 'にあう', + 'にいがた', + 'にうけ', + 'におい', + 'にかい', + 'にがて', + 'にきび', + 'にくしみ', + 'にくまん', + 'にげる', + 'にさんかたんそ', + 'にしき', + 'にせもの', + 'にちじょう', + 'にちようび', + 'にっか', + 'にっき', + 'にっけい', + 'にっこう', + 'にっさん', + 'にっしょく', + 'にっすう', + 'にっせき', + 'にってい', + 'になう', + 'にほん', + 'にまめ', + 'にもつ', + 'にやり', + 'にゅういん', + 'にりんしゃ', + 'にわとり', + 'にんい', + 'にんか', + 'にんき', + 'にんげん', + 'にんしき', + 'にんずう', + 'にんそう', + 'にんたい', + 'にんち', + 'にんてい', + 'にんにく', + 'にんぷ', + 'にんまり', + 'にんむ', + 'にんめい', + 'にんよう', + 'ぬいくぎ', + 'ぬかす', + 'ぬぐいとる', + 'ぬぐう', + 'ぬくもり', + 'ぬすむ', + 'ぬまえび', + 'ぬめり', + 'ぬらす', + 'ぬんちゃく', + 'ねあげ', + 'ねいき', + 'ねいる', + 'ねいろ', + 'ねぐせ', + 'ねくたい', + 'ねくら', + 'ねこぜ', + 'ねこむ', + 'ねさげ', + 'ねすごす', + 'ねそべる', + 'ねだん', + 'ねつい', + 'ねっしん', + 'ねつぞう', + 'ねったいぎょ', + 'ねぶそく', + 'ねふだ', + 'ねぼう', + 'ねほりはほり', + 'ねまき', + 'ねまわし', + 'ねみみ', + 'ねむい', + 'ねむたい', + 'ねもと', + 'ねらう', + 'ねわざ', + 'ねんいり', + 'ねんおし', + 'ねんかん', + 'ねんきん', + 'ねんぐ', + 'ねんざ', + 'ねんし', + 'ねんちゃく', + 'ねんど', + 'ねんぴ', + 'ねんぶつ', + 'ねんまつ', + 'ねんりょう', + 'ねんれい', + 'のいず', + 'のおづま', + 'のがす', + 'のきなみ', + 'のこぎり', + 'のこす', + 'のこる', + 'のせる', + 'のぞく', + 'のぞむ', + 'のたまう', + 'のちほど', + 'のっく', + 'のばす', + 'のはら', + 'のべる', + 'のぼる', + 'のみもの', + 'のやま', + 'のらいぬ', + 'のらねこ', + 'のりもの', + 'のりゆき', + 'のれん', + 'のんき', + 'ばあい', + 'はあく', + 'ばあさん', + 'ばいか', + 'ばいく', + 'はいけん', + 'はいご', + 'はいしん', + 'はいすい', + 'はいせん', + 'はいそう', + 'はいち', + 'ばいばい', + 'はいれつ', + 'はえる', + 'はおる', + 'はかい', + 'ばかり', + 'はかる', + 'はくしゅ', + 'はけん', + 'はこぶ', + 'はさみ', + 'はさん', + 'はしご', + 'ばしょ', + 'はしる', + 'はせる', + 'ぱそこん', + 'はそん', + 'はたん', + 'はちみつ', + 'はつおん', + 'はっかく', + 'はづき', + 'はっきり', + 'はっくつ', + 'はっけん', + 'はっこう', + 'はっさん', + 'はっしん', + 'はったつ', + 'はっちゅう', + 'はってん', + 'はっぴょう', + 'はっぽう', + 'はなす', + 'はなび', + 'はにかむ', + 'はぶらし', + 'はみがき', + 'はむかう', + 'はめつ', + 'はやい', + 'はやし', + 'はらう', + 'はろうぃん', + 'はわい', + 'はんい', + 'はんえい', + 'はんおん', + 'はんかく', + 'はんきょう', + 'ばんぐみ', + 'はんこ', + 'はんしゃ', + 'はんすう', + 'はんだん', + 'ぱんち', + 'ぱんつ', + 'はんてい', + 'はんとし', + 'はんのう', + 'はんぱ', + 'はんぶん', + 'はんぺん', + 'はんぼうき', + 'はんめい', + 'はんらん', + 'はんろん', + 'ひいき', + 'ひうん', + 'ひえる', + 'ひかく', + 'ひかり', + 'ひかる', + 'ひかん', + 'ひくい', + 'ひけつ', + 'ひこうき', + 'ひこく', + 'ひさい', + 'ひさしぶり', + 'ひさん', + 'びじゅつかん', + 'ひしょ', + 'ひそか', + 'ひそむ', + 'ひたむき', + 'ひだり', + 'ひたる', + 'ひつぎ', + 'ひっこし', + 'ひっし', + 'ひつじゅひん', + 'ひっす', + 'ひつぜん', + 'ぴったり', + 'ぴっちり', + 'ひつよう', + 'ひてい', + 'ひとごみ', + 'ひなまつり', + 'ひなん', + 'ひねる', + 'ひはん', + 'ひびく', + 'ひひょう', + 'ひほう', + 'ひまわり', + 'ひまん', + 'ひみつ', + 'ひめい', + 'ひめじし', + 'ひやけ', + 'ひやす', + 'ひよう', + 'びょうき', + 'ひらがな', + 'ひらく', + 'ひりつ', + 'ひりょう', + 'ひるま', + 'ひるやすみ', + 'ひれい', + 'ひろい', + 'ひろう', + 'ひろき', + 'ひろゆき', + 'ひんかく', + 'ひんけつ', + 'ひんこん', + 'ひんしゅ', + 'ひんそう', + 'ぴんち', + 'ひんぱん', + 'びんぼう', + 'ふあん', + 'ふいうち', + 'ふうけい', + 'ふうせん', + 'ぷうたろう', + 'ふうとう', + 'ふうふ', + 'ふえる', + 'ふおん', + 'ふかい', + 'ふきん', + 'ふくざつ', + 'ふくぶくろ', + 'ふこう', + 'ふさい', + 'ふしぎ', + 'ふじみ', + 'ふすま', + 'ふせい', + 'ふせぐ', + 'ふそく', + 'ぶたにく', + 'ふたん', + 'ふちょう', + 'ふつう', + 'ふつか', + 'ふっかつ', + 'ふっき', + 'ふっこく', + 'ぶどう', + 'ふとる', + 'ふとん', + 'ふのう', + 'ふはい', + 'ふひょう', + 'ふへん', + 'ふまん', + 'ふみん', + 'ふめつ', + 'ふめん', + 'ふよう', + 'ふりこ', + 'ふりる', + 'ふるい', + 'ふんいき', + 'ぶんがく', + 'ぶんぐ', + 'ふんしつ', + 'ぶんせき', + 'ふんそう', + 'ぶんぽう', + 'へいあん', + 'へいおん', + 'へいがい', + 'へいき', + 'へいげん', + 'へいこう', + 'へいさ', + 'へいしゃ', + 'へいせつ', + 'へいそ', + 'へいたく', + 'へいてん', + 'へいねつ', + 'へいわ', + 'へきが', + 'へこむ', + 'べにいろ', + 'べにしょうが', + 'へらす', + 'へんかん', + 'べんきょう', + 'べんごし', + 'へんさい', + 'へんたい', + 'べんり', + 'ほあん', + 'ほいく', + 'ぼうぎょ', + 'ほうこく', + 'ほうそう', + 'ほうほう', + 'ほうもん', + 'ほうりつ', + 'ほえる', + 'ほおん', + 'ほかん', + 'ほきょう', + 'ぼきん', + 'ほくろ', + 'ほけつ', + 'ほけん', + 'ほこう', + 'ほこる', + 'ほしい', + 'ほしつ', + 'ほしゅ', + 'ほしょう', + 'ほせい', + 'ほそい', + 'ほそく', + 'ほたて', + 'ほたる', + 'ぽちぶくろ', + 'ほっきょく', + 'ほっさ', + 'ほったん', + 'ほとんど', + 'ほめる', + 'ほんい', + 'ほんき', + 'ほんけ', + 'ほんしつ', + 'ほんやく', + 'まいにち', + 'まかい', + 'まかせる', + 'まがる', + 'まける', + 'まこと', + 'まさつ', + 'まじめ', + 'ますく', + 'まぜる', + 'まつり', + 'まとめ', + 'まなぶ', + 'まぬけ', + 'まねく', + 'まほう', + 'まもる', + 'まゆげ', + 'まよう', + 'まろやか', + 'まわす', + 'まわり', + 'まわる', + 'まんが', + 'まんきつ', + 'まんぞく', + 'まんなか', + 'みいら', + 'みうち', + 'みえる', + 'みがく', + 'みかた', + 'みかん', + 'みけん', + 'みこん', + 'みじかい', + 'みすい', + 'みすえる', + 'みせる', + 'みっか', + 'みつかる', + 'みつける', + 'みてい', + 'みとめる', + 'みなと', + 'みなみかさい', + 'みねらる', + 'みのう', + 'みのがす', + 'みほん', + 'みもと', + 'みやげ', + 'みらい', + 'みりょく', + 'みわく', + 'みんか', + 'みんぞく', + 'むいか', + 'むえき', + 'むえん', + 'むかい', + 'むかう', + 'むかえ', + 'むかし', + 'むぎちゃ', + 'むける', + 'むげん', + 'むさぼる', + 'むしあつい', + 'むしば', + 'むじゅん', + 'むしろ', + 'むすう', + 'むすこ', + 'むすぶ', + 'むすめ', + 'むせる', + 'むせん', + 'むちゅう', + 'むなしい', + 'むのう', + 'むやみ', + 'むよう', + 'むらさき', + 'むりょう', + 'むろん', + 'めいあん', + 'めいうん', + 'めいえん', + 'めいかく', + 'めいきょく', + 'めいさい', + 'めいし', + 'めいそう', + 'めいぶつ', + 'めいれい', + 'めいわく', + 'めぐまれる', + 'めざす', + 'めした', + 'めずらしい', + 'めだつ', + 'めまい', + 'めやす', + 'めんきょ', + 'めんせき', + 'めんどう', + 'もうしあげる', + 'もうどうけん', + 'もえる', + 'もくし', + 'もくてき', + 'もくようび', + 'もちろん', + 'もどる', + 'もらう', + 'もんく', + 'もんだい', + 'やおや', + 'やける', + 'やさい', + 'やさしい', + 'やすい', + 'やすたろう', + 'やすみ', + 'やせる', + 'やそう', + 'やたい', + 'やちん', + 'やっと', + 'やっぱり', + 'やぶる', + 'やめる', + 'ややこしい', + 'やよい', + 'やわらかい', + 'ゆうき', + 'ゆうびんきょく', + 'ゆうべ', + 'ゆうめい', + 'ゆけつ', + 'ゆしゅつ', + 'ゆせん', + 'ゆそう', + 'ゆたか', + 'ゆちゃく', + 'ゆでる', + 'ゆにゅう', + 'ゆびわ', + 'ゆらい', + 'ゆれる', + 'ようい', + 'ようか', + 'ようきゅう', + 'ようじ', + 'ようす', + 'ようちえん', + 'よかぜ', + 'よかん', + 'よきん', + 'よくせい', + 'よくぼう', + 'よけい', + 'よごれる', + 'よさん', + 'よしゅう', + 'よそう', + 'よそく', + 'よっか', + 'よてい', + 'よどがわく', + 'よねつ', + 'よやく', + 'よゆう', + 'よろこぶ', + 'よろしい', + 'らいう', + 'らくがき', + 'らくご', + 'らくさつ', + 'らくだ', + 'らしんばん', + 'らせん', + 'らぞく', + 'らたい', + 'らっか', + 'られつ', + 'りえき', + 'りかい', + 'りきさく', + 'りきせつ', + 'りくぐん', + 'りくつ', + 'りけん', + 'りこう', + 'りせい', + 'りそう', + 'りそく', + 'りてん', + 'りねん', + 'りゆう', + 'りゅうがく', + 'りよう', + 'りょうり', + 'りょかん', + 'りょくちゃ', + 'りょこう', + 'りりく', + 'りれき', + 'りろん', + 'りんご', + 'るいけい', + 'るいさい', + 'るいじ', + 'るいせき', + 'るすばん', + 'るりがわら', + 'れいかん', + 'れいぎ', + 'れいせい', + 'れいぞうこ', + 'れいとう', + 'れいぼう', + 'れきし', + 'れきだい', + 'れんあい', + 'れんけい', + 'れんこん', + 'れんさい', + 'れんしゅう', + 'れんぞく', + 'れんらく', + 'ろうか', + 'ろうご', + 'ろうじん', + 'ろうそく', + 'ろくが', + 'ろこつ', + 'ろじうら', + 'ろしゅつ', + 'ろせん', + 'ろてん', + 'ろめん', + 'ろれつ', + 'ろんぎ', + 'ろんぱ', + 'ろんぶん', + 'ろんり', + 'わかす', + 'わかめ', + 'わかやま', + 'わかれる', + 'わしつ', + 'わじまし', + 'わすれもの', + 'わらう', + 'われる', +]; + +const korean = [ + '가격', + '가끔', + '가난', + '가능', + '가득', + '가르침', + '가뭄', + '가방', + '가상', + '가슴', + '가운데', + '가을', + '가이드', + '가입', + '가장', + '가정', + '가족', + '가죽', + '각오', + '각자', + '간격', + '간부', + '간섭', + '간장', + '간접', + '간판', + '갈등', + '갈비', + '갈색', + '갈증', + '감각', + '감기', + '감소', + '감수성', + '감자', + '감정', + '갑자기', + '강남', + '강당', + '강도', + '강력히', + '강변', + '강북', + '강사', + '강수량', + '강아지', + '강원도', + '강의', + '강제', + '강조', + '같이', + '개구리', + '개나리', + '개방', + '개별', + '개선', + '개성', + '개인', + '객관적', + '거실', + '거액', + '거울', + '거짓', + '거품', + '걱정', + '건강', + '건물', + '건설', + '건조', + '건축', + '걸음', + '검사', + '검토', + '게시판', + '게임', + '겨울', + '견해', + '결과', + '결국', + '결론', + '결석', + '결승', + '결심', + '결정', + '결혼', + '경계', + '경고', + '경기', + '경력', + '경복궁', + '경비', + '경상도', + '경영', + '경우', + '경쟁', + '경제', + '경주', + '경찰', + '경치', + '경향', + '경험', + '계곡', + '계단', + '계란', + '계산', + '계속', + '계약', + '계절', + '계층', + '계획', + '고객', + '고구려', + '고궁', + '고급', + '고등학생', + '고무신', + '고민', + '고양이', + '고장', + '고전', + '고집', + '고춧가루', + '고통', + '고향', + '곡식', + '골목', + '골짜기', + '골프', + '공간', + '공개', + '공격', + '공군', + '공급', + '공기', + '공동', + '공무원', + '공부', + '공사', + '공식', + '공업', + '공연', + '공원', + '공장', + '공짜', + '공책', + '공통', + '공포', + '공항', + '공휴일', + '과목', + '과일', + '과장', + '과정', + '과학', + '관객', + '관계', + '관광', + '관념', + '관람', + '관련', + '관리', + '관습', + '관심', + '관점', + '관찰', + '광경', + '광고', + '광장', + '광주', + '괴로움', + '굉장히', + '교과서', + '교문', + '교복', + '교실', + '교양', + '교육', + '교장', + '교직', + '교통', + '교환', + '교훈', + '구경', + '구름', + '구멍', + '구별', + '구분', + '구석', + '구성', + '구속', + '구역', + '구입', + '구청', + '구체적', + '국가', + '국기', + '국내', + '국립', + '국물', + '국민', + '국수', + '국어', + '국왕', + '국적', + '국제', + '국회', + '군대', + '군사', + '군인', + '궁극적', + '권리', + '권위', + '권투', + '귀국', + '귀신', + '규정', + '규칙', + '균형', + '그날', + '그냥', + '그늘', + '그러나', + '그룹', + '그릇', + '그림', + '그제서야', + '그토록', + '극복', + '극히', + '근거', + '근교', + '근래', + '근로', + '근무', + '근본', + '근원', + '근육', + '근처', + '글씨', + '글자', + '금강산', + '금고', + '금년', + '금메달', + '금액', + '금연', + '금요일', + '금지', + '긍정적', + '기간', + '기관', + '기념', + '기능', + '기독교', + '기둥', + '기록', + '기름', + '기법', + '기본', + '기분', + '기쁨', + '기숙사', + '기술', + '기억', + '기업', + '기온', + '기운', + '기원', + '기적', + '기준', + '기침', + '기혼', + '기획', + '긴급', + '긴장', + '길이', + '김밥', + '김치', + '김포공항', + '깍두기', + '깜빡', + '깨달음', + '깨소금', + '껍질', + '꼭대기', + '꽃잎', + '나들이', + '나란히', + '나머지', + '나물', + '나침반', + '나흘', + '낙엽', + '난방', + '날개', + '날씨', + '날짜', + '남녀', + '남대문', + '남매', + '남산', + '남자', + '남편', + '남학생', + '낭비', + '낱말', + '내년', + '내용', + '내일', + '냄비', + '냄새', + '냇물', + '냉동', + '냉면', + '냉방', + '냉장고', + '넥타이', + '넷째', + '노동', + '노란색', + '노력', + '노인', + '녹음', + '녹차', + '녹화', + '논리', + '논문', + '논쟁', + '놀이', + '농구', + '농담', + '농민', + '농부', + '농업', + '농장', + '농촌', + '높이', + '눈동자', + '눈물', + '눈썹', + '뉴욕', + '느낌', + '늑대', + '능동적', + '능력', + '다방', + '다양성', + '다음', + '다이어트', + '다행', + '단계', + '단골', + '단독', + '단맛', + '단순', + '단어', + '단위', + '단점', + '단체', + '단추', + '단편', + '단풍', + '달걀', + '달러', + '달력', + '달리', + '닭고기', + '담당', + '담배', + '담요', + '담임', + '답변', + '답장', + '당근', + '당분간', + '당연히', + '당장', + '대규모', + '대낮', + '대단히', + '대답', + '대도시', + '대략', + '대량', + '대륙', + '대문', + '대부분', + '대신', + '대응', + '대장', + '대전', + '대접', + '대중', + '대책', + '대출', + '대충', + '대통령', + '대학', + '대한민국', + '대합실', + '대형', + '덩어리', + '데이트', + '도대체', + '도덕', + '도둑', + '도망', + '도서관', + '도심', + '도움', + '도입', + '도자기', + '도저히', + '도전', + '도중', + '도착', + '독감', + '독립', + '독서', + '독일', + '독창적', + '동화책', + '뒷모습', + '뒷산', + '딸아이', + '마누라', + '마늘', + '마당', + '마라톤', + '마련', + '마무리', + '마사지', + '마약', + '마요네즈', + '마을', + '마음', + '마이크', + '마중', + '마지막', + '마찬가지', + '마찰', + '마흔', + '막걸리', + '막내', + '막상', + '만남', + '만두', + '만세', + '만약', + '만일', + '만점', + '만족', + '만화', + '많이', + '말기', + '말씀', + '말투', + '맘대로', + '망원경', + '매년', + '매달', + '매력', + '매번', + '매스컴', + '매일', + '매장', + '맥주', + '먹이', + '먼저', + '먼지', + '멀리', + '메일', + '며느리', + '며칠', + '면담', + '멸치', + '명단', + '명령', + '명예', + '명의', + '명절', + '명칭', + '명함', + '모금', + '모니터', + '모델', + '모든', + '모범', + '모습', + '모양', + '모임', + '모조리', + '모집', + '모퉁이', + '목걸이', + '목록', + '목사', + '목소리', + '목숨', + '목적', + '목표', + '몰래', + '몸매', + '몸무게', + '몸살', + '몸속', + '몸짓', + '몸통', + '몹시', + '무관심', + '무궁화', + '무더위', + '무덤', + '무릎', + '무슨', + '무엇', + '무역', + '무용', + '무조건', + '무지개', + '무척', + '문구', + '문득', + '문법', + '문서', + '문제', + '문학', + '문화', + '물가', + '물건', + '물결', + '물고기', + '물론', + '물리학', + '물음', + '물질', + '물체', + '미국', + '미디어', + '미사일', + '미술', + '미역', + '미용실', + '미움', + '미인', + '미팅', + '미혼', + '민간', + '민족', + '민주', + '믿음', + '밀가루', + '밀리미터', + '밑바닥', + '바가지', + '바구니', + '바나나', + '바늘', + '바닥', + '바닷가', + '바람', + '바이러스', + '바탕', + '박물관', + '박사', + '박수', + '반대', + '반드시', + '반말', + '반발', + '반성', + '반응', + '반장', + '반죽', + '반지', + '반찬', + '받침', + '발가락', + '발걸음', + '발견', + '발달', + '발레', + '발목', + '발바닥', + '발생', + '발음', + '발자국', + '발전', + '발톱', + '발표', + '밤하늘', + '밥그릇', + '밥맛', + '밥상', + '밥솥', + '방금', + '방면', + '방문', + '방바닥', + '방법', + '방송', + '방식', + '방안', + '방울', + '방지', + '방학', + '방해', + '방향', + '배경', + '배꼽', + '배달', + '배드민턴', + '백두산', + '백색', + '백성', + '백인', + '백제', + '백화점', + '버릇', + '버섯', + '버튼', + '번개', + '번역', + '번지', + '번호', + '벌금', + '벌레', + '벌써', + '범위', + '범인', + '범죄', + '법률', + '법원', + '법적', + '법칙', + '베이징', + '벨트', + '변경', + '변동', + '변명', + '변신', + '변호사', + '변화', + '별도', + '별명', + '별일', + '병실', + '병아리', + '병원', + '보관', + '보너스', + '보라색', + '보람', + '보름', + '보상', + '보안', + '보자기', + '보장', + '보전', + '보존', + '보통', + '보편적', + '보험', + '복도', + '복사', + '복숭아', + '복습', + '볶음', + '본격적', + '본래', + '본부', + '본사', + '본성', + '본인', + '본질', + '볼펜', + '봉사', + '봉지', + '봉투', + '부근', + '부끄러움', + '부담', + '부동산', + '부문', + '부분', + '부산', + '부상', + '부엌', + '부인', + '부작용', + '부장', + '부정', + '부족', + '부지런히', + '부친', + '부탁', + '부품', + '부회장', + '북부', + '북한', + '분노', + '분량', + '분리', + '분명', + '분석', + '분야', + '분위기', + '분필', + '분홍색', + '불고기', + '불과', + '불교', + '불꽃', + '불만', + '불법', + '불빛', + '불안', + '불이익', + '불행', + '브랜드', + '비극', + '비난', + '비닐', + '비둘기', + '비디오', + '비로소', + '비만', + '비명', + '비밀', + '비바람', + '비빔밥', + '비상', + '비용', + '비율', + '비중', + '비타민', + '비판', + '빌딩', + '빗물', + '빗방울', + '빗줄기', + '빛깔', + '빨간색', + '빨래', + '빨리', + '사건', + '사계절', + '사나이', + '사냥', + '사람', + '사랑', + '사립', + '사모님', + '사물', + '사방', + '사상', + '사생활', + '사설', + '사슴', + '사실', + '사업', + '사용', + '사월', + '사장', + '사전', + '사진', + '사촌', + '사춘기', + '사탕', + '사투리', + '사흘', + '산길', + '산부인과', + '산업', + '산책', + '살림', + '살인', + '살짝', + '삼계탕', + '삼국', + '삼십', + '삼월', + '삼촌', + '상관', + '상금', + '상대', + '상류', + '상반기', + '상상', + '상식', + '상업', + '상인', + '상자', + '상점', + '상처', + '상추', + '상태', + '상표', + '상품', + '상황', + '새벽', + '색깔', + '색연필', + '생각', + '생명', + '생물', + '생방송', + '생산', + '생선', + '생신', + '생일', + '생활', + '서랍', + '서른', + '서명', + '서민', + '서비스', + '서양', + '서울', + '서적', + '서점', + '서쪽', + '서클', + '석사', + '석유', + '선거', + '선물', + '선배', + '선생', + '선수', + '선원', + '선장', + '선전', + '선택', + '선풍기', + '설거지', + '설날', + '설렁탕', + '설명', + '설문', + '설사', + '설악산', + '설치', + '설탕', + '섭씨', + '성공', + '성당', + '성명', + '성별', + '성인', + '성장', + '성적', + '성질', + '성함', + '세금', + '세미나', + '세상', + '세월', + '세종대왕', + '세탁', + '센터', + '센티미터', + '셋째', + '소규모', + '소극적', + '소금', + '소나기', + '소년', + '소득', + '소망', + '소문', + '소설', + '소속', + '소아과', + '소용', + '소원', + '소음', + '소중히', + '소지품', + '소질', + '소풍', + '소형', + '속담', + '속도', + '속옷', + '손가락', + '손길', + '손녀', + '손님', + '손등', + '손목', + '손뼉', + '손실', + '손질', + '손톱', + '손해', + '솔직히', + '솜씨', + '송아지', + '송이', + '송편', + '쇠고기', + '쇼핑', + '수건', + '수년', + '수단', + '수돗물', + '수동적', + '수면', + '수명', + '수박', + '수상', + '수석', + '수술', + '수시로', + '수업', + '수염', + '수영', + '수입', + '수준', + '수집', + '수출', + '수컷', + '수필', + '수학', + '수험생', + '수화기', + '숙녀', + '숙소', + '숙제', + '순간', + '순서', + '순수', + '순식간', + '순위', + '숟가락', + '술병', + '술집', + '숫자', + '스님', + '스물', + '스스로', + '스승', + '스웨터', + '스위치', + '스케이트', + '스튜디오', + '스트레스', + '스포츠', + '슬쩍', + '슬픔', + '습관', + '습기', + '승객', + '승리', + '승부', + '승용차', + '승진', + '시각', + '시간', + '시골', + '시금치', + '시나리오', + '시댁', + '시리즈', + '시멘트', + '시민', + '시부모', + '시선', + '시설', + '시스템', + '시아버지', + '시어머니', + '시월', + '시인', + '시일', + '시작', + '시장', + '시절', + '시점', + '시중', + '시즌', + '시집', + '시청', + '시합', + '시험', + '식구', + '식기', + '식당', + '식량', + '식료품', + '식물', + '식빵', + '식사', + '식생활', + '식초', + '식탁', + '식품', + '신고', + '신규', + '신념', + '신문', + '신발', + '신비', + '신사', + '신세', + '신용', + '신제품', + '신청', + '신체', + '신화', + '실감', + '실내', + '실력', + '실례', + '실망', + '실수', + '실습', + '실시', + '실장', + '실정', + '실질적', + '실천', + '실체', + '실컷', + '실태', + '실패', + '실험', + '실현', + '심리', + '심부름', + '심사', + '심장', + '심정', + '심판', + '쌍둥이', + '씨름', + '씨앗', + '아가씨', + '아나운서', + '아드님', + '아들', + '아쉬움', + '아스팔트', + '아시아', + '아울러', + '아저씨', + '아줌마', + '아직', + '아침', + '아파트', + '아프리카', + '아픔', + '아홉', + '아흔', + '악기', + '악몽', + '악수', + '안개', + '안경', + '안과', + '안내', + '안녕', + '안동', + '안방', + '안부', + '안주', + '알루미늄', + '알코올', + '암시', + '암컷', + '압력', + '앞날', + '앞문', + '애인', + '애정', + '액수', + '앨범', + '야간', + '야단', + '야옹', + '약간', + '약국', + '약속', + '약수', + '약점', + '약품', + '약혼녀', + '양념', + '양력', + '양말', + '양배추', + '양주', + '양파', + '어둠', + '어려움', + '어른', + '어젯밤', + '어쨌든', + '어쩌다가', + '어쩐지', + '언니', + '언덕', + '언론', + '언어', + '얼굴', + '얼른', + '얼음', + '얼핏', + '엄마', + '업무', + '업종', + '업체', + '엉덩이', + '엉망', + '엉터리', + '엊그제', + '에너지', + '에어컨', + '엔진', + '여건', + '여고생', + '여관', + '여군', + '여권', + '여대생', + '여덟', + '여동생', + '여든', + '여론', + '여름', + '여섯', + '여성', + '여왕', + '여인', + '여전히', + '여직원', + '여학생', + '여행', + '역사', + '역시', + '역할', + '연결', + '연구', + '연극', + '연기', + '연락', + '연설', + '연세', + '연속', + '연습', + '연애', + '연예인', + '연인', + '연장', + '연주', + '연출', + '연필', + '연합', + '연휴', + '열기', + '열매', + '열쇠', + '열심히', + '열정', + '열차', + '열흘', + '염려', + '엽서', + '영국', + '영남', + '영상', + '영양', + '영역', + '영웅', + '영원히', + '영하', + '영향', + '영혼', + '영화', + '옆구리', + '옆방', + '옆집', + '예감', + '예금', + '예방', + '예산', + '예상', + '예선', + '예술', + '예습', + '예식장', + '예약', + '예전', + '예절', + '예정', + '예컨대', + '옛날', + '오늘', + '오락', + '오랫동안', + '오렌지', + '오로지', + '오른발', + '오븐', + '오십', + '오염', + '오월', + '오전', + '오직', + '오징어', + '오페라', + '오피스텔', + '오히려', + '옥상', + '옥수수', + '온갖', + '온라인', + '온몸', + '온종일', + '온통', + '올가을', + '올림픽', + '올해', + '옷차림', + '와이셔츠', + '와인', + '완성', + '완전', + '왕비', + '왕자', + '왜냐하면', + '왠지', + '외갓집', + '외국', + '외로움', + '외삼촌', + '외출', + '외침', + '외할머니', + '왼발', + '왼손', + '왼쪽', + '요금', + '요일', + '요즘', + '요청', + '용기', + '용서', + '용어', + '우산', + '우선', + '우승', + '우연히', + '우정', + '우체국', + '우편', + '운동', + '운명', + '운반', + '운전', + '운행', + '울산', + '울음', + '움직임', + '웃어른', + '웃음', + '워낙', + '원고', + '원래', + '원서', + '원숭이', + '원인', + '원장', + '원피스', + '월급', + '월드컵', + '월세', + '월요일', + '웨이터', + '위반', + '위법', + '위성', + '위원', + '위험', + '위협', + '윗사람', + '유난히', + '유럽', + '유명', + '유물', + '유산', + '유적', + '유치원', + '유학', + '유행', + '유형', + '육군', + '육상', + '육십', + '육체', + '은행', + '음력', + '음료', + '음반', + '음성', + '음식', + '음악', + '음주', + '의견', + '의논', + '의문', + '의복', + '의식', + '의심', + '의외로', + '의욕', + '의원', + '의학', + '이것', + '이곳', + '이념', + '이놈', + '이달', + '이대로', + '이동', + '이렇게', + '이력서', + '이론적', + '이름', + '이민', + '이발소', + '이별', + '이불', + '이빨', + '이상', + '이성', + '이슬', + '이야기', + '이용', + '이웃', + '이월', + '이윽고', + '이익', + '이전', + '이중', + '이튿날', + '이틀', + '이혼', + '인간', + '인격', + '인공', + '인구', + '인근', + '인기', + '인도', + '인류', + '인물', + '인생', + '인쇄', + '인연', + '인원', + '인재', + '인종', + '인천', + '인체', + '인터넷', + '인하', + '인형', + '일곱', + '일기', + '일단', + '일대', + '일등', + '일반', + '일본', + '일부', + '일상', + '일생', + '일손', + '일요일', + '일월', + '일정', + '일종', + '일주일', + '일찍', + '일체', + '일치', + '일행', + '일회용', + '임금', + '임무', + '입대', + '입력', + '입맛', + '입사', + '입술', + '입시', + '입원', + '입장', + '입학', + '자가용', + '자격', + '자극', + '자동', + '자랑', + '자부심', + '자식', + '자신', + '자연', + '자원', + '자율', + '자전거', + '자정', + '자존심', + '자판', + '작가', + '작년', + '작성', + '작업', + '작용', + '작은딸', + '작품', + '잔디', + '잔뜩', + '잔치', + '잘못', + '잠깐', + '잠수함', + '잠시', + '잠옷', + '잠자리', + '잡지', + '장관', + '장군', + '장기간', + '장래', + '장례', + '장르', + '장마', + '장면', + '장모', + '장미', + '장비', + '장사', + '장소', + '장식', + '장애인', + '장인', + '장점', + '장차', + '장학금', + '재능', + '재빨리', + '재산', + '재생', + '재작년', + '재정', + '재채기', + '재판', + '재학', + '재활용', + '저것', + '저고리', + '저곳', + '저녁', + '저런', + '저렇게', + '저번', + '저울', + '저절로', + '저축', + '적극', + '적당히', + '적성', + '적용', + '적응', + '전개', + '전공', + '전기', + '전달', + '전라도', + '전망', + '전문', + '전반', + '전부', + '전세', + '전시', + '전용', + '전자', + '전쟁', + '전주', + '전철', + '전체', + '전통', + '전혀', + '전후', + '절대', + '절망', + '절반', + '절약', + '절차', + '점검', + '점수', + '점심', + '점원', + '점점', + '점차', + '접근', + '접시', + '접촉', + '젓가락', + '정거장', + '정도', + '정류장', + '정리', + '정말', + '정면', + '정문', + '정반대', + '정보', + '정부', + '정비', + '정상', + '정성', + '정오', + '정원', + '정장', + '정지', + '정치', + '정확히', + '제공', + '제과점', + '제대로', + '제목', + '제발', + '제법', + '제삿날', + '제안', + '제일', + '제작', + '제주도', + '제출', + '제품', + '제한', + '조각', + '조건', + '조금', + '조깅', + '조명', + '조미료', + '조상', + '조선', + '조용히', + '조절', + '조정', + '조직', + '존댓말', + '존재', + '졸업', + '졸음', + '종교', + '종로', + '종류', + '종소리', + '종업원', + '종종', + '종합', + '좌석', + '죄인', + '주관적', + '주름', + '주말', + '주머니', + '주먹', + '주문', + '주민', + '주방', + '주변', + '주식', + '주인', + '주일', + '주장', + '주전자', + '주택', + '준비', + '줄거리', + '줄기', + '줄무늬', + '중간', + '중계방송', + '중국', + '중년', + '중단', + '중독', + '중반', + '중부', + '중세', + '중소기업', + '중순', + '중앙', + '중요', + '중학교', + '즉석', + '즉시', + '즐거움', + '증가', + '증거', + '증권', + '증상', + '증세', + '지각', + '지갑', + '지경', + '지극히', + '지금', + '지급', + '지능', + '지름길', + '지리산', + '지방', + '지붕', + '지식', + '지역', + '지우개', + '지원', + '지적', + '지점', + '지진', + '지출', + '직선', + '직업', + '직원', + '직장', + '진급', + '진동', + '진로', + '진료', + '진리', + '진짜', + '진찰', + '진출', + '진통', + '진행', + '질문', + '질병', + '질서', + '짐작', + '집단', + '집안', + '집중', + '짜증', + '찌꺼기', + '차남', + '차라리', + '차량', + '차림', + '차별', + '차선', + '차츰', + '착각', + '찬물', + '찬성', + '참가', + '참기름', + '참새', + '참석', + '참여', + '참외', + '참조', + '찻잔', + '창가', + '창고', + '창구', + '창문', + '창밖', + '창작', + '창조', + '채널', + '채점', + '책가방', + '책방', + '책상', + '책임', + '챔피언', + '처벌', + '처음', + '천국', + '천둥', + '천장', + '천재', + '천천히', + '철도', + '철저히', + '철학', + '첫날', + '첫째', + '청년', + '청바지', + '청소', + '청춘', + '체계', + '체력', + '체온', + '체육', + '체중', + '체험', + '초등학생', + '초반', + '초밥', + '초상화', + '초순', + '초여름', + '초원', + '초저녁', + '초점', + '초청', + '초콜릿', + '촛불', + '총각', + '총리', + '총장', + '촬영', + '최근', + '최상', + '최선', + '최신', + '최악', + '최종', + '추석', + '추억', + '추진', + '추천', + '추측', + '축구', + '축소', + '축제', + '축하', + '출근', + '출발', + '출산', + '출신', + '출연', + '출입', + '출장', + '출판', + '충격', + '충고', + '충돌', + '충분히', + '충청도', + '취업', + '취직', + '취향', + '치약', + '친구', + '친척', + '칠십', + '칠월', + '칠판', + '침대', + '침묵', + '침실', + '칫솔', + '칭찬', + '카메라', + '카운터', + '칼국수', + '캐릭터', + '캠퍼스', + '캠페인', + '커튼', + '컨디션', + '컬러', + '컴퓨터', + '코끼리', + '코미디', + '콘서트', + '콜라', + '콤플렉스', + '콩나물', + '쾌감', + '쿠데타', + '크림', + '큰길', + '큰딸', + '큰소리', + '큰아들', + '큰어머니', + '큰일', + '큰절', + '클래식', + '클럽', + '킬로', + '타입', + '타자기', + '탁구', + '탁자', + '탄생', + '태권도', + '태양', + '태풍', + '택시', + '탤런트', + '터널', + '터미널', + '테니스', + '테스트', + '테이블', + '텔레비전', + '토론', + '토마토', + '토요일', + '통계', + '통과', + '통로', + '통신', + '통역', + '통일', + '통장', + '통제', + '통증', + '통합', + '통화', + '퇴근', + '퇴원', + '퇴직금', + '튀김', + '트럭', + '특급', + '특별', + '특성', + '특수', + '특징', + '특히', + '튼튼히', + '티셔츠', + '파란색', + '파일', + '파출소', + '판결', + '판단', + '판매', + '판사', + '팔십', + '팔월', + '팝송', + '패션', + '팩스', + '팩시밀리', + '팬티', + '퍼센트', + '페인트', + '편견', + '편의', + '편지', + '편히', + '평가', + '평균', + '평생', + '평소', + '평양', + '평일', + '평화', + '포스터', + '포인트', + '포장', + '포함', + '표면', + '표정', + '표준', + '표현', + '품목', + '품질', + '풍경', + '풍속', + '풍습', + '프랑스', + '프린터', + '플라스틱', + '피곤', + '피망', + '피아노', + '필름', + '필수', + '필요', + '필자', + '필통', + '핑계', + '하느님', + '하늘', + '하드웨어', + '하룻밤', + '하반기', + '하숙집', + '하순', + '하여튼', + '하지만', + '하천', + '하품', + '하필', + '학과', + '학교', + '학급', + '학기', + '학년', + '학력', + '학번', + '학부모', + '학비', + '학생', + '학술', + '학습', + '학용품', + '학원', + '학위', + '학자', + '학점', + '한계', + '한글', + '한꺼번에', + '한낮', + '한눈', + '한동안', + '한때', + '한라산', + '한마디', + '한문', + '한번', + '한복', + '한식', + '한여름', + '한쪽', + '할머니', + '할아버지', + '할인', + '함께', + '함부로', + '합격', + '합리적', + '항공', + '항구', + '항상', + '항의', + '해결', + '해군', + '해답', + '해당', + '해물', + '해석', + '해설', + '해수욕장', + '해안', + '핵심', + '핸드백', + '햄버거', + '햇볕', + '햇살', + '행동', + '행복', + '행사', + '행운', + '행위', + '향기', + '향상', + '향수', + '허락', + '허용', + '헬기', + '현관', + '현금', + '현대', + '현상', + '현실', + '현장', + '현재', + '현지', + '혈액', + '협력', + '형부', + '형사', + '형수', + '형식', + '형제', + '형태', + '형편', + '혜택', + '호기심', + '호남', + '호랑이', + '호박', + '호텔', + '호흡', + '혹시', + '홀로', + '홈페이지', + '홍보', + '홍수', + '홍차', + '화면', + '화분', + '화살', + '화요일', + '화장', + '화학', + '확보', + '확인', + '확장', + '확정', + '환갑', + '환경', + '환영', + '환율', + '환자', + '활기', + '활동', + '활발히', + '활용', + '활짝', + '회견', + '회관', + '회복', + '회색', + '회원', + '회장', + '회전', + '횟수', + '횡단보도', + '효율적', + '후반', + '후춧가루', + '훈련', + '훨씬', + '휴식', + '휴일', + '흉내', + '흐름', + '흑백', + '흑인', + '흔적', + '흔히', + '흥미', + '흥분', + '희곡', + '희망', + '희생', + '흰색', + '힘껏', +]; + +const spanish = [ + 'ábaco', + 'abdomen', + 'abeja', + 'abierto', + 'abogado', + 'abono', + 'aborto', + 'abrazo', + 'abrir', + 'abuelo', + 'abuso', + 'acabar', + 'academia', + 'acceso', + 'acción', + 'aceite', + 'acelga', + 'acento', + 'aceptar', + 'ácido', + 'aclarar', + 'acné', + 'acoger', + 'acoso', + 'activo', + 'acto', + 'actriz', + 'actuar', + 'acudir', + 'acuerdo', + 'acusar', + 'adicto', + 'admitir', + 'adoptar', + 'adorno', + 'aduana', + 'adulto', + 'aéreo', + 'afectar', + 'afición', + 'afinar', + 'afirmar', + 'ágil', + 'agitar', + 'agonía', + 'agosto', + 'agotar', + 'agregar', + 'agrio', + 'agua', + 'agudo', + 'águila', + 'aguja', + 'ahogo', + 'ahorro', + 'aire', + 'aislar', + 'ajedrez', + 'ajeno', + 'ajuste', + 'alacrán', + 'alambre', + 'alarma', + 'alba', + 'álbum', + 'alcalde', + 'aldea', + 'alegre', + 'alejar', + 'alerta', + 'aleta', + 'alfiler', + 'alga', + 'algodón', + 'aliado', + 'aliento', + 'alivio', + 'alma', + 'almeja', + 'almíbar', + 'altar', + 'alteza', + 'altivo', + 'alto', + 'altura', + 'alumno', + 'alzar', + 'amable', + 'amante', + 'amapola', + 'amargo', + 'amasar', + 'ámbar', + 'ámbito', + 'ameno', + 'amigo', + 'amistad', + 'amor', + 'amparo', + 'amplio', + 'ancho', + 'anciano', + 'ancla', + 'andar', + 'andén', + 'anemia', + 'ángulo', + 'anillo', + 'ánimo', + 'anís', + 'anotar', + 'antena', + 'antiguo', + 'antojo', + 'anual', + 'anular', + 'anuncio', + 'añadir', + 'añejo', + 'año', + 'apagar', + 'aparato', + 'apetito', + 'apio', + 'aplicar', + 'apodo', + 'aporte', + 'apoyo', + 'aprender', + 'aprobar', + 'apuesta', + 'apuro', + 'arado', + 'araña', + 'arar', + 'árbitro', + 'árbol', + 'arbusto', + 'archivo', + 'arco', + 'arder', + 'ardilla', + 'arduo', + 'área', + 'árido', + 'aries', + 'armonía', + 'arnés', + 'aroma', + 'arpa', + 'arpón', + 'arreglo', + 'arroz', + 'arruga', + 'arte', + 'artista', + 'asa', + 'asado', + 'asalto', + 'ascenso', + 'asegurar', + 'aseo', + 'asesor', + 'asiento', + 'asilo', + 'asistir', + 'asno', + 'asombro', + 'áspero', + 'astilla', + 'astro', + 'astuto', + 'asumir', + 'asunto', + 'atajo', + 'ataque', + 'atar', + 'atento', + 'ateo', + 'ático', + 'atleta', + 'átomo', + 'atraer', + 'atroz', + 'atún', + 'audaz', + 'audio', + 'auge', + 'aula', + 'aumento', + 'ausente', + 'autor', + 'aval', + 'avance', + 'avaro', + 'ave', + 'avellana', + 'avena', + 'avestruz', + 'avión', + 'aviso', + 'ayer', + 'ayuda', + 'ayuno', + 'azafrán', + 'azar', + 'azote', + 'azúcar', + 'azufre', + 'azul', + 'baba', + 'babor', + 'bache', + 'bahía', + 'baile', + 'bajar', + 'balanza', + 'balcón', + 'balde', + 'bambú', + 'banco', + 'banda', + 'baño', + 'barba', + 'barco', + 'barniz', + 'barro', + 'báscula', + 'bastón', + 'basura', + 'batalla', + 'batería', + 'batir', + 'batuta', + 'baúl', + 'bazar', + 'bebé', + 'bebida', + 'bello', + 'besar', + 'beso', + 'bestia', + 'bicho', + 'bien', + 'bingo', + 'blanco', + 'bloque', + 'blusa', + 'boa', + 'bobina', + 'bobo', + 'boca', + 'bocina', + 'boda', + 'bodega', + 'boina', + 'bola', + 'bolero', + 'bolsa', + 'bomba', + 'bondad', + 'bonito', + 'bono', + 'bonsái', + 'borde', + 'borrar', + 'bosque', + 'bote', + 'botín', + 'bóveda', + 'bozal', + 'bravo', + 'brazo', + 'brecha', + 'breve', + 'brillo', + 'brinco', + 'brisa', + 'broca', + 'broma', + 'bronce', + 'brote', + 'bruja', + 'brusco', + 'bruto', + 'buceo', + 'bucle', + 'bueno', + 'buey', + 'bufanda', + 'bufón', + 'búho', + 'buitre', + 'bulto', + 'burbuja', + 'burla', + 'burro', + 'buscar', + 'butaca', + 'buzón', + 'caballo', + 'cabeza', + 'cabina', + 'cabra', + 'cacao', + 'cadáver', + 'cadena', + 'caer', + 'café', + 'caída', + 'caimán', + 'caja', + 'cajón', + 'cal', + 'calamar', + 'calcio', + 'caldo', + 'calidad', + 'calle', + 'calma', + 'calor', + 'calvo', + 'cama', + 'cambio', + 'camello', + 'camino', + 'campo', + 'cáncer', + 'candil', + 'canela', + 'canguro', + 'canica', + 'canto', + 'caña', + 'cañón', + 'caoba', + 'caos', + 'capaz', + 'capitán', + 'capote', + 'captar', + 'capucha', + 'cara', + 'carbón', + 'cárcel', + 'careta', + 'carga', + 'cariño', + 'carne', + 'carpeta', + 'carro', + 'carta', + 'casa', + 'casco', + 'casero', + 'caspa', + 'castor', + 'catorce', + 'catre', + 'caudal', + 'causa', + 'cazo', + 'cebolla', + 'ceder', + 'cedro', + 'celda', + 'célebre', + 'celoso', + 'célula', + 'cemento', + 'ceniza', + 'centro', + 'cerca', + 'cerdo', + 'cereza', + 'cero', + 'cerrar', + 'certeza', + 'césped', + 'cetro', + 'chacal', + 'chaleco', + 'champú', + 'chancla', + 'chapa', + 'charla', + 'chico', + 'chiste', + 'chivo', + 'choque', + 'choza', + 'chuleta', + 'chupar', + 'ciclón', + 'ciego', + 'cielo', + 'cien', + 'cierto', + 'cifra', + 'cigarro', + 'cima', + 'cinco', + 'cine', + 'cinta', + 'ciprés', + 'circo', + 'ciruela', + 'cisne', + 'cita', + 'ciudad', + 'clamor', + 'clan', + 'claro', + 'clase', + 'clave', + 'cliente', + 'clima', + 'clínica', + 'cobre', + 'cocción', + 'cochino', + 'cocina', + 'coco', + 'código', + 'codo', + 'cofre', + 'coger', + 'cohete', + 'cojín', + 'cojo', + 'cola', + 'colcha', + 'colegio', + 'colgar', + 'colina', + 'collar', + 'colmo', + 'columna', + 'combate', + 'comer', + 'comida', + 'cómodo', + 'compra', + 'conde', + 'conejo', + 'conga', + 'conocer', + 'consejo', + 'contar', + 'copa', + 'copia', + 'corazón', + 'corbata', + 'corcho', + 'cordón', + 'corona', + 'correr', + 'coser', + 'cosmos', + 'costa', + 'cráneo', + 'cráter', + 'crear', + 'crecer', + 'creído', + 'crema', + 'cría', + 'crimen', + 'cripta', + 'crisis', + 'cromo', + 'crónica', + 'croqueta', + 'crudo', + 'cruz', + 'cuadro', + 'cuarto', + 'cuatro', + 'cubo', + 'cubrir', + 'cuchara', + 'cuello', + 'cuento', + 'cuerda', + 'cuesta', + 'cueva', + 'cuidar', + 'culebra', + 'culpa', + 'culto', + 'cumbre', + 'cumplir', + 'cuna', + 'cuneta', + 'cuota', + 'cupón', + 'cúpula', + 'curar', + 'curioso', + 'curso', + 'curva', + 'cutis', + 'dama', + 'danza', + 'dar', + 'dardo', + 'dátil', + 'deber', + 'débil', + 'década', + 'decir', + 'dedo', + 'defensa', + 'definir', + 'dejar', + 'delfín', + 'delgado', + 'delito', + 'demora', + 'denso', + 'dental', + 'deporte', + 'derecho', + 'derrota', + 'desayuno', + 'deseo', + 'desfile', + 'desnudo', + 'destino', + 'desvío', + 'detalle', + 'detener', + 'deuda', + 'día', + 'diablo', + 'diadema', + 'diamante', + 'diana', + 'diario', + 'dibujo', + 'dictar', + 'diente', + 'dieta', + 'diez', + 'difícil', + 'digno', + 'dilema', + 'diluir', + 'dinero', + 'directo', + 'dirigir', + 'disco', + 'diseño', + 'disfraz', + 'diva', + 'divino', + 'doble', + 'doce', + 'dolor', + 'domingo', + 'don', + 'donar', + 'dorado', + 'dormir', + 'dorso', + 'dos', + 'dosis', + 'dragón', + 'droga', + 'ducha', + 'duda', + 'duelo', + 'dueño', + 'dulce', + 'dúo', + 'duque', + 'durar', + 'dureza', + 'duro', + 'ébano', + 'ebrio', + 'echar', + 'eco', + 'ecuador', + 'edad', + 'edición', + 'edificio', + 'editor', + 'educar', + 'efecto', + 'eficaz', + 'eje', + 'ejemplo', + 'elefante', + 'elegir', + 'elemento', + 'elevar', + 'elipse', + 'élite', + 'elixir', + 'elogio', + 'eludir', + 'embudo', + 'emitir', + 'emoción', + 'empate', + 'empeño', + 'empleo', + 'empresa', + 'enano', + 'encargo', + 'enchufe', + 'encía', + 'enemigo', + 'enero', + 'enfado', + 'enfermo', + 'engaño', + 'enigma', + 'enlace', + 'enorme', + 'enredo', + 'ensayo', + 'enseñar', + 'entero', + 'entrar', + 'envase', + 'envío', + 'época', + 'equipo', + 'erizo', + 'escala', + 'escena', + 'escolar', + 'escribir', + 'escudo', + 'esencia', + 'esfera', + 'esfuerzo', + 'espada', + 'espejo', + 'espía', + 'esposa', + 'espuma', + 'esquí', + 'estar', + 'este', + 'estilo', + 'estufa', + 'etapa', + 'eterno', + 'ética', + 'etnia', + 'evadir', + 'evaluar', + 'evento', + 'evitar', + 'exacto', + 'examen', + 'exceso', + 'excusa', + 'exento', + 'exigir', + 'exilio', + 'existir', + 'éxito', + 'experto', + 'explicar', + 'exponer', + 'extremo', + 'fábrica', + 'fábula', + 'fachada', + 'fácil', + 'factor', + 'faena', + 'faja', + 'falda', + 'fallo', + 'falso', + 'faltar', + 'fama', + 'familia', + 'famoso', + 'faraón', + 'farmacia', + 'farol', + 'farsa', + 'fase', + 'fatiga', + 'fauna', + 'favor', + 'fax', + 'febrero', + 'fecha', + 'feliz', + 'feo', + 'feria', + 'feroz', + 'fértil', + 'fervor', + 'festín', + 'fiable', + 'fianza', + 'fiar', + 'fibra', + 'ficción', + 'ficha', + 'fideo', + 'fiebre', + 'fiel', + 'fiera', + 'fiesta', + 'figura', + 'fijar', + 'fijo', + 'fila', + 'filete', + 'filial', + 'filtro', + 'fin', + 'finca', + 'fingir', + 'finito', + 'firma', + 'flaco', + 'flauta', + 'flecha', + 'flor', + 'flota', + 'fluir', + 'flujo', + 'flúor', + 'fobia', + 'foca', + 'fogata', + 'fogón', + 'folio', + 'folleto', + 'fondo', + 'forma', + 'forro', + 'fortuna', + 'forzar', + 'fosa', + 'foto', + 'fracaso', + 'frágil', + 'franja', + 'frase', + 'fraude', + 'freír', + 'freno', + 'fresa', + 'frío', + 'frito', + 'fruta', + 'fuego', + 'fuente', + 'fuerza', + 'fuga', + 'fumar', + 'función', + 'funda', + 'furgón', + 'furia', + 'fusil', + 'fútbol', + 'futuro', + 'gacela', + 'gafas', + 'gaita', + 'gajo', + 'gala', + 'galería', + 'gallo', + 'gamba', + 'ganar', + 'gancho', + 'ganga', + 'ganso', + 'garaje', + 'garza', + 'gasolina', + 'gastar', + 'gato', + 'gavilán', + 'gemelo', + 'gemir', + 'gen', + 'género', + 'genio', + 'gente', + 'geranio', + 'gerente', + 'germen', + 'gesto', + 'gigante', + 'gimnasio', + 'girar', + 'giro', + 'glaciar', + 'globo', + 'gloria', + 'gol', + 'golfo', + 'goloso', + 'golpe', + 'goma', + 'gordo', + 'gorila', + 'gorra', + 'gota', + 'goteo', + 'gozar', + 'grada', + 'gráfico', + 'grano', + 'grasa', + 'gratis', + 'grave', + 'grieta', + 'grillo', + 'gripe', + 'gris', + 'grito', + 'grosor', + 'grúa', + 'grueso', + 'grumo', + 'grupo', + 'guante', + 'guapo', + 'guardia', + 'guerra', + 'guía', + 'guiño', + 'guion', + 'guiso', + 'guitarra', + 'gusano', + 'gustar', + 'haber', + 'hábil', + 'hablar', + 'hacer', + 'hacha', + 'hada', + 'hallar', + 'hamaca', + 'harina', + 'haz', + 'hazaña', + 'hebilla', + 'hebra', + 'hecho', + 'helado', + 'helio', + 'hembra', + 'herir', + 'hermano', + 'héroe', + 'hervir', + 'hielo', + 'hierro', + 'hígado', + 'higiene', + 'hijo', + 'himno', + 'historia', + 'hocico', + 'hogar', + 'hoguera', + 'hoja', + 'hombre', + 'hongo', + 'honor', + 'honra', + 'hora', + 'hormiga', + 'horno', + 'hostil', + 'hoyo', + 'hueco', + 'huelga', + 'huerta', + 'hueso', + 'huevo', + 'huida', + 'huir', + 'humano', + 'húmedo', + 'humilde', + 'humo', + 'hundir', + 'huracán', + 'hurto', + 'icono', + 'ideal', + 'idioma', + 'ídolo', + 'iglesia', + 'iglú', + 'igual', + 'ilegal', + 'ilusión', + 'imagen', + 'imán', + 'imitar', + 'impar', + 'imperio', + 'imponer', + 'impulso', + 'incapaz', + 'índice', + 'inerte', + 'infiel', + 'informe', + 'ingenio', + 'inicio', + 'inmenso', + 'inmune', + 'innato', + 'insecto', + 'instante', + 'interés', + 'íntimo', + 'intuir', + 'inútil', + 'invierno', + 'ira', + 'iris', + 'ironía', + 'isla', + 'islote', + 'jabalí', + 'jabón', + 'jamón', + 'jarabe', + 'jardín', + 'jarra', + 'jaula', + 'jazmín', + 'jefe', + 'jeringa', + 'jinete', + 'jornada', + 'joroba', + 'joven', + 'joya', + 'juerga', + 'jueves', + 'juez', + 'jugador', + 'jugo', + 'juguete', + 'juicio', + 'junco', + 'jungla', + 'junio', + 'juntar', + 'júpiter', + 'jurar', + 'justo', + 'juvenil', + 'juzgar', + 'kilo', + 'koala', + 'labio', + 'lacio', + 'lacra', + 'lado', + 'ladrón', + 'lagarto', + 'lágrima', + 'laguna', + 'laico', + 'lamer', + 'lámina', + 'lámpara', + 'lana', + 'lancha', + 'langosta', + 'lanza', + 'lápiz', + 'largo', + 'larva', + 'lástima', + 'lata', + 'látex', + 'latir', + 'laurel', + 'lavar', + 'lazo', + 'leal', + 'lección', + 'leche', + 'lector', + 'leer', + 'legión', + 'legumbre', + 'lejano', + 'lengua', + 'lento', + 'leña', + 'león', + 'leopardo', + 'lesión', + 'letal', + 'letra', + 'leve', + 'leyenda', + 'libertad', + 'libro', + 'licor', + 'líder', + 'lidiar', + 'lienzo', + 'liga', + 'ligero', + 'lima', + 'límite', + 'limón', + 'limpio', + 'lince', + 'lindo', + 'línea', + 'lingote', + 'lino', + 'linterna', + 'líquido', + 'liso', + 'lista', + 'litera', + 'litio', + 'litro', + 'llaga', + 'llama', + 'llanto', + 'llave', + 'llegar', + 'llenar', + 'llevar', + 'llorar', + 'llover', + 'lluvia', + 'lobo', + 'loción', + 'loco', + 'locura', + 'lógica', + 'logro', + 'lombriz', + 'lomo', + 'lonja', + 'lote', + 'lucha', + 'lucir', + 'lugar', + 'lujo', + 'luna', + 'lunes', + 'lupa', + 'lustro', + 'luto', + 'luz', + 'maceta', + 'macho', + 'madera', + 'madre', + 'maduro', + 'maestro', + 'mafia', + 'magia', + 'mago', + 'maíz', + 'maldad', + 'maleta', + 'malla', + 'malo', + 'mamá', + 'mambo', + 'mamut', + 'manco', + 'mando', + 'manejar', + 'manga', + 'maniquí', + 'manjar', + 'mano', + 'manso', + 'manta', + 'mañana', + 'mapa', + 'máquina', + 'mar', + 'marco', + 'marea', + 'marfil', + 'margen', + 'marido', + 'mármol', + 'marrón', + 'martes', + 'marzo', + 'masa', + 'máscara', + 'masivo', + 'matar', + 'materia', + 'matiz', + 'matriz', + 'máximo', + 'mayor', + 'mazorca', + 'mecha', + 'medalla', + 'medio', + 'médula', + 'mejilla', + 'mejor', + 'melena', + 'melón', + 'memoria', + 'menor', + 'mensaje', + 'mente', + 'menú', + 'mercado', + 'merengue', + 'mérito', + 'mes', + 'mesón', + 'meta', + 'meter', + 'método', + 'metro', + 'mezcla', + 'miedo', + 'miel', + 'miembro', + 'miga', + 'mil', + 'milagro', + 'militar', + 'millón', + 'mimo', + 'mina', + 'minero', + 'mínimo', + 'minuto', + 'miope', + 'mirar', + 'misa', + 'miseria', + 'misil', + 'mismo', + 'mitad', + 'mito', + 'mochila', + 'moción', + 'moda', + 'modelo', + 'moho', + 'mojar', + 'molde', + 'moler', + 'molino', + 'momento', + 'momia', + 'monarca', + 'moneda', + 'monja', + 'monto', + 'moño', + 'morada', + 'morder', + 'moreno', + 'morir', + 'morro', + 'morsa', + 'mortal', + 'mosca', + 'mostrar', + 'motivo', + 'mover', + 'móvil', + 'mozo', + 'mucho', + 'mudar', + 'mueble', + 'muela', + 'muerte', + 'muestra', + 'mugre', + 'mujer', + 'mula', + 'muleta', + 'multa', + 'mundo', + 'muñeca', + 'mural', + 'muro', + 'músculo', + 'museo', + 'musgo', + 'música', + 'muslo', + 'nácar', + 'nación', + 'nadar', + 'naipe', + 'naranja', + 'nariz', + 'narrar', + 'nasal', + 'natal', + 'nativo', + 'natural', + 'náusea', + 'naval', + 'nave', + 'navidad', + 'necio', + 'néctar', + 'negar', + 'negocio', + 'negro', + 'neón', + 'nervio', + 'neto', + 'neutro', + 'nevar', + 'nevera', + 'nicho', + 'nido', + 'niebla', + 'nieto', + 'niñez', + 'niño', + 'nítido', + 'nivel', + 'nobleza', + 'noche', + 'nómina', + 'noria', + 'norma', + 'norte', + 'nota', + 'noticia', + 'novato', + 'novela', + 'novio', + 'nube', + 'nuca', + 'núcleo', + 'nudillo', + 'nudo', + 'nuera', + 'nueve', + 'nuez', + 'nulo', + 'número', + 'nutria', + 'oasis', + 'obeso', + 'obispo', + 'objeto', + 'obra', + 'obrero', + 'observar', + 'obtener', + 'obvio', + 'oca', + 'ocaso', + 'océano', + 'ochenta', + 'ocho', + 'ocio', + 'ocre', + 'octavo', + 'octubre', + 'oculto', + 'ocupar', + 'ocurrir', + 'odiar', + 'odio', + 'odisea', + 'oeste', + 'ofensa', + 'oferta', + 'oficio', + 'ofrecer', + 'ogro', + 'oído', + 'oír', + 'ojo', + 'ola', + 'oleada', + 'olfato', + 'olivo', + 'olla', + 'olmo', + 'olor', + 'olvido', + 'ombligo', + 'onda', + 'onza', + 'opaco', + 'opción', + 'ópera', + 'opinar', + 'oponer', + 'optar', + 'óptica', + 'opuesto', + 'oración', + 'orador', + 'oral', + 'órbita', + 'orca', + 'orden', + 'oreja', + 'órgano', + 'orgía', + 'orgullo', + 'oriente', + 'origen', + 'orilla', + 'oro', + 'orquesta', + 'oruga', + 'osadía', + 'oscuro', + 'osezno', + 'oso', + 'ostra', + 'otoño', + 'otro', + 'oveja', + 'óvulo', + 'óxido', + 'oxígeno', + 'oyente', + 'ozono', + 'pacto', + 'padre', + 'paella', + 'página', + 'pago', + 'país', + 'pájaro', + 'palabra', + 'palco', + 'paleta', + 'pálido', + 'palma', + 'paloma', + 'palpar', + 'pan', + 'panal', + 'pánico', + 'pantera', + 'pañuelo', + 'papá', + 'papel', + 'papilla', + 'paquete', + 'parar', + 'parcela', + 'pared', + 'parir', + 'paro', + 'párpado', + 'parque', + 'párrafo', + 'parte', + 'pasar', + 'paseo', + 'pasión', + 'paso', + 'pasta', + 'pata', + 'patio', + 'patria', + 'pausa', + 'pauta', + 'pavo', + 'payaso', + 'peatón', + 'pecado', + 'pecera', + 'pecho', + 'pedal', + 'pedir', + 'pegar', + 'peine', + 'pelar', + 'peldaño', + 'pelea', + 'peligro', + 'pellejo', + 'pelo', + 'peluca', + 'pena', + 'pensar', + 'peñón', + 'peón', + 'peor', + 'pepino', + 'pequeño', + 'pera', + 'percha', + 'perder', + 'pereza', + 'perfil', + 'perico', + 'perla', + 'permiso', + 'perro', + 'persona', + 'pesa', + 'pesca', + 'pésimo', + 'pestaña', + 'pétalo', + 'petróleo', + 'pez', + 'pezuña', + 'picar', + 'pichón', + 'pie', + 'piedra', + 'pierna', + 'pieza', + 'pijama', + 'pilar', + 'piloto', + 'pimienta', + 'pino', + 'pintor', + 'pinza', + 'piña', + 'piojo', + 'pipa', + 'pirata', + 'pisar', + 'piscina', + 'piso', + 'pista', + 'pitón', + 'pizca', + 'placa', + 'plan', + 'plata', + 'playa', + 'plaza', + 'pleito', + 'pleno', + 'plomo', + 'pluma', + 'plural', + 'pobre', + 'poco', + 'poder', + 'podio', + 'poema', + 'poesía', + 'poeta', + 'polen', + 'policía', + 'pollo', + 'polvo', + 'pomada', + 'pomelo', + 'pomo', + 'pompa', + 'poner', + 'porción', + 'portal', + 'posada', + 'poseer', + 'posible', + 'poste', + 'potencia', + 'potro', + 'pozo', + 'prado', + 'precoz', + 'pregunta', + 'premio', + 'prensa', + 'preso', + 'previo', + 'primo', + 'príncipe', + 'prisión', + 'privar', + 'proa', + 'probar', + 'proceso', + 'producto', + 'proeza', + 'profesor', + 'programa', + 'prole', + 'promesa', + 'pronto', + 'propio', + 'próximo', + 'prueba', + 'público', + 'puchero', + 'pudor', + 'pueblo', + 'puerta', + 'puesto', + 'pulga', + 'pulir', + 'pulmón', + 'pulpo', + 'pulso', + 'puma', + 'punto', + 'puñal', + 'puño', + 'pupa', + 'pupila', + 'puré', + 'quedar', + 'queja', + 'quemar', + 'querer', + 'queso', + 'quieto', + 'química', + 'quince', + 'quitar', + 'rábano', + 'rabia', + 'rabo', + 'ración', + 'radical', + 'raíz', + 'rama', + 'rampa', + 'rancho', + 'rango', + 'rapaz', + 'rápido', + 'rapto', + 'rasgo', + 'raspa', + 'rato', + 'rayo', + 'raza', + 'razón', + 'reacción', + 'realidad', + 'rebaño', + 'rebote', + 'recaer', + 'receta', + 'rechazo', + 'recoger', + 'recreo', + 'recto', + 'recurso', + 'red', + 'redondo', + 'reducir', + 'reflejo', + 'reforma', + 'refrán', + 'refugio', + 'regalo', + 'regir', + 'regla', + 'regreso', + 'rehén', + 'reino', + 'reír', + 'reja', + 'relato', + 'relevo', + 'relieve', + 'relleno', + 'reloj', + 'remar', + 'remedio', + 'remo', + 'rencor', + 'rendir', + 'renta', + 'reparto', + 'repetir', + 'reposo', + 'reptil', + 'res', + 'rescate', + 'resina', + 'respeto', + 'resto', + 'resumen', + 'retiro', + 'retorno', + 'retrato', + 'reunir', + 'revés', + 'revista', + 'rey', + 'rezar', + 'rico', + 'riego', + 'rienda', + 'riesgo', + 'rifa', + 'rígido', + 'rigor', + 'rincón', + 'riñón', + 'río', + 'riqueza', + 'risa', + 'ritmo', + 'rito', + 'rizo', + 'roble', + 'roce', + 'rociar', + 'rodar', + 'rodeo', + 'rodilla', + 'roer', + 'rojizo', + 'rojo', + 'romero', + 'romper', + 'ron', + 'ronco', + 'ronda', + 'ropa', + 'ropero', + 'rosa', + 'rosca', + 'rostro', + 'rotar', + 'rubí', + 'rubor', + 'rudo', + 'rueda', + 'rugir', + 'ruido', + 'ruina', + 'ruleta', + 'rulo', + 'rumbo', + 'rumor', + 'ruptura', + 'ruta', + 'rutina', + 'sábado', + 'saber', + 'sabio', + 'sable', + 'sacar', + 'sagaz', + 'sagrado', + 'sala', + 'saldo', + 'salero', + 'salir', + 'salmón', + 'salón', + 'salsa', + 'salto', + 'salud', + 'salvar', + 'samba', + 'sanción', + 'sandía', + 'sanear', + 'sangre', + 'sanidad', + 'sano', + 'santo', + 'sapo', + 'saque', + 'sardina', + 'sartén', + 'sastre', + 'satán', + 'sauna', + 'saxofón', + 'sección', + 'seco', + 'secreto', + 'secta', + 'sed', + 'seguir', + 'seis', + 'sello', + 'selva', + 'semana', + 'semilla', + 'senda', + 'sensor', + 'señal', + 'señor', + 'separar', + 'sepia', + 'sequía', + 'ser', + 'serie', + 'sermón', + 'servir', + 'sesenta', + 'sesión', + 'seta', + 'setenta', + 'severo', + 'sexo', + 'sexto', + 'sidra', + 'siesta', + 'siete', + 'siglo', + 'signo', + 'sílaba', + 'silbar', + 'silencio', + 'silla', + 'símbolo', + 'simio', + 'sirena', + 'sistema', + 'sitio', + 'situar', + 'sobre', + 'socio', + 'sodio', + 'sol', + 'solapa', + 'soldado', + 'soledad', + 'sólido', + 'soltar', + 'solución', + 'sombra', + 'sondeo', + 'sonido', + 'sonoro', + 'sonrisa', + 'sopa', + 'soplar', + 'soporte', + 'sordo', + 'sorpresa', + 'sorteo', + 'sostén', + 'sótano', + 'suave', + 'subir', + 'suceso', + 'sudor', + 'suegra', + 'suelo', + 'sueño', + 'suerte', + 'sufrir', + 'sujeto', + 'sultán', + 'sumar', + 'superar', + 'suplir', + 'suponer', + 'supremo', + 'sur', + 'surco', + 'sureño', + 'surgir', + 'susto', + 'sutil', + 'tabaco', + 'tabique', + 'tabla', + 'tabú', + 'taco', + 'tacto', + 'tajo', + 'talar', + 'talco', + 'talento', + 'talla', + 'talón', + 'tamaño', + 'tambor', + 'tango', + 'tanque', + 'tapa', + 'tapete', + 'tapia', + 'tapón', + 'taquilla', + 'tarde', + 'tarea', + 'tarifa', + 'tarjeta', + 'tarot', + 'tarro', + 'tarta', + 'tatuaje', + 'tauro', + 'taza', + 'tazón', + 'teatro', + 'techo', + 'tecla', + 'técnica', + 'tejado', + 'tejer', + 'tejido', + 'tela', + 'teléfono', + 'tema', + 'temor', + 'templo', + 'tenaz', + 'tender', + 'tener', + 'tenis', + 'tenso', + 'teoría', + 'terapia', + 'terco', + 'término', + 'ternura', + 'terror', + 'tesis', + 'tesoro', + 'testigo', + 'tetera', + 'texto', + 'tez', + 'tibio', + 'tiburón', + 'tiempo', + 'tienda', + 'tierra', + 'tieso', + 'tigre', + 'tijera', + 'tilde', + 'timbre', + 'tímido', + 'timo', + 'tinta', + 'tío', + 'típico', + 'tipo', + 'tira', + 'tirón', + 'titán', + 'títere', + 'título', + 'tiza', + 'toalla', + 'tobillo', + 'tocar', + 'tocino', + 'todo', + 'toga', + 'toldo', + 'tomar', + 'tono', + 'tonto', + 'topar', + 'tope', + 'toque', + 'tórax', + 'torero', + 'tormenta', + 'torneo', + 'toro', + 'torpedo', + 'torre', + 'torso', + 'tortuga', + 'tos', + 'tosco', + 'toser', + 'tóxico', + 'trabajo', + 'tractor', + 'traer', + 'tráfico', + 'trago', + 'traje', + 'tramo', + 'trance', + 'trato', + 'trauma', + 'trazar', + 'trébol', + 'tregua', + 'treinta', + 'tren', + 'trepar', + 'tres', + 'tribu', + 'trigo', + 'tripa', + 'triste', + 'triunfo', + 'trofeo', + 'trompa', + 'tronco', + 'tropa', + 'trote', + 'trozo', + 'truco', + 'trueno', + 'trufa', + 'tubería', + 'tubo', + 'tuerto', + 'tumba', + 'tumor', + 'túnel', + 'túnica', + 'turbina', + 'turismo', + 'turno', + 'tutor', + 'ubicar', + 'úlcera', + 'umbral', + 'unidad', + 'unir', + 'universo', + 'uno', + 'untar', + 'uña', + 'urbano', + 'urbe', + 'urgente', + 'urna', + 'usar', + 'usuario', + 'útil', + 'utopía', + 'uva', + 'vaca', + 'vacío', + 'vacuna', + 'vagar', + 'vago', + 'vaina', + 'vajilla', + 'vale', + 'válido', + 'valle', + 'valor', + 'válvula', + 'vampiro', + 'vara', + 'variar', + 'varón', + 'vaso', + 'vecino', + 'vector', + 'vehículo', + 'veinte', + 'vejez', + 'vela', + 'velero', + 'veloz', + 'vena', + 'vencer', + 'venda', + 'veneno', + 'vengar', + 'venir', + 'venta', + 'venus', + 'ver', + 'verano', + 'verbo', + 'verde', + 'vereda', + 'verja', + 'verso', + 'verter', + 'vía', + 'viaje', + 'vibrar', + 'vicio', + 'víctima', + 'vida', + 'vídeo', + 'vidrio', + 'viejo', + 'viernes', + 'vigor', + 'vil', + 'villa', + 'vinagre', + 'vino', + 'viñedo', + 'violín', + 'viral', + 'virgo', + 'virtud', + 'visor', + 'víspera', + 'vista', + 'vitamina', + 'viudo', + 'vivaz', + 'vivero', + 'vivir', + 'vivo', + 'volcán', + 'volumen', + 'volver', + 'voraz', + 'votar', + 'voto', + 'voz', + 'vuelo', + 'vulgar', + 'yacer', + 'yate', + 'yegua', + 'yema', + 'yerno', + 'yeso', + 'yodo', + 'yoga', + 'yogur', + 'zafiro', + 'zanja', + 'zapato', + 'zarza', + 'zona', + 'zorro', + 'zumo', + 'zurdo', +]; + +const portuguese = [ + 'abacate', + 'abaixo', + 'abalar', + 'abater', + 'abduzir', + 'abelha', + 'aberto', + 'abismo', + 'abotoar', + 'abranger', + 'abreviar', + 'abrigar', + 'abrupto', + 'absinto', + 'absoluto', + 'absurdo', + 'abutre', + 'acabado', + 'acalmar', + 'acampar', + 'acanhar', + 'acaso', + 'aceitar', + 'acelerar', + 'acenar', + 'acervo', + 'acessar', + 'acetona', + 'achatar', + 'acidez', + 'acima', + 'acionado', + 'acirrar', + 'aclamar', + 'aclive', + 'acolhida', + 'acomodar', + 'acoplar', + 'acordar', + 'acumular', + 'acusador', + 'adaptar', + 'adega', + 'adentro', + 'adepto', + 'adequar', + 'aderente', + 'adesivo', + 'adeus', + 'adiante', + 'aditivo', + 'adjetivo', + 'adjunto', + 'admirar', + 'adorar', + 'adquirir', + 'adubo', + 'adverso', + 'advogado', + 'aeronave', + 'afastar', + 'aferir', + 'afetivo', + 'afinador', + 'afivelar', + 'aflito', + 'afluente', + 'afrontar', + 'agachar', + 'agarrar', + 'agasalho', + 'agenciar', + 'agilizar', + 'agiota', + 'agitado', + 'agora', + 'agradar', + 'agreste', + 'agrupar', + 'aguardar', + 'agulha', + 'ajoelhar', + 'ajudar', + 'ajustar', + 'alameda', + 'alarme', + 'alastrar', + 'alavanca', + 'albergue', + 'albino', + 'alcatra', + 'aldeia', + 'alecrim', + 'alegria', + 'alertar', + 'alface', + 'alfinete', + 'algum', + 'alheio', + 'aliar', + 'alicate', + 'alienar', + 'alinhar', + 'aliviar', + 'almofada', + 'alocar', + 'alpiste', + 'alterar', + 'altitude', + 'alucinar', + 'alugar', + 'aluno', + 'alusivo', + 'alvo', + 'amaciar', + 'amador', + 'amarelo', + 'amassar', + 'ambas', + 'ambiente', + 'ameixa', + 'amenizar', + 'amido', + 'amistoso', + 'amizade', + 'amolador', + 'amontoar', + 'amoroso', + 'amostra', + 'amparar', + 'ampliar', + 'ampola', + 'anagrama', + 'analisar', + 'anarquia', + 'anatomia', + 'andaime', + 'anel', + 'anexo', + 'angular', + 'animar', + 'anjo', + 'anomalia', + 'anotado', + 'ansioso', + 'anterior', + 'anuidade', + 'anunciar', + 'anzol', + 'apagador', + 'apalpar', + 'apanhado', + 'apego', + 'apelido', + 'apertada', + 'apesar', + 'apetite', + 'apito', + 'aplauso', + 'aplicada', + 'apoio', + 'apontar', + 'aposta', + 'aprendiz', + 'aprovar', + 'aquecer', + 'arame', + 'aranha', + 'arara', + 'arcada', + 'ardente', + 'areia', + 'arejar', + 'arenito', + 'aresta', + 'argiloso', + 'argola', + 'arma', + 'arquivo', + 'arraial', + 'arrebate', + 'arriscar', + 'arroba', + 'arrumar', + 'arsenal', + 'arterial', + 'artigo', + 'arvoredo', + 'asfaltar', + 'asilado', + 'aspirar', + 'assador', + 'assinar', + 'assoalho', + 'assunto', + 'astral', + 'atacado', + 'atadura', + 'atalho', + 'atarefar', + 'atear', + 'atender', + 'aterro', + 'ateu', + 'atingir', + 'atirador', + 'ativo', + 'atoleiro', + 'atracar', + 'atrevido', + 'atriz', + 'atual', + 'atum', + 'auditor', + 'aumentar', + 'aura', + 'aurora', + 'autismo', + 'autoria', + 'autuar', + 'avaliar', + 'avante', + 'avaria', + 'avental', + 'avesso', + 'aviador', + 'avisar', + 'avulso', + 'axila', + 'azarar', + 'azedo', + 'azeite', + 'azulejo', + 'babar', + 'babosa', + 'bacalhau', + 'bacharel', + 'bacia', + 'bagagem', + 'baiano', + 'bailar', + 'baioneta', + 'bairro', + 'baixista', + 'bajular', + 'baleia', + 'baliza', + 'balsa', + 'banal', + 'bandeira', + 'banho', + 'banir', + 'banquete', + 'barato', + 'barbado', + 'baronesa', + 'barraca', + 'barulho', + 'baseado', + 'bastante', + 'batata', + 'batedor', + 'batida', + 'batom', + 'batucar', + 'baunilha', + 'beber', + 'beijo', + 'beirada', + 'beisebol', + 'beldade', + 'beleza', + 'belga', + 'beliscar', + 'bendito', + 'bengala', + 'benzer', + 'berimbau', + 'berlinda', + 'berro', + 'besouro', + 'bexiga', + 'bezerro', + 'bico', + 'bicudo', + 'bienal', + 'bifocal', + 'bifurcar', + 'bigorna', + 'bilhete', + 'bimestre', + 'bimotor', + 'biologia', + 'biombo', + 'biosfera', + 'bipolar', + 'birrento', + 'biscoito', + 'bisneto', + 'bispo', + 'bissexto', + 'bitola', + 'bizarro', + 'blindado', + 'bloco', + 'bloquear', + 'boato', + 'bobagem', + 'bocado', + 'bocejo', + 'bochecha', + 'boicotar', + 'bolada', + 'boletim', + 'bolha', + 'bolo', + 'bombeiro', + 'bonde', + 'boneco', + 'bonita', + 'borbulha', + 'borda', + 'boreal', + 'borracha', + 'bovino', + 'boxeador', + 'branco', + 'brasa', + 'braveza', + 'breu', + 'briga', + 'brilho', + 'brincar', + 'broa', + 'brochura', + 'bronzear', + 'broto', + 'bruxo', + 'bucha', + 'budismo', + 'bufar', + 'bule', + 'buraco', + 'busca', + 'busto', + 'buzina', + 'cabana', + 'cabelo', + 'cabide', + 'cabo', + 'cabrito', + 'cacau', + 'cacetada', + 'cachorro', + 'cacique', + 'cadastro', + 'cadeado', + 'cafezal', + 'caiaque', + 'caipira', + 'caixote', + 'cajado', + 'caju', + 'calafrio', + 'calcular', + 'caldeira', + 'calibrar', + 'calmante', + 'calota', + 'camada', + 'cambista', + 'camisa', + 'camomila', + 'campanha', + 'camuflar', + 'canavial', + 'cancelar', + 'caneta', + 'canguru', + 'canhoto', + 'canivete', + 'canoa', + 'cansado', + 'cantar', + 'canudo', + 'capacho', + 'capela', + 'capinar', + 'capotar', + 'capricho', + 'captador', + 'capuz', + 'caracol', + 'carbono', + 'cardeal', + 'careca', + 'carimbar', + 'carneiro', + 'carpete', + 'carreira', + 'cartaz', + 'carvalho', + 'casaco', + 'casca', + 'casebre', + 'castelo', + 'casulo', + 'catarata', + 'cativar', + 'caule', + 'causador', + 'cautelar', + 'cavalo', + 'caverna', + 'cebola', + 'cedilha', + 'cegonha', + 'celebrar', + 'celular', + 'cenoura', + 'censo', + 'centeio', + 'cercar', + 'cerrado', + 'certeiro', + 'cerveja', + 'cetim', + 'cevada', + 'chacota', + 'chaleira', + 'chamado', + 'chapada', + 'charme', + 'chatice', + 'chave', + 'chefe', + 'chegada', + 'cheiro', + 'cheque', + 'chicote', + 'chifre', + 'chinelo', + 'chocalho', + 'chover', + 'chumbo', + 'chutar', + 'chuva', + 'cicatriz', + 'ciclone', + 'cidade', + 'cidreira', + 'ciente', + 'cigana', + 'cimento', + 'cinto', + 'cinza', + 'ciranda', + 'circuito', + 'cirurgia', + 'citar', + 'clareza', + 'clero', + 'clicar', + 'clone', + 'clube', + 'coado', + 'coagir', + 'cobaia', + 'cobertor', + 'cobrar', + 'cocada', + 'coelho', + 'coentro', + 'coeso', + 'cogumelo', + 'coibir', + 'coifa', + 'coiote', + 'colar', + 'coleira', + 'colher', + 'colidir', + 'colmeia', + 'colono', + 'coluna', + 'comando', + 'combinar', + 'comentar', + 'comitiva', + 'comover', + 'complexo', + 'comum', + 'concha', + 'condor', + 'conectar', + 'confuso', + 'congelar', + 'conhecer', + 'conjugar', + 'consumir', + 'contrato', + 'convite', + 'cooperar', + 'copeiro', + 'copiador', + 'copo', + 'coquetel', + 'coragem', + 'cordial', + 'corneta', + 'coronha', + 'corporal', + 'correio', + 'cortejo', + 'coruja', + 'corvo', + 'cosseno', + 'costela', + 'cotonete', + 'couro', + 'couve', + 'covil', + 'cozinha', + 'cratera', + 'cravo', + 'creche', + 'credor', + 'creme', + 'crer', + 'crespo', + 'criada', + 'criminal', + 'crioulo', + 'crise', + 'criticar', + 'crosta', + 'crua', + 'cruzeiro', + 'cubano', + 'cueca', + 'cuidado', + 'cujo', + 'culatra', + 'culminar', + 'culpar', + 'cultura', + 'cumprir', + 'cunhado', + 'cupido', + 'curativo', + 'curral', + 'cursar', + 'curto', + 'cuspir', + 'custear', + 'cutelo', + 'damasco', + 'datar', + 'debater', + 'debitar', + 'deboche', + 'debulhar', + 'decalque', + 'decimal', + 'declive', + 'decote', + 'decretar', + 'dedal', + 'dedicado', + 'deduzir', + 'defesa', + 'defumar', + 'degelo', + 'degrau', + 'degustar', + 'deitado', + 'deixar', + 'delator', + 'delegado', + 'delinear', + 'delonga', + 'demanda', + 'demitir', + 'demolido', + 'dentista', + 'depenado', + 'depilar', + 'depois', + 'depressa', + 'depurar', + 'deriva', + 'derramar', + 'desafio', + 'desbotar', + 'descanso', + 'desenho', + 'desfiado', + 'desgaste', + 'desigual', + 'deslize', + 'desmamar', + 'desova', + 'despesa', + 'destaque', + 'desviar', + 'detalhar', + 'detentor', + 'detonar', + 'detrito', + 'deusa', + 'dever', + 'devido', + 'devotado', + 'dezena', + 'diagrama', + 'dialeto', + 'didata', + 'difuso', + 'digitar', + 'dilatado', + 'diluente', + 'diminuir', + 'dinastia', + 'dinheiro', + 'diocese', + 'direto', + 'discreta', + 'disfarce', + 'disparo', + 'disquete', + 'dissipar', + 'distante', + 'ditador', + 'diurno', + 'diverso', + 'divisor', + 'divulgar', + 'dizer', + 'dobrador', + 'dolorido', + 'domador', + 'dominado', + 'donativo', + 'donzela', + 'dormente', + 'dorsal', + 'dosagem', + 'dourado', + 'doutor', + 'drenagem', + 'drible', + 'drogaria', + 'duelar', + 'duende', + 'dueto', + 'duplo', + 'duquesa', + 'durante', + 'duvidoso', + 'eclodir', + 'ecoar', + 'ecologia', + 'edificar', + 'edital', + 'educado', + 'efeito', + 'efetivar', + 'ejetar', + 'elaborar', + 'eleger', + 'eleitor', + 'elenco', + 'elevador', + 'eliminar', + 'elogiar', + 'embargo', + 'embolado', + 'embrulho', + 'embutido', + 'emenda', + 'emergir', + 'emissor', + 'empatia', + 'empenho', + 'empinado', + 'empolgar', + 'emprego', + 'empurrar', + 'emulador', + 'encaixe', + 'encenado', + 'enchente', + 'encontro', + 'endeusar', + 'endossar', + 'enfaixar', + 'enfeite', + 'enfim', + 'engajado', + 'engenho', + 'englobar', + 'engomado', + 'engraxar', + 'enguia', + 'enjoar', + 'enlatar', + 'enquanto', + 'enraizar', + 'enrolado', + 'enrugar', + 'ensaio', + 'enseada', + 'ensino', + 'ensopado', + 'entanto', + 'enteado', + 'entidade', + 'entortar', + 'entrada', + 'entulho', + 'envergar', + 'enviado', + 'envolver', + 'enxame', + 'enxerto', + 'enxofre', + 'enxuto', + 'epiderme', + 'equipar', + 'ereto', + 'erguido', + 'errata', + 'erva', + 'ervilha', + 'esbanjar', + 'esbelto', + 'escama', + 'escola', + 'escrita', + 'escuta', + 'esfinge', + 'esfolar', + 'esfregar', + 'esfumado', + 'esgrima', + 'esmalte', + 'espanto', + 'espelho', + 'espiga', + 'esponja', + 'espreita', + 'espumar', + 'esquerda', + 'estaca', + 'esteira', + 'esticar', + 'estofado', + 'estrela', + 'estudo', + 'esvaziar', + 'etanol', + 'etiqueta', + 'euforia', + 'europeu', + 'evacuar', + 'evaporar', + 'evasivo', + 'eventual', + 'evidente', + 'evoluir', + 'exagero', + 'exalar', + 'examinar', + 'exato', + 'exausto', + 'excesso', + 'excitar', + 'exclamar', + 'executar', + 'exemplo', + 'exibir', + 'exigente', + 'exonerar', + 'expandir', + 'expelir', + 'expirar', + 'explanar', + 'exposto', + 'expresso', + 'expulsar', + 'externo', + 'extinto', + 'extrato', + 'fabricar', + 'fabuloso', + 'faceta', + 'facial', + 'fada', + 'fadiga', + 'faixa', + 'falar', + 'falta', + 'familiar', + 'fandango', + 'fanfarra', + 'fantoche', + 'fardado', + 'farelo', + 'farinha', + 'farofa', + 'farpa', + 'fartura', + 'fatia', + 'fator', + 'favorita', + 'faxina', + 'fazenda', + 'fechado', + 'feijoada', + 'feirante', + 'felino', + 'feminino', + 'fenda', + 'feno', + 'fera', + 'feriado', + 'ferrugem', + 'ferver', + 'festejar', + 'fetal', + 'feudal', + 'fiapo', + 'fibrose', + 'ficar', + 'ficheiro', + 'figurado', + 'fileira', + 'filho', + 'filme', + 'filtrar', + 'firmeza', + 'fisgada', + 'fissura', + 'fita', + 'fivela', + 'fixador', + 'fixo', + 'flacidez', + 'flamingo', + 'flanela', + 'flechada', + 'flora', + 'flutuar', + 'fluxo', + 'focal', + 'focinho', + 'fofocar', + 'fogo', + 'foguete', + 'foice', + 'folgado', + 'folheto', + 'forjar', + 'formiga', + 'forno', + 'forte', + 'fosco', + 'fossa', + 'fragata', + 'fralda', + 'frango', + 'frasco', + 'fraterno', + 'freira', + 'frente', + 'fretar', + 'frieza', + 'friso', + 'fritura', + 'fronha', + 'frustrar', + 'fruteira', + 'fugir', + 'fulano', + 'fuligem', + 'fundar', + 'fungo', + 'funil', + 'furador', + 'furioso', + 'futebol', + 'gabarito', + 'gabinete', + 'gado', + 'gaiato', + 'gaiola', + 'gaivota', + 'galega', + 'galho', + 'galinha', + 'galocha', + 'ganhar', + 'garagem', + 'garfo', + 'gargalo', + 'garimpo', + 'garoupa', + 'garrafa', + 'gasoduto', + 'gasto', + 'gata', + 'gatilho', + 'gaveta', + 'gazela', + 'gelado', + 'geleia', + 'gelo', + 'gemada', + 'gemer', + 'gemido', + 'generoso', + 'gengiva', + 'genial', + 'genoma', + 'genro', + 'geologia', + 'gerador', + 'germinar', + 'gesso', + 'gestor', + 'ginasta', + 'gincana', + 'gingado', + 'girafa', + 'girino', + 'glacial', + 'glicose', + 'global', + 'glorioso', + 'goela', + 'goiaba', + 'golfe', + 'golpear', + 'gordura', + 'gorjeta', + 'gorro', + 'gostoso', + 'goteira', + 'governar', + 'gracejo', + 'gradual', + 'grafite', + 'gralha', + 'grampo', + 'granada', + 'gratuito', + 'graveto', + 'graxa', + 'grego', + 'grelhar', + 'greve', + 'grilo', + 'grisalho', + 'gritaria', + 'grosso', + 'grotesco', + 'grudado', + 'grunhido', + 'gruta', + 'guache', + 'guarani', + 'guaxinim', + 'guerrear', + 'guiar', + 'guincho', + 'guisado', + 'gula', + 'guloso', + 'guru', + 'habitar', + 'harmonia', + 'haste', + 'haver', + 'hectare', + 'herdar', + 'heresia', + 'hesitar', + 'hiato', + 'hibernar', + 'hidratar', + 'hiena', + 'hino', + 'hipismo', + 'hipnose', + 'hipoteca', + 'hoje', + 'holofote', + 'homem', + 'honesto', + 'honrado', + 'hormonal', + 'hospedar', + 'humorado', + 'iate', + 'ideia', + 'idoso', + 'ignorado', + 'igreja', + 'iguana', + 'ileso', + 'ilha', + 'iludido', + 'iluminar', + 'ilustrar', + 'imagem', + 'imediato', + 'imenso', + 'imersivo', + 'iminente', + 'imitador', + 'imortal', + 'impacto', + 'impedir', + 'implante', + 'impor', + 'imprensa', + 'impune', + 'imunizar', + 'inalador', + 'inapto', + 'inativo', + 'incenso', + 'inchar', + 'incidir', + 'incluir', + 'incolor', + 'indeciso', + 'indireto', + 'indutor', + 'ineficaz', + 'inerente', + 'infantil', + 'infestar', + 'infinito', + 'inflamar', + 'informal', + 'infrator', + 'ingerir', + 'inibido', + 'inicial', + 'inimigo', + 'injetar', + 'inocente', + 'inodoro', + 'inovador', + 'inox', + 'inquieto', + 'inscrito', + 'inseto', + 'insistir', + 'inspetor', + 'instalar', + 'insulto', + 'intacto', + 'integral', + 'intimar', + 'intocado', + 'intriga', + 'invasor', + 'inverno', + 'invicto', + 'invocar', + 'iogurte', + 'iraniano', + 'ironizar', + 'irreal', + 'irritado', + 'isca', + 'isento', + 'isolado', + 'isqueiro', + 'italiano', + 'janeiro', + 'jangada', + 'janta', + 'jararaca', + 'jardim', + 'jarro', + 'jasmim', + 'jato', + 'javali', + 'jazida', + 'jejum', + 'joaninha', + 'joelhada', + 'jogador', + 'joia', + 'jornal', + 'jorrar', + 'jovem', + 'juba', + 'judeu', + 'judoca', + 'juiz', + 'julgador', + 'julho', + 'jurado', + 'jurista', + 'juro', + 'justa', + 'labareda', + 'laboral', + 'lacre', + 'lactante', + 'ladrilho', + 'lagarta', + 'lagoa', + 'laje', + 'lamber', + 'lamentar', + 'laminar', + 'lampejo', + 'lanche', + 'lapidar', + 'lapso', + 'laranja', + 'lareira', + 'largura', + 'lasanha', + 'lastro', + 'lateral', + 'latido', + 'lavanda', + 'lavoura', + 'lavrador', + 'laxante', + 'lazer', + 'lealdade', + 'lebre', + 'legado', + 'legendar', + 'legista', + 'leigo', + 'leiloar', + 'leitura', + 'lembrete', + 'leme', + 'lenhador', + 'lentilha', + 'leoa', + 'lesma', + 'leste', + 'letivo', + 'letreiro', + 'levar', + 'leveza', + 'levitar', + 'liberal', + 'libido', + 'liderar', + 'ligar', + 'ligeiro', + 'limitar', + 'limoeiro', + 'limpador', + 'linda', + 'linear', + 'linhagem', + 'liquidez', + 'listagem', + 'lisura', + 'litoral', + 'livro', + 'lixa', + 'lixeira', + 'locador', + 'locutor', + 'lojista', + 'lombo', + 'lona', + 'longe', + 'lontra', + 'lorde', + 'lotado', + 'loteria', + 'loucura', + 'lousa', + 'louvar', + 'luar', + 'lucidez', + 'lucro', + 'luneta', + 'lustre', + 'lutador', + 'luva', + 'macaco', + 'macete', + 'machado', + 'macio', + 'madeira', + 'madrinha', + 'magnata', + 'magreza', + 'maior', + 'mais', + 'malandro', + 'malha', + 'malote', + 'maluco', + 'mamilo', + 'mamoeiro', + 'mamute', + 'manada', + 'mancha', + 'mandato', + 'manequim', + 'manhoso', + 'manivela', + 'manobrar', + 'mansa', + 'manter', + 'manusear', + 'mapeado', + 'maquinar', + 'marcador', + 'maresia', + 'marfim', + 'margem', + 'marinho', + 'marmita', + 'maroto', + 'marquise', + 'marreco', + 'martelo', + 'marujo', + 'mascote', + 'masmorra', + 'massagem', + 'mastigar', + 'matagal', + 'materno', + 'matinal', + 'matutar', + 'maxilar', + 'medalha', + 'medida', + 'medusa', + 'megafone', + 'meiga', + 'melancia', + 'melhor', + 'membro', + 'memorial', + 'menino', + 'menos', + 'mensagem', + 'mental', + 'merecer', + 'mergulho', + 'mesada', + 'mesclar', + 'mesmo', + 'mesquita', + 'mestre', + 'metade', + 'meteoro', + 'metragem', + 'mexer', + 'mexicano', + 'micro', + 'migalha', + 'migrar', + 'milagre', + 'milenar', + 'milhar', + 'mimado', + 'minerar', + 'minhoca', + 'ministro', + 'minoria', + 'miolo', + 'mirante', + 'mirtilo', + 'misturar', + 'mocidade', + 'moderno', + 'modular', + 'moeda', + 'moer', + 'moinho', + 'moita', + 'moldura', + 'moleza', + 'molho', + 'molinete', + 'molusco', + 'montanha', + 'moqueca', + 'morango', + 'morcego', + 'mordomo', + 'morena', + 'mosaico', + 'mosquete', + 'mostarda', + 'motel', + 'motim', + 'moto', + 'motriz', + 'muda', + 'muito', + 'mulata', + 'mulher', + 'multar', + 'mundial', + 'munido', + 'muralha', + 'murcho', + 'muscular', + 'museu', + 'musical', + 'nacional', + 'nadador', + 'naja', + 'namoro', + 'narina', + 'narrado', + 'nascer', + 'nativa', + 'natureza', + 'navalha', + 'navegar', + 'navio', + 'neblina', + 'nebuloso', + 'negativa', + 'negociar', + 'negrito', + 'nervoso', + 'neta', + 'neural', + 'nevasca', + 'nevoeiro', + 'ninar', + 'ninho', + 'nitidez', + 'nivelar', + 'nobreza', + 'noite', + 'noiva', + 'nomear', + 'nominal', + 'nordeste', + 'nortear', + 'notar', + 'noticiar', + 'noturno', + 'novelo', + 'novilho', + 'novo', + 'nublado', + 'nudez', + 'numeral', + 'nupcial', + 'nutrir', + 'nuvem', + 'obcecado', + 'obedecer', + 'objetivo', + 'obrigado', + 'obscuro', + 'obstetra', + 'obter', + 'obturar', + 'ocidente', + 'ocioso', + 'ocorrer', + 'oculista', + 'ocupado', + 'ofegante', + 'ofensiva', + 'oferenda', + 'oficina', + 'ofuscado', + 'ogiva', + 'olaria', + 'oleoso', + 'olhar', + 'oliveira', + 'ombro', + 'omelete', + 'omisso', + 'omitir', + 'ondulado', + 'oneroso', + 'ontem', + 'opcional', + 'operador', + 'oponente', + 'oportuno', + 'oposto', + 'orar', + 'orbitar', + 'ordem', + 'ordinal', + 'orfanato', + 'orgasmo', + 'orgulho', + 'oriental', + 'origem', + 'oriundo', + 'orla', + 'ortodoxo', + 'orvalho', + 'oscilar', + 'ossada', + 'osso', + 'ostentar', + 'otimismo', + 'ousadia', + 'outono', + 'outubro', + 'ouvido', + 'ovelha', + 'ovular', + 'oxidar', + 'oxigenar', + 'pacato', + 'paciente', + 'pacote', + 'pactuar', + 'padaria', + 'padrinho', + 'pagar', + 'pagode', + 'painel', + 'pairar', + 'paisagem', + 'palavra', + 'palestra', + 'palheta', + 'palito', + 'palmada', + 'palpitar', + 'pancada', + 'panela', + 'panfleto', + 'panqueca', + 'pantanal', + 'papagaio', + 'papelada', + 'papiro', + 'parafina', + 'parcial', + 'pardal', + 'parede', + 'partida', + 'pasmo', + 'passado', + 'pastel', + 'patamar', + 'patente', + 'patinar', + 'patrono', + 'paulada', + 'pausar', + 'peculiar', + 'pedalar', + 'pedestre', + 'pediatra', + 'pedra', + 'pegada', + 'peitoral', + 'peixe', + 'pele', + 'pelicano', + 'penca', + 'pendurar', + 'peneira', + 'penhasco', + 'pensador', + 'pente', + 'perceber', + 'perfeito', + 'pergunta', + 'perito', + 'permitir', + 'perna', + 'perplexo', + 'persiana', + 'pertence', + 'peruca', + 'pescado', + 'pesquisa', + 'pessoa', + 'petiscar', + 'piada', + 'picado', + 'piedade', + 'pigmento', + 'pilastra', + 'pilhado', + 'pilotar', + 'pimenta', + 'pincel', + 'pinguim', + 'pinha', + 'pinote', + 'pintar', + 'pioneiro', + 'pipoca', + 'piquete', + 'piranha', + 'pires', + 'pirueta', + 'piscar', + 'pistola', + 'pitanga', + 'pivete', + 'planta', + 'plaqueta', + 'platina', + 'plebeu', + 'plumagem', + 'pluvial', + 'pneu', + 'poda', + 'poeira', + 'poetisa', + 'polegada', + 'policiar', + 'poluente', + 'polvilho', + 'pomar', + 'pomba', + 'ponderar', + 'pontaria', + 'populoso', + 'porta', + 'possuir', + 'postal', + 'pote', + 'poupar', + 'pouso', + 'povoar', + 'praia', + 'prancha', + 'prato', + 'praxe', + 'prece', + 'predador', + 'prefeito', + 'premiar', + 'prensar', + 'preparar', + 'presilha', + 'pretexto', + 'prevenir', + 'prezar', + 'primata', + 'princesa', + 'prisma', + 'privado', + 'processo', + 'produto', + 'profeta', + 'proibido', + 'projeto', + 'prometer', + 'propagar', + 'prosa', + 'protetor', + 'provador', + 'publicar', + 'pudim', + 'pular', + 'pulmonar', + 'pulseira', + 'punhal', + 'punir', + 'pupilo', + 'pureza', + 'puxador', + 'quadra', + 'quantia', + 'quarto', + 'quase', + 'quebrar', + 'queda', + 'queijo', + 'quente', + 'querido', + 'quimono', + 'quina', + 'quiosque', + 'rabanada', + 'rabisco', + 'rachar', + 'racionar', + 'radial', + 'raiar', + 'rainha', + 'raio', + 'raiva', + 'rajada', + 'ralado', + 'ramal', + 'ranger', + 'ranhura', + 'rapadura', + 'rapel', + 'rapidez', + 'raposa', + 'raquete', + 'raridade', + 'rasante', + 'rascunho', + 'rasgar', + 'raspador', + 'rasteira', + 'rasurar', + 'ratazana', + 'ratoeira', + 'realeza', + 'reanimar', + 'reaver', + 'rebaixar', + 'rebelde', + 'rebolar', + 'recado', + 'recente', + 'recheio', + 'recibo', + 'recordar', + 'recrutar', + 'recuar', + 'rede', + 'redimir', + 'redonda', + 'reduzida', + 'reenvio', + 'refinar', + 'refletir', + 'refogar', + 'refresco', + 'refugiar', + 'regalia', + 'regime', + 'regra', + 'reinado', + 'reitor', + 'rejeitar', + 'relativo', + 'remador', + 'remendo', + 'remorso', + 'renovado', + 'reparo', + 'repelir', + 'repleto', + 'repolho', + 'represa', + 'repudiar', + 'requerer', + 'resenha', + 'resfriar', + 'resgatar', + 'residir', + 'resolver', + 'respeito', + 'ressaca', + 'restante', + 'resumir', + 'retalho', + 'reter', + 'retirar', + 'retomada', + 'retratar', + 'revelar', + 'revisor', + 'revolta', + 'riacho', + 'rica', + 'rigidez', + 'rigoroso', + 'rimar', + 'ringue', + 'risada', + 'risco', + 'risonho', + 'robalo', + 'rochedo', + 'rodada', + 'rodeio', + 'rodovia', + 'roedor', + 'roleta', + 'romano', + 'roncar', + 'rosado', + 'roseira', + 'rosto', + 'rota', + 'roteiro', + 'rotina', + 'rotular', + 'rouco', + 'roupa', + 'roxo', + 'rubro', + 'rugido', + 'rugoso', + 'ruivo', + 'rumo', + 'rupestre', + 'russo', + 'sabor', + 'saciar', + 'sacola', + 'sacudir', + 'sadio', + 'safira', + 'saga', + 'sagrada', + 'saibro', + 'salada', + 'saleiro', + 'salgado', + 'saliva', + 'salpicar', + 'salsicha', + 'saltar', + 'salvador', + 'sambar', + 'samurai', + 'sanar', + 'sanfona', + 'sangue', + 'sanidade', + 'sapato', + 'sarda', + 'sargento', + 'sarjeta', + 'saturar', + 'saudade', + 'saxofone', + 'sazonal', + 'secar', + 'secular', + 'seda', + 'sedento', + 'sediado', + 'sedoso', + 'sedutor', + 'segmento', + 'segredo', + 'segundo', + 'seiva', + 'seleto', + 'selvagem', + 'semanal', + 'semente', + 'senador', + 'senhor', + 'sensual', + 'sentado', + 'separado', + 'sereia', + 'seringa', + 'serra', + 'servo', + 'setembro', + 'setor', + 'sigilo', + 'silhueta', + 'silicone', + 'simetria', + 'simpatia', + 'simular', + 'sinal', + 'sincero', + 'singular', + 'sinopse', + 'sintonia', + 'sirene', + 'siri', + 'situado', + 'soberano', + 'sobra', + 'socorro', + 'sogro', + 'soja', + 'solda', + 'soletrar', + 'solteiro', + 'sombrio', + 'sonata', + 'sondar', + 'sonegar', + 'sonhador', + 'sono', + 'soprano', + 'soquete', + 'sorrir', + 'sorteio', + 'sossego', + 'sotaque', + 'soterrar', + 'sovado', + 'sozinho', + 'suavizar', + 'subida', + 'submerso', + 'subsolo', + 'subtrair', + 'sucata', + 'sucesso', + 'suco', + 'sudeste', + 'sufixo', + 'sugador', + 'sugerir', + 'sujeito', + 'sulfato', + 'sumir', + 'suor', + 'superior', + 'suplicar', + 'suposto', + 'suprimir', + 'surdina', + 'surfista', + 'surpresa', + 'surreal', + 'surtir', + 'suspiro', + 'sustento', + 'tabela', + 'tablete', + 'tabuada', + 'tacho', + 'tagarela', + 'talher', + 'talo', + 'talvez', + 'tamanho', + 'tamborim', + 'tampa', + 'tangente', + 'tanto', + 'tapar', + 'tapioca', + 'tardio', + 'tarefa', + 'tarja', + 'tarraxa', + 'tatuagem', + 'taurino', + 'taxativo', + 'taxista', + 'teatral', + 'tecer', + 'tecido', + 'teclado', + 'tedioso', + 'teia', + 'teimar', + 'telefone', + 'telhado', + 'tempero', + 'tenente', + 'tensor', + 'tentar', + 'termal', + 'terno', + 'terreno', + 'tese', + 'tesoura', + 'testado', + 'teto', + 'textura', + 'texugo', + 'tiara', + 'tigela', + 'tijolo', + 'timbrar', + 'timidez', + 'tingido', + 'tinteiro', + 'tiragem', + 'titular', + 'toalha', + 'tocha', + 'tolerar', + 'tolice', + 'tomada', + 'tomilho', + 'tonel', + 'tontura', + 'topete', + 'tora', + 'torcido', + 'torneio', + 'torque', + 'torrada', + 'torto', + 'tostar', + 'touca', + 'toupeira', + 'toxina', + 'trabalho', + 'tracejar', + 'tradutor', + 'trafegar', + 'trajeto', + 'trama', + 'trancar', + 'trapo', + 'traseiro', + 'tratador', + 'travar', + 'treino', + 'tremer', + 'trepidar', + 'trevo', + 'triagem', + 'tribo', + 'triciclo', + 'tridente', + 'trilogia', + 'trindade', + 'triplo', + 'triturar', + 'triunfal', + 'trocar', + 'trombeta', + 'trova', + 'trunfo', + 'truque', + 'tubular', + 'tucano', + 'tudo', + 'tulipa', + 'tupi', + 'turbo', + 'turma', + 'turquesa', + 'tutelar', + 'tutorial', + 'uivar', + 'umbigo', + 'unha', + 'unidade', + 'uniforme', + 'urologia', + 'urso', + 'urtiga', + 'urubu', + 'usado', + 'usina', + 'usufruir', + 'vacina', + 'vadiar', + 'vagaroso', + 'vaidoso', + 'vala', + 'valente', + 'validade', + 'valores', + 'vantagem', + 'vaqueiro', + 'varanda', + 'vareta', + 'varrer', + 'vascular', + 'vasilha', + 'vassoura', + 'vazar', + 'vazio', + 'veado', + 'vedar', + 'vegetar', + 'veicular', + 'veleiro', + 'velhice', + 'veludo', + 'vencedor', + 'vendaval', + 'venerar', + 'ventre', + 'verbal', + 'verdade', + 'vereador', + 'vergonha', + 'vermelho', + 'verniz', + 'versar', + 'vertente', + 'vespa', + 'vestido', + 'vetorial', + 'viaduto', + 'viagem', + 'viajar', + 'viatura', + 'vibrador', + 'videira', + 'vidraria', + 'viela', + 'viga', + 'vigente', + 'vigiar', + 'vigorar', + 'vilarejo', + 'vinco', + 'vinheta', + 'vinil', + 'violeta', + 'virada', + 'virtude', + 'visitar', + 'visto', + 'vitral', + 'viveiro', + 'vizinho', + 'voador', + 'voar', + 'vogal', + 'volante', + 'voleibol', + 'voltagem', + 'volumoso', + 'vontade', + 'vulto', + 'vuvuzela', + 'xadrez', + 'xarope', + 'xeque', + 'xeretar', + 'xerife', + 'xingar', + 'zangado', + 'zarpar', + 'zebu', + 'zelador', + 'zombar', + 'zoologia', + 'zumbido', +]; + +let DEFAULT_WORDLIST; +const INVALID_MNEMONIC = 'Invalid mnemonic'; +const INVALID_ENTROPY = 'Invalid entropy'; +const INVALID_CHECKSUM = 'Invalid mnemonic checksum'; +const WORDLIST_REQUIRED = 'A wordlist is required but a default could not be found.\n' + + 'Please pass a 2048 word array explicitly.'; +function normalize(str) { + return (str || '').normalize('NFKD'); +} +function lpad(str, padString, length) { + while (str.length < length) { + str = padString + str; + } + return str; +} +function binaryToByte(bin) { + return parseInt(bin, 2); +} +function bytesToBinary(bytes) { + return bytes.map((x) => lpad(x.toString(2), '0', 8)).join(''); +} +function deriveChecksumBits(entropyBuffer) { + const ENT = entropyBuffer.length * 8; + const CS = ENT / 32; + const hash = sha256(entropyBuffer); + return bytesToBinary(Array.from(hash)).slice(0, CS); +} +function salt(password) { + return 'mnemonic' + (password || ''); +} +function mnemonicToSeedSync(mnemonic, password) { + const mnemonicBuffer = fromUtf8(normalize(mnemonic)); + const saltBuffer = fromUtf8(salt(normalize(password))); + const res = pbkdf2(sha512, mnemonicBuffer, saltBuffer, { + c: 2048, + dkLen: 64, + }); + return res; +} +function mnemonicToSeed(mnemonic, password) { + const mnemonicBuffer = fromUtf8(normalize(mnemonic)); + const saltBuffer = fromUtf8(salt(normalize(password))); + return pbkdf2Async(sha512, mnemonicBuffer, saltBuffer, { + c: 2048, + dkLen: 64, + }); +} +function mnemonicToEntropy(mnemonic, wordlist) { + wordlist = wordlist || DEFAULT_WORDLIST; + if (!wordlist) { + throw new Error(WORDLIST_REQUIRED); + } + const words = normalize(mnemonic).split(' '); + if (words.length % 3 !== 0) { + throw new Error(INVALID_MNEMONIC); + } + const bits = words + .map((word) => { + const index = wordlist.indexOf(word); + if (index === -1) { + throw new Error(INVALID_MNEMONIC); + } + return lpad(index.toString(2), '0', 11); + }) + .join(''); + const dividerIndex = Math.floor(bits.length / 33) * 32; + const entropyBits = bits.slice(0, dividerIndex); + const checksumBits = bits.slice(dividerIndex); + const entropyBytes = entropyBits.match(/(.{1,8})/g).map(binaryToByte); + if (entropyBytes.length < 16) { + throw new Error(INVALID_ENTROPY); + } + if (entropyBytes.length > 32) { + throw new Error(INVALID_ENTROPY); + } + if (entropyBytes.length % 4 !== 0) { + throw new Error(INVALID_ENTROPY); + } + const entropy = Uint8Array.from(entropyBytes); + const newChecksum = deriveChecksumBits(entropy); + if (newChecksum !== checksumBits) { + throw new Error(INVALID_CHECKSUM); + } + return toHex(entropy); +} +function entropyToMnemonic(entropy, wordlist) { + if (typeof entropy === 'string') { + entropy = fromHex(entropy); + } + wordlist = wordlist || DEFAULT_WORDLIST; + if (!wordlist) { + throw new Error(WORDLIST_REQUIRED); + } + if (entropy.length < 16) { + throw new TypeError(INVALID_ENTROPY); + } + if (entropy.length > 32) { + throw new TypeError(INVALID_ENTROPY); + } + if (entropy.length % 4 !== 0) { + throw new TypeError(INVALID_ENTROPY); + } + const entropyBits = bytesToBinary(Array.from(entropy)); + const checksumBits = deriveChecksumBits(entropy); + const bits = entropyBits + checksumBits; + const chunks = bits.match(/(.{1,11})/g); + const words = chunks.map((binary) => { + const index = binaryToByte(binary); + return wordlist[index]; + }); + return wordlist[0] === '\u3042\u3044\u3053\u304f\u3057\u3093' + ? words.join('\u3000') + : words.join(' '); +} +function generateMnemonic(strength, rng, wordlist) { + strength = strength || 128; + if (strength % 32 !== 0) { + throw new TypeError(INVALID_ENTROPY); + } + rng = rng || ((size) => crypto.getRandomValues(new Uint8Array(size))); + return entropyToMnemonic(rng(strength / 8), wordlist); +} +function validateMnemonic(mnemonic, wordlist) { + try { + mnemonicToEntropy(mnemonic, wordlist); + } + catch (e) { + return false; + } + return true; +} +function validateWordlist(wordlist) { + if (!Array.isArray(wordlist)) { + return false; + } + if (wordlist.length !== 2048) { + return false; + } + const unique = new Set(wordlist); + if (unique.size !== wordlist.length) { + return false; + } + console.log("hi"); + return true; +} +function setDefaultWordlist(wordlist) { + if (!validateWordlist(wordlist)) { + throw new Error('Invalid wordlist'); + } + DEFAULT_WORDLIST = wordlist; +} +function getDefaultWordlist() { + if (!DEFAULT_WORDLIST) { + throw new Error('No Default Wordlist set'); + } + return DEFAULT_WORDLIST; +} + +exports.chineseSimplified = chineseSimplified; +exports.chineseTraditional = chineseTraditional; +exports.czech = czech; +exports.english = english; +exports.entropyToMnemonic = entropyToMnemonic; +exports.french = french; +exports.generateMnemonic = generateMnemonic; +exports.getDefaultWordlist = getDefaultWordlist; +exports.italian = italian; +exports.japanese = japanese; +exports.korean = korean; +exports.mnemonicToEntropy = mnemonicToEntropy; +exports.mnemonicToSeed = mnemonicToSeed; +exports.mnemonicToSeedSync = mnemonicToSeedSync; +exports.portuguese = portuguese; +exports.setDefaultWordlist = setDefaultWordlist; +exports.spanish = spanish; +exports.validateMnemonic = validateMnemonic; +//# sourceMappingURL=index.cjs.map diff --git a/src/cjs/index.cjs.map b/src/cjs/index.cjs.map new file mode 100644 index 0000000..5c54207 --- /dev/null +++ b/src/cjs/index.cjs.map @@ -0,0 +1 @@ +{"version":3,"file":"index.cjs","sources":["../../node_modules/@noble/hashes/esm/_assert.js","../../node_modules/@noble/hashes/esm/utils.js","../../node_modules/@noble/hashes/esm/_sha2.js","../../node_modules/@noble/hashes/esm/sha256.js","../../node_modules/@noble/hashes/esm/_u64.js","../../node_modules/@noble/hashes/esm/sha512.js","../../node_modules/@noble/hashes/esm/hmac.js","../../node_modules/@noble/hashes/esm/pbkdf2.js","../../node_modules/uint8array-tools/src/mjs/browser.js","../../ts_src/wordlists/chinese_simplified.ts","../../ts_src/wordlists/chinese_traditional.ts","../../ts_src/wordlists/czech.ts","../../ts_src/wordlists/english.ts","../../ts_src/wordlists/french.ts","../../ts_src/wordlists/italian.ts","../../ts_src/wordlists/japanese.ts","../../ts_src/wordlists/korean.ts","../../ts_src/wordlists/spanish.ts","../../ts_src/wordlists/portuguese.ts","../../ts_src/index.ts"],"sourcesContent":["export function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexport function bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexport function bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexport function hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexport function exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexport function output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexport default assert;\n//# sourceMappingURL=_assert.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nimport { crypto } from '@noble/hashes/crypto';\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nexport function bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('deadbeef')\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nexport function concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n return new Uint8Array(crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\n//# sourceMappingURL=utils.js.map","import assert from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n assert.exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = wrapConstructor(() => new SHA256());\nexport const sha224 = wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","const U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nexport function fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexport function split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexport const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nconst rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nexport function add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","import { SHA2 } from './_sha2.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nexport class SHA512 extends SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nclass SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexport const sha512 = wrapConstructor(() => new SHA512());\nexport const sha512_224 = wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = wrapConstructor(() => new SHA512_256());\nexport const sha384 = wrapConstructor(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","import assert from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nclass HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assert.hash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assert.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","import assert from './_assert.js';\nimport { hmac } from './hmac.js';\nimport { createView, toBytes, checkOpts, asyncLoop } from './utils.js';\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n assert.hash(hash);\n const opts = checkOpts({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n assert.number(c);\n assert.number(dkLen);\n assert.number(asyncTick);\n if (c < 1)\n throw new Error('PBKDF2: iterations (c) should be >= 1');\n const password = toBytes(_password);\n const salt = toBytes(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW)\n prfW.destroy();\n u.fill(0);\n return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n */\nexport function pbkdf2(hash, password, salt, opts) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = createView(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexport async function pbkdf2Async(hash, password, salt, opts) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = createView(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await asyncLoop(c - 1, asyncTick, (i) => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n//# sourceMappingURL=pbkdf2.js.map","const HEX_STRINGS = \"0123456789abcdefABCDEF\";\nconst HEX_CODES = HEX_STRINGS.split(\"\").map((c) => c.codePointAt(0));\nconst HEX_CODEPOINTS = Array(256)\n .fill(true)\n .map((_, i) => {\n const s = String.fromCodePoint(i);\n const index = HEX_STRINGS.indexOf(s);\n // ABCDEF will use 10 - 15\n return index < 0 ? undefined : index < 16 ? index : index - 6;\n});\nconst ENCODER = new TextEncoder();\nconst DECODER = new TextDecoder();\nexport function toUtf8(bytes) {\n return DECODER.decode(bytes);\n}\nexport function fromUtf8(s) {\n return ENCODER.encode(s);\n}\nexport function concat(arrays) {\n const totalLength = arrays.reduce((a, b) => a + b.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const array of arrays) {\n result.set(array, offset);\n offset += array.length;\n }\n return result;\n}\n// There are two implementations.\n// One optimizes for length of the bytes, and uses TextDecoder.\n// One optimizes for iteration count, and appends strings.\n// This removes the overhead of TextDecoder.\nexport function toHex(bytes) {\n const b = bytes || new Uint8Array();\n return b.length > 512 ? _toHexLengthPerf(b) : _toHexIterPerf(b);\n}\nfunction _toHexIterPerf(bytes) {\n let s = \"\";\n for (let i = 0; i < bytes.length; ++i) {\n s += HEX_STRINGS[HEX_CODEPOINTS[HEX_CODES[bytes[i] >> 4]]];\n s += HEX_STRINGS[HEX_CODEPOINTS[HEX_CODES[bytes[i] & 15]]];\n }\n return s;\n}\nfunction _toHexLengthPerf(bytes) {\n const hexBytes = new Uint8Array(bytes.length * 2);\n for (let i = 0; i < bytes.length; ++i) {\n hexBytes[i * 2] = HEX_CODES[bytes[i] >> 4];\n hexBytes[i * 2 + 1] = HEX_CODES[bytes[i] & 15];\n }\n return DECODER.decode(hexBytes);\n}\n// Mimics Buffer.from(x, 'hex') logic\n// Stops on first non-hex string and returns\n// https://github.com/nodejs/node/blob/v14.18.1/src/string_bytes.cc#L246-L261\nexport function fromHex(hexString) {\n const hexBytes = ENCODER.encode(hexString || \"\");\n const resultBytes = new Uint8Array(Math.floor(hexBytes.length / 2));\n let i;\n for (i = 0; i < resultBytes.length; i++) {\n const a = HEX_CODEPOINTS[hexBytes[i * 2]];\n const b = HEX_CODEPOINTS[hexBytes[i * 2 + 1]];\n if (a === undefined || b === undefined) {\n break;\n }\n resultBytes[i] = (a << 4) | b;\n }\n return i === resultBytes.length ? resultBytes : resultBytes.slice(0, i);\n}\nexport function toBase64(bytes) {\n return btoa(String.fromCharCode(...bytes));\n}\nexport function fromBase64(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\n// Same behavior as Buffer.compare()\nexport function compare(v1, v2) {\n const minLength = Math.min(v1.length, v2.length);\n for (let i = 0; i < minLength; ++i) {\n if (v1[i] !== v2[i]) {\n return v1[i] < v2[i] ? -1 : 1;\n }\n }\n return v1.length === v2.length ? 0 : v1.length > v2.length ? 1 : -1;\n}\nexport function writeUInt8(buffer, offset, value) {\n if (offset + 1 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n if (value > 0xff) {\n throw new Error(`The value of \"value\" is out of range. It must be >= 0 and <= ${0xff}. Received ${value}`);\n }\n buffer[offset] = value;\n}\nexport function writeUInt16(buffer, offset, value, littleEndian) {\n if (offset + 2 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (value > 0xffff) {\n throw new Error(`The value of \"value\" is out of range. It must be >= 0 and <= ${0xffff}. Received ${value}`);\n }\n if (littleEndian === \"LE\") {\n buffer[offset] = value & 0xff;\n buffer[offset + 1] = (value >> 8) & 0xff;\n }\n else {\n buffer[offset] = (value >> 8) & 0xff;\n buffer[offset + 1] = value & 0xff;\n }\n}\nexport function writeUInt32(buffer, offset, value, littleEndian) {\n if (offset + 4 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (value > 0xffffffff) {\n throw new Error(`The value of \"value\" is out of range. It must be >= 0 and <= ${0xffffffff}. Received ${value}`);\n }\n if (littleEndian === \"LE\") {\n buffer[offset] = value & 0xff;\n buffer[offset + 1] = (value >> 8) & 0xff;\n buffer[offset + 2] = (value >> 16) & 0xff;\n buffer[offset + 3] = (value >> 24) & 0xff;\n }\n else {\n buffer[offset] = (value >> 24) & 0xff;\n buffer[offset + 1] = (value >> 16) & 0xff;\n buffer[offset + 2] = (value >> 8) & 0xff;\n buffer[offset + 3] = value & 0xff;\n }\n}\nexport function writeUInt64(buffer, offset, value, littleEndian) {\n if (offset + 8 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (value > 0xffffffffffffffffn) {\n throw new Error(`The value of \"value\" is out of range. It must be >= 0 and <= ${0xffffffffffffffffn}. Received ${value}`);\n }\n if (littleEndian === \"LE\") {\n buffer[offset] = Number(value & 0xffn);\n buffer[offset + 1] = Number((value >> 8n) & 0xffn);\n buffer[offset + 2] = Number((value >> 16n) & 0xffn);\n buffer[offset + 3] = Number((value >> 24n) & 0xffn);\n buffer[offset + 4] = Number((value >> 32n) & 0xffn);\n buffer[offset + 5] = Number((value >> 40n) & 0xffn);\n buffer[offset + 6] = Number((value >> 48n) & 0xffn);\n buffer[offset + 7] = Number((value >> 56n) & 0xffn);\n }\n else {\n buffer[offset] = Number((value >> 56n) & 0xffn);\n buffer[offset + 1] = Number((value >> 48n) & 0xffn);\n buffer[offset + 2] = Number((value >> 40n) & 0xffn);\n buffer[offset + 3] = Number((value >> 32n) & 0xffn);\n buffer[offset + 4] = Number((value >> 24n) & 0xffn);\n buffer[offset + 5] = Number((value >> 16n) & 0xffn);\n buffer[offset + 6] = Number((value >> 8n) & 0xffn);\n buffer[offset + 7] = Number(value & 0xffn);\n }\n}\nexport function readUInt8(buffer, offset) {\n if (offset + 1 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n return buffer[offset];\n}\nexport function readUInt16(buffer, offset, littleEndian) {\n if (offset + 2 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (littleEndian === \"LE\") {\n let num = 0;\n num = (num << 8) + buffer[offset + 1];\n num = (num << 8) + buffer[offset];\n return num;\n }\n else {\n let num = 0;\n num = (num << 8) + buffer[offset];\n num = (num << 8) + buffer[offset + 1];\n return num;\n }\n}\nexport function readUInt32(buffer, offset, littleEndian) {\n if (offset + 4 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (littleEndian === \"LE\") {\n let num = 0;\n num = ((num << 8) + buffer[offset + 3]) >>> 0;\n num = ((num << 8) + buffer[offset + 2]) >>> 0;\n num = ((num << 8) + buffer[offset + 1]) >>> 0;\n num = ((num << 8) + buffer[offset]) >>> 0;\n return num;\n }\n else {\n let num = 0;\n num = ((num << 8) + buffer[offset]) >>> 0;\n num = ((num << 8) + buffer[offset + 1]) >>> 0;\n num = ((num << 8) + buffer[offset + 2]) >>> 0;\n num = ((num << 8) + buffer[offset + 3]) >>> 0;\n return num;\n }\n}\nexport function readUInt64(buffer, offset, littleEndian) {\n if (offset + 8 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (littleEndian === \"LE\") {\n let num = 0n;\n num = (num << 8n) + BigInt(buffer[offset + 7]);\n num = (num << 8n) + BigInt(buffer[offset + 6]);\n num = (num << 8n) + BigInt(buffer[offset + 5]);\n num = (num << 8n) + BigInt(buffer[offset + 4]);\n num = (num << 8n) + BigInt(buffer[offset + 3]);\n num = (num << 8n) + BigInt(buffer[offset + 2]);\n num = (num << 8n) + BigInt(buffer[offset + 1]);\n num = (num << 8n) + BigInt(buffer[offset]);\n return num;\n }\n else {\n let num = 0n;\n num = (num << 8n) + BigInt(buffer[offset]);\n num = (num << 8n) + BigInt(buffer[offset + 1]);\n num = (num << 8n) + BigInt(buffer[offset + 2]);\n num = (num << 8n) + BigInt(buffer[offset + 3]);\n num = (num << 8n) + BigInt(buffer[offset + 4]);\n num = (num << 8n) + BigInt(buffer[offset + 5]);\n num = (num << 8n) + BigInt(buffer[offset + 6]);\n num = (num << 8n) + BigInt(buffer[offset + 7]);\n return num;\n }\n}\n",null,null,null,null,null,null,null,null,null,null,null],"names":["tools.fromUtf8","tools.toHex","tools.fromHex"],"mappings":"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AAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,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;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;;;AChgEQ,MAAA,kBAAkB,GAAG;IAChC,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IA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AM;IACN,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,UAAU;IACV,MAAM;IACN,UAAU;IACV,UAAU;IACV,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,SAAS;IACT,MAAM;IACN,UAAU;IACV,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,UAAU;IACV,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,SAAS;IACT,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,SAAS;IACT,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,UAAU;IACV,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,SAAS;IACT,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,UAAU;IACV,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,SAAS;IACT,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,QAAQ;IACR,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,SAAS;IACT,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,SAAS;IACT,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,UAAU;IACV,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,SAAS;IACT,SAAS;IACT,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,UAAU;IACV,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]} \ No newline at end of file diff --git a/src/index.d.ts b/src/cjs/index.d.ts similarity index 54% rename from src/index.d.ts rename to src/cjs/index.d.ts index a1af646..667624c 100644 --- a/src/index.d.ts +++ b/src/cjs/index.d.ts @@ -1,9 +1,10 @@ -/// -export declare function mnemonicToSeedSync(mnemonic: string, password?: string): Buffer; -export declare function mnemonicToSeed(mnemonic: string, password?: string): Promise; +export declare function mnemonicToSeedSync(mnemonic: string, password?: string): Uint8Array; +export declare function mnemonicToSeed(mnemonic: string, password?: string): Promise; export declare function mnemonicToEntropy(mnemonic: string, wordlist?: string[]): string; -export declare function entropyToMnemonic(entropy: Buffer | string, wordlist?: string[]): string; -export declare function generateMnemonic(strength?: number, rng?: (size: number) => Buffer, wordlist?: string[]): string; +export declare function entropyToMnemonic(entropy: Uint8Array | string, wordlist?: string[]): string; +export declare function generateMnemonic(strength?: number, rng?: (size: number) => Uint8Array, wordlist?: string[]): string; export declare function validateMnemonic(mnemonic: string, wordlist?: string[]): boolean; export declare function setDefaultWordlist(wordlist: string[]): void; export declare function getDefaultWordlist(): string[]; +export { chineseSimplified, chineseTraditional, english, japanese, korean, spanish, italian, czech, french, portuguese, } from './wordlists/index.js'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/src/cjs/index.d.ts.map b/src/cjs/index.d.ts.map new file mode 100644 index 0000000..8e4c2a7 --- /dev/null +++ b/src/cjs/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts_src/index.ts"],"names":[],"mappings":"AA4CA,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,UAAU,CAQZ;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,MAAM,CAiDR;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,UAAU,GAAG,MAAM,EAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,MAAM,CAmCR;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,CAAC,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,EAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,MAAM,CAOR;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,OAAO,CAQT;AAoBD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAK3D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAM7C;AAED,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,EACN,UAAU,GACX,MAAM,sBAAsB,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/chinese_simplified.d.ts b/src/cjs/wordlists/chinese_simplified.d.ts new file mode 100644 index 0000000..32d8e72 --- /dev/null +++ b/src/cjs/wordlists/chinese_simplified.d.ts @@ -0,0 +1,2 @@ +export declare const chineseSimplified: string[]; +//# sourceMappingURL=chinese_simplified.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/chinese_simplified.d.ts.map b/src/cjs/wordlists/chinese_simplified.d.ts.map new file mode 100644 index 0000000..9e67aff --- /dev/null +++ b/src/cjs/wordlists/chinese_simplified.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"chinese_simplified.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/chinese_simplified.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,UAigE7B,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/chinese_traditional.d.ts b/src/cjs/wordlists/chinese_traditional.d.ts new file mode 100644 index 0000000..94139d5 --- /dev/null +++ b/src/cjs/wordlists/chinese_traditional.d.ts @@ -0,0 +1,2 @@ +export declare const chineseTraditional: string[]; +//# sourceMappingURL=chinese_traditional.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/chinese_traditional.d.ts.map b/src/cjs/wordlists/chinese_traditional.d.ts.map new file mode 100644 index 0000000..04739e9 --- /dev/null +++ b/src/cjs/wordlists/chinese_traditional.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"chinese_traditional.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/chinese_traditional.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,UAigE9B,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/czech.d.ts b/src/cjs/wordlists/czech.d.ts new file mode 100644 index 0000000..98775e6 --- /dev/null +++ b/src/cjs/wordlists/czech.d.ts @@ -0,0 +1,2 @@ +export declare const czech: string[]; +//# sourceMappingURL=czech.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/czech.d.ts.map b/src/cjs/wordlists/czech.d.ts.map new file mode 100644 index 0000000..ec64634 --- /dev/null +++ b/src/cjs/wordlists/czech.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"czech.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/czech.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,UAigEjB,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/english.d.ts b/src/cjs/wordlists/english.d.ts new file mode 100644 index 0000000..8f0a1a9 --- /dev/null +++ b/src/cjs/wordlists/english.d.ts @@ -0,0 +1,2 @@ +export declare const english: string[]; +//# sourceMappingURL=english.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/english.d.ts.map b/src/cjs/wordlists/english.d.ts.map new file mode 100644 index 0000000..d0a92b7 --- /dev/null +++ b/src/cjs/wordlists/english.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"english.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/english.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAigEnB,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/french.d.ts b/src/cjs/wordlists/french.d.ts new file mode 100644 index 0000000..fd4ee12 --- /dev/null +++ b/src/cjs/wordlists/french.d.ts @@ -0,0 +1,2 @@ +export declare const french: string[]; +//# sourceMappingURL=french.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/french.d.ts.map b/src/cjs/wordlists/french.d.ts.map new file mode 100644 index 0000000..004b243 --- /dev/null +++ b/src/cjs/wordlists/french.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"french.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/french.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,UAigElB,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/index.d.ts b/src/cjs/wordlists/index.d.ts new file mode 100644 index 0000000..ea5e120 --- /dev/null +++ b/src/cjs/wordlists/index.d.ts @@ -0,0 +1,11 @@ +export { chineseSimplified } from './chinese_simplified.js'; +export { chineseTraditional } from './chinese_traditional.js'; +export { czech } from './czech.js'; +export { english } from './english.js'; +export { french } from './french.js'; +export { italian } from './italian.js'; +export { japanese } from './japanese.js'; +export { korean } from './korean.js'; +export { spanish } from './spanish.js'; +export { portuguese } from './portuguese.js'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/index.d.ts.map b/src/cjs/wordlists/index.d.ts.map new file mode 100644 index 0000000..6c11474 --- /dev/null +++ b/src/cjs/wordlists/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/italian.d.ts b/src/cjs/wordlists/italian.d.ts new file mode 100644 index 0000000..40ef81b --- /dev/null +++ b/src/cjs/wordlists/italian.d.ts @@ -0,0 +1,2 @@ +export declare const italian: string[]; +//# sourceMappingURL=italian.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/italian.d.ts.map b/src/cjs/wordlists/italian.d.ts.map new file mode 100644 index 0000000..1742fae --- /dev/null +++ b/src/cjs/wordlists/italian.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"italian.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/italian.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAigEnB,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/japanese.d.ts b/src/cjs/wordlists/japanese.d.ts new file mode 100644 index 0000000..65a5dca --- /dev/null +++ b/src/cjs/wordlists/japanese.d.ts @@ -0,0 +1,2 @@ +export declare const japanese: string[]; +//# sourceMappingURL=japanese.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/japanese.d.ts.map b/src/cjs/wordlists/japanese.d.ts.map new file mode 100644 index 0000000..bce1c2c --- /dev/null +++ b/src/cjs/wordlists/japanese.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"japanese.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/japanese.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,UAigEpB,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/korean.d.ts b/src/cjs/wordlists/korean.d.ts new file mode 100644 index 0000000..82601d0 --- /dev/null +++ b/src/cjs/wordlists/korean.d.ts @@ -0,0 +1,2 @@ +export declare const korean: string[]; +//# sourceMappingURL=korean.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/korean.d.ts.map b/src/cjs/wordlists/korean.d.ts.map new file mode 100644 index 0000000..915bd8e --- /dev/null +++ b/src/cjs/wordlists/korean.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"korean.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/korean.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,UAigElB,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/portuguese.d.ts b/src/cjs/wordlists/portuguese.d.ts new file mode 100644 index 0000000..1971427 --- /dev/null +++ b/src/cjs/wordlists/portuguese.d.ts @@ -0,0 +1,2 @@ +export declare const portuguese: string[]; +//# sourceMappingURL=portuguese.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/portuguese.d.ts.map b/src/cjs/wordlists/portuguese.d.ts.map new file mode 100644 index 0000000..7fbaa13 --- /dev/null +++ b/src/cjs/wordlists/portuguese.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"portuguese.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/portuguese.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,UAigEtB,CAAC"} \ No newline at end of file diff --git a/src/cjs/wordlists/spanish.d.ts b/src/cjs/wordlists/spanish.d.ts new file mode 100644 index 0000000..c1d10e1 --- /dev/null +++ b/src/cjs/wordlists/spanish.d.ts @@ -0,0 +1,2 @@ +export declare const spanish: string[]; +//# sourceMappingURL=spanish.d.ts.map \ No newline at end of file diff --git a/src/cjs/wordlists/spanish.d.ts.map b/src/cjs/wordlists/spanish.d.ts.map new file mode 100644 index 0000000..765323a --- /dev/null +++ b/src/cjs/wordlists/spanish.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"spanish.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/spanish.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAigEnB,CAAC"} \ No newline at end of file diff --git a/src/esm/index.d.ts b/src/esm/index.d.ts new file mode 100644 index 0000000..667624c --- /dev/null +++ b/src/esm/index.d.ts @@ -0,0 +1,10 @@ +export declare function mnemonicToSeedSync(mnemonic: string, password?: string): Uint8Array; +export declare function mnemonicToSeed(mnemonic: string, password?: string): Promise; +export declare function mnemonicToEntropy(mnemonic: string, wordlist?: string[]): string; +export declare function entropyToMnemonic(entropy: Uint8Array | string, wordlist?: string[]): string; +export declare function generateMnemonic(strength?: number, rng?: (size: number) => Uint8Array, wordlist?: string[]): string; +export declare function validateMnemonic(mnemonic: string, wordlist?: string[]): boolean; +export declare function setDefaultWordlist(wordlist: string[]): void; +export declare function getDefaultWordlist(): string[]; +export { chineseSimplified, chineseTraditional, english, japanese, korean, spanish, italian, czech, french, portuguese, } from './wordlists/index.js'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/src/esm/index.d.ts.map b/src/esm/index.d.ts.map new file mode 100644 index 0000000..8e4c2a7 --- /dev/null +++ b/src/esm/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../ts_src/index.ts"],"names":[],"mappings":"AA4CA,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,UAAU,CAQZ;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,MAAM,CAiDR;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,UAAU,GAAG,MAAM,EAC5B,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,MAAM,CAmCR;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,CAAC,EAAE,MAAM,EACjB,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,UAAU,EAClC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,MAAM,CAOR;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,GAClB,OAAO,CAQT;AAoBD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAK3D;AAED,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAM7C;AAED,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,EACP,KAAK,EACL,MAAM,EACN,UAAU,GACX,MAAM,sBAAsB,CAAC"} \ No newline at end of file diff --git a/src/esm/index.js b/src/esm/index.js new file mode 100644 index 0000000..75e4804 --- /dev/null +++ b/src/esm/index.js @@ -0,0 +1,21515 @@ +function number(n) { + if (!Number.isSafeInteger(n) || n < 0) + throw new Error(`Wrong positive integer: ${n}`); +} +function bool(b) { + if (typeof b !== 'boolean') + throw new Error(`Expected boolean, not ${b}`); +} +function bytes(b, ...lengths) { + if (!(b instanceof Uint8Array)) + throw new TypeError('Expected Uint8Array'); + if (lengths.length > 0 && !lengths.includes(b.length)) + throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`); +} +function hash(hash) { + if (typeof hash !== 'function' || typeof hash.create !== 'function') + throw new Error('Hash should be wrapped by utils.wrapConstructor'); + number(hash.outputLen); + number(hash.blockLen); +} +function exists(instance, checkFinished = true) { + if (instance.destroyed) + throw new Error('Hash instance has been destroyed'); + if (checkFinished && instance.finished) + throw new Error('Hash#digest() has already been called'); +} +function output(out, instance) { + bytes(out); + const min = instance.outputLen; + if (out.length < min) { + throw new Error(`digestInto() expects output buffer of length at least ${min}`); + } +} +const assert = { + number, + bool, + bytes, + hash, + exists, + output, +}; + +/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */ +// The import here is via the package name. This is to ensure +// that exports mapping/resolution does fall into place. +// Cast array to view +const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength); +// The rotate right (circular right shift) operation for uint32 +const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift); +const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44; +// There is almost no big endian hardware, but js typed arrays uses platform specific endianness. +// So, just to be sure not to corrupt anything. +if (!isLE) + throw new Error('Non little-endian hardware is not supported'); +Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0')); +// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise +// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need. +const nextTick = async () => { }; +// Returns control to thread each 'tick' ms to avoid blocking +async function asyncLoop(iters, tick, cb) { + let ts = Date.now(); + for (let i = 0; i < iters; i++) { + cb(i); + // Date.now() is not monotonic, so in case if clock goes backwards we return return control too + const diff = Date.now() - ts; + if (diff >= 0 && diff < tick) + continue; + await nextTick(); + ts += diff; + } +} +function utf8ToBytes(str) { + if (typeof str !== 'string') { + throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`); + } + return new TextEncoder().encode(str); +} +function toBytes(data) { + if (typeof data === 'string') + data = utf8ToBytes(data); + if (!(data instanceof Uint8Array)) + throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`); + return data; +} +// For runtime check if class implements interface +class Hash { + // Safe version that clones internal state + clone() { + return this._cloneInto(); + } +} +// Check if object doens't have custom constructor (like Uint8Array/Array) +const isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object; +function checkOpts(defaults, opts) { + if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts))) + throw new TypeError('Options should be object or undefined'); + const merged = Object.assign(defaults, opts); + return merged; +} +function wrapConstructor(hashConstructor) { + const hashC = (message) => hashConstructor().update(toBytes(message)).digest(); + const tmp = hashConstructor(); + hashC.outputLen = tmp.outputLen; + hashC.blockLen = tmp.blockLen; + hashC.create = () => hashConstructor(); + return hashC; +} + +// Polyfill for Safari 14 +function setBigUint64(view, byteOffset, value, isLE) { + if (typeof view.setBigUint64 === 'function') + return view.setBigUint64(byteOffset, value, isLE); + const _32n = BigInt(32); + const _u32_max = BigInt(0xffffffff); + const wh = Number((value >> _32n) & _u32_max); + const wl = Number(value & _u32_max); + const h = isLE ? 4 : 0; + const l = isLE ? 0 : 4; + view.setUint32(byteOffset + h, wh, isLE); + view.setUint32(byteOffset + l, wl, isLE); +} +// Base SHA2 class (RFC 6234) +class SHA2 extends Hash { + constructor(blockLen, outputLen, padOffset, isLE) { + super(); + this.blockLen = blockLen; + this.outputLen = outputLen; + this.padOffset = padOffset; + this.isLE = isLE; + this.finished = false; + this.length = 0; + this.pos = 0; + this.destroyed = false; + this.buffer = new Uint8Array(blockLen); + this.view = createView(this.buffer); + } + update(data) { + assert.exists(this); + const { view, buffer, blockLen } = this; + data = toBytes(data); + const len = data.length; + for (let pos = 0; pos < len;) { + const take = Math.min(blockLen - this.pos, len - pos); + // Fast path: we have at least one block in input, cast it to view and process + if (take === blockLen) { + const dataView = createView(data); + for (; blockLen <= len - pos; pos += blockLen) + this.process(dataView, pos); + continue; + } + buffer.set(data.subarray(pos, pos + take), this.pos); + this.pos += take; + pos += take; + if (this.pos === blockLen) { + this.process(view, 0); + this.pos = 0; + } + } + this.length += data.length; + this.roundClean(); + return this; + } + digestInto(out) { + assert.exists(this); + assert.output(out, this); + this.finished = true; + // Padding + // We can avoid allocation of buffer for padding completely if it + // was previously not allocated here. But it won't change performance. + const { buffer, view, blockLen, isLE } = this; + let { pos } = this; + // append the bit '1' to the message + buffer[pos++] = 0b10000000; + this.buffer.subarray(pos).fill(0); + // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again + if (this.padOffset > blockLen - pos) { + this.process(view, 0); + pos = 0; + } + // Pad until full block byte with zeros + for (let i = pos; i < blockLen; i++) + buffer[i] = 0; + // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that + // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen. + // So we just write lowest 64 bits of that value. + setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE); + this.process(view, 0); + const oview = createView(out); + const len = this.outputLen; + // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT + if (len % 4) + throw new Error('_sha2: outputLen should be aligned to 32bit'); + const outLen = len / 4; + const state = this.get(); + if (outLen > state.length) + throw new Error('_sha2: outputLen bigger than state'); + for (let i = 0; i < outLen; i++) + oview.setUint32(4 * i, state[i], isLE); + } + digest() { + const { buffer, outputLen } = this; + this.digestInto(buffer); + const res = buffer.slice(0, outputLen); + this.destroy(); + return res; + } + _cloneInto(to) { + to || (to = new this.constructor()); + to.set(...this.get()); + const { blockLen, buffer, length, finished, destroyed, pos } = this; + to.length = length; + to.pos = pos; + to.finished = finished; + to.destroyed = destroyed; + if (length % blockLen) + to.buffer.set(buffer); + return to; + } +} + +// Choice: a ? b : c +const Chi = (a, b, c) => (a & b) ^ (~a & c); +// Majority function, true if any two inpust is true +const Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c); +// Round constants: +// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311) +// prettier-ignore +const SHA256_K = new Uint32Array([ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +]); +// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19): +// prettier-ignore +const IV = new Uint32Array([ + 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19 +]); +// Temporary buffer, not used to store anything between runs +// Named this way because it matches specification. +const SHA256_W = new Uint32Array(64); +class SHA256 extends SHA2 { + constructor() { + super(64, 32, 8, false); + // We cannot use array here since array allows indexing by variable + // which means optimizer/compiler cannot use registers. + this.A = IV[0] | 0; + this.B = IV[1] | 0; + this.C = IV[2] | 0; + this.D = IV[3] | 0; + this.E = IV[4] | 0; + this.F = IV[5] | 0; + this.G = IV[6] | 0; + this.H = IV[7] | 0; + } + get() { + const { A, B, C, D, E, F, G, H } = this; + return [A, B, C, D, E, F, G, H]; + } + // prettier-ignore + set(A, B, C, D, E, F, G, H) { + this.A = A | 0; + this.B = B | 0; + this.C = C | 0; + this.D = D | 0; + this.E = E | 0; + this.F = F | 0; + this.G = G | 0; + this.H = H | 0; + } + process(view, offset) { + // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array + for (let i = 0; i < 16; i++, offset += 4) + SHA256_W[i] = view.getUint32(offset, false); + for (let i = 16; i < 64; i++) { + const W15 = SHA256_W[i - 15]; + const W2 = SHA256_W[i - 2]; + const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3); + const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10); + SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0; + } + // Compression function main loop, 64 rounds + let { A, B, C, D, E, F, G, H } = this; + for (let i = 0; i < 64; i++) { + const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25); + const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0; + const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22); + const T2 = (sigma0 + Maj(A, B, C)) | 0; + H = G; + G = F; + F = E; + E = (D + T1) | 0; + D = C; + C = B; + B = A; + A = (T1 + T2) | 0; + } + // Add the compressed chunk to the current hash value + A = (A + this.A) | 0; + B = (B + this.B) | 0; + C = (C + this.C) | 0; + D = (D + this.D) | 0; + E = (E + this.E) | 0; + F = (F + this.F) | 0; + G = (G + this.G) | 0; + H = (H + this.H) | 0; + this.set(A, B, C, D, E, F, G, H); + } + roundClean() { + SHA256_W.fill(0); + } + destroy() { + this.set(0, 0, 0, 0, 0, 0, 0, 0); + this.buffer.fill(0); + } +} +// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf +class SHA224 extends SHA256 { + constructor() { + super(); + this.A = 0xc1059ed8 | 0; + this.B = 0x367cd507 | 0; + this.C = 0x3070dd17 | 0; + this.D = 0xf70e5939 | 0; + this.E = 0xffc00b31 | 0; + this.F = 0x68581511 | 0; + this.G = 0x64f98fa7 | 0; + this.H = 0xbefa4fa4 | 0; + this.outputLen = 28; + } +} +/** + * SHA2-256 hash function + * @param message - data that would be hashed + */ +const sha256 = wrapConstructor(() => new SHA256()); +wrapConstructor(() => new SHA224()); + +const U32_MASK64 = BigInt(2 ** 32 - 1); +const _32n = BigInt(32); +// We are not using BigUint64Array, because they are extremely slow as per 2022 +function fromBig(n, le = false) { + if (le) + return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) }; + return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 }; +} +function split(lst, le = false) { + let Ah = new Uint32Array(lst.length); + let Al = new Uint32Array(lst.length); + for (let i = 0; i < lst.length; i++) { + const { h, l } = fromBig(lst[i], le); + [Ah[i], Al[i]] = [h, l]; + } + return [Ah, Al]; +} +const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0); +// for Shift in [0, 32) +const shrSH = (h, l, s) => h >>> s; +const shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s); +// Right rotate for Shift in [1, 32) +const rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s)); +const rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s); +// Right rotate for Shift in (32, 64), NOTE: 32 is special case. +const rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32)); +const rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s)); +// Right rotate for shift===32 (just swaps l&h) +const rotr32H = (h, l) => l; +const rotr32L = (h, l) => h; +// Left rotate for Shift in [1, 32) +const rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s)); +const rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s)); +// Left rotate for Shift in (32, 64), NOTE: 32 is special case. +const rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s)); +const rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s)); +// JS uses 32-bit signed integers for bitwise operations which means we cannot +// simple take carry out of low bit sum by shift, we need to use division. +// Removing "export" has 5% perf penalty -_- +function add(Ah, Al, Bh, Bl) { + const l = (Al >>> 0) + (Bl >>> 0); + return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 }; +} +// Addition with more than 2 elements +const add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0); +const add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0; +const add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0); +const add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0; +const add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0); +const add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0; +// prettier-ignore +const u64 = { + fromBig, split, toBig, + shrSH, shrSL, + rotrSH, rotrSL, rotrBH, rotrBL, + rotr32H, rotr32L, + rotlSH, rotlSL, rotlBH, rotlBL, + add, add3L, add3H, add4L, add4H, add5H, add5L, +}; + +// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409): +// prettier-ignore +const [SHA512_Kh, SHA512_Kl] = u64.split([ + '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc', + '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118', + '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2', + '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694', + '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65', + '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5', + '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4', + '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70', + '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df', + '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b', + '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30', + '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8', + '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8', + '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3', + '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec', + '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b', + '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178', + '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b', + '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c', + '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817' +].map(n => BigInt(n))); +// Temporary buffer, not used to store anything between runs +const SHA512_W_H = new Uint32Array(80); +const SHA512_W_L = new Uint32Array(80); +class SHA512 extends SHA2 { + constructor() { + super(128, 64, 16, false); + // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers. + // Also looks cleaner and easier to verify with spec. + // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19): + // h -- high 32 bits, l -- low 32 bits + this.Ah = 0x6a09e667 | 0; + this.Al = 0xf3bcc908 | 0; + this.Bh = 0xbb67ae85 | 0; + this.Bl = 0x84caa73b | 0; + this.Ch = 0x3c6ef372 | 0; + this.Cl = 0xfe94f82b | 0; + this.Dh = 0xa54ff53a | 0; + this.Dl = 0x5f1d36f1 | 0; + this.Eh = 0x510e527f | 0; + this.El = 0xade682d1 | 0; + this.Fh = 0x9b05688c | 0; + this.Fl = 0x2b3e6c1f | 0; + this.Gh = 0x1f83d9ab | 0; + this.Gl = 0xfb41bd6b | 0; + this.Hh = 0x5be0cd19 | 0; + this.Hl = 0x137e2179 | 0; + } + // prettier-ignore + get() { + const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this; + return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl]; + } + // prettier-ignore + set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) { + this.Ah = Ah | 0; + this.Al = Al | 0; + this.Bh = Bh | 0; + this.Bl = Bl | 0; + this.Ch = Ch | 0; + this.Cl = Cl | 0; + this.Dh = Dh | 0; + this.Dl = Dl | 0; + this.Eh = Eh | 0; + this.El = El | 0; + this.Fh = Fh | 0; + this.Fl = Fl | 0; + this.Gh = Gh | 0; + this.Gl = Gl | 0; + this.Hh = Hh | 0; + this.Hl = Hl | 0; + } + process(view, offset) { + // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array + for (let i = 0; i < 16; i++, offset += 4) { + SHA512_W_H[i] = view.getUint32(offset); + SHA512_W_L[i] = view.getUint32((offset += 4)); + } + for (let i = 16; i < 80; i++) { + // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7) + const W15h = SHA512_W_H[i - 15] | 0; + const W15l = SHA512_W_L[i - 15] | 0; + const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7); + const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7); + // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6) + const W2h = SHA512_W_H[i - 2] | 0; + const W2l = SHA512_W_L[i - 2] | 0; + const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6); + const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6); + // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16]; + const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]); + const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]); + SHA512_W_H[i] = SUMh | 0; + SHA512_W_L[i] = SUMl | 0; + } + let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this; + // Compression function main loop, 80 rounds + for (let i = 0; i < 80; i++) { + // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41) + const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41); + const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41); + //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0; + const CHIh = (Eh & Fh) ^ (~Eh & Gh); + const CHIl = (El & Fl) ^ (~El & Gl); + // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i] + // prettier-ignore + const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]); + const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]); + const T1l = T1ll | 0; + // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39) + const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39); + const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39); + const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch); + const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl); + Hh = Gh | 0; + Hl = Gl | 0; + Gh = Fh | 0; + Gl = Fl | 0; + Fh = Eh | 0; + Fl = El | 0; + ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0)); + Dh = Ch | 0; + Dl = Cl | 0; + Ch = Bh | 0; + Cl = Bl | 0; + Bh = Ah | 0; + Bl = Al | 0; + const All = u64.add3L(T1l, sigma0l, MAJl); + Ah = u64.add3H(All, T1h, sigma0h, MAJh); + Al = All | 0; + } + // Add the compressed chunk to the current hash value + ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0)); + ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0)); + ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0)); + ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0)); + ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0)); + ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0)); + ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0)); + ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0)); + this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl); + } + roundClean() { + SHA512_W_H.fill(0); + SHA512_W_L.fill(0); + } + destroy() { + this.buffer.fill(0); + this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); + } +} +class SHA512_224 extends SHA512 { + constructor() { + super(); + // h -- high 32 bits, l -- low 32 bits + this.Ah = 0x8c3d37c8 | 0; + this.Al = 0x19544da2 | 0; + this.Bh = 0x73e19966 | 0; + this.Bl = 0x89dcd4d6 | 0; + this.Ch = 0x1dfab7ae | 0; + this.Cl = 0x32ff9c82 | 0; + this.Dh = 0x679dd514 | 0; + this.Dl = 0x582f9fcf | 0; + this.Eh = 0x0f6d2b69 | 0; + this.El = 0x7bd44da8 | 0; + this.Fh = 0x77e36f73 | 0; + this.Fl = 0x04c48942 | 0; + this.Gh = 0x3f9d85a8 | 0; + this.Gl = 0x6a1d36c8 | 0; + this.Hh = 0x1112e6ad | 0; + this.Hl = 0x91d692a1 | 0; + this.outputLen = 28; + } +} +class SHA512_256 extends SHA512 { + constructor() { + super(); + // h -- high 32 bits, l -- low 32 bits + this.Ah = 0x22312194 | 0; + this.Al = 0xfc2bf72c | 0; + this.Bh = 0x9f555fa3 | 0; + this.Bl = 0xc84c64c2 | 0; + this.Ch = 0x2393b86b | 0; + this.Cl = 0x6f53b151 | 0; + this.Dh = 0x96387719 | 0; + this.Dl = 0x5940eabd | 0; + this.Eh = 0x96283ee2 | 0; + this.El = 0xa88effe3 | 0; + this.Fh = 0xbe5e1e25 | 0; + this.Fl = 0x53863992 | 0; + this.Gh = 0x2b0199fc | 0; + this.Gl = 0x2c85b8aa | 0; + this.Hh = 0x0eb72ddc | 0; + this.Hl = 0x81c52ca2 | 0; + this.outputLen = 32; + } +} +class SHA384 extends SHA512 { + constructor() { + super(); + // h -- high 32 bits, l -- low 32 bits + this.Ah = 0xcbbb9d5d | 0; + this.Al = 0xc1059ed8 | 0; + this.Bh = 0x629a292a | 0; + this.Bl = 0x367cd507 | 0; + this.Ch = 0x9159015a | 0; + this.Cl = 0x3070dd17 | 0; + this.Dh = 0x152fecd8 | 0; + this.Dl = 0xf70e5939 | 0; + this.Eh = 0x67332667 | 0; + this.El = 0xffc00b31 | 0; + this.Fh = 0x8eb44a87 | 0; + this.Fl = 0x68581511 | 0; + this.Gh = 0xdb0c2e0d | 0; + this.Gl = 0x64f98fa7 | 0; + this.Hh = 0x47b5481d | 0; + this.Hl = 0xbefa4fa4 | 0; + this.outputLen = 48; + } +} +const sha512 = wrapConstructor(() => new SHA512()); +wrapConstructor(() => new SHA512_224()); +wrapConstructor(() => new SHA512_256()); +wrapConstructor(() => new SHA384()); + +// HMAC (RFC 2104) +class HMAC extends Hash { + constructor(hash, _key) { + super(); + this.finished = false; + this.destroyed = false; + assert.hash(hash); + const key = toBytes(_key); + this.iHash = hash.create(); + if (typeof this.iHash.update !== 'function') + throw new TypeError('Expected instance of class which extends utils.Hash'); + this.blockLen = this.iHash.blockLen; + this.outputLen = this.iHash.outputLen; + const blockLen = this.blockLen; + const pad = new Uint8Array(blockLen); + // blockLen can be bigger than outputLen + pad.set(key.length > blockLen ? hash.create().update(key).digest() : key); + for (let i = 0; i < pad.length; i++) + pad[i] ^= 0x36; + this.iHash.update(pad); + // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone + this.oHash = hash.create(); + // Undo internal XOR && apply outer XOR + for (let i = 0; i < pad.length; i++) + pad[i] ^= 0x36 ^ 0x5c; + this.oHash.update(pad); + pad.fill(0); + } + update(buf) { + assert.exists(this); + this.iHash.update(buf); + return this; + } + digestInto(out) { + assert.exists(this); + assert.bytes(out, this.outputLen); + this.finished = true; + this.iHash.digestInto(out); + this.oHash.update(out); + this.oHash.digestInto(out); + this.destroy(); + } + digest() { + const out = new Uint8Array(this.oHash.outputLen); + this.digestInto(out); + return out; + } + _cloneInto(to) { + // Create new instance without calling constructor since key already in state and we don't know it. + to || (to = Object.create(Object.getPrototypeOf(this), {})); + const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this; + to = to; + to.finished = finished; + to.destroyed = destroyed; + to.blockLen = blockLen; + to.outputLen = outputLen; + to.oHash = oHash._cloneInto(to.oHash); + to.iHash = iHash._cloneInto(to.iHash); + return to; + } + destroy() { + this.destroyed = true; + this.oHash.destroy(); + this.iHash.destroy(); + } +} +/** + * HMAC: RFC2104 message authentication code. + * @param hash - function that would be used e.g. sha256 + * @param key - message key + * @param message - message data + */ +const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest(); +hmac.create = (hash, key) => new HMAC(hash, key); + +// Common prologue and epilogue for sync/async functions +function pbkdf2Init(hash, _password, _salt, _opts) { + assert.hash(hash); + const opts = checkOpts({ dkLen: 32, asyncTick: 10 }, _opts); + const { c, dkLen, asyncTick } = opts; + assert.number(c); + assert.number(dkLen); + assert.number(asyncTick); + if (c < 1) + throw new Error('PBKDF2: iterations (c) should be >= 1'); + const password = toBytes(_password); + const salt = toBytes(_salt); + // DK = PBKDF2(PRF, Password, Salt, c, dkLen); + const DK = new Uint8Array(dkLen); + // U1 = PRF(Password, Salt + INT_32_BE(i)) + const PRF = hmac.create(hash, password); + const PRFSalt = PRF._cloneInto().update(salt); + return { c, dkLen, asyncTick, DK, PRF, PRFSalt }; +} +function pbkdf2Output(PRF, PRFSalt, DK, prfW, u) { + PRF.destroy(); + PRFSalt.destroy(); + if (prfW) + prfW.destroy(); + u.fill(0); + return DK; +} +/** + * PBKDF2-HMAC: RFC 2898 key derivation function + * @param hash - hash function that would be used e.g. sha256 + * @param password - password from which a derived key is generated + * @param salt - cryptographic salt + * @param opts - {c, dkLen} where c is work factor and dkLen is output message size + */ +function pbkdf2(hash, password, salt, opts) { + const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts); + let prfW; // Working copy + const arr = new Uint8Array(4); + const view = createView(arr); + const u = new Uint8Array(PRF.outputLen); + // DK = T1 + T2 + ⋯ + Tdklen/hlen + for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) { + // Ti = F(Password, Salt, c, i) + const Ti = DK.subarray(pos, pos + PRF.outputLen); + view.setInt32(0, ti, false); + // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc + // U1 = PRF(Password, Salt + INT_32_BE(i)) + (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u); + Ti.set(u.subarray(0, Ti.length)); + for (let ui = 1; ui < c; ui++) { + // Uc = PRF(Password, Uc−1) + PRF._cloneInto(prfW).update(u).digestInto(u); + for (let i = 0; i < Ti.length; i++) + Ti[i] ^= u[i]; + } + } + return pbkdf2Output(PRF, PRFSalt, DK, prfW, u); +} +async function pbkdf2Async(hash, password, salt, opts) { + const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts); + let prfW; // Working copy + const arr = new Uint8Array(4); + const view = createView(arr); + const u = new Uint8Array(PRF.outputLen); + // DK = T1 + T2 + ⋯ + Tdklen/hlen + for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) { + // Ti = F(Password, Salt, c, i) + const Ti = DK.subarray(pos, pos + PRF.outputLen); + view.setInt32(0, ti, false); + // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc + // U1 = PRF(Password, Salt + INT_32_BE(i)) + (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u); + Ti.set(u.subarray(0, Ti.length)); + await asyncLoop(c - 1, asyncTick, (i) => { + // Uc = PRF(Password, Uc−1) + PRF._cloneInto(prfW).update(u).digestInto(u); + for (let i = 0; i < Ti.length; i++) + Ti[i] ^= u[i]; + }); + } + return pbkdf2Output(PRF, PRFSalt, DK, prfW, u); +} + +const HEX_STRINGS = "0123456789abcdefABCDEF"; +const HEX_CODES = HEX_STRINGS.split("").map((c) => c.codePointAt(0)); +const HEX_CODEPOINTS = Array(256) + .fill(true) + .map((_, i) => { + const s = String.fromCodePoint(i); + const index = HEX_STRINGS.indexOf(s); + // ABCDEF will use 10 - 15 + return index < 0 ? undefined : index < 16 ? index : index - 6; +}); +const ENCODER = new TextEncoder(); +const DECODER = new TextDecoder(); +function fromUtf8(s) { + return ENCODER.encode(s); +} +// There are two implementations. +// One optimizes for length of the bytes, and uses TextDecoder. +// One optimizes for iteration count, and appends strings. +// This removes the overhead of TextDecoder. +function toHex(bytes) { + const b = bytes || new Uint8Array(); + return b.length > 512 ? _toHexLengthPerf(b) : _toHexIterPerf(b); +} +function _toHexIterPerf(bytes) { + let s = ""; + for (let i = 0; i < bytes.length; ++i) { + s += HEX_STRINGS[HEX_CODEPOINTS[HEX_CODES[bytes[i] >> 4]]]; + s += HEX_STRINGS[HEX_CODEPOINTS[HEX_CODES[bytes[i] & 15]]]; + } + return s; +} +function _toHexLengthPerf(bytes) { + const hexBytes = new Uint8Array(bytes.length * 2); + for (let i = 0; i < bytes.length; ++i) { + hexBytes[i * 2] = HEX_CODES[bytes[i] >> 4]; + hexBytes[i * 2 + 1] = HEX_CODES[bytes[i] & 15]; + } + return DECODER.decode(hexBytes); +} +// Mimics Buffer.from(x, 'hex') logic +// Stops on first non-hex string and returns +// https://github.com/nodejs/node/blob/v14.18.1/src/string_bytes.cc#L246-L261 +function fromHex(hexString) { + const hexBytes = ENCODER.encode(hexString || ""); + const resultBytes = new Uint8Array(Math.floor(hexBytes.length / 2)); + let i; + for (i = 0; i < resultBytes.length; i++) { + const a = HEX_CODEPOINTS[hexBytes[i * 2]]; + const b = HEX_CODEPOINTS[hexBytes[i * 2 + 1]]; + if (a === undefined || b === undefined) { + break; + } + resultBytes[i] = (a << 4) | b; + } + return i === resultBytes.length ? resultBytes : resultBytes.slice(0, i); +} + +const chineseSimplified = [ + '的', + '一', + '是', + '在', + '不', + '了', + '有', + '和', + '人', + '这', + '中', + '大', + '为', + '上', + '个', + '国', + '我', + '以', + '要', + '他', + '时', + '来', + '用', + '们', + '生', + '到', + '作', + '地', + '于', + '出', + '就', + '分', + '对', + '成', + '会', + '可', + '主', + '发', + '年', + '动', + '同', + '工', + '也', + '能', + '下', + '过', + '子', + '说', + '产', + '种', + '面', + '而', + '方', + '后', + '多', + '定', + '行', + '学', + '法', + '所', + '民', + '得', + '经', + '十', + '三', + '之', + '进', + '着', + '等', + '部', + '度', + '家', + '电', + '力', + '里', + '如', + '水', + '化', + '高', + '自', + '二', + '理', + '起', + '小', + '物', + '现', + '实', + '加', + '量', + '都', + '两', + '体', + '制', + '机', + '当', + '使', + '点', + '从', + '业', + '本', + '去', + '把', + '性', + '好', + '应', + '开', + '它', + '合', + '还', + '因', + '由', + '其', + '些', + '然', + '前', + '外', + '天', + '政', + '四', + '日', + '那', + '社', + '义', + '事', + '平', + '形', + '相', + '全', + '表', + '间', + '样', + '与', + '关', + '各', + '重', + '新', + '线', + '内', + '数', + '正', + '心', + '反', + '你', + '明', + '看', + '原', + '又', + '么', + '利', + '比', + '或', + '但', + '质', + '气', + '第', + '向', + '道', + '命', + '此', + '变', + '条', + '只', + '没', + '结', + '解', + '问', + '意', + '建', + '月', + '公', + '无', + '系', + '军', + '很', + '情', + '者', + '最', + '立', + '代', + '想', + '已', + '通', + '并', + '提', + '直', + '题', + '党', + '程', + '展', + '五', + '果', + '料', + '象', + '员', + '革', + '位', + '入', + '常', + '文', + '总', + '次', + '品', + '式', + '活', + '设', + '及', + '管', + '特', + '件', + '长', + '求', + '老', + '头', + '基', + '资', + '边', + '流', + '路', + '级', + '少', + '图', + '山', + '统', + '接', + '知', + '较', + '将', + '组', + '见', + '计', + '别', + '她', + '手', + '角', + '期', + '根', + '论', + '运', + '农', + '指', + '几', + '九', + '区', + '强', + '放', + '决', + '西', + '被', + '干', + '做', + '必', + '战', + '先', + '回', + '则', + '任', + '取', + '据', + '处', + '队', + '南', + '给', + '色', + '光', + '门', + '即', + '保', + '治', + '北', + '造', + '百', + '规', + '热', + '领', + '七', + '海', + '口', + '东', + '导', + '器', + '压', + '志', + '世', + '金', + '增', + '争', + '济', + '阶', + '油', + '思', + '术', + '极', + '交', + '受', + '联', + '什', + '认', + '六', + '共', + '权', + '收', + '证', + '改', + '清', + '美', + '再', + '采', + '转', + '更', + '单', + '风', + '切', + '打', + '白', + '教', + '速', + '花', + '带', + '安', + '场', + '身', + '车', + '例', + '真', + '务', + '具', + '万', + '每', + '目', + '至', + '达', + '走', + '积', + '示', + '议', + '声', + '报', + '斗', + '完', + '类', + '八', + '离', + '华', + '名', + '确', + '才', + '科', + '张', + '信', + '马', + '节', + '话', + '米', + '整', + '空', + '元', + '况', + '今', + '集', + '温', + '传', + '土', + '许', + '步', + '群', + '广', + '石', + '记', + '需', + '段', + '研', + '界', + '拉', + '林', + '律', + '叫', + '且', + '究', + '观', + '越', + '织', + '装', + '影', + '算', + '低', + '持', + '音', + '众', + '书', + '布', + '复', + '容', + '儿', + '须', + '际', + '商', + '非', + '验', + '连', + '断', + '深', + '难', + '近', + '矿', + '千', + '周', + '委', + '素', + '技', + '备', + '半', + '办', + '青', + '省', + '列', + '习', + '响', + '约', + '支', + '般', + '史', + '感', + '劳', + '便', + '团', + '往', + '酸', + '历', + '市', + '克', + '何', + '除', + '消', + '构', + '府', + '称', + '太', + '准', + '精', + '值', + '号', + '率', + '族', + '维', + '划', + '选', + '标', + '写', + '存', + '候', + '毛', + '亲', + '快', + '效', + '斯', + '院', + '查', + '江', + '型', + '眼', + '王', + '按', + '格', + '养', + '易', + '置', + '派', + '层', + '片', + '始', + '却', + '专', + '状', + '育', + '厂', + '京', + '识', + '适', + '属', + '圆', + '包', + '火', + '住', + '调', + '满', + '县', + '局', + '照', + '参', + '红', + '细', + '引', + '听', + '该', + '铁', + '价', + '严', + '首', + '底', + '液', + '官', + '德', + '随', + '病', + '苏', + '失', + '尔', + '死', + '讲', + '配', + '女', + '黄', + '推', + '显', + '谈', + '罪', + '神', + '艺', + '呢', + '席', + '含', + '企', + '望', + '密', + '批', + '营', + '项', + '防', + '举', + '球', + '英', + '氧', + '势', + '告', + '李', + '台', + '落', + '木', + '帮', + '轮', + '破', + '亚', + '师', + '围', + '注', + '远', + '字', + '材', + '排', + '供', + '河', + '态', + '封', + '另', + '施', + '减', + '树', + '溶', + '怎', + '止', + '案', + '言', + '士', + '均', + '武', + '固', + '叶', + '鱼', + '波', + '视', + '仅', + '费', + '紧', + '爱', + '左', + '章', + '早', + '朝', + '害', + '续', + '轻', + '服', + '试', + '食', + '充', + '兵', + '源', + '判', + '护', + '司', + '足', + '某', + '练', + '差', + '致', + '板', + '田', + '降', + '黑', + '犯', + '负', + '击', + '范', + '继', + '兴', + '似', + '余', + '坚', + '曲', + '输', + '修', + '故', + '城', + '夫', + '够', + '送', + '笔', + '船', + '占', + '右', + '财', + '吃', + '富', + '春', + '职', + '觉', + '汉', + '画', + '功', + '巴', + '跟', + '虽', + '杂', + '飞', + '检', + '吸', + '助', + '升', + '阳', + '互', + '初', + '创', + '抗', + '考', + '投', + '坏', + '策', + '古', + '径', + '换', + '未', + '跑', + '留', + '钢', + '曾', + '端', + '责', + '站', + '简', + '述', + '钱', + '副', + '尽', + '帝', + '射', + '草', + '冲', + '承', + '独', + '令', + '限', + '阿', + '宣', + '环', + '双', + '请', + '超', + '微', + '让', + '控', + '州', + '良', + '轴', + '找', + '否', + '纪', + '益', + '依', + '优', + '顶', + '础', + '载', + '倒', + '房', + '突', + '坐', + '粉', + '敌', + '略', + '客', + '袁', + '冷', + '胜', + '绝', + '析', + '块', + '剂', + '测', + '丝', + '协', + '诉', + '念', + '陈', + '仍', + '罗', + '盐', + '友', + '洋', + '错', + '苦', + '夜', + '刑', + '移', + '频', + '逐', + '靠', + '混', + '母', + '短', + '皮', + '终', + '聚', + '汽', + '村', + '云', + '哪', + '既', + '距', + '卫', + '停', + '烈', + '央', + '察', + '烧', + '迅', + '境', + '若', + '印', + '洲', + '刻', + '括', + '激', + '孔', + '搞', + '甚', + '室', + '待', + '核', + '校', + '散', + '侵', + '吧', + '甲', + '游', + '久', + '菜', + '味', + '旧', + '模', + '湖', + '货', + '损', + '预', + '阻', + '毫', + '普', + '稳', + '乙', + '妈', + '植', + '息', + '扩', + '银', + '语', + '挥', + '酒', + '守', + '拿', + '序', + '纸', + '医', + '缺', + '雨', + '吗', + '针', + '刘', + '啊', + '急', + '唱', + '误', + '训', + '愿', + '审', + '附', + '获', + '茶', + '鲜', + '粮', + '斤', + '孩', + '脱', + '硫', + '肥', + '善', + '龙', + '演', + '父', + '渐', + '血', + '欢', + '械', + '掌', + '歌', + '沙', + '刚', + '攻', + '谓', + '盾', + '讨', + '晚', + '粒', + '乱', + '燃', + '矛', + '乎', + '杀', + '药', + '宁', + '鲁', + '贵', + '钟', + '煤', + '读', + '班', + '伯', + '香', + '介', + '迫', + '句', + '丰', + '培', + '握', + '兰', + '担', + '弦', + '蛋', + '沉', + '假', + '穿', + '执', + '答', + '乐', + '谁', + '顺', + '烟', + '缩', + '征', + '脸', + '喜', + '松', + '脚', + '困', + '异', + '免', + '背', + '星', + '福', + '买', + '染', + '井', + '概', + '慢', + '怕', + '磁', + '倍', + '祖', + '皇', + '促', + '静', + '补', + '评', + '翻', + '肉', + '践', + '尼', + '衣', + '宽', + '扬', + '棉', + '希', + '伤', + '操', + '垂', + '秋', + '宜', + '氢', + '套', + '督', + '振', + '架', + '亮', + '末', + '宪', + '庆', + '编', + '牛', + '触', + '映', + '雷', + '销', + '诗', + '座', + '居', + '抓', + '裂', + '胞', + '呼', + '娘', + '景', + '威', + '绿', + '晶', + '厚', + '盟', + '衡', + '鸡', + '孙', + '延', + '危', + '胶', + '屋', + '乡', + '临', + '陆', + '顾', + '掉', + '呀', + '灯', + '岁', + '措', + '束', + '耐', + '剧', + '玉', + '赵', + '跳', + '哥', + '季', + '课', + '凯', + '胡', + '额', + '款', + '绍', + '卷', + '齐', + '伟', + '蒸', + '殖', + '永', + '宗', + '苗', + '川', + '炉', + '岩', + '弱', + '零', + '杨', + '奏', + '沿', + '露', + '杆', + '探', + '滑', + '镇', + '饭', + '浓', + '航', + '怀', + '赶', + '库', + '夺', + '伊', + '灵', + '税', + '途', + '灭', + '赛', + '归', + '召', + '鼓', + '播', + '盘', + '裁', + '险', + '康', + '唯', + '录', + '菌', + '纯', + '借', + '糖', + '盖', + '横', + '符', + '私', + '努', + '堂', + '域', + '枪', + '润', + '幅', + '哈', + '竟', + '熟', + '虫', + '泽', + '脑', + '壤', + '碳', + '欧', + '遍', + '侧', + '寨', + '敢', + '彻', + '虑', + '斜', + '薄', + '庭', + '纳', + '弹', + '饲', + '伸', + '折', + '麦', + '湿', + '暗', + '荷', + '瓦', + '塞', + '床', + '筑', + '恶', + '户', + '访', + '塔', + '奇', + '透', + '梁', + '刀', + '旋', + '迹', + '卡', + '氯', + '遇', + '份', + '毒', + '泥', + '退', + '洗', + '摆', + '灰', + '彩', + '卖', + '耗', + '夏', + '择', + '忙', + '铜', + '献', + '硬', + '予', + '繁', + '圈', + '雪', + '函', + '亦', + '抽', + '篇', + '阵', + '阴', + '丁', + '尺', + '追', + '堆', + '雄', + '迎', + '泛', + '爸', + '楼', + '避', + '谋', + '吨', + '野', + '猪', + '旗', + '累', + '偏', + '典', + '馆', + '索', + '秦', + '脂', + '潮', + '爷', + '豆', + '忽', + '托', + '惊', + '塑', + '遗', + '愈', + '朱', + '替', + '纤', + '粗', + '倾', + '尚', + '痛', + '楚', + '谢', + '奋', + '购', + '磨', + '君', + '池', + '旁', + '碎', + '骨', + '监', + '捕', + '弟', + '暴', + '割', + '贯', + '殊', + '释', + '词', + '亡', + '壁', + '顿', + '宝', + '午', + '尘', + '闻', + '揭', + '炮', + '残', + '冬', + '桥', + '妇', + '警', + '综', + '招', + '吴', + '付', + '浮', + '遭', + '徐', + '您', + '摇', + '谷', + '赞', + '箱', + '隔', + '订', + '男', + '吹', + '园', + '纷', + '唐', + '败', + '宋', + '玻', + '巨', + '耕', + '坦', + '荣', + '闭', + '湾', + '键', + '凡', + '驻', + '锅', + '救', + '恩', + '剥', + '凝', + '碱', + '齿', + '截', + '炼', + '麻', + '纺', + '禁', + '废', + '盛', + '版', + '缓', + '净', + '睛', + '昌', + '婚', + '涉', + '筒', + '嘴', + '插', + '岸', + '朗', + '庄', + '街', + '藏', + '姑', + '贸', + '腐', + '奴', + '啦', + '惯', + '乘', + '伙', + '恢', + '匀', + '纱', + '扎', + '辩', + '耳', + '彪', + '臣', + '亿', + '璃', + '抵', + '脉', + '秀', + '萨', + '俄', + '网', + '舞', + '店', + '喷', + '纵', + '寸', + '汗', + '挂', + '洪', + '贺', + '闪', + '柬', + '爆', + '烯', + '津', + '稻', + '墙', + '软', + '勇', + '像', + '滚', + '厘', + '蒙', + '芳', + '肯', + '坡', + '柱', + '荡', + '腿', + '仪', + '旅', + '尾', + '轧', + '冰', + '贡', + '登', + '黎', + '削', + '钻', + '勒', + '逃', + '障', + '氨', + '郭', + '峰', + '币', + '港', + '伏', + '轨', + '亩', + '毕', + '擦', + '莫', + '刺', + '浪', + '秘', + '援', + '株', + '健', + '售', + '股', + '岛', + '甘', + '泡', + '睡', + '童', + '铸', + '汤', + '阀', + '休', + '汇', + '舍', + '牧', + '绕', + '炸', + '哲', + '磷', + '绩', + '朋', + '淡', + '尖', + '启', + '陷', + '柴', + '呈', + '徒', + '颜', + '泪', + '稍', + '忘', + '泵', + '蓝', + '拖', + '洞', + '授', + '镜', + '辛', + '壮', + '锋', + '贫', + '虚', + '弯', + '摩', + '泰', + '幼', + '廷', + '尊', + '窗', + '纲', + '弄', + '隶', + '疑', + '氏', + '宫', + '姐', + '震', + '瑞', + '怪', + '尤', + '琴', + '循', + '描', + '膜', + '违', + '夹', + '腰', + '缘', + '珠', + '穷', + '森', + '枝', + '竹', + '沟', + '催', + '绳', + '忆', + '邦', + '剩', + '幸', + '浆', + '栏', + '拥', + '牙', + '贮', + '礼', + '滤', + '钠', + '纹', + '罢', + '拍', + '咱', + '喊', + '袖', + '埃', + '勤', + '罚', + '焦', + '潜', + '伍', + '墨', + '欲', + '缝', + '姓', + '刊', + '饱', + '仿', + '奖', + '铝', + '鬼', + '丽', + '跨', + '默', + '挖', + '链', + '扫', + '喝', + '袋', + '炭', + '污', + '幕', + '诸', + '弧', + '励', + '梅', + '奶', + '洁', + '灾', + '舟', + '鉴', + '苯', + '讼', + '抱', + '毁', + '懂', + '寒', + '智', + '埔', + '寄', + '届', + '跃', + '渡', + '挑', + '丹', + '艰', + '贝', + '碰', + '拔', + '爹', + '戴', + '码', + '梦', + '芽', + '熔', + '赤', + '渔', + '哭', + '敬', + '颗', + '奔', + '铅', + '仲', + '虎', + '稀', + '妹', + '乏', + '珍', + '申', + '桌', + '遵', + '允', + '隆', + '螺', + '仓', + '魏', + '锐', + '晓', + '氮', + '兼', + '隐', + '碍', + '赫', + '拨', + '忠', + '肃', + '缸', + '牵', + '抢', + '博', + '巧', + '壳', + '兄', + '杜', + '讯', + '诚', + '碧', + '祥', + '柯', + '页', + '巡', + '矩', + '悲', + '灌', + '龄', + '伦', + '票', + '寻', + '桂', + '铺', + '圣', + '恐', + '恰', + '郑', + '趣', + '抬', + '荒', + '腾', + '贴', + '柔', + '滴', + '猛', + '阔', + '辆', + '妻', + '填', + '撤', + '储', + '签', + '闹', + '扰', + '紫', + '砂', + '递', + '戏', + '吊', + '陶', + '伐', + '喂', + '疗', + '瓶', + '婆', + '抚', + '臂', + '摸', + '忍', + '虾', + '蜡', + '邻', + '胸', + '巩', + '挤', + '偶', + '弃', + '槽', + '劲', + '乳', + '邓', + '吉', + '仁', + '烂', + '砖', + '租', + '乌', + '舰', + '伴', + '瓜', + '浅', + '丙', + '暂', + '燥', + '橡', + '柳', + '迷', + '暖', + '牌', + '秧', + '胆', + '详', + '簧', + '踏', + '瓷', + '谱', + '呆', + '宾', + '糊', + '洛', + '辉', + '愤', + '竞', + '隙', + '怒', + '粘', + '乃', + '绪', + '肩', + '籍', + '敏', + '涂', + '熙', + '皆', + '侦', + '悬', + '掘', + '享', + '纠', + '醒', + '狂', + '锁', + '淀', + '恨', + '牲', + '霸', + '爬', + '赏', + '逆', + '玩', + '陵', + '祝', + '秒', + '浙', + '貌', + '役', + '彼', + '悉', + '鸭', + '趋', + '凤', + '晨', + '畜', + '辈', + '秩', + '卵', + '署', + '梯', + '炎', + '滩', + '棋', + '驱', + '筛', + '峡', + '冒', + '啥', + '寿', + '译', + '浸', + '泉', + '帽', + '迟', + '硅', + '疆', + '贷', + '漏', + '稿', + '冠', + '嫩', + '胁', + '芯', + '牢', + '叛', + '蚀', + '奥', + '鸣', + '岭', + '羊', + '凭', + '串', + '塘', + '绘', + '酵', + '融', + '盆', + '锡', + '庙', + '筹', + '冻', + '辅', + '摄', + '袭', + '筋', + '拒', + '僚', + '旱', + '钾', + '鸟', + '漆', + '沈', + '眉', + '疏', + '添', + '棒', + '穗', + '硝', + '韩', + '逼', + '扭', + '侨', + '凉', + '挺', + '碗', + '栽', + '炒', + '杯', + '患', + '馏', + '劝', + '豪', + '辽', + '勃', + '鸿', + '旦', + '吏', + '拜', + '狗', + '埋', + '辊', + '掩', + '饮', + '搬', + '骂', + '辞', + '勾', + '扣', + '估', + '蒋', + '绒', + '雾', + '丈', + '朵', + '姆', + '拟', + '宇', + '辑', + '陕', + '雕', + '偿', + '蓄', + '崇', + '剪', + '倡', + '厅', + '咬', + '驶', + '薯', + '刷', + '斥', + '番', + '赋', + '奉', + '佛', + '浇', + '漫', + '曼', + '扇', + '钙', + '桃', + '扶', + '仔', + '返', + '俗', + '亏', + '腔', + '鞋', + '棱', + '覆', + '框', + '悄', + '叔', + '撞', + '骗', + '勘', + '旺', + '沸', + '孤', + '吐', + '孟', + '渠', + '屈', + '疾', + '妙', + '惜', + '仰', + '狠', + '胀', + '谐', + '抛', + '霉', + '桑', + '岗', + '嘛', + '衰', + '盗', + '渗', + '脏', + '赖', + '涌', + '甜', + '曹', + '阅', + '肌', + '哩', + '厉', + '烃', + '纬', + '毅', + '昨', + '伪', + '症', + '煮', + '叹', + '钉', + '搭', + '茎', + '笼', + '酷', + '偷', + '弓', + '锥', + '恒', + '杰', + '坑', + '鼻', + '翼', + '纶', + '叙', + '狱', + '逮', + '罐', + '络', + '棚', + '抑', + '膨', + '蔬', + '寺', + '骤', + '穆', + '冶', + '枯', + '册', + '尸', + '凸', + '绅', + '坯', + '牺', + '焰', + '轰', + '欣', + '晋', + '瘦', + '御', + '锭', + '锦', + '丧', + '旬', + '锻', + '垄', + '搜', + '扑', + '邀', + '亭', + '酯', + '迈', + '舒', + '脆', + '酶', + '闲', + '忧', + '酚', + '顽', + '羽', + '涨', + '卸', + '仗', + '陪', + '辟', + '惩', + '杭', + '姚', + '肚', + '捉', + '飘', + '漂', + '昆', + '欺', + '吾', + '郎', + '烷', + '汁', + '呵', + '饰', + '萧', + '雅', + '邮', + '迁', + '燕', + '撒', + '姻', + '赴', + '宴', + '烦', + '债', + '帐', + '斑', + '铃', + '旨', + '醇', + '董', + '饼', + '雏', + '姿', + '拌', + '傅', + '腹', + '妥', + '揉', + '贤', + '拆', + '歪', + '葡', + '胺', + '丢', + '浩', + '徽', + '昂', + '垫', + '挡', + '览', + '贪', + '慰', + '缴', + '汪', + '慌', + '冯', + '诺', + '姜', + '谊', + '凶', + '劣', + '诬', + '耀', + '昏', + '躺', + '盈', + '骑', + '乔', + '溪', + '丛', + '卢', + '抹', + '闷', + '咨', + '刮', + '驾', + '缆', + '悟', + '摘', + '铒', + '掷', + '颇', + '幻', + '柄', + '惠', + '惨', + '佳', + '仇', + '腊', + '窝', + '涤', + '剑', + '瞧', + '堡', + '泼', + '葱', + '罩', + '霍', + '捞', + '胎', + '苍', + '滨', + '俩', + '捅', + '湘', + '砍', + '霞', + '邵', + '萄', + '疯', + '淮', + '遂', + '熊', + '粪', + '烘', + '宿', + '档', + '戈', + '驳', + '嫂', + '裕', + '徙', + '箭', + '捐', + '肠', + '撑', + '晒', + '辨', + '殿', + '莲', + '摊', + '搅', + '酱', + '屏', + '疫', + '哀', + '蔡', + '堵', + '沫', + '皱', + '畅', + '叠', + '阁', + '莱', + '敲', + '辖', + '钩', + '痕', + '坝', + '巷', + '饿', + '祸', + '丘', + '玄', + '溜', + '曰', + '逻', + '彭', + '尝', + '卿', + '妨', + '艇', + '吞', + '韦', + '怨', + '矮', + '歇', +]; + +const chineseTraditional = [ + '的', + '一', + '是', + '在', + '不', + '了', + '有', + '和', + '人', + '這', + '中', + '大', + '為', + '上', + '個', + '國', + '我', + '以', + '要', + '他', + '時', + '來', + '用', + '們', + '生', + '到', + '作', + '地', + '於', + '出', + '就', + '分', + '對', + '成', + '會', + '可', + '主', + '發', + '年', + '動', + '同', + '工', + '也', + '能', + '下', + '過', + '子', + '說', + '產', + '種', + '面', + '而', + '方', + '後', + '多', + '定', + '行', + '學', + '法', + '所', + '民', + '得', + '經', + '十', + '三', + '之', + '進', + '著', + '等', + '部', + '度', + '家', + '電', + '力', + '裡', + '如', + '水', + '化', + '高', + '自', + '二', + '理', + '起', + '小', + '物', + '現', + '實', + '加', + '量', + '都', + '兩', + '體', + '制', + '機', + '當', + '使', + '點', + '從', + '業', + '本', + '去', + '把', + '性', + '好', + '應', + '開', + '它', + '合', + '還', + '因', + '由', + '其', + '些', + '然', + '前', + '外', + '天', + '政', + '四', + '日', + '那', + '社', + '義', + '事', + '平', + '形', + '相', + '全', + '表', + '間', + '樣', + '與', + '關', + '各', + '重', + '新', + '線', + '內', + '數', + '正', + '心', + '反', + '你', + '明', + '看', + '原', + '又', + '麼', + '利', + '比', + '或', + '但', + '質', + '氣', + '第', + '向', + '道', + '命', + '此', + '變', + '條', + '只', + '沒', + '結', + '解', + '問', + '意', + '建', + '月', + '公', + '無', + '系', + '軍', + '很', + '情', + '者', + '最', + '立', + '代', + '想', + '已', + '通', + '並', + '提', + '直', + '題', + '黨', + '程', + '展', + '五', + '果', + '料', + '象', + '員', + '革', + '位', + '入', + '常', + '文', + '總', + '次', + '品', + '式', + '活', + '設', + '及', + '管', + '特', + '件', + '長', + '求', + '老', + '頭', + '基', + '資', + '邊', + '流', + '路', + '級', + '少', + '圖', + '山', + '統', + '接', + '知', + '較', + '將', + '組', + '見', + '計', + '別', + '她', + '手', + '角', + '期', + '根', + '論', + '運', + '農', + '指', + '幾', + '九', + '區', + '強', + '放', + '決', + '西', + '被', + '幹', + '做', + '必', + '戰', + '先', + '回', + '則', + '任', + '取', + '據', + '處', + '隊', + '南', + '給', + '色', + '光', + '門', + '即', + '保', + '治', + '北', + '造', + '百', + '規', + '熱', + '領', + '七', + '海', + '口', + '東', + '導', + '器', + '壓', + '志', + '世', + '金', + '增', + '爭', + '濟', + '階', + '油', + '思', + '術', + '極', + '交', + '受', + '聯', + '什', + '認', + '六', + '共', + '權', + '收', + '證', + '改', + '清', + '美', + '再', + '採', + '轉', + '更', + '單', + '風', + '切', + '打', + '白', + '教', + '速', + '花', + '帶', + '安', + '場', + '身', + '車', + '例', + '真', + '務', + '具', + '萬', + '每', + '目', + '至', + '達', + '走', + '積', + '示', + '議', + '聲', + '報', + '鬥', + '完', + '類', + '八', + '離', + '華', + '名', + '確', + '才', + '科', + '張', + '信', + '馬', + '節', + '話', + '米', + '整', + '空', + '元', + '況', + '今', + '集', + '溫', + '傳', + '土', + '許', + '步', + '群', + '廣', + '石', + '記', + '需', + '段', + '研', + '界', + '拉', + '林', + '律', + '叫', + '且', + '究', + '觀', + '越', + '織', + '裝', + '影', + '算', + '低', + '持', + '音', + '眾', + '書', + '布', + '复', + '容', + '兒', + '須', + '際', + '商', + '非', + '驗', + '連', + '斷', + '深', + '難', + '近', + '礦', + '千', + '週', + '委', + '素', + '技', + '備', + '半', + '辦', + '青', + '省', + '列', + '習', + '響', + '約', + '支', + '般', + '史', + '感', + '勞', + '便', + '團', + '往', + '酸', + '歷', + '市', + '克', + '何', + '除', + '消', + '構', + '府', + '稱', + '太', + '準', + '精', + '值', + '號', + '率', + '族', + '維', + '劃', + '選', + '標', + '寫', + '存', + '候', + '毛', + '親', + '快', + '效', + '斯', + '院', + '查', + '江', + '型', + '眼', + '王', + '按', + '格', + '養', + '易', + '置', + '派', + '層', + '片', + '始', + '卻', + '專', + '狀', + '育', + '廠', + '京', + '識', + '適', + '屬', + '圓', + '包', + '火', + '住', + '調', + '滿', + '縣', + '局', + '照', + '參', + '紅', + '細', + '引', + '聽', + '該', + '鐵', + '價', + '嚴', + '首', + '底', + '液', + '官', + '德', + '隨', + '病', + '蘇', + '失', + '爾', + '死', + '講', + '配', + '女', + '黃', + '推', + '顯', + '談', + '罪', + '神', + '藝', + '呢', + '席', + '含', + '企', + '望', + '密', + '批', + '營', + '項', + '防', + '舉', + '球', + '英', + '氧', + '勢', + '告', + '李', + '台', + '落', + '木', + '幫', + '輪', + '破', + '亞', + '師', + '圍', + '注', + '遠', + '字', + '材', + '排', + '供', + '河', + '態', + '封', + '另', + '施', + '減', + '樹', + '溶', + '怎', + '止', + '案', + '言', + '士', + '均', + '武', + '固', + '葉', + '魚', + '波', + '視', + '僅', + '費', + '緊', + '愛', + '左', + '章', + '早', + '朝', + '害', + '續', + '輕', + '服', + '試', + '食', + '充', + '兵', + '源', + '判', + '護', + '司', + '足', + '某', + '練', + '差', + '致', + '板', + '田', + '降', + '黑', + '犯', + '負', + '擊', + '范', + '繼', + '興', + '似', + '餘', + '堅', + '曲', + '輸', + '修', + '故', + '城', + '夫', + '夠', + '送', + '筆', + '船', + '佔', + '右', + '財', + '吃', + '富', + '春', + '職', + '覺', + '漢', + '畫', + '功', + '巴', + '跟', + '雖', + '雜', + '飛', + '檢', + '吸', + '助', + '昇', + '陽', + '互', + '初', + '創', + '抗', + '考', + '投', + '壞', + '策', + '古', + '徑', + '換', + '未', + '跑', + '留', + '鋼', + '曾', + '端', + '責', + '站', + '簡', + '述', + '錢', + '副', + '盡', + '帝', + '射', + '草', + '衝', + '承', + '獨', + '令', + '限', + '阿', + '宣', + '環', + '雙', + '請', + '超', + '微', + '讓', + '控', + '州', + '良', + '軸', + '找', + '否', + '紀', + '益', + '依', + '優', + '頂', + '礎', + '載', + '倒', + '房', + '突', + '坐', + '粉', + '敵', + '略', + '客', + '袁', + '冷', + '勝', + '絕', + '析', + '塊', + '劑', + '測', + '絲', + '協', + '訴', + '念', + '陳', + '仍', + '羅', + '鹽', + '友', + '洋', + '錯', + '苦', + '夜', + '刑', + '移', + '頻', + '逐', + '靠', + '混', + '母', + '短', + '皮', + '終', + '聚', + '汽', + '村', + '雲', + '哪', + '既', + '距', + '衛', + '停', + '烈', + '央', + '察', + '燒', + '迅', + '境', + '若', + '印', + '洲', + '刻', + '括', + '激', + '孔', + '搞', + '甚', + '室', + '待', + '核', + '校', + '散', + '侵', + '吧', + '甲', + '遊', + '久', + '菜', + '味', + '舊', + '模', + '湖', + '貨', + '損', + '預', + '阻', + '毫', + '普', + '穩', + '乙', + '媽', + '植', + '息', + '擴', + '銀', + '語', + '揮', + '酒', + '守', + '拿', + '序', + '紙', + '醫', + '缺', + '雨', + '嗎', + '針', + '劉', + '啊', + '急', + '唱', + '誤', + '訓', + '願', + '審', + '附', + '獲', + '茶', + '鮮', + '糧', + '斤', + '孩', + '脫', + '硫', + '肥', + '善', + '龍', + '演', + '父', + '漸', + '血', + '歡', + '械', + '掌', + '歌', + '沙', + '剛', + '攻', + '謂', + '盾', + '討', + '晚', + '粒', + '亂', + '燃', + '矛', + '乎', + '殺', + '藥', + '寧', + '魯', + '貴', + '鐘', + '煤', + '讀', + '班', + '伯', + '香', + '介', + '迫', + '句', + '豐', + '培', + '握', + '蘭', + '擔', + '弦', + '蛋', + '沉', + '假', + '穿', + '執', + '答', + '樂', + '誰', + '順', + '煙', + '縮', + '徵', + '臉', + '喜', + '松', + '腳', + '困', + '異', + '免', + '背', + '星', + '福', + '買', + '染', + '井', + '概', + '慢', + '怕', + '磁', + '倍', + '祖', + '皇', + '促', + '靜', + '補', + '評', + '翻', + '肉', + '踐', + '尼', + '衣', + '寬', + '揚', + '棉', + '希', + '傷', + '操', + '垂', + '秋', + '宜', + '氫', + '套', + '督', + '振', + '架', + '亮', + '末', + '憲', + '慶', + '編', + '牛', + '觸', + '映', + '雷', + '銷', + '詩', + '座', + '居', + '抓', + '裂', + '胞', + '呼', + '娘', + '景', + '威', + '綠', + '晶', + '厚', + '盟', + '衡', + '雞', + '孫', + '延', + '危', + '膠', + '屋', + '鄉', + '臨', + '陸', + '顧', + '掉', + '呀', + '燈', + '歲', + '措', + '束', + '耐', + '劇', + '玉', + '趙', + '跳', + '哥', + '季', + '課', + '凱', + '胡', + '額', + '款', + '紹', + '卷', + '齊', + '偉', + '蒸', + '殖', + '永', + '宗', + '苗', + '川', + '爐', + '岩', + '弱', + '零', + '楊', + '奏', + '沿', + '露', + '桿', + '探', + '滑', + '鎮', + '飯', + '濃', + '航', + '懷', + '趕', + '庫', + '奪', + '伊', + '靈', + '稅', + '途', + '滅', + '賽', + '歸', + '召', + '鼓', + '播', + '盤', + '裁', + '險', + '康', + '唯', + '錄', + '菌', + '純', + '借', + '糖', + '蓋', + '橫', + '符', + '私', + '努', + '堂', + '域', + '槍', + '潤', + '幅', + '哈', + '竟', + '熟', + '蟲', + '澤', + '腦', + '壤', + '碳', + '歐', + '遍', + '側', + '寨', + '敢', + '徹', + '慮', + '斜', + '薄', + '庭', + '納', + '彈', + '飼', + '伸', + '折', + '麥', + '濕', + '暗', + '荷', + '瓦', + '塞', + '床', + '築', + '惡', + '戶', + '訪', + '塔', + '奇', + '透', + '梁', + '刀', + '旋', + '跡', + '卡', + '氯', + '遇', + '份', + '毒', + '泥', + '退', + '洗', + '擺', + '灰', + '彩', + '賣', + '耗', + '夏', + '擇', + '忙', + '銅', + '獻', + '硬', + '予', + '繁', + '圈', + '雪', + '函', + '亦', + '抽', + '篇', + '陣', + '陰', + '丁', + '尺', + '追', + '堆', + '雄', + '迎', + '泛', + '爸', + '樓', + '避', + '謀', + '噸', + '野', + '豬', + '旗', + '累', + '偏', + '典', + '館', + '索', + '秦', + '脂', + '潮', + '爺', + '豆', + '忽', + '托', + '驚', + '塑', + '遺', + '愈', + '朱', + '替', + '纖', + '粗', + '傾', + '尚', + '痛', + '楚', + '謝', + '奮', + '購', + '磨', + '君', + '池', + '旁', + '碎', + '骨', + '監', + '捕', + '弟', + '暴', + '割', + '貫', + '殊', + '釋', + '詞', + '亡', + '壁', + '頓', + '寶', + '午', + '塵', + '聞', + '揭', + '炮', + '殘', + '冬', + '橋', + '婦', + '警', + '綜', + '招', + '吳', + '付', + '浮', + '遭', + '徐', + '您', + '搖', + '谷', + '贊', + '箱', + '隔', + '訂', + '男', + '吹', + '園', + '紛', + '唐', + '敗', + '宋', + '玻', + '巨', + '耕', + '坦', + '榮', + '閉', + '灣', + '鍵', + '凡', + '駐', + '鍋', + '救', + '恩', + '剝', + '凝', + '鹼', + '齒', + '截', + '煉', + '麻', + '紡', + '禁', + '廢', + '盛', + '版', + '緩', + '淨', + '睛', + '昌', + '婚', + '涉', + '筒', + '嘴', + '插', + '岸', + '朗', + '莊', + '街', + '藏', + '姑', + '貿', + '腐', + '奴', + '啦', + '慣', + '乘', + '夥', + '恢', + '勻', + '紗', + '扎', + '辯', + '耳', + '彪', + '臣', + '億', + '璃', + '抵', + '脈', + '秀', + '薩', + '俄', + '網', + '舞', + '店', + '噴', + '縱', + '寸', + '汗', + '掛', + '洪', + '賀', + '閃', + '柬', + '爆', + '烯', + '津', + '稻', + '牆', + '軟', + '勇', + '像', + '滾', + '厘', + '蒙', + '芳', + '肯', + '坡', + '柱', + '盪', + '腿', + '儀', + '旅', + '尾', + '軋', + '冰', + '貢', + '登', + '黎', + '削', + '鑽', + '勒', + '逃', + '障', + '氨', + '郭', + '峰', + '幣', + '港', + '伏', + '軌', + '畝', + '畢', + '擦', + '莫', + '刺', + '浪', + '秘', + '援', + '株', + '健', + '售', + '股', + '島', + '甘', + '泡', + '睡', + '童', + '鑄', + '湯', + '閥', + '休', + '匯', + '舍', + '牧', + '繞', + '炸', + '哲', + '磷', + '績', + '朋', + '淡', + '尖', + '啟', + '陷', + '柴', + '呈', + '徒', + '顏', + '淚', + '稍', + '忘', + '泵', + '藍', + '拖', + '洞', + '授', + '鏡', + '辛', + '壯', + '鋒', + '貧', + '虛', + '彎', + '摩', + '泰', + '幼', + '廷', + '尊', + '窗', + '綱', + '弄', + '隸', + '疑', + '氏', + '宮', + '姐', + '震', + '瑞', + '怪', + '尤', + '琴', + '循', + '描', + '膜', + '違', + '夾', + '腰', + '緣', + '珠', + '窮', + '森', + '枝', + '竹', + '溝', + '催', + '繩', + '憶', + '邦', + '剩', + '幸', + '漿', + '欄', + '擁', + '牙', + '貯', + '禮', + '濾', + '鈉', + '紋', + '罷', + '拍', + '咱', + '喊', + '袖', + '埃', + '勤', + '罰', + '焦', + '潛', + '伍', + '墨', + '欲', + '縫', + '姓', + '刊', + '飽', + '仿', + '獎', + '鋁', + '鬼', + '麗', + '跨', + '默', + '挖', + '鏈', + '掃', + '喝', + '袋', + '炭', + '污', + '幕', + '諸', + '弧', + '勵', + '梅', + '奶', + '潔', + '災', + '舟', + '鑑', + '苯', + '訟', + '抱', + '毀', + '懂', + '寒', + '智', + '埔', + '寄', + '屆', + '躍', + '渡', + '挑', + '丹', + '艱', + '貝', + '碰', + '拔', + '爹', + '戴', + '碼', + '夢', + '芽', + '熔', + '赤', + '漁', + '哭', + '敬', + '顆', + '奔', + '鉛', + '仲', + '虎', + '稀', + '妹', + '乏', + '珍', + '申', + '桌', + '遵', + '允', + '隆', + '螺', + '倉', + '魏', + '銳', + '曉', + '氮', + '兼', + '隱', + '礙', + '赫', + '撥', + '忠', + '肅', + '缸', + '牽', + '搶', + '博', + '巧', + '殼', + '兄', + '杜', + '訊', + '誠', + '碧', + '祥', + '柯', + '頁', + '巡', + '矩', + '悲', + '灌', + '齡', + '倫', + '票', + '尋', + '桂', + '鋪', + '聖', + '恐', + '恰', + '鄭', + '趣', + '抬', + '荒', + '騰', + '貼', + '柔', + '滴', + '猛', + '闊', + '輛', + '妻', + '填', + '撤', + '儲', + '簽', + '鬧', + '擾', + '紫', + '砂', + '遞', + '戲', + '吊', + '陶', + '伐', + '餵', + '療', + '瓶', + '婆', + '撫', + '臂', + '摸', + '忍', + '蝦', + '蠟', + '鄰', + '胸', + '鞏', + '擠', + '偶', + '棄', + '槽', + '勁', + '乳', + '鄧', + '吉', + '仁', + '爛', + '磚', + '租', + '烏', + '艦', + '伴', + '瓜', + '淺', + '丙', + '暫', + '燥', + '橡', + '柳', + '迷', + '暖', + '牌', + '秧', + '膽', + '詳', + '簧', + '踏', + '瓷', + '譜', + '呆', + '賓', + '糊', + '洛', + '輝', + '憤', + '競', + '隙', + '怒', + '粘', + '乃', + '緒', + '肩', + '籍', + '敏', + '塗', + '熙', + '皆', + '偵', + '懸', + '掘', + '享', + '糾', + '醒', + '狂', + '鎖', + '淀', + '恨', + '牲', + '霸', + '爬', + '賞', + '逆', + '玩', + '陵', + '祝', + '秒', + '浙', + '貌', + '役', + '彼', + '悉', + '鴨', + '趨', + '鳳', + '晨', + '畜', + '輩', + '秩', + '卵', + '署', + '梯', + '炎', + '灘', + '棋', + '驅', + '篩', + '峽', + '冒', + '啥', + '壽', + '譯', + '浸', + '泉', + '帽', + '遲', + '矽', + '疆', + '貸', + '漏', + '稿', + '冠', + '嫩', + '脅', + '芯', + '牢', + '叛', + '蝕', + '奧', + '鳴', + '嶺', + '羊', + '憑', + '串', + '塘', + '繪', + '酵', + '融', + '盆', + '錫', + '廟', + '籌', + '凍', + '輔', + '攝', + '襲', + '筋', + '拒', + '僚', + '旱', + '鉀', + '鳥', + '漆', + '沈', + '眉', + '疏', + '添', + '棒', + '穗', + '硝', + '韓', + '逼', + '扭', + '僑', + '涼', + '挺', + '碗', + '栽', + '炒', + '杯', + '患', + '餾', + '勸', + '豪', + '遼', + '勃', + '鴻', + '旦', + '吏', + '拜', + '狗', + '埋', + '輥', + '掩', + '飲', + '搬', + '罵', + '辭', + '勾', + '扣', + '估', + '蔣', + '絨', + '霧', + '丈', + '朵', + '姆', + '擬', + '宇', + '輯', + '陝', + '雕', + '償', + '蓄', + '崇', + '剪', + '倡', + '廳', + '咬', + '駛', + '薯', + '刷', + '斥', + '番', + '賦', + '奉', + '佛', + '澆', + '漫', + '曼', + '扇', + '鈣', + '桃', + '扶', + '仔', + '返', + '俗', + '虧', + '腔', + '鞋', + '棱', + '覆', + '框', + '悄', + '叔', + '撞', + '騙', + '勘', + '旺', + '沸', + '孤', + '吐', + '孟', + '渠', + '屈', + '疾', + '妙', + '惜', + '仰', + '狠', + '脹', + '諧', + '拋', + '黴', + '桑', + '崗', + '嘛', + '衰', + '盜', + '滲', + '臟', + '賴', + '湧', + '甜', + '曹', + '閱', + '肌', + '哩', + '厲', + '烴', + '緯', + '毅', + '昨', + '偽', + '症', + '煮', + '嘆', + '釘', + '搭', + '莖', + '籠', + '酷', + '偷', + '弓', + '錐', + '恆', + '傑', + '坑', + '鼻', + '翼', + '綸', + '敘', + '獄', + '逮', + '罐', + '絡', + '棚', + '抑', + '膨', + '蔬', + '寺', + '驟', + '穆', + '冶', + '枯', + '冊', + '屍', + '凸', + '紳', + '坯', + '犧', + '焰', + '轟', + '欣', + '晉', + '瘦', + '禦', + '錠', + '錦', + '喪', + '旬', + '鍛', + '壟', + '搜', + '撲', + '邀', + '亭', + '酯', + '邁', + '舒', + '脆', + '酶', + '閒', + '憂', + '酚', + '頑', + '羽', + '漲', + '卸', + '仗', + '陪', + '闢', + '懲', + '杭', + '姚', + '肚', + '捉', + '飄', + '漂', + '昆', + '欺', + '吾', + '郎', + '烷', + '汁', + '呵', + '飾', + '蕭', + '雅', + '郵', + '遷', + '燕', + '撒', + '姻', + '赴', + '宴', + '煩', + '債', + '帳', + '斑', + '鈴', + '旨', + '醇', + '董', + '餅', + '雛', + '姿', + '拌', + '傅', + '腹', + '妥', + '揉', + '賢', + '拆', + '歪', + '葡', + '胺', + '丟', + '浩', + '徽', + '昂', + '墊', + '擋', + '覽', + '貪', + '慰', + '繳', + '汪', + '慌', + '馮', + '諾', + '姜', + '誼', + '兇', + '劣', + '誣', + '耀', + '昏', + '躺', + '盈', + '騎', + '喬', + '溪', + '叢', + '盧', + '抹', + '悶', + '諮', + '刮', + '駕', + '纜', + '悟', + '摘', + '鉺', + '擲', + '頗', + '幻', + '柄', + '惠', + '慘', + '佳', + '仇', + '臘', + '窩', + '滌', + '劍', + '瞧', + '堡', + '潑', + '蔥', + '罩', + '霍', + '撈', + '胎', + '蒼', + '濱', + '倆', + '捅', + '湘', + '砍', + '霞', + '邵', + '萄', + '瘋', + '淮', + '遂', + '熊', + '糞', + '烘', + '宿', + '檔', + '戈', + '駁', + '嫂', + '裕', + '徙', + '箭', + '捐', + '腸', + '撐', + '曬', + '辨', + '殿', + '蓮', + '攤', + '攪', + '醬', + '屏', + '疫', + '哀', + '蔡', + '堵', + '沫', + '皺', + '暢', + '疊', + '閣', + '萊', + '敲', + '轄', + '鉤', + '痕', + '壩', + '巷', + '餓', + '禍', + '丘', + '玄', + '溜', + '曰', + '邏', + '彭', + '嘗', + '卿', + '妨', + '艇', + '吞', + '韋', + '怨', + '矮', + '歇', +]; + +const czech = [ + 'abdikace', + 'abeceda', + 'adresa', + 'agrese', + 'akce', + 'aktovka', + 'alej', + 'alkohol', + 'amputace', + 'ananas', + 'andulka', + 'anekdota', + 'anketa', + 'antika', + 'anulovat', + 'archa', + 'arogance', + 'asfalt', + 'asistent', + 'aspirace', + 'astma', + 'astronom', + 'atlas', + 'atletika', + 'atol', + 'autobus', + 'azyl', + 'babka', + 'bachor', + 'bacil', + 'baculka', + 'badatel', + 'bageta', + 'bagr', + 'bahno', + 'bakterie', + 'balada', + 'baletka', + 'balkon', + 'balonek', + 'balvan', + 'balza', + 'bambus', + 'bankomat', + 'barbar', + 'baret', + 'barman', + 'baroko', + 'barva', + 'baterka', + 'batoh', + 'bavlna', + 'bazalka', + 'bazilika', + 'bazuka', + 'bedna', + 'beran', + 'beseda', + 'bestie', + 'beton', + 'bezinka', + 'bezmoc', + 'beztak', + 'bicykl', + 'bidlo', + 'biftek', + 'bikiny', + 'bilance', + 'biograf', + 'biolog', + 'bitva', + 'bizon', + 'blahobyt', + 'blatouch', + 'blecha', + 'bledule', + 'blesk', + 'blikat', + 'blizna', + 'blokovat', + 'bloudit', + 'blud', + 'bobek', + 'bobr', + 'bodlina', + 'bodnout', + 'bohatost', + 'bojkot', + 'bojovat', + 'bokorys', + 'bolest', + 'borec', + 'borovice', + 'bota', + 'boubel', + 'bouchat', + 'bouda', + 'boule', + 'bourat', + 'boxer', + 'bradavka', + 'brambora', + 'branka', + 'bratr', + 'brepta', + 'briketa', + 'brko', + 'brloh', + 'bronz', + 'broskev', + 'brunetka', + 'brusinka', + 'brzda', + 'brzy', + 'bublina', + 'bubnovat', + 'buchta', + 'buditel', + 'budka', + 'budova', + 'bufet', + 'bujarost', + 'bukvice', + 'buldok', + 'bulva', + 'bunda', + 'bunkr', + 'burza', + 'butik', + 'buvol', + 'buzola', + 'bydlet', + 'bylina', + 'bytovka', + 'bzukot', + 'capart', + 'carevna', + 'cedr', + 'cedule', + 'cejch', + 'cejn', + 'cela', + 'celer', + 'celkem', + 'celnice', + 'cenina', + 'cennost', + 'cenovka', + 'centrum', + 'cenzor', + 'cestopis', + 'cetka', + 'chalupa', + 'chapadlo', + 'charita', + 'chata', + 'chechtat', + 'chemie', + 'chichot', + 'chirurg', + 'chlad', + 'chleba', + 'chlubit', + 'chmel', + 'chmura', + 'chobot', + 'chochol', + 'chodba', + 'cholera', + 'chomout', + 'chopit', + 'choroba', + 'chov', + 'chrapot', + 'chrlit', + 'chrt', + 'chrup', + 'chtivost', + 'chudina', + 'chutnat', + 'chvat', + 'chvilka', + 'chvost', + 'chyba', + 'chystat', + 'chytit', + 'cibule', + 'cigareta', + 'cihelna', + 'cihla', + 'cinkot', + 'cirkus', + 'cisterna', + 'citace', + 'citrus', + 'cizinec', + 'cizost', + 'clona', + 'cokoliv', + 'couvat', + 'ctitel', + 'ctnost', + 'cudnost', + 'cuketa', + 'cukr', + 'cupot', + 'cvaknout', + 'cval', + 'cvik', + 'cvrkot', + 'cyklista', + 'daleko', + 'dareba', + 'datel', + 'datum', + 'dcera', + 'debata', + 'dechovka', + 'decibel', + 'deficit', + 'deflace', + 'dekl', + 'dekret', + 'demokrat', + 'deprese', + 'derby', + 'deska', + 'detektiv', + 'dikobraz', + 'diktovat', + 'dioda', + 'diplom', + 'disk', + 'displej', + 'divadlo', + 'divoch', + 'dlaha', + 'dlouho', + 'dluhopis', + 'dnes', + 'dobro', + 'dobytek', + 'docent', + 'dochutit', + 'dodnes', + 'dohled', + 'dohoda', + 'dohra', + 'dojem', + 'dojnice', + 'doklad', + 'dokola', + 'doktor', + 'dokument', + 'dolar', + 'doleva', + 'dolina', + 'doma', + 'dominant', + 'domluvit', + 'domov', + 'donutit', + 'dopad', + 'dopis', + 'doplnit', + 'doposud', + 'doprovod', + 'dopustit', + 'dorazit', + 'dorost', + 'dort', + 'dosah', + 'doslov', + 'dostatek', + 'dosud', + 'dosyta', + 'dotaz', + 'dotek', + 'dotknout', + 'doufat', + 'doutnat', + 'dovozce', + 'dozadu', + 'doznat', + 'dozorce', + 'drahota', + 'drak', + 'dramatik', + 'dravec', + 'draze', + 'drdol', + 'drobnost', + 'drogerie', + 'drozd', + 'drsnost', + 'drtit', + 'drzost', + 'duben', + 'duchovno', + 'dudek', + 'duha', + 'duhovka', + 'dusit', + 'dusno', + 'dutost', + 'dvojice', + 'dvorec', + 'dynamit', + 'ekolog', + 'ekonomie', + 'elektron', + 'elipsa', + 'email', + 'emise', + 'emoce', + 'empatie', + 'epizoda', + 'epocha', + 'epopej', + 'epos', + 'esej', + 'esence', + 'eskorta', + 'eskymo', + 'etiketa', + 'euforie', + 'evoluce', + 'exekuce', + 'exkurze', + 'expedice', + 'exploze', + 'export', + 'extrakt', + 'facka', + 'fajfka', + 'fakulta', + 'fanatik', + 'fantazie', + 'farmacie', + 'favorit', + 'fazole', + 'federace', + 'fejeton', + 'fenka', + 'fialka', + 'figurant', + 'filozof', + 'filtr', + 'finance', + 'finta', + 'fixace', + 'fjord', + 'flanel', + 'flirt', + 'flotila', + 'fond', + 'fosfor', + 'fotbal', + 'fotka', + 'foton', + 'frakce', + 'freska', + 'fronta', + 'fukar', + 'funkce', + 'fyzika', + 'galeje', + 'garant', + 'genetika', + 'geolog', + 'gilotina', + 'glazura', + 'glejt', + 'golem', + 'golfista', + 'gotika', + 'graf', + 'gramofon', + 'granule', + 'grep', + 'gril', + 'grog', + 'groteska', + 'guma', + 'hadice', + 'hadr', + 'hala', + 'halenka', + 'hanba', + 'hanopis', + 'harfa', + 'harpuna', + 'havran', + 'hebkost', + 'hejkal', + 'hejno', + 'hejtman', + 'hektar', + 'helma', + 'hematom', + 'herec', + 'herna', + 'heslo', + 'hezky', + 'historik', + 'hladovka', + 'hlasivky', + 'hlava', + 'hledat', + 'hlen', + 'hlodavec', + 'hloh', + 'hloupost', + 'hltat', + 'hlubina', + 'hluchota', + 'hmat', + 'hmota', + 'hmyz', + 'hnis', + 'hnojivo', + 'hnout', + 'hoblina', + 'hoboj', + 'hoch', + 'hodiny', + 'hodlat', + 'hodnota', + 'hodovat', + 'hojnost', + 'hokej', + 'holinka', + 'holka', + 'holub', + 'homole', + 'honitba', + 'honorace', + 'horal', + 'horda', + 'horizont', + 'horko', + 'horlivec', + 'hormon', + 'hornina', + 'horoskop', + 'horstvo', + 'hospoda', + 'hostina', + 'hotovost', + 'houba', + 'houf', + 'houpat', + 'houska', + 'hovor', + 'hradba', + 'hranice', + 'hravost', + 'hrazda', + 'hrbolek', + 'hrdina', + 'hrdlo', + 'hrdost', + 'hrnek', + 'hrobka', + 'hromada', + 'hrot', + 'hrouda', + 'hrozen', + 'hrstka', + 'hrubost', + 'hryzat', + 'hubenost', + 'hubnout', + 'hudba', + 'hukot', + 'humr', + 'husita', + 'hustota', + 'hvozd', + 'hybnost', + 'hydrant', + 'hygiena', + 'hymna', + 'hysterik', + 'idylka', + 'ihned', + 'ikona', + 'iluze', + 'imunita', + 'infekce', + 'inflace', + 'inkaso', + 'inovace', + 'inspekce', + 'internet', + 'invalida', + 'investor', + 'inzerce', + 'ironie', + 'jablko', + 'jachta', + 'jahoda', + 'jakmile', + 'jakost', + 'jalovec', + 'jantar', + 'jarmark', + 'jaro', + 'jasan', + 'jasno', + 'jatka', + 'javor', + 'jazyk', + 'jedinec', + 'jedle', + 'jednatel', + 'jehlan', + 'jekot', + 'jelen', + 'jelito', + 'jemnost', + 'jenom', + 'jepice', + 'jeseter', + 'jevit', + 'jezdec', + 'jezero', + 'jinak', + 'jindy', + 'jinoch', + 'jiskra', + 'jistota', + 'jitrnice', + 'jizva', + 'jmenovat', + 'jogurt', + 'jurta', + 'kabaret', + 'kabel', + 'kabinet', + 'kachna', + 'kadet', + 'kadidlo', + 'kahan', + 'kajak', + 'kajuta', + 'kakao', + 'kaktus', + 'kalamita', + 'kalhoty', + 'kalibr', + 'kalnost', + 'kamera', + 'kamkoliv', + 'kamna', + 'kanibal', + 'kanoe', + 'kantor', + 'kapalina', + 'kapela', + 'kapitola', + 'kapka', + 'kaple', + 'kapota', + 'kapr', + 'kapusta', + 'kapybara', + 'karamel', + 'karotka', + 'karton', + 'kasa', + 'katalog', + 'katedra', + 'kauce', + 'kauza', + 'kavalec', + 'kazajka', + 'kazeta', + 'kazivost', + 'kdekoliv', + 'kdesi', + 'kedluben', + 'kemp', + 'keramika', + 'kino', + 'klacek', + 'kladivo', + 'klam', + 'klapot', + 'klasika', + 'klaun', + 'klec', + 'klenba', + 'klepat', + 'klesnout', + 'klid', + 'klima', + 'klisna', + 'klobouk', + 'klokan', + 'klopa', + 'kloub', + 'klubovna', + 'klusat', + 'kluzkost', + 'kmen', + 'kmitat', + 'kmotr', + 'kniha', + 'knot', + 'koalice', + 'koberec', + 'kobka', + 'kobliha', + 'kobyla', + 'kocour', + 'kohout', + 'kojenec', + 'kokos', + 'koktejl', + 'kolaps', + 'koleda', + 'kolize', + 'kolo', + 'komando', + 'kometa', + 'komik', + 'komnata', + 'komora', + 'kompas', + 'komunita', + 'konat', + 'koncept', + 'kondice', + 'konec', + 'konfese', + 'kongres', + 'konina', + 'konkurs', + 'kontakt', + 'konzerva', + 'kopanec', + 'kopie', + 'kopnout', + 'koprovka', + 'korbel', + 'korektor', + 'kormidlo', + 'koroptev', + 'korpus', + 'koruna', + 'koryto', + 'korzet', + 'kosatec', + 'kostka', + 'kotel', + 'kotleta', + 'kotoul', + 'koukat', + 'koupelna', + 'kousek', + 'kouzlo', + 'kovboj', + 'koza', + 'kozoroh', + 'krabice', + 'krach', + 'krajina', + 'kralovat', + 'krasopis', + 'kravata', + 'kredit', + 'krejcar', + 'kresba', + 'kreveta', + 'kriket', + 'kritik', + 'krize', + 'krkavec', + 'krmelec', + 'krmivo', + 'krocan', + 'krok', + 'kronika', + 'kropit', + 'kroupa', + 'krovka', + 'krtek', + 'kruhadlo', + 'krupice', + 'krutost', + 'krvinka', + 'krychle', + 'krypta', + 'krystal', + 'kryt', + 'kudlanka', + 'kufr', + 'kujnost', + 'kukla', + 'kulajda', + 'kulich', + 'kulka', + 'kulomet', + 'kultura', + 'kuna', + 'kupodivu', + 'kurt', + 'kurzor', + 'kutil', + 'kvalita', + 'kvasinka', + 'kvestor', + 'kynolog', + 'kyselina', + 'kytara', + 'kytice', + 'kytka', + 'kytovec', + 'kyvadlo', + 'labrador', + 'lachtan', + 'ladnost', + 'laik', + 'lakomec', + 'lamela', + 'lampa', + 'lanovka', + 'lasice', + 'laso', + 'lastura', + 'latinka', + 'lavina', + 'lebka', + 'leckdy', + 'leden', + 'lednice', + 'ledovka', + 'ledvina', + 'legenda', + 'legie', + 'legrace', + 'lehce', + 'lehkost', + 'lehnout', + 'lektvar', + 'lenochod', + 'lentilka', + 'lepenka', + 'lepidlo', + 'letadlo', + 'letec', + 'letmo', + 'letokruh', + 'levhart', + 'levitace', + 'levobok', + 'libra', + 'lichotka', + 'lidojed', + 'lidskost', + 'lihovina', + 'lijavec', + 'lilek', + 'limetka', + 'linie', + 'linka', + 'linoleum', + 'listopad', + 'litina', + 'litovat', + 'lobista', + 'lodivod', + 'logika', + 'logoped', + 'lokalita', + 'loket', + 'lomcovat', + 'lopata', + 'lopuch', + 'lord', + 'losos', + 'lotr', + 'loudal', + 'louh', + 'louka', + 'louskat', + 'lovec', + 'lstivost', + 'lucerna', + 'lucifer', + 'lump', + 'lusk', + 'lustrace', + 'lvice', + 'lyra', + 'lyrika', + 'lysina', + 'madam', + 'madlo', + 'magistr', + 'mahagon', + 'majetek', + 'majitel', + 'majorita', + 'makak', + 'makovice', + 'makrela', + 'malba', + 'malina', + 'malovat', + 'malvice', + 'maminka', + 'mandle', + 'manko', + 'marnost', + 'masakr', + 'maskot', + 'masopust', + 'matice', + 'matrika', + 'maturita', + 'mazanec', + 'mazivo', + 'mazlit', + 'mazurka', + 'mdloba', + 'mechanik', + 'meditace', + 'medovina', + 'melasa', + 'meloun', + 'mentolka', + 'metla', + 'metoda', + 'metr', + 'mezera', + 'migrace', + 'mihnout', + 'mihule', + 'mikina', + 'mikrofon', + 'milenec', + 'milimetr', + 'milost', + 'mimika', + 'mincovna', + 'minibar', + 'minomet', + 'minulost', + 'miska', + 'mistr', + 'mixovat', + 'mladost', + 'mlha', + 'mlhovina', + 'mlok', + 'mlsat', + 'mluvit', + 'mnich', + 'mnohem', + 'mobil', + 'mocnost', + 'modelka', + 'modlitba', + 'mohyla', + 'mokro', + 'molekula', + 'momentka', + 'monarcha', + 'monokl', + 'monstrum', + 'montovat', + 'monzun', + 'mosaz', + 'moskyt', + 'most', + 'motivace', + 'motorka', + 'motyka', + 'moucha', + 'moudrost', + 'mozaika', + 'mozek', + 'mozol', + 'mramor', + 'mravenec', + 'mrkev', + 'mrtvola', + 'mrzet', + 'mrzutost', + 'mstitel', + 'mudrc', + 'muflon', + 'mulat', + 'mumie', + 'munice', + 'muset', + 'mutace', + 'muzeum', + 'muzikant', + 'myslivec', + 'mzda', + 'nabourat', + 'nachytat', + 'nadace', + 'nadbytek', + 'nadhoz', + 'nadobro', + 'nadpis', + 'nahlas', + 'nahnat', + 'nahodile', + 'nahradit', + 'naivita', + 'najednou', + 'najisto', + 'najmout', + 'naklonit', + 'nakonec', + 'nakrmit', + 'nalevo', + 'namazat', + 'namluvit', + 'nanometr', + 'naoko', + 'naopak', + 'naostro', + 'napadat', + 'napevno', + 'naplnit', + 'napnout', + 'naposled', + 'naprosto', + 'narodit', + 'naruby', + 'narychlo', + 'nasadit', + 'nasekat', + 'naslepo', + 'nastat', + 'natolik', + 'navenek', + 'navrch', + 'navzdory', + 'nazvat', + 'nebe', + 'nechat', + 'necky', + 'nedaleko', + 'nedbat', + 'neduh', + 'negace', + 'nehet', + 'nehoda', + 'nejen', + 'nejprve', + 'neklid', + 'nelibost', + 'nemilost', + 'nemoc', + 'neochota', + 'neonka', + 'nepokoj', + 'nerost', + 'nerv', + 'nesmysl', + 'nesoulad', + 'netvor', + 'neuron', + 'nevina', + 'nezvykle', + 'nicota', + 'nijak', + 'nikam', + 'nikdy', + 'nikl', + 'nikterak', + 'nitro', + 'nocleh', + 'nohavice', + 'nominace', + 'nora', + 'norek', + 'nositel', + 'nosnost', + 'nouze', + 'noviny', + 'novota', + 'nozdra', + 'nuda', + 'nudle', + 'nuget', + 'nutit', + 'nutnost', + 'nutrie', + 'nymfa', + 'obal', + 'obarvit', + 'obava', + 'obdiv', + 'obec', + 'obehnat', + 'obejmout', + 'obezita', + 'obhajoba', + 'obilnice', + 'objasnit', + 'objekt', + 'obklopit', + 'oblast', + 'oblek', + 'obliba', + 'obloha', + 'obluda', + 'obnos', + 'obohatit', + 'obojek', + 'obout', + 'obrazec', + 'obrna', + 'obruba', + 'obrys', + 'obsah', + 'obsluha', + 'obstarat', + 'obuv', + 'obvaz', + 'obvinit', + 'obvod', + 'obvykle', + 'obyvatel', + 'obzor', + 'ocas', + 'ocel', + 'ocenit', + 'ochladit', + 'ochota', + 'ochrana', + 'ocitnout', + 'odboj', + 'odbyt', + 'odchod', + 'odcizit', + 'odebrat', + 'odeslat', + 'odevzdat', + 'odezva', + 'odhadce', + 'odhodit', + 'odjet', + 'odjinud', + 'odkaz', + 'odkoupit', + 'odliv', + 'odluka', + 'odmlka', + 'odolnost', + 'odpad', + 'odpis', + 'odplout', + 'odpor', + 'odpustit', + 'odpykat', + 'odrazka', + 'odsoudit', + 'odstup', + 'odsun', + 'odtok', + 'odtud', + 'odvaha', + 'odveta', + 'odvolat', + 'odvracet', + 'odznak', + 'ofina', + 'ofsajd', + 'ohlas', + 'ohnisko', + 'ohrada', + 'ohrozit', + 'ohryzek', + 'okap', + 'okenice', + 'oklika', + 'okno', + 'okouzlit', + 'okovy', + 'okrasa', + 'okres', + 'okrsek', + 'okruh', + 'okupant', + 'okurka', + 'okusit', + 'olejnina', + 'olizovat', + 'omak', + 'omeleta', + 'omezit', + 'omladina', + 'omlouvat', + 'omluva', + 'omyl', + 'onehdy', + 'opakovat', + 'opasek', + 'operace', + 'opice', + 'opilost', + 'opisovat', + 'opora', + 'opozice', + 'opravdu', + 'oproti', + 'orbital', + 'orchestr', + 'orgie', + 'orlice', + 'orloj', + 'ortel', + 'osada', + 'oschnout', + 'osika', + 'osivo', + 'oslava', + 'oslepit', + 'oslnit', + 'oslovit', + 'osnova', + 'osoba', + 'osolit', + 'ospalec', + 'osten', + 'ostraha', + 'ostuda', + 'ostych', + 'osvojit', + 'oteplit', + 'otisk', + 'otop', + 'otrhat', + 'otrlost', + 'otrok', + 'otruby', + 'otvor', + 'ovanout', + 'ovar', + 'oves', + 'ovlivnit', + 'ovoce', + 'oxid', + 'ozdoba', + 'pachatel', + 'pacient', + 'padouch', + 'pahorek', + 'pakt', + 'palanda', + 'palec', + 'palivo', + 'paluba', + 'pamflet', + 'pamlsek', + 'panenka', + 'panika', + 'panna', + 'panovat', + 'panstvo', + 'pantofle', + 'paprika', + 'parketa', + 'parodie', + 'parta', + 'paruka', + 'paryba', + 'paseka', + 'pasivita', + 'pastelka', + 'patent', + 'patrona', + 'pavouk', + 'pazneht', + 'pazourek', + 'pecka', + 'pedagog', + 'pejsek', + 'peklo', + 'peloton', + 'penalta', + 'pendrek', + 'penze', + 'periskop', + 'pero', + 'pestrost', + 'petarda', + 'petice', + 'petrolej', + 'pevnina', + 'pexeso', + 'pianista', + 'piha', + 'pijavice', + 'pikle', + 'piknik', + 'pilina', + 'pilnost', + 'pilulka', + 'pinzeta', + 'pipeta', + 'pisatel', + 'pistole', + 'pitevna', + 'pivnice', + 'pivovar', + 'placenta', + 'plakat', + 'plamen', + 'planeta', + 'plastika', + 'platit', + 'plavidlo', + 'plaz', + 'plech', + 'plemeno', + 'plenta', + 'ples', + 'pletivo', + 'plevel', + 'plivat', + 'plnit', + 'plno', + 'plocha', + 'plodina', + 'plomba', + 'plout', + 'pluk', + 'plyn', + 'pobavit', + 'pobyt', + 'pochod', + 'pocit', + 'poctivec', + 'podat', + 'podcenit', + 'podepsat', + 'podhled', + 'podivit', + 'podklad', + 'podmanit', + 'podnik', + 'podoba', + 'podpora', + 'podraz', + 'podstata', + 'podvod', + 'podzim', + 'poezie', + 'pohanka', + 'pohnutka', + 'pohovor', + 'pohroma', + 'pohyb', + 'pointa', + 'pojistka', + 'pojmout', + 'pokazit', + 'pokles', + 'pokoj', + 'pokrok', + 'pokuta', + 'pokyn', + 'poledne', + 'polibek', + 'polknout', + 'poloha', + 'polynom', + 'pomalu', + 'pominout', + 'pomlka', + 'pomoc', + 'pomsta', + 'pomyslet', + 'ponechat', + 'ponorka', + 'ponurost', + 'popadat', + 'popel', + 'popisek', + 'poplach', + 'poprosit', + 'popsat', + 'popud', + 'poradce', + 'porce', + 'porod', + 'porucha', + 'poryv', + 'posadit', + 'posed', + 'posila', + 'poskok', + 'poslanec', + 'posoudit', + 'pospolu', + 'postava', + 'posudek', + 'posyp', + 'potah', + 'potkan', + 'potlesk', + 'potomek', + 'potrava', + 'potupa', + 'potvora', + 'poukaz', + 'pouto', + 'pouzdro', + 'povaha', + 'povidla', + 'povlak', + 'povoz', + 'povrch', + 'povstat', + 'povyk', + 'povzdech', + 'pozdrav', + 'pozemek', + 'poznatek', + 'pozor', + 'pozvat', + 'pracovat', + 'prahory', + 'praktika', + 'prales', + 'praotec', + 'praporek', + 'prase', + 'pravda', + 'princip', + 'prkno', + 'probudit', + 'procento', + 'prodej', + 'profese', + 'prohra', + 'projekt', + 'prolomit', + 'promile', + 'pronikat', + 'propad', + 'prorok', + 'prosba', + 'proton', + 'proutek', + 'provaz', + 'prskavka', + 'prsten', + 'prudkost', + 'prut', + 'prvek', + 'prvohory', + 'psanec', + 'psovod', + 'pstruh', + 'ptactvo', + 'puberta', + 'puch', + 'pudl', + 'pukavec', + 'puklina', + 'pukrle', + 'pult', + 'pumpa', + 'punc', + 'pupen', + 'pusa', + 'pusinka', + 'pustina', + 'putovat', + 'putyka', + 'pyramida', + 'pysk', + 'pytel', + 'racek', + 'rachot', + 'radiace', + 'radnice', + 'radon', + 'raft', + 'ragby', + 'raketa', + 'rakovina', + 'rameno', + 'rampouch', + 'rande', + 'rarach', + 'rarita', + 'rasovna', + 'rastr', + 'ratolest', + 'razance', + 'razidlo', + 'reagovat', + 'reakce', + 'recept', + 'redaktor', + 'referent', + 'reflex', + 'rejnok', + 'reklama', + 'rekord', + 'rekrut', + 'rektor', + 'reputace', + 'revize', + 'revma', + 'revolver', + 'rezerva', + 'riskovat', + 'riziko', + 'robotika', + 'rodokmen', + 'rohovka', + 'rokle', + 'rokoko', + 'romaneto', + 'ropovod', + 'ropucha', + 'rorejs', + 'rosol', + 'rostlina', + 'rotmistr', + 'rotoped', + 'rotunda', + 'roubenka', + 'roucho', + 'roup', + 'roura', + 'rovina', + 'rovnice', + 'rozbor', + 'rozchod', + 'rozdat', + 'rozeznat', + 'rozhodce', + 'rozinka', + 'rozjezd', + 'rozkaz', + 'rozloha', + 'rozmar', + 'rozpad', + 'rozruch', + 'rozsah', + 'roztok', + 'rozum', + 'rozvod', + 'rubrika', + 'ruchadlo', + 'rukavice', + 'rukopis', + 'ryba', + 'rybolov', + 'rychlost', + 'rydlo', + 'rypadlo', + 'rytina', + 'ryzost', + 'sadista', + 'sahat', + 'sako', + 'samec', + 'samizdat', + 'samota', + 'sanitka', + 'sardinka', + 'sasanka', + 'satelit', + 'sazba', + 'sazenice', + 'sbor', + 'schovat', + 'sebranka', + 'secese', + 'sedadlo', + 'sediment', + 'sedlo', + 'sehnat', + 'sejmout', + 'sekera', + 'sekta', + 'sekunda', + 'sekvoje', + 'semeno', + 'seno', + 'servis', + 'sesadit', + 'seshora', + 'seskok', + 'seslat', + 'sestra', + 'sesuv', + 'sesypat', + 'setba', + 'setina', + 'setkat', + 'setnout', + 'setrvat', + 'sever', + 'seznam', + 'shoda', + 'shrnout', + 'sifon', + 'silnice', + 'sirka', + 'sirotek', + 'sirup', + 'situace', + 'skafandr', + 'skalisko', + 'skanzen', + 'skaut', + 'skeptik', + 'skica', + 'skladba', + 'sklenice', + 'sklo', + 'skluz', + 'skoba', + 'skokan', + 'skoro', + 'skripta', + 'skrz', + 'skupina', + 'skvost', + 'skvrna', + 'slabika', + 'sladidlo', + 'slanina', + 'slast', + 'slavnost', + 'sledovat', + 'slepec', + 'sleva', + 'slezina', + 'slib', + 'slina', + 'sliznice', + 'slon', + 'sloupek', + 'slovo', + 'sluch', + 'sluha', + 'slunce', + 'slupka', + 'slza', + 'smaragd', + 'smetana', + 'smilstvo', + 'smlouva', + 'smog', + 'smrad', + 'smrk', + 'smrtka', + 'smutek', + 'smysl', + 'snad', + 'snaha', + 'snob', + 'sobota', + 'socha', + 'sodovka', + 'sokol', + 'sopka', + 'sotva', + 'souboj', + 'soucit', + 'soudce', + 'souhlas', + 'soulad', + 'soumrak', + 'souprava', + 'soused', + 'soutok', + 'souviset', + 'spalovna', + 'spasitel', + 'spis', + 'splav', + 'spodek', + 'spojenec', + 'spolu', + 'sponzor', + 'spornost', + 'spousta', + 'sprcha', + 'spustit', + 'sranda', + 'sraz', + 'srdce', + 'srna', + 'srnec', + 'srovnat', + 'srpen', + 'srst', + 'srub', + 'stanice', + 'starosta', + 'statika', + 'stavba', + 'stehno', + 'stezka', + 'stodola', + 'stolek', + 'stopa', + 'storno', + 'stoupat', + 'strach', + 'stres', + 'strhnout', + 'strom', + 'struna', + 'studna', + 'stupnice', + 'stvol', + 'styk', + 'subjekt', + 'subtropy', + 'suchar', + 'sudost', + 'sukno', + 'sundat', + 'sunout', + 'surikata', + 'surovina', + 'svah', + 'svalstvo', + 'svetr', + 'svatba', + 'svazek', + 'svisle', + 'svitek', + 'svoboda', + 'svodidlo', + 'svorka', + 'svrab', + 'sykavka', + 'sykot', + 'synek', + 'synovec', + 'sypat', + 'sypkost', + 'syrovost', + 'sysel', + 'sytost', + 'tabletka', + 'tabule', + 'tahoun', + 'tajemno', + 'tajfun', + 'tajga', + 'tajit', + 'tajnost', + 'taktika', + 'tamhle', + 'tampon', + 'tancovat', + 'tanec', + 'tanker', + 'tapeta', + 'tavenina', + 'tazatel', + 'technika', + 'tehdy', + 'tekutina', + 'telefon', + 'temnota', + 'tendence', + 'tenista', + 'tenor', + 'teplota', + 'tepna', + 'teprve', + 'terapie', + 'termoska', + 'textil', + 'ticho', + 'tiskopis', + 'titulek', + 'tkadlec', + 'tkanina', + 'tlapka', + 'tleskat', + 'tlukot', + 'tlupa', + 'tmel', + 'toaleta', + 'topinka', + 'topol', + 'torzo', + 'touha', + 'toulec', + 'tradice', + 'traktor', + 'tramp', + 'trasa', + 'traverza', + 'trefit', + 'trest', + 'trezor', + 'trhavina', + 'trhlina', + 'trochu', + 'trojice', + 'troska', + 'trouba', + 'trpce', + 'trpitel', + 'trpkost', + 'trubec', + 'truchlit', + 'truhlice', + 'trus', + 'trvat', + 'tudy', + 'tuhnout', + 'tuhost', + 'tundra', + 'turista', + 'turnaj', + 'tuzemsko', + 'tvaroh', + 'tvorba', + 'tvrdost', + 'tvrz', + 'tygr', + 'tykev', + 'ubohost', + 'uboze', + 'ubrat', + 'ubrousek', + 'ubrus', + 'ubytovna', + 'ucho', + 'uctivost', + 'udivit', + 'uhradit', + 'ujednat', + 'ujistit', + 'ujmout', + 'ukazatel', + 'uklidnit', + 'uklonit', + 'ukotvit', + 'ukrojit', + 'ulice', + 'ulita', + 'ulovit', + 'umyvadlo', + 'unavit', + 'uniforma', + 'uniknout', + 'upadnout', + 'uplatnit', + 'uplynout', + 'upoutat', + 'upravit', + 'uran', + 'urazit', + 'usednout', + 'usilovat', + 'usmrtit', + 'usnadnit', + 'usnout', + 'usoudit', + 'ustlat', + 'ustrnout', + 'utahovat', + 'utkat', + 'utlumit', + 'utonout', + 'utopenec', + 'utrousit', + 'uvalit', + 'uvolnit', + 'uvozovka', + 'uzdravit', + 'uzel', + 'uzenina', + 'uzlina', + 'uznat', + 'vagon', + 'valcha', + 'valoun', + 'vana', + 'vandal', + 'vanilka', + 'varan', + 'varhany', + 'varovat', + 'vcelku', + 'vchod', + 'vdova', + 'vedro', + 'vegetace', + 'vejce', + 'velbloud', + 'veletrh', + 'velitel', + 'velmoc', + 'velryba', + 'venkov', + 'veranda', + 'verze', + 'veselka', + 'veskrze', + 'vesnice', + 'vespodu', + 'vesta', + 'veterina', + 'veverka', + 'vibrace', + 'vichr', + 'videohra', + 'vidina', + 'vidle', + 'vila', + 'vinice', + 'viset', + 'vitalita', + 'vize', + 'vizitka', + 'vjezd', + 'vklad', + 'vkus', + 'vlajka', + 'vlak', + 'vlasec', + 'vlevo', + 'vlhkost', + 'vliv', + 'vlnovka', + 'vloupat', + 'vnucovat', + 'vnuk', + 'voda', + 'vodivost', + 'vodoznak', + 'vodstvo', + 'vojensky', + 'vojna', + 'vojsko', + 'volant', + 'volba', + 'volit', + 'volno', + 'voskovka', + 'vozidlo', + 'vozovna', + 'vpravo', + 'vrabec', + 'vracet', + 'vrah', + 'vrata', + 'vrba', + 'vrcholek', + 'vrhat', + 'vrstva', + 'vrtule', + 'vsadit', + 'vstoupit', + 'vstup', + 'vtip', + 'vybavit', + 'vybrat', + 'vychovat', + 'vydat', + 'vydra', + 'vyfotit', + 'vyhledat', + 'vyhnout', + 'vyhodit', + 'vyhradit', + 'vyhubit', + 'vyjasnit', + 'vyjet', + 'vyjmout', + 'vyklopit', + 'vykonat', + 'vylekat', + 'vymazat', + 'vymezit', + 'vymizet', + 'vymyslet', + 'vynechat', + 'vynikat', + 'vynutit', + 'vypadat', + 'vyplatit', + 'vypravit', + 'vypustit', + 'vyrazit', + 'vyrovnat', + 'vyrvat', + 'vyslovit', + 'vysoko', + 'vystavit', + 'vysunout', + 'vysypat', + 'vytasit', + 'vytesat', + 'vytratit', + 'vyvinout', + 'vyvolat', + 'vyvrhel', + 'vyzdobit', + 'vyznat', + 'vzadu', + 'vzbudit', + 'vzchopit', + 'vzdor', + 'vzduch', + 'vzdychat', + 'vzestup', + 'vzhledem', + 'vzkaz', + 'vzlykat', + 'vznik', + 'vzorek', + 'vzpoura', + 'vztah', + 'vztek', + 'xylofon', + 'zabrat', + 'zabydlet', + 'zachovat', + 'zadarmo', + 'zadusit', + 'zafoukat', + 'zahltit', + 'zahodit', + 'zahrada', + 'zahynout', + 'zajatec', + 'zajet', + 'zajistit', + 'zaklepat', + 'zakoupit', + 'zalepit', + 'zamezit', + 'zamotat', + 'zamyslet', + 'zanechat', + 'zanikat', + 'zaplatit', + 'zapojit', + 'zapsat', + 'zarazit', + 'zastavit', + 'zasunout', + 'zatajit', + 'zatemnit', + 'zatknout', + 'zaujmout', + 'zavalit', + 'zavelet', + 'zavinit', + 'zavolat', + 'zavrtat', + 'zazvonit', + 'zbavit', + 'zbrusu', + 'zbudovat', + 'zbytek', + 'zdaleka', + 'zdarma', + 'zdatnost', + 'zdivo', + 'zdobit', + 'zdroj', + 'zdvih', + 'zdymadlo', + 'zelenina', + 'zeman', + 'zemina', + 'zeptat', + 'zezadu', + 'zezdola', + 'zhatit', + 'zhltnout', + 'zhluboka', + 'zhotovit', + 'zhruba', + 'zima', + 'zimnice', + 'zjemnit', + 'zklamat', + 'zkoumat', + 'zkratka', + 'zkumavka', + 'zlato', + 'zlehka', + 'zloba', + 'zlom', + 'zlost', + 'zlozvyk', + 'zmapovat', + 'zmar', + 'zmatek', + 'zmije', + 'zmizet', + 'zmocnit', + 'zmodrat', + 'zmrzlina', + 'zmutovat', + 'znak', + 'znalost', + 'znamenat', + 'znovu', + 'zobrazit', + 'zotavit', + 'zoubek', + 'zoufale', + 'zplodit', + 'zpomalit', + 'zprava', + 'zprostit', + 'zprudka', + 'zprvu', + 'zrada', + 'zranit', + 'zrcadlo', + 'zrnitost', + 'zrno', + 'zrovna', + 'zrychlit', + 'zrzavost', + 'zticha', + 'ztratit', + 'zubovina', + 'zubr', + 'zvednout', + 'zvenku', + 'zvesela', + 'zvon', + 'zvrat', + 'zvukovod', + 'zvyk', +]; + +const english = [ + 'abandon', + 'ability', + 'able', + 'about', + 'above', + 'absent', + 'absorb', + 'abstract', + 'absurd', + 'abuse', + 'access', + 'accident', + 'account', + 'accuse', + 'achieve', + 'acid', + 'acoustic', + 'acquire', + 'across', + 'act', + 'action', + 'actor', + 'actress', + 'actual', + 'adapt', + 'add', + 'addict', + 'address', + 'adjust', + 'admit', + 'adult', + 'advance', + 'advice', + 'aerobic', + 'affair', + 'afford', + 'afraid', + 'again', + 'age', + 'agent', + 'agree', + 'ahead', + 'aim', + 'air', + 'airport', + 'aisle', + 'alarm', + 'album', + 'alcohol', + 'alert', + 'alien', + 'all', + 'alley', + 'allow', + 'almost', + 'alone', + 'alpha', + 'already', + 'also', + 'alter', + 'always', + 'amateur', + 'amazing', + 'among', + 'amount', + 'amused', + 'analyst', + 'anchor', + 'ancient', + 'anger', + 'angle', + 'angry', + 'animal', + 'ankle', + 'announce', + 'annual', + 'another', + 'answer', + 'antenna', + 'antique', + 'anxiety', + 'any', + 'apart', + 'apology', + 'appear', + 'apple', + 'approve', + 'april', + 'arch', + 'arctic', + 'area', + 'arena', + 'argue', + 'arm', + 'armed', + 'armor', + 'army', + 'around', + 'arrange', + 'arrest', + 'arrive', + 'arrow', + 'art', + 'artefact', + 'artist', + 'artwork', + 'ask', + 'aspect', + 'assault', + 'asset', + 'assist', + 'assume', + 'asthma', + 'athlete', + 'atom', + 'attack', + 'attend', + 'attitude', + 'attract', + 'auction', + 'audit', + 'august', + 'aunt', + 'author', + 'auto', + 'autumn', + 'average', + 'avocado', + 'avoid', + 'awake', + 'aware', + 'away', + 'awesome', + 'awful', + 'awkward', + 'axis', + 'baby', + 'bachelor', + 'bacon', + 'badge', + 'bag', + 'balance', + 'balcony', + 'ball', + 'bamboo', + 'banana', + 'banner', + 'bar', + 'barely', + 'bargain', + 'barrel', + 'base', + 'basic', + 'basket', + 'battle', + 'beach', + 'bean', + 'beauty', + 'because', + 'become', + 'beef', + 'before', + 'begin', + 'behave', + 'behind', + 'believe', + 'below', + 'belt', + 'bench', + 'benefit', + 'best', + 'betray', + 'better', + 'between', + 'beyond', + 'bicycle', + 'bid', + 'bike', + 'bind', + 'biology', + 'bird', + 'birth', + 'bitter', + 'black', + 'blade', + 'blame', + 'blanket', + 'blast', + 'bleak', + 'bless', + 'blind', + 'blood', + 'blossom', + 'blouse', + 'blue', + 'blur', + 'blush', + 'board', + 'boat', + 'body', + 'boil', + 'bomb', + 'bone', + 'bonus', + 'book', + 'boost', + 'border', + 'boring', + 'borrow', + 'boss', + 'bottom', + 'bounce', + 'box', + 'boy', + 'bracket', + 'brain', + 'brand', + 'brass', + 'brave', + 'bread', + 'breeze', + 'brick', + 'bridge', + 'brief', + 'bright', + 'bring', + 'brisk', + 'broccoli', + 'broken', + 'bronze', + 'broom', + 'brother', + 'brown', + 'brush', + 'bubble', + 'buddy', + 'budget', + 'buffalo', + 'build', + 'bulb', + 'bulk', + 'bullet', + 'bundle', + 'bunker', + 'burden', + 'burger', + 'burst', + 'bus', + 'business', + 'busy', + 'butter', + 'buyer', + 'buzz', + 'cabbage', + 'cabin', + 'cable', + 'cactus', + 'cage', + 'cake', + 'call', + 'calm', + 'camera', + 'camp', + 'can', + 'canal', + 'cancel', + 'candy', + 'cannon', + 'canoe', + 'canvas', + 'canyon', + 'capable', + 'capital', + 'captain', + 'car', + 'carbon', + 'card', + 'cargo', + 'carpet', + 'carry', + 'cart', + 'case', + 'cash', + 'casino', + 'castle', + 'casual', + 'cat', + 'catalog', + 'catch', + 'category', + 'cattle', + 'caught', + 'cause', + 'caution', + 'cave', + 'ceiling', + 'celery', + 'cement', + 'census', + 'century', + 'cereal', + 'certain', + 'chair', + 'chalk', + 'champion', + 'change', + 'chaos', + 'chapter', + 'charge', + 'chase', + 'chat', + 'cheap', + 'check', + 'cheese', + 'chef', + 'cherry', + 'chest', + 'chicken', + 'chief', + 'child', + 'chimney', + 'choice', + 'choose', + 'chronic', + 'chuckle', + 'chunk', + 'churn', + 'cigar', + 'cinnamon', + 'circle', + 'citizen', + 'city', + 'civil', + 'claim', + 'clap', + 'clarify', + 'claw', + 'clay', + 'clean', + 'clerk', + 'clever', + 'click', + 'client', + 'cliff', + 'climb', + 'clinic', + 'clip', + 'clock', + 'clog', + 'close', + 'cloth', + 'cloud', + 'clown', + 'club', + 'clump', + 'cluster', + 'clutch', + 'coach', + 'coast', + 'coconut', + 'code', + 'coffee', + 'coil', + 'coin', + 'collect', + 'color', + 'column', + 'combine', + 'come', + 'comfort', + 'comic', + 'common', + 'company', + 'concert', + 'conduct', + 'confirm', + 'congress', + 'connect', + 'consider', + 'control', + 'convince', + 'cook', + 'cool', + 'copper', + 'copy', + 'coral', + 'core', + 'corn', + 'correct', + 'cost', + 'cotton', + 'couch', + 'country', + 'couple', + 'course', + 'cousin', + 'cover', + 'coyote', + 'crack', + 'cradle', + 'craft', + 'cram', + 'crane', + 'crash', + 'crater', + 'crawl', + 'crazy', + 'cream', + 'credit', + 'creek', + 'crew', + 'cricket', + 'crime', + 'crisp', + 'critic', + 'crop', + 'cross', + 'crouch', + 'crowd', + 'crucial', + 'cruel', + 'cruise', + 'crumble', + 'crunch', + 'crush', + 'cry', + 'crystal', + 'cube', + 'culture', + 'cup', + 'cupboard', + 'curious', + 'current', + 'curtain', + 'curve', + 'cushion', + 'custom', + 'cute', + 'cycle', + 'dad', + 'damage', + 'damp', + 'dance', + 'danger', + 'daring', + 'dash', + 'daughter', + 'dawn', + 'day', + 'deal', + 'debate', + 'debris', + 'decade', + 'december', + 'decide', + 'decline', + 'decorate', + 'decrease', + 'deer', + 'defense', + 'define', + 'defy', + 'degree', + 'delay', + 'deliver', + 'demand', + 'demise', + 'denial', + 'dentist', + 'deny', + 'depart', + 'depend', + 'deposit', + 'depth', + 'deputy', + 'derive', + 'describe', + 'desert', + 'design', + 'desk', + 'despair', + 'destroy', + 'detail', + 'detect', + 'develop', + 'device', + 'devote', + 'diagram', + 'dial', + 'diamond', + 'diary', + 'dice', + 'diesel', + 'diet', + 'differ', + 'digital', + 'dignity', + 'dilemma', + 'dinner', + 'dinosaur', + 'direct', + 'dirt', + 'disagree', + 'discover', + 'disease', + 'dish', + 'dismiss', + 'disorder', + 'display', + 'distance', + 'divert', + 'divide', + 'divorce', + 'dizzy', + 'doctor', + 'document', + 'dog', + 'doll', + 'dolphin', + 'domain', + 'donate', + 'donkey', + 'donor', + 'door', + 'dose', + 'double', + 'dove', + 'draft', + 'dragon', + 'drama', + 'drastic', + 'draw', + 'dream', + 'dress', + 'drift', + 'drill', + 'drink', + 'drip', + 'drive', + 'drop', + 'drum', + 'dry', + 'duck', + 'dumb', + 'dune', + 'during', + 'dust', + 'dutch', + 'duty', + 'dwarf', + 'dynamic', + 'eager', + 'eagle', + 'early', + 'earn', + 'earth', + 'easily', + 'east', + 'easy', + 'echo', + 'ecology', + 'economy', + 'edge', + 'edit', + 'educate', + 'effort', + 'egg', + 'eight', + 'either', + 'elbow', + 'elder', + 'electric', + 'elegant', + 'element', + 'elephant', + 'elevator', + 'elite', + 'else', + 'embark', + 'embody', + 'embrace', + 'emerge', + 'emotion', + 'employ', + 'empower', + 'empty', + 'enable', + 'enact', + 'end', + 'endless', + 'endorse', + 'enemy', + 'energy', + 'enforce', + 'engage', + 'engine', + 'enhance', + 'enjoy', + 'enlist', + 'enough', + 'enrich', + 'enroll', + 'ensure', + 'enter', + 'entire', + 'entry', + 'envelope', + 'episode', + 'equal', + 'equip', + 'era', + 'erase', + 'erode', + 'erosion', + 'error', + 'erupt', + 'escape', + 'essay', + 'essence', + 'estate', + 'eternal', + 'ethics', + 'evidence', + 'evil', + 'evoke', + 'evolve', + 'exact', + 'example', + 'excess', + 'exchange', + 'excite', + 'exclude', + 'excuse', + 'execute', + 'exercise', + 'exhaust', + 'exhibit', + 'exile', + 'exist', + 'exit', + 'exotic', + 'expand', + 'expect', + 'expire', + 'explain', + 'expose', + 'express', + 'extend', + 'extra', + 'eye', + 'eyebrow', + 'fabric', + 'face', + 'faculty', + 'fade', + 'faint', + 'faith', + 'fall', + 'false', + 'fame', + 'family', + 'famous', + 'fan', + 'fancy', + 'fantasy', + 'farm', + 'fashion', + 'fat', + 'fatal', + 'father', + 'fatigue', + 'fault', + 'favorite', + 'feature', + 'february', + 'federal', + 'fee', + 'feed', + 'feel', + 'female', + 'fence', + 'festival', + 'fetch', + 'fever', + 'few', + 'fiber', + 'fiction', + 'field', + 'figure', + 'file', + 'film', + 'filter', + 'final', + 'find', + 'fine', + 'finger', + 'finish', + 'fire', + 'firm', + 'first', + 'fiscal', + 'fish', + 'fit', + 'fitness', + 'fix', + 'flag', + 'flame', + 'flash', + 'flat', + 'flavor', + 'flee', + 'flight', + 'flip', + 'float', + 'flock', + 'floor', + 'flower', + 'fluid', + 'flush', + 'fly', + 'foam', + 'focus', + 'fog', + 'foil', + 'fold', + 'follow', + 'food', + 'foot', + 'force', + 'forest', + 'forget', + 'fork', + 'fortune', + 'forum', + 'forward', + 'fossil', + 'foster', + 'found', + 'fox', + 'fragile', + 'frame', + 'frequent', + 'fresh', + 'friend', + 'fringe', + 'frog', + 'front', + 'frost', + 'frown', + 'frozen', + 'fruit', + 'fuel', + 'fun', + 'funny', + 'furnace', + 'fury', + 'future', + 'gadget', + 'gain', + 'galaxy', + 'gallery', + 'game', + 'gap', + 'garage', + 'garbage', + 'garden', + 'garlic', + 'garment', + 'gas', + 'gasp', + 'gate', + 'gather', + 'gauge', + 'gaze', + 'general', + 'genius', + 'genre', + 'gentle', + 'genuine', + 'gesture', + 'ghost', + 'giant', + 'gift', + 'giggle', + 'ginger', + 'giraffe', + 'girl', + 'give', + 'glad', + 'glance', + 'glare', + 'glass', + 'glide', + 'glimpse', + 'globe', + 'gloom', + 'glory', + 'glove', + 'glow', + 'glue', + 'goat', + 'goddess', + 'gold', + 'good', + 'goose', + 'gorilla', + 'gospel', + 'gossip', + 'govern', + 'gown', + 'grab', + 'grace', + 'grain', + 'grant', + 'grape', + 'grass', + 'gravity', + 'great', + 'green', + 'grid', + 'grief', + 'grit', + 'grocery', + 'group', + 'grow', + 'grunt', + 'guard', + 'guess', + 'guide', + 'guilt', + 'guitar', + 'gun', + 'gym', + 'habit', + 'hair', + 'half', + 'hammer', + 'hamster', + 'hand', + 'happy', + 'harbor', + 'hard', + 'harsh', + 'harvest', + 'hat', + 'have', + 'hawk', + 'hazard', + 'head', + 'health', + 'heart', + 'heavy', + 'hedgehog', + 'height', + 'hello', + 'helmet', + 'help', + 'hen', + 'hero', + 'hidden', + 'high', + 'hill', + 'hint', + 'hip', + 'hire', + 'history', + 'hobby', + 'hockey', + 'hold', + 'hole', + 'holiday', + 'hollow', + 'home', + 'honey', + 'hood', + 'hope', + 'horn', + 'horror', + 'horse', + 'hospital', + 'host', + 'hotel', + 'hour', + 'hover', + 'hub', + 'huge', + 'human', + 'humble', + 'humor', + 'hundred', + 'hungry', + 'hunt', + 'hurdle', + 'hurry', + 'hurt', + 'husband', + 'hybrid', + 'ice', + 'icon', + 'idea', + 'identify', + 'idle', + 'ignore', + 'ill', + 'illegal', + 'illness', + 'image', + 'imitate', + 'immense', + 'immune', + 'impact', + 'impose', + 'improve', + 'impulse', + 'inch', + 'include', + 'income', + 'increase', + 'index', + 'indicate', + 'indoor', + 'industry', + 'infant', + 'inflict', + 'inform', + 'inhale', + 'inherit', + 'initial', + 'inject', + 'injury', + 'inmate', + 'inner', + 'innocent', + 'input', + 'inquiry', + 'insane', + 'insect', + 'inside', + 'inspire', + 'install', + 'intact', + 'interest', + 'into', + 'invest', + 'invite', + 'involve', + 'iron', + 'island', + 'isolate', + 'issue', + 'item', + 'ivory', + 'jacket', + 'jaguar', + 'jar', + 'jazz', + 'jealous', + 'jeans', + 'jelly', + 'jewel', + 'job', + 'join', + 'joke', + 'journey', + 'joy', + 'judge', + 'juice', + 'jump', + 'jungle', + 'junior', + 'junk', + 'just', + 'kangaroo', + 'keen', + 'keep', + 'ketchup', + 'key', + 'kick', + 'kid', + 'kidney', + 'kind', + 'kingdom', + 'kiss', + 'kit', + 'kitchen', + 'kite', + 'kitten', + 'kiwi', + 'knee', + 'knife', + 'knock', + 'know', + 'lab', + 'label', + 'labor', + 'ladder', + 'lady', + 'lake', + 'lamp', + 'language', + 'laptop', + 'large', + 'later', + 'latin', + 'laugh', + 'laundry', + 'lava', + 'law', + 'lawn', + 'lawsuit', + 'layer', + 'lazy', + 'leader', + 'leaf', + 'learn', + 'leave', + 'lecture', + 'left', + 'leg', + 'legal', + 'legend', + 'leisure', + 'lemon', + 'lend', + 'length', + 'lens', + 'leopard', + 'lesson', + 'letter', + 'level', + 'liar', + 'liberty', + 'library', + 'license', + 'life', + 'lift', + 'light', + 'like', + 'limb', + 'limit', + 'link', + 'lion', + 'liquid', + 'list', + 'little', + 'live', + 'lizard', + 'load', + 'loan', + 'lobster', + 'local', + 'lock', + 'logic', + 'lonely', + 'long', + 'loop', + 'lottery', + 'loud', + 'lounge', + 'love', + 'loyal', + 'lucky', + 'luggage', + 'lumber', + 'lunar', + 'lunch', + 'luxury', + 'lyrics', + 'machine', + 'mad', + 'magic', + 'magnet', + 'maid', + 'mail', + 'main', + 'major', + 'make', + 'mammal', + 'man', + 'manage', + 'mandate', + 'mango', + 'mansion', + 'manual', + 'maple', + 'marble', + 'march', + 'margin', + 'marine', + 'market', + 'marriage', + 'mask', + 'mass', + 'master', + 'match', + 'material', + 'math', + 'matrix', + 'matter', + 'maximum', + 'maze', + 'meadow', + 'mean', + 'measure', + 'meat', + 'mechanic', + 'medal', + 'media', + 'melody', + 'melt', + 'member', + 'memory', + 'mention', + 'menu', + 'mercy', + 'merge', + 'merit', + 'merry', + 'mesh', + 'message', + 'metal', + 'method', + 'middle', + 'midnight', + 'milk', + 'million', + 'mimic', + 'mind', + 'minimum', + 'minor', + 'minute', + 'miracle', + 'mirror', + 'misery', + 'miss', + 'mistake', + 'mix', + 'mixed', + 'mixture', + 'mobile', + 'model', + 'modify', + 'mom', + 'moment', + 'monitor', + 'monkey', + 'monster', + 'month', + 'moon', + 'moral', + 'more', + 'morning', + 'mosquito', + 'mother', + 'motion', + 'motor', + 'mountain', + 'mouse', + 'move', + 'movie', + 'much', + 'muffin', + 'mule', + 'multiply', + 'muscle', + 'museum', + 'mushroom', + 'music', + 'must', + 'mutual', + 'myself', + 'mystery', + 'myth', + 'naive', + 'name', + 'napkin', + 'narrow', + 'nasty', + 'nation', + 'nature', + 'near', + 'neck', + 'need', + 'negative', + 'neglect', + 'neither', + 'nephew', + 'nerve', + 'nest', + 'net', + 'network', + 'neutral', + 'never', + 'news', + 'next', + 'nice', + 'night', + 'noble', + 'noise', + 'nominee', + 'noodle', + 'normal', + 'north', + 'nose', + 'notable', + 'note', + 'nothing', + 'notice', + 'novel', + 'now', + 'nuclear', + 'number', + 'nurse', + 'nut', + 'oak', + 'obey', + 'object', + 'oblige', + 'obscure', + 'observe', + 'obtain', + 'obvious', + 'occur', + 'ocean', + 'october', + 'odor', + 'off', + 'offer', + 'office', + 'often', + 'oil', + 'okay', + 'old', + 'olive', + 'olympic', + 'omit', + 'once', + 'one', + 'onion', + 'online', + 'only', + 'open', + 'opera', + 'opinion', + 'oppose', + 'option', + 'orange', + 'orbit', + 'orchard', + 'order', + 'ordinary', + 'organ', + 'orient', + 'original', + 'orphan', + 'ostrich', + 'other', + 'outdoor', + 'outer', + 'output', + 'outside', + 'oval', + 'oven', + 'over', + 'own', + 'owner', + 'oxygen', + 'oyster', + 'ozone', + 'pact', + 'paddle', + 'page', + 'pair', + 'palace', + 'palm', + 'panda', + 'panel', + 'panic', + 'panther', + 'paper', + 'parade', + 'parent', + 'park', + 'parrot', + 'party', + 'pass', + 'patch', + 'path', + 'patient', + 'patrol', + 'pattern', + 'pause', + 'pave', + 'payment', + 'peace', + 'peanut', + 'pear', + 'peasant', + 'pelican', + 'pen', + 'penalty', + 'pencil', + 'people', + 'pepper', + 'perfect', + 'permit', + 'person', + 'pet', + 'phone', + 'photo', + 'phrase', + 'physical', + 'piano', + 'picnic', + 'picture', + 'piece', + 'pig', + 'pigeon', + 'pill', + 'pilot', + 'pink', + 'pioneer', + 'pipe', + 'pistol', + 'pitch', + 'pizza', + 'place', + 'planet', + 'plastic', + 'plate', + 'play', + 'please', + 'pledge', + 'pluck', + 'plug', + 'plunge', + 'poem', + 'poet', + 'point', + 'polar', + 'pole', + 'police', + 'pond', + 'pony', + 'pool', + 'popular', + 'portion', + 'position', + 'possible', + 'post', + 'potato', + 'pottery', + 'poverty', + 'powder', + 'power', + 'practice', + 'praise', + 'predict', + 'prefer', + 'prepare', + 'present', + 'pretty', + 'prevent', + 'price', + 'pride', + 'primary', + 'print', + 'priority', + 'prison', + 'private', + 'prize', + 'problem', + 'process', + 'produce', + 'profit', + 'program', + 'project', + 'promote', + 'proof', + 'property', + 'prosper', + 'protect', + 'proud', + 'provide', + 'public', + 'pudding', + 'pull', + 'pulp', + 'pulse', + 'pumpkin', + 'punch', + 'pupil', + 'puppy', + 'purchase', + 'purity', + 'purpose', + 'purse', + 'push', + 'put', + 'puzzle', + 'pyramid', + 'quality', + 'quantum', + 'quarter', + 'question', + 'quick', + 'quit', + 'quiz', + 'quote', + 'rabbit', + 'raccoon', + 'race', + 'rack', + 'radar', + 'radio', + 'rail', + 'rain', + 'raise', + 'rally', + 'ramp', + 'ranch', + 'random', + 'range', + 'rapid', + 'rare', + 'rate', + 'rather', + 'raven', + 'raw', + 'razor', + 'ready', + 'real', + 'reason', + 'rebel', + 'rebuild', + 'recall', + 'receive', + 'recipe', + 'record', + 'recycle', + 'reduce', + 'reflect', + 'reform', + 'refuse', + 'region', + 'regret', + 'regular', + 'reject', + 'relax', + 'release', + 'relief', + 'rely', + 'remain', + 'remember', + 'remind', + 'remove', + 'render', + 'renew', + 'rent', + 'reopen', + 'repair', + 'repeat', + 'replace', + 'report', + 'require', + 'rescue', + 'resemble', + 'resist', + 'resource', + 'response', + 'result', + 'retire', + 'retreat', + 'return', + 'reunion', + 'reveal', + 'review', + 'reward', + 'rhythm', + 'rib', + 'ribbon', + 'rice', + 'rich', + 'ride', + 'ridge', + 'rifle', + 'right', + 'rigid', + 'ring', + 'riot', + 'ripple', + 'risk', + 'ritual', + 'rival', + 'river', + 'road', + 'roast', + 'robot', + 'robust', + 'rocket', + 'romance', + 'roof', + 'rookie', + 'room', + 'rose', + 'rotate', + 'rough', + 'round', + 'route', + 'royal', + 'rubber', + 'rude', + 'rug', + 'rule', + 'run', + 'runway', + 'rural', + 'sad', + 'saddle', + 'sadness', + 'safe', + 'sail', + 'salad', + 'salmon', + 'salon', + 'salt', + 'salute', + 'same', + 'sample', + 'sand', + 'satisfy', + 'satoshi', + 'sauce', + 'sausage', + 'save', + 'say', + 'scale', + 'scan', + 'scare', + 'scatter', + 'scene', + 'scheme', + 'school', + 'science', + 'scissors', + 'scorpion', + 'scout', + 'scrap', + 'screen', + 'script', + 'scrub', + 'sea', + 'search', + 'season', + 'seat', + 'second', + 'secret', + 'section', + 'security', + 'seed', + 'seek', + 'segment', + 'select', + 'sell', + 'seminar', + 'senior', + 'sense', + 'sentence', + 'series', + 'service', + 'session', + 'settle', + 'setup', + 'seven', + 'shadow', + 'shaft', + 'shallow', + 'share', + 'shed', + 'shell', + 'sheriff', + 'shield', + 'shift', + 'shine', + 'ship', + 'shiver', + 'shock', + 'shoe', + 'shoot', + 'shop', + 'short', + 'shoulder', + 'shove', + 'shrimp', + 'shrug', + 'shuffle', + 'shy', + 'sibling', + 'sick', + 'side', + 'siege', + 'sight', + 'sign', + 'silent', + 'silk', + 'silly', + 'silver', + 'similar', + 'simple', + 'since', + 'sing', + 'siren', + 'sister', + 'situate', + 'six', + 'size', + 'skate', + 'sketch', + 'ski', + 'skill', + 'skin', + 'skirt', + 'skull', + 'slab', + 'slam', + 'sleep', + 'slender', + 'slice', + 'slide', + 'slight', + 'slim', + 'slogan', + 'slot', + 'slow', + 'slush', + 'small', + 'smart', + 'smile', + 'smoke', + 'smooth', + 'snack', + 'snake', + 'snap', + 'sniff', + 'snow', + 'soap', + 'soccer', + 'social', + 'sock', + 'soda', + 'soft', + 'solar', + 'soldier', + 'solid', + 'solution', + 'solve', + 'someone', + 'song', + 'soon', + 'sorry', + 'sort', + 'soul', + 'sound', + 'soup', + 'source', + 'south', + 'space', + 'spare', + 'spatial', + 'spawn', + 'speak', + 'special', + 'speed', + 'spell', + 'spend', + 'sphere', + 'spice', + 'spider', + 'spike', + 'spin', + 'spirit', + 'split', + 'spoil', + 'sponsor', + 'spoon', + 'sport', + 'spot', + 'spray', + 'spread', + 'spring', + 'spy', + 'square', + 'squeeze', + 'squirrel', + 'stable', + 'stadium', + 'staff', + 'stage', + 'stairs', + 'stamp', + 'stand', + 'start', + 'state', + 'stay', + 'steak', + 'steel', + 'stem', + 'step', + 'stereo', + 'stick', + 'still', + 'sting', + 'stock', + 'stomach', + 'stone', + 'stool', + 'story', + 'stove', + 'strategy', + 'street', + 'strike', + 'strong', + 'struggle', + 'student', + 'stuff', + 'stumble', + 'style', + 'subject', + 'submit', + 'subway', + 'success', + 'such', + 'sudden', + 'suffer', + 'sugar', + 'suggest', + 'suit', + 'summer', + 'sun', + 'sunny', + 'sunset', + 'super', + 'supply', + 'supreme', + 'sure', + 'surface', + 'surge', + 'surprise', + 'surround', + 'survey', + 'suspect', + 'sustain', + 'swallow', + 'swamp', + 'swap', + 'swarm', + 'swear', + 'sweet', + 'swift', + 'swim', + 'swing', + 'switch', + 'sword', + 'symbol', + 'symptom', + 'syrup', + 'system', + 'table', + 'tackle', + 'tag', + 'tail', + 'talent', + 'talk', + 'tank', + 'tape', + 'target', + 'task', + 'taste', + 'tattoo', + 'taxi', + 'teach', + 'team', + 'tell', + 'ten', + 'tenant', + 'tennis', + 'tent', + 'term', + 'test', + 'text', + 'thank', + 'that', + 'theme', + 'then', + 'theory', + 'there', + 'they', + 'thing', + 'this', + 'thought', + 'three', + 'thrive', + 'throw', + 'thumb', + 'thunder', + 'ticket', + 'tide', + 'tiger', + 'tilt', + 'timber', + 'time', + 'tiny', + 'tip', + 'tired', + 'tissue', + 'title', + 'toast', + 'tobacco', + 'today', + 'toddler', + 'toe', + 'together', + 'toilet', + 'token', + 'tomato', + 'tomorrow', + 'tone', + 'tongue', + 'tonight', + 'tool', + 'tooth', + 'top', + 'topic', + 'topple', + 'torch', + 'tornado', + 'tortoise', + 'toss', + 'total', + 'tourist', + 'toward', + 'tower', + 'town', + 'toy', + 'track', + 'trade', + 'traffic', + 'tragic', + 'train', + 'transfer', + 'trap', + 'trash', + 'travel', + 'tray', + 'treat', + 'tree', + 'trend', + 'trial', + 'tribe', + 'trick', + 'trigger', + 'trim', + 'trip', + 'trophy', + 'trouble', + 'truck', + 'true', + 'truly', + 'trumpet', + 'trust', + 'truth', + 'try', + 'tube', + 'tuition', + 'tumble', + 'tuna', + 'tunnel', + 'turkey', + 'turn', + 'turtle', + 'twelve', + 'twenty', + 'twice', + 'twin', + 'twist', + 'two', + 'type', + 'typical', + 'ugly', + 'umbrella', + 'unable', + 'unaware', + 'uncle', + 'uncover', + 'under', + 'undo', + 'unfair', + 'unfold', + 'unhappy', + 'uniform', + 'unique', + 'unit', + 'universe', + 'unknown', + 'unlock', + 'until', + 'unusual', + 'unveil', + 'update', + 'upgrade', + 'uphold', + 'upon', + 'upper', + 'upset', + 'urban', + 'urge', + 'usage', + 'use', + 'used', + 'useful', + 'useless', + 'usual', + 'utility', + 'vacant', + 'vacuum', + 'vague', + 'valid', + 'valley', + 'valve', + 'van', + 'vanish', + 'vapor', + 'various', + 'vast', + 'vault', + 'vehicle', + 'velvet', + 'vendor', + 'venture', + 'venue', + 'verb', + 'verify', + 'version', + 'very', + 'vessel', + 'veteran', + 'viable', + 'vibrant', + 'vicious', + 'victory', + 'video', + 'view', + 'village', + 'vintage', + 'violin', + 'virtual', + 'virus', + 'visa', + 'visit', + 'visual', + 'vital', + 'vivid', + 'vocal', + 'voice', + 'void', + 'volcano', + 'volume', + 'vote', + 'voyage', + 'wage', + 'wagon', + 'wait', + 'walk', + 'wall', + 'walnut', + 'want', + 'warfare', + 'warm', + 'warrior', + 'wash', + 'wasp', + 'waste', + 'water', + 'wave', + 'way', + 'wealth', + 'weapon', + 'wear', + 'weasel', + 'weather', + 'web', + 'wedding', + 'weekend', + 'weird', + 'welcome', + 'west', + 'wet', + 'whale', + 'what', + 'wheat', + 'wheel', + 'when', + 'where', + 'whip', + 'whisper', + 'wide', + 'width', + 'wife', + 'wild', + 'will', + 'win', + 'window', + 'wine', + 'wing', + 'wink', + 'winner', + 'winter', + 'wire', + 'wisdom', + 'wise', + 'wish', + 'witness', + 'wolf', + 'woman', + 'wonder', + 'wood', + 'wool', + 'word', + 'work', + 'world', + 'worry', + 'worth', + 'wrap', + 'wreck', + 'wrestle', + 'wrist', + 'write', + 'wrong', + 'yard', + 'year', + 'yellow', + 'you', + 'young', + 'youth', + 'zebra', + 'zero', + 'zone', + 'zoo', +]; + +const french = [ + 'abaisser', + 'abandon', + 'abdiquer', + 'abeille', + 'abolir', + 'aborder', + 'aboutir', + 'aboyer', + 'abrasif', + 'abreuver', + 'abriter', + 'abroger', + 'abrupt', + 'absence', + 'absolu', + 'absurde', + 'abusif', + 'abyssal', + 'académie', + 'acajou', + 'acarien', + 'accabler', + 'accepter', + 'acclamer', + 'accolade', + 'accroche', + 'accuser', + 'acerbe', + 'achat', + 'acheter', + 'aciduler', + 'acier', + 'acompte', + 'acquérir', + 'acronyme', + 'acteur', + 'actif', + 'actuel', + 'adepte', + 'adéquat', + 'adhésif', + 'adjectif', + 'adjuger', + 'admettre', + 'admirer', + 'adopter', + 'adorer', + 'adoucir', + 'adresse', + 'adroit', + 'adulte', + 'adverbe', + 'aérer', + 'aéronef', + 'affaire', + 'affecter', + 'affiche', + 'affreux', + 'affubler', + 'agacer', + 'agencer', + 'agile', + 'agiter', + 'agrafer', + 'agréable', + 'agrume', + 'aider', + 'aiguille', + 'ailier', + 'aimable', + 'aisance', + 'ajouter', + 'ajuster', + 'alarmer', + 'alchimie', + 'alerte', + 'algèbre', + 'algue', + 'aliéner', + 'aliment', + 'alléger', + 'alliage', + 'allouer', + 'allumer', + 'alourdir', + 'alpaga', + 'altesse', + 'alvéole', + 'amateur', + 'ambigu', + 'ambre', + 'aménager', + 'amertume', + 'amidon', + 'amiral', + 'amorcer', + 'amour', + 'amovible', + 'amphibie', + 'ampleur', + 'amusant', + 'analyse', + 'anaphore', + 'anarchie', + 'anatomie', + 'ancien', + 'anéantir', + 'angle', + 'angoisse', + 'anguleux', + 'animal', + 'annexer', + 'annonce', + 'annuel', + 'anodin', + 'anomalie', + 'anonyme', + 'anormal', + 'antenne', + 'antidote', + 'anxieux', + 'apaiser', + 'apéritif', + 'aplanir', + 'apologie', + 'appareil', + 'appeler', + 'apporter', + 'appuyer', + 'aquarium', + 'aqueduc', + 'arbitre', + 'arbuste', + 'ardeur', + 'ardoise', + 'argent', + 'arlequin', + 'armature', + 'armement', + 'armoire', + 'armure', + 'arpenter', + 'arracher', + 'arriver', + 'arroser', + 'arsenic', + 'artériel', + 'article', + 'aspect', + 'asphalte', + 'aspirer', + 'assaut', + 'asservir', + 'assiette', + 'associer', + 'assurer', + 'asticot', + 'astre', + 'astuce', + 'atelier', + 'atome', + 'atrium', + 'atroce', + 'attaque', + 'attentif', + 'attirer', + 'attraper', + 'aubaine', + 'auberge', + 'audace', + 'audible', + 'augurer', + 'aurore', + 'automne', + 'autruche', + 'avaler', + 'avancer', + 'avarice', + 'avenir', + 'averse', + 'aveugle', + 'aviateur', + 'avide', + 'avion', + 'aviser', + 'avoine', + 'avouer', + 'avril', + 'axial', + 'axiome', + 'badge', + 'bafouer', + 'bagage', + 'baguette', + 'baignade', + 'balancer', + 'balcon', + 'baleine', + 'balisage', + 'bambin', + 'bancaire', + 'bandage', + 'banlieue', + 'bannière', + 'banquier', + 'barbier', + 'baril', + 'baron', + 'barque', + 'barrage', + 'bassin', + 'bastion', + 'bataille', + 'bateau', + 'batterie', + 'baudrier', + 'bavarder', + 'belette', + 'bélier', + 'belote', + 'bénéfice', + 'berceau', + 'berger', + 'berline', + 'bermuda', + 'besace', + 'besogne', + 'bétail', + 'beurre', + 'biberon', + 'bicycle', + 'bidule', + 'bijou', + 'bilan', + 'bilingue', + 'billard', + 'binaire', + 'biologie', + 'biopsie', + 'biotype', + 'biscuit', + 'bison', + 'bistouri', + 'bitume', + 'bizarre', + 'blafard', + 'blague', + 'blanchir', + 'blessant', + 'blinder', + 'blond', + 'bloquer', + 'blouson', + 'bobard', + 'bobine', + 'boire', + 'boiser', + 'bolide', + 'bonbon', + 'bondir', + 'bonheur', + 'bonifier', + 'bonus', + 'bordure', + 'borne', + 'botte', + 'boucle', + 'boueux', + 'bougie', + 'boulon', + 'bouquin', + 'bourse', + 'boussole', + 'boutique', + 'boxeur', + 'branche', + 'brasier', + 'brave', + 'brebis', + 'brèche', + 'breuvage', + 'bricoler', + 'brigade', + 'brillant', + 'brioche', + 'brique', + 'brochure', + 'broder', + 'bronzer', + 'brousse', + 'broyeur', + 'brume', + 'brusque', + 'brutal', + 'bruyant', + 'buffle', + 'buisson', + 'bulletin', + 'bureau', + 'burin', + 'bustier', + 'butiner', + 'butoir', + 'buvable', + 'buvette', + 'cabanon', + 'cabine', + 'cachette', + 'cadeau', + 'cadre', + 'caféine', + 'caillou', + 'caisson', + 'calculer', + 'calepin', + 'calibre', + 'calmer', + 'calomnie', + 'calvaire', + 'camarade', + 'caméra', + 'camion', + 'campagne', + 'canal', + 'caneton', + 'canon', + 'cantine', + 'canular', + 'capable', + 'caporal', + 'caprice', + 'capsule', + 'capter', + 'capuche', + 'carabine', + 'carbone', + 'caresser', + 'caribou', + 'carnage', + 'carotte', + 'carreau', + 'carton', + 'cascade', + 'casier', + 'casque', + 'cassure', + 'causer', + 'caution', + 'cavalier', + 'caverne', + 'caviar', + 'cédille', + 'ceinture', + 'céleste', + 'cellule', + 'cendrier', + 'censurer', + 'central', + 'cercle', + 'cérébral', + 'cerise', + 'cerner', + 'cerveau', + 'cesser', + 'chagrin', + 'chaise', + 'chaleur', + 'chambre', + 'chance', + 'chapitre', + 'charbon', + 'chasseur', + 'chaton', + 'chausson', + 'chavirer', + 'chemise', + 'chenille', + 'chéquier', + 'chercher', + 'cheval', + 'chien', + 'chiffre', + 'chignon', + 'chimère', + 'chiot', + 'chlorure', + 'chocolat', + 'choisir', + 'chose', + 'chouette', + 'chrome', + 'chute', + 'cigare', + 'cigogne', + 'cimenter', + 'cinéma', + 'cintrer', + 'circuler', + 'cirer', + 'cirque', + 'citerne', + 'citoyen', + 'citron', + 'civil', + 'clairon', + 'clameur', + 'claquer', + 'classe', + 'clavier', + 'client', + 'cligner', + 'climat', + 'clivage', + 'cloche', + 'clonage', + 'cloporte', + 'cobalt', + 'cobra', + 'cocasse', + 'cocotier', + 'coder', + 'codifier', + 'coffre', + 'cogner', + 'cohésion', + 'coiffer', + 'coincer', + 'colère', + 'colibri', + 'colline', + 'colmater', + 'colonel', + 'combat', + 'comédie', + 'commande', + 'compact', + 'concert', + 'conduire', + 'confier', + 'congeler', + 'connoter', + 'consonne', + 'contact', + 'convexe', + 'copain', + 'copie', + 'corail', + 'corbeau', + 'cordage', + 'corniche', + 'corpus', + 'correct', + 'cortège', + 'cosmique', + 'costume', + 'coton', + 'coude', + 'coupure', + 'courage', + 'couteau', + 'couvrir', + 'coyote', + 'crabe', + 'crainte', + 'cravate', + 'crayon', + 'créature', + 'créditer', + 'crémeux', + 'creuser', + 'crevette', + 'cribler', + 'crier', + 'cristal', + 'critère', + 'croire', + 'croquer', + 'crotale', + 'crucial', + 'cruel', + 'crypter', + 'cubique', + 'cueillir', + 'cuillère', + 'cuisine', + 'cuivre', + 'culminer', + 'cultiver', + 'cumuler', + 'cupide', + 'curatif', + 'curseur', + 'cyanure', + 'cycle', + 'cylindre', + 'cynique', + 'daigner', + 'damier', + 'danger', + 'danseur', + 'dauphin', + 'débattre', + 'débiter', + 'déborder', + 'débrider', + 'débutant', + 'décaler', + 'décembre', + 'déchirer', + 'décider', + 'déclarer', + 'décorer', + 'décrire', + 'décupler', + 'dédale', + 'déductif', + 'déesse', + 'défensif', + 'défiler', + 'défrayer', + 'dégager', + 'dégivrer', + 'déglutir', + 'dégrafer', + 'déjeuner', + 'délice', + 'déloger', + 'demander', + 'demeurer', + 'démolir', + 'dénicher', + 'dénouer', + 'dentelle', + 'dénuder', + 'départ', + 'dépenser', + 'déphaser', + 'déplacer', + 'déposer', + 'déranger', + 'dérober', + 'désastre', + 'descente', + 'désert', + 'désigner', + 'désobéir', + 'dessiner', + 'destrier', + 'détacher', + 'détester', + 'détourer', + 'détresse', + 'devancer', + 'devenir', + 'deviner', + 'devoir', + 'diable', + 'dialogue', + 'diamant', + 'dicter', + 'différer', + 'digérer', + 'digital', + 'digne', + 'diluer', + 'dimanche', + 'diminuer', + 'dioxyde', + 'directif', + 'diriger', + 'discuter', + 'disposer', + 'dissiper', + 'distance', + 'divertir', + 'diviser', + 'docile', + 'docteur', + 'dogme', + 'doigt', + 'domaine', + 'domicile', + 'dompter', + 'donateur', + 'donjon', + 'donner', + 'dopamine', + 'dortoir', + 'dorure', + 'dosage', + 'doseur', + 'dossier', + 'dotation', + 'douanier', + 'double', + 'douceur', + 'douter', + 'doyen', + 'dragon', + 'draper', + 'dresser', + 'dribbler', + 'droiture', + 'duperie', + 'duplexe', + 'durable', + 'durcir', + 'dynastie', + 'éblouir', + 'écarter', + 'écharpe', + 'échelle', + 'éclairer', + 'éclipse', + 'éclore', + 'écluse', + 'école', + 'économie', + 'écorce', + 'écouter', + 'écraser', + 'écrémer', + 'écrivain', + 'écrou', + 'écume', + 'écureuil', + 'édifier', + 'éduquer', + 'effacer', + 'effectif', + 'effigie', + 'effort', + 'effrayer', + 'effusion', + 'égaliser', + 'égarer', + 'éjecter', + 'élaborer', + 'élargir', + 'électron', + 'élégant', + 'éléphant', + 'élève', + 'éligible', + 'élitisme', + 'éloge', + 'élucider', + 'éluder', + 'emballer', + 'embellir', + 'embryon', + 'émeraude', + 'émission', + 'emmener', + 'émotion', + 'émouvoir', + 'empereur', + 'employer', + 'emporter', + 'emprise', + 'émulsion', + 'encadrer', + 'enchère', + 'enclave', + 'encoche', + 'endiguer', + 'endosser', + 'endroit', + 'enduire', + 'énergie', + 'enfance', + 'enfermer', + 'enfouir', + 'engager', + 'engin', + 'englober', + 'énigme', + 'enjamber', + 'enjeu', + 'enlever', + 'ennemi', + 'ennuyeux', + 'enrichir', + 'enrobage', + 'enseigne', + 'entasser', + 'entendre', + 'entier', + 'entourer', + 'entraver', + 'énumérer', + 'envahir', + 'enviable', + 'envoyer', + 'enzyme', + 'éolien', + 'épaissir', + 'épargne', + 'épatant', + 'épaule', + 'épicerie', + 'épidémie', + 'épier', + 'épilogue', + 'épine', + 'épisode', + 'épitaphe', + 'époque', + 'épreuve', + 'éprouver', + 'épuisant', + 'équerre', + 'équipe', + 'ériger', + 'érosion', + 'erreur', + 'éruption', + 'escalier', + 'espadon', + 'espèce', + 'espiègle', + 'espoir', + 'esprit', + 'esquiver', + 'essayer', + 'essence', + 'essieu', + 'essorer', + 'estime', + 'estomac', + 'estrade', + 'étagère', + 'étaler', + 'étanche', + 'étatique', + 'éteindre', + 'étendoir', + 'éternel', + 'éthanol', + 'éthique', + 'ethnie', + 'étirer', + 'étoffer', + 'étoile', + 'étonnant', + 'étourdir', + 'étrange', + 'étroit', + 'étude', + 'euphorie', + 'évaluer', + 'évasion', + 'éventail', + 'évidence', + 'éviter', + 'évolutif', + 'évoquer', + 'exact', + 'exagérer', + 'exaucer', + 'exceller', + 'excitant', + 'exclusif', + 'excuse', + 'exécuter', + 'exemple', + 'exercer', + 'exhaler', + 'exhorter', + 'exigence', + 'exiler', + 'exister', + 'exotique', + 'expédier', + 'explorer', + 'exposer', + 'exprimer', + 'exquis', + 'extensif', + 'extraire', + 'exulter', + 'fable', + 'fabuleux', + 'facette', + 'facile', + 'facture', + 'faiblir', + 'falaise', + 'fameux', + 'famille', + 'farceur', + 'farfelu', + 'farine', + 'farouche', + 'fasciner', + 'fatal', + 'fatigue', + 'faucon', + 'fautif', + 'faveur', + 'favori', + 'fébrile', + 'féconder', + 'fédérer', + 'félin', + 'femme', + 'fémur', + 'fendoir', + 'féodal', + 'fermer', + 'féroce', + 'ferveur', + 'festival', + 'feuille', + 'feutre', + 'février', + 'fiasco', + 'ficeler', + 'fictif', + 'fidèle', + 'figure', + 'filature', + 'filetage', + 'filière', + 'filleul', + 'filmer', + 'filou', + 'filtrer', + 'financer', + 'finir', + 'fiole', + 'firme', + 'fissure', + 'fixer', + 'flairer', + 'flamme', + 'flasque', + 'flatteur', + 'fléau', + 'flèche', + 'fleur', + 'flexion', + 'flocon', + 'flore', + 'fluctuer', + 'fluide', + 'fluvial', + 'folie', + 'fonderie', + 'fongible', + 'fontaine', + 'forcer', + 'forgeron', + 'formuler', + 'fortune', + 'fossile', + 'foudre', + 'fougère', + 'fouiller', + 'foulure', + 'fourmi', + 'fragile', + 'fraise', + 'franchir', + 'frapper', + 'frayeur', + 'frégate', + 'freiner', + 'frelon', + 'frémir', + 'frénésie', + 'frère', + 'friable', + 'friction', + 'frisson', + 'frivole', + 'froid', + 'fromage', + 'frontal', + 'frotter', + 'fruit', + 'fugitif', + 'fuite', + 'fureur', + 'furieux', + 'furtif', + 'fusion', + 'futur', + 'gagner', + 'galaxie', + 'galerie', + 'gambader', + 'garantir', + 'gardien', + 'garnir', + 'garrigue', + 'gazelle', + 'gazon', + 'géant', + 'gélatine', + 'gélule', + 'gendarme', + 'général', + 'génie', + 'genou', + 'gentil', + 'géologie', + 'géomètre', + 'géranium', + 'germe', + 'gestuel', + 'geyser', + 'gibier', + 'gicler', + 'girafe', + 'givre', + 'glace', + 'glaive', + 'glisser', + 'globe', + 'gloire', + 'glorieux', + 'golfeur', + 'gomme', + 'gonfler', + 'gorge', + 'gorille', + 'goudron', + 'gouffre', + 'goulot', + 'goupille', + 'gourmand', + 'goutte', + 'graduel', + 'graffiti', + 'graine', + 'grand', + 'grappin', + 'gratuit', + 'gravir', + 'grenat', + 'griffure', + 'griller', + 'grimper', + 'grogner', + 'gronder', + 'grotte', + 'groupe', + 'gruger', + 'grutier', + 'gruyère', + 'guépard', + 'guerrier', + 'guide', + 'guimauve', + 'guitare', + 'gustatif', + 'gymnaste', + 'gyrostat', + 'habitude', + 'hachoir', + 'halte', + 'hameau', + 'hangar', + 'hanneton', + 'haricot', + 'harmonie', + 'harpon', + 'hasard', + 'hélium', + 'hématome', + 'herbe', + 'hérisson', + 'hermine', + 'héron', + 'hésiter', + 'heureux', + 'hiberner', + 'hibou', + 'hilarant', + 'histoire', + 'hiver', + 'homard', + 'hommage', + 'homogène', + 'honneur', + 'honorer', + 'honteux', + 'horde', + 'horizon', + 'horloge', + 'hormone', + 'horrible', + 'houleux', + 'housse', + 'hublot', + 'huileux', + 'humain', + 'humble', + 'humide', + 'humour', + 'hurler', + 'hydromel', + 'hygiène', + 'hymne', + 'hypnose', + 'idylle', + 'ignorer', + 'iguane', + 'illicite', + 'illusion', + 'image', + 'imbiber', + 'imiter', + 'immense', + 'immobile', + 'immuable', + 'impact', + 'impérial', + 'implorer', + 'imposer', + 'imprimer', + 'imputer', + 'incarner', + 'incendie', + 'incident', + 'incliner', + 'incolore', + 'indexer', + 'indice', + 'inductif', + 'inédit', + 'ineptie', + 'inexact', + 'infini', + 'infliger', + 'informer', + 'infusion', + 'ingérer', + 'inhaler', + 'inhiber', + 'injecter', + 'injure', + 'innocent', + 'inoculer', + 'inonder', + 'inscrire', + 'insecte', + 'insigne', + 'insolite', + 'inspirer', + 'instinct', + 'insulter', + 'intact', + 'intense', + 'intime', + 'intrigue', + 'intuitif', + 'inutile', + 'invasion', + 'inventer', + 'inviter', + 'invoquer', + 'ironique', + 'irradier', + 'irréel', + 'irriter', + 'isoler', + 'ivoire', + 'ivresse', + 'jaguar', + 'jaillir', + 'jambe', + 'janvier', + 'jardin', + 'jauger', + 'jaune', + 'javelot', + 'jetable', + 'jeton', + 'jeudi', + 'jeunesse', + 'joindre', + 'joncher', + 'jongler', + 'joueur', + 'jouissif', + 'journal', + 'jovial', + 'joyau', + 'joyeux', + 'jubiler', + 'jugement', + 'junior', + 'jupon', + 'juriste', + 'justice', + 'juteux', + 'juvénile', + 'kayak', + 'kimono', + 'kiosque', + 'label', + 'labial', + 'labourer', + 'lacérer', + 'lactose', + 'lagune', + 'laine', + 'laisser', + 'laitier', + 'lambeau', + 'lamelle', + 'lampe', + 'lanceur', + 'langage', + 'lanterne', + 'lapin', + 'largeur', + 'larme', + 'laurier', + 'lavabo', + 'lavoir', + 'lecture', + 'légal', + 'léger', + 'légume', + 'lessive', + 'lettre', + 'levier', + 'lexique', + 'lézard', + 'liasse', + 'libérer', + 'libre', + 'licence', + 'licorne', + 'liège', + 'lièvre', + 'ligature', + 'ligoter', + 'ligue', + 'limer', + 'limite', + 'limonade', + 'limpide', + 'linéaire', + 'lingot', + 'lionceau', + 'liquide', + 'lisière', + 'lister', + 'lithium', + 'litige', + 'littoral', + 'livreur', + 'logique', + 'lointain', + 'loisir', + 'lombric', + 'loterie', + 'louer', + 'lourd', + 'loutre', + 'louve', + 'loyal', + 'lubie', + 'lucide', + 'lucratif', + 'lueur', + 'lugubre', + 'luisant', + 'lumière', + 'lunaire', + 'lundi', + 'luron', + 'lutter', + 'luxueux', + 'machine', + 'magasin', + 'magenta', + 'magique', + 'maigre', + 'maillon', + 'maintien', + 'mairie', + 'maison', + 'majorer', + 'malaxer', + 'maléfice', + 'malheur', + 'malice', + 'mallette', + 'mammouth', + 'mandater', + 'maniable', + 'manquant', + 'manteau', + 'manuel', + 'marathon', + 'marbre', + 'marchand', + 'mardi', + 'maritime', + 'marqueur', + 'marron', + 'marteler', + 'mascotte', + 'massif', + 'matériel', + 'matière', + 'matraque', + 'maudire', + 'maussade', + 'mauve', + 'maximal', + 'méchant', + 'méconnu', + 'médaille', + 'médecin', + 'méditer', + 'méduse', + 'meilleur', + 'mélange', + 'mélodie', + 'membre', + 'mémoire', + 'menacer', + 'mener', + 'menhir', + 'mensonge', + 'mentor', + 'mercredi', + 'mérite', + 'merle', + 'messager', + 'mesure', + 'métal', + 'météore', + 'méthode', + 'métier', + 'meuble', + 'miauler', + 'microbe', + 'miette', + 'mignon', + 'migrer', + 'milieu', + 'million', + 'mimique', + 'mince', + 'minéral', + 'minimal', + 'minorer', + 'minute', + 'miracle', + 'miroiter', + 'missile', + 'mixte', + 'mobile', + 'moderne', + 'moelleux', + 'mondial', + 'moniteur', + 'monnaie', + 'monotone', + 'monstre', + 'montagne', + 'monument', + 'moqueur', + 'morceau', + 'morsure', + 'mortier', + 'moteur', + 'motif', + 'mouche', + 'moufle', + 'moulin', + 'mousson', + 'mouton', + 'mouvant', + 'multiple', + 'munition', + 'muraille', + 'murène', + 'murmure', + 'muscle', + 'muséum', + 'musicien', + 'mutation', + 'muter', + 'mutuel', + 'myriade', + 'myrtille', + 'mystère', + 'mythique', + 'nageur', + 'nappe', + 'narquois', + 'narrer', + 'natation', + 'nation', + 'nature', + 'naufrage', + 'nautique', + 'navire', + 'nébuleux', + 'nectar', + 'néfaste', + 'négation', + 'négliger', + 'négocier', + 'neige', + 'nerveux', + 'nettoyer', + 'neurone', + 'neutron', + 'neveu', + 'niche', + 'nickel', + 'nitrate', + 'niveau', + 'noble', + 'nocif', + 'nocturne', + 'noirceur', + 'noisette', + 'nomade', + 'nombreux', + 'nommer', + 'normatif', + 'notable', + 'notifier', + 'notoire', + 'nourrir', + 'nouveau', + 'novateur', + 'novembre', + 'novice', + 'nuage', + 'nuancer', + 'nuire', + 'nuisible', + 'numéro', + 'nuptial', + 'nuque', + 'nutritif', + 'obéir', + 'objectif', + 'obliger', + 'obscur', + 'observer', + 'obstacle', + 'obtenir', + 'obturer', + 'occasion', + 'occuper', + 'océan', + 'octobre', + 'octroyer', + 'octupler', + 'oculaire', + 'odeur', + 'odorant', + 'offenser', + 'officier', + 'offrir', + 'ogive', + 'oiseau', + 'oisillon', + 'olfactif', + 'olivier', + 'ombrage', + 'omettre', + 'onctueux', + 'onduler', + 'onéreux', + 'onirique', + 'opale', + 'opaque', + 'opérer', + 'opinion', + 'opportun', + 'opprimer', + 'opter', + 'optique', + 'orageux', + 'orange', + 'orbite', + 'ordonner', + 'oreille', + 'organe', + 'orgueil', + 'orifice', + 'ornement', + 'orque', + 'ortie', + 'osciller', + 'osmose', + 'ossature', + 'otarie', + 'ouragan', + 'ourson', + 'outil', + 'outrager', + 'ouvrage', + 'ovation', + 'oxyde', + 'oxygène', + 'ozone', + 'paisible', + 'palace', + 'palmarès', + 'palourde', + 'palper', + 'panache', + 'panda', + 'pangolin', + 'paniquer', + 'panneau', + 'panorama', + 'pantalon', + 'papaye', + 'papier', + 'papoter', + 'papyrus', + 'paradoxe', + 'parcelle', + 'paresse', + 'parfumer', + 'parler', + 'parole', + 'parrain', + 'parsemer', + 'partager', + 'parure', + 'parvenir', + 'passion', + 'pastèque', + 'paternel', + 'patience', + 'patron', + 'pavillon', + 'pavoiser', + 'payer', + 'paysage', + 'peigne', + 'peintre', + 'pelage', + 'pélican', + 'pelle', + 'pelouse', + 'peluche', + 'pendule', + 'pénétrer', + 'pénible', + 'pensif', + 'pénurie', + 'pépite', + 'péplum', + 'perdrix', + 'perforer', + 'période', + 'permuter', + 'perplexe', + 'persil', + 'perte', + 'peser', + 'pétale', + 'petit', + 'pétrir', + 'peuple', + 'pharaon', + 'phobie', + 'phoque', + 'photon', + 'phrase', + 'physique', + 'piano', + 'pictural', + 'pièce', + 'pierre', + 'pieuvre', + 'pilote', + 'pinceau', + 'pipette', + 'piquer', + 'pirogue', + 'piscine', + 'piston', + 'pivoter', + 'pixel', + 'pizza', + 'placard', + 'plafond', + 'plaisir', + 'planer', + 'plaque', + 'plastron', + 'plateau', + 'pleurer', + 'plexus', + 'pliage', + 'plomb', + 'plonger', + 'pluie', + 'plumage', + 'pochette', + 'poésie', + 'poète', + 'pointe', + 'poirier', + 'poisson', + 'poivre', + 'polaire', + 'policier', + 'pollen', + 'polygone', + 'pommade', + 'pompier', + 'ponctuel', + 'pondérer', + 'poney', + 'portique', + 'position', + 'posséder', + 'posture', + 'potager', + 'poteau', + 'potion', + 'pouce', + 'poulain', + 'poumon', + 'pourpre', + 'poussin', + 'pouvoir', + 'prairie', + 'pratique', + 'précieux', + 'prédire', + 'préfixe', + 'prélude', + 'prénom', + 'présence', + 'prétexte', + 'prévoir', + 'primitif', + 'prince', + 'prison', + 'priver', + 'problème', + 'procéder', + 'prodige', + 'profond', + 'progrès', + 'proie', + 'projeter', + 'prologue', + 'promener', + 'propre', + 'prospère', + 'protéger', + 'prouesse', + 'proverbe', + 'prudence', + 'pruneau', + 'psychose', + 'public', + 'puceron', + 'puiser', + 'pulpe', + 'pulsar', + 'punaise', + 'punitif', + 'pupitre', + 'purifier', + 'puzzle', + 'pyramide', + 'quasar', + 'querelle', + 'question', + 'quiétude', + 'quitter', + 'quotient', + 'racine', + 'raconter', + 'radieux', + 'ragondin', + 'raideur', + 'raisin', + 'ralentir', + 'rallonge', + 'ramasser', + 'rapide', + 'rasage', + 'ratisser', + 'ravager', + 'ravin', + 'rayonner', + 'réactif', + 'réagir', + 'réaliser', + 'réanimer', + 'recevoir', + 'réciter', + 'réclamer', + 'récolter', + 'recruter', + 'reculer', + 'recycler', + 'rédiger', + 'redouter', + 'refaire', + 'réflexe', + 'réformer', + 'refrain', + 'refuge', + 'régalien', + 'région', + 'réglage', + 'régulier', + 'réitérer', + 'rejeter', + 'rejouer', + 'relatif', + 'relever', + 'relief', + 'remarque', + 'remède', + 'remise', + 'remonter', + 'remplir', + 'remuer', + 'renard', + 'renfort', + 'renifler', + 'renoncer', + 'rentrer', + 'renvoi', + 'replier', + 'reporter', + 'reprise', + 'reptile', + 'requin', + 'réserve', + 'résineux', + 'résoudre', + 'respect', + 'rester', + 'résultat', + 'rétablir', + 'retenir', + 'réticule', + 'retomber', + 'retracer', + 'réunion', + 'réussir', + 'revanche', + 'revivre', + 'révolte', + 'révulsif', + 'richesse', + 'rideau', + 'rieur', + 'rigide', + 'rigoler', + 'rincer', + 'riposter', + 'risible', + 'risque', + 'rituel', + 'rival', + 'rivière', + 'rocheux', + 'romance', + 'rompre', + 'ronce', + 'rondin', + 'roseau', + 'rosier', + 'rotatif', + 'rotor', + 'rotule', + 'rouge', + 'rouille', + 'rouleau', + 'routine', + 'royaume', + 'ruban', + 'rubis', + 'ruche', + 'ruelle', + 'rugueux', + 'ruiner', + 'ruisseau', + 'ruser', + 'rustique', + 'rythme', + 'sabler', + 'saboter', + 'sabre', + 'sacoche', + 'safari', + 'sagesse', + 'saisir', + 'salade', + 'salive', + 'salon', + 'saluer', + 'samedi', + 'sanction', + 'sanglier', + 'sarcasme', + 'sardine', + 'saturer', + 'saugrenu', + 'saumon', + 'sauter', + 'sauvage', + 'savant', + 'savonner', + 'scalpel', + 'scandale', + 'scélérat', + 'scénario', + 'sceptre', + 'schéma', + 'science', + 'scinder', + 'score', + 'scrutin', + 'sculpter', + 'séance', + 'sécable', + 'sécher', + 'secouer', + 'sécréter', + 'sédatif', + 'séduire', + 'seigneur', + 'séjour', + 'sélectif', + 'semaine', + 'sembler', + 'semence', + 'séminal', + 'sénateur', + 'sensible', + 'sentence', + 'séparer', + 'séquence', + 'serein', + 'sergent', + 'sérieux', + 'serrure', + 'sérum', + 'service', + 'sésame', + 'sévir', + 'sevrage', + 'sextuple', + 'sidéral', + 'siècle', + 'siéger', + 'siffler', + 'sigle', + 'signal', + 'silence', + 'silicium', + 'simple', + 'sincère', + 'sinistre', + 'siphon', + 'sirop', + 'sismique', + 'situer', + 'skier', + 'social', + 'socle', + 'sodium', + 'soigneux', + 'soldat', + 'soleil', + 'solitude', + 'soluble', + 'sombre', + 'sommeil', + 'somnoler', + 'sonde', + 'songeur', + 'sonnette', + 'sonore', + 'sorcier', + 'sortir', + 'sosie', + 'sottise', + 'soucieux', + 'soudure', + 'souffle', + 'soulever', + 'soupape', + 'source', + 'soutirer', + 'souvenir', + 'spacieux', + 'spatial', + 'spécial', + 'sphère', + 'spiral', + 'stable', + 'station', + 'sternum', + 'stimulus', + 'stipuler', + 'strict', + 'studieux', + 'stupeur', + 'styliste', + 'sublime', + 'substrat', + 'subtil', + 'subvenir', + 'succès', + 'sucre', + 'suffixe', + 'suggérer', + 'suiveur', + 'sulfate', + 'superbe', + 'supplier', + 'surface', + 'suricate', + 'surmener', + 'surprise', + 'sursaut', + 'survie', + 'suspect', + 'syllabe', + 'symbole', + 'symétrie', + 'synapse', + 'syntaxe', + 'système', + 'tabac', + 'tablier', + 'tactile', + 'tailler', + 'talent', + 'talisman', + 'talonner', + 'tambour', + 'tamiser', + 'tangible', + 'tapis', + 'taquiner', + 'tarder', + 'tarif', + 'tartine', + 'tasse', + 'tatami', + 'tatouage', + 'taupe', + 'taureau', + 'taxer', + 'témoin', + 'temporel', + 'tenaille', + 'tendre', + 'teneur', + 'tenir', + 'tension', + 'terminer', + 'terne', + 'terrible', + 'tétine', + 'texte', + 'thème', + 'théorie', + 'thérapie', + 'thorax', + 'tibia', + 'tiède', + 'timide', + 'tirelire', + 'tiroir', + 'tissu', + 'titane', + 'titre', + 'tituber', + 'toboggan', + 'tolérant', + 'tomate', + 'tonique', + 'tonneau', + 'toponyme', + 'torche', + 'tordre', + 'tornade', + 'torpille', + 'torrent', + 'torse', + 'tortue', + 'totem', + 'toucher', + 'tournage', + 'tousser', + 'toxine', + 'traction', + 'trafic', + 'tragique', + 'trahir', + 'train', + 'trancher', + 'travail', + 'trèfle', + 'tremper', + 'trésor', + 'treuil', + 'triage', + 'tribunal', + 'tricoter', + 'trilogie', + 'triomphe', + 'tripler', + 'triturer', + 'trivial', + 'trombone', + 'tronc', + 'tropical', + 'troupeau', + 'tuile', + 'tulipe', + 'tumulte', + 'tunnel', + 'turbine', + 'tuteur', + 'tutoyer', + 'tuyau', + 'tympan', + 'typhon', + 'typique', + 'tyran', + 'ubuesque', + 'ultime', + 'ultrason', + 'unanime', + 'unifier', + 'union', + 'unique', + 'unitaire', + 'univers', + 'uranium', + 'urbain', + 'urticant', + 'usage', + 'usine', + 'usuel', + 'usure', + 'utile', + 'utopie', + 'vacarme', + 'vaccin', + 'vagabond', + 'vague', + 'vaillant', + 'vaincre', + 'vaisseau', + 'valable', + 'valise', + 'vallon', + 'valve', + 'vampire', + 'vanille', + 'vapeur', + 'varier', + 'vaseux', + 'vassal', + 'vaste', + 'vecteur', + 'vedette', + 'végétal', + 'véhicule', + 'veinard', + 'véloce', + 'vendredi', + 'vénérer', + 'venger', + 'venimeux', + 'ventouse', + 'verdure', + 'vérin', + 'vernir', + 'verrou', + 'verser', + 'vertu', + 'veston', + 'vétéran', + 'vétuste', + 'vexant', + 'vexer', + 'viaduc', + 'viande', + 'victoire', + 'vidange', + 'vidéo', + 'vignette', + 'vigueur', + 'vilain', + 'village', + 'vinaigre', + 'violon', + 'vipère', + 'virement', + 'virtuose', + 'virus', + 'visage', + 'viseur', + 'vision', + 'visqueux', + 'visuel', + 'vital', + 'vitesse', + 'viticole', + 'vitrine', + 'vivace', + 'vivipare', + 'vocation', + 'voguer', + 'voile', + 'voisin', + 'voiture', + 'volaille', + 'volcan', + 'voltiger', + 'volume', + 'vorace', + 'vortex', + 'voter', + 'vouloir', + 'voyage', + 'voyelle', + 'wagon', + 'xénon', + 'yacht', + 'zèbre', + 'zénith', + 'zeste', + 'zoologie', +]; + +const italian = [ + 'abaco', + 'abbaglio', + 'abbinato', + 'abete', + 'abisso', + 'abolire', + 'abrasivo', + 'abrogato', + 'accadere', + 'accenno', + 'accusato', + 'acetone', + 'achille', + 'acido', + 'acqua', + 'acre', + 'acrilico', + 'acrobata', + 'acuto', + 'adagio', + 'addebito', + 'addome', + 'adeguato', + 'aderire', + 'adipe', + 'adottare', + 'adulare', + 'affabile', + 'affetto', + 'affisso', + 'affranto', + 'aforisma', + 'afoso', + 'africano', + 'agave', + 'agente', + 'agevole', + 'aggancio', + 'agire', + 'agitare', + 'agonismo', + 'agricolo', + 'agrumeto', + 'aguzzo', + 'alabarda', + 'alato', + 'albatro', + 'alberato', + 'albo', + 'albume', + 'alce', + 'alcolico', + 'alettone', + 'alfa', + 'algebra', + 'aliante', + 'alibi', + 'alimento', + 'allagato', + 'allegro', + 'allievo', + 'allodola', + 'allusivo', + 'almeno', + 'alogeno', + 'alpaca', + 'alpestre', + 'altalena', + 'alterno', + 'alticcio', + 'altrove', + 'alunno', + 'alveolo', + 'alzare', + 'amalgama', + 'amanita', + 'amarena', + 'ambito', + 'ambrato', + 'ameba', + 'america', + 'ametista', + 'amico', + 'ammasso', + 'ammenda', + 'ammirare', + 'ammonito', + 'amore', + 'ampio', + 'ampliare', + 'amuleto', + 'anacardo', + 'anagrafe', + 'analista', + 'anarchia', + 'anatra', + 'anca', + 'ancella', + 'ancora', + 'andare', + 'andrea', + 'anello', + 'angelo', + 'angolare', + 'angusto', + 'anima', + 'annegare', + 'annidato', + 'anno', + 'annuncio', + 'anonimo', + 'anticipo', + 'anzi', + 'apatico', + 'apertura', + 'apode', + 'apparire', + 'appetito', + 'appoggio', + 'approdo', + 'appunto', + 'aprile', + 'arabica', + 'arachide', + 'aragosta', + 'araldica', + 'arancio', + 'aratura', + 'arazzo', + 'arbitro', + 'archivio', + 'ardito', + 'arenile', + 'argento', + 'argine', + 'arguto', + 'aria', + 'armonia', + 'arnese', + 'arredato', + 'arringa', + 'arrosto', + 'arsenico', + 'arso', + 'artefice', + 'arzillo', + 'asciutto', + 'ascolto', + 'asepsi', + 'asettico', + 'asfalto', + 'asino', + 'asola', + 'aspirato', + 'aspro', + 'assaggio', + 'asse', + 'assoluto', + 'assurdo', + 'asta', + 'astenuto', + 'astice', + 'astratto', + 'atavico', + 'ateismo', + 'atomico', + 'atono', + 'attesa', + 'attivare', + 'attorno', + 'attrito', + 'attuale', + 'ausilio', + 'austria', + 'autista', + 'autonomo', + 'autunno', + 'avanzato', + 'avere', + 'avvenire', + 'avviso', + 'avvolgere', + 'azione', + 'azoto', + 'azzimo', + 'azzurro', + 'babele', + 'baccano', + 'bacino', + 'baco', + 'badessa', + 'badilata', + 'bagnato', + 'baita', + 'balcone', + 'baldo', + 'balena', + 'ballata', + 'balzano', + 'bambino', + 'bandire', + 'baraonda', + 'barbaro', + 'barca', + 'baritono', + 'barlume', + 'barocco', + 'basilico', + 'basso', + 'batosta', + 'battuto', + 'baule', + 'bava', + 'bavosa', + 'becco', + 'beffa', + 'belgio', + 'belva', + 'benda', + 'benevole', + 'benigno', + 'benzina', + 'bere', + 'berlina', + 'beta', + 'bibita', + 'bici', + 'bidone', + 'bifido', + 'biga', + 'bilancia', + 'bimbo', + 'binocolo', + 'biologo', + 'bipede', + 'bipolare', + 'birbante', + 'birra', + 'biscotto', + 'bisesto', + 'bisnonno', + 'bisonte', + 'bisturi', + 'bizzarro', + 'blando', + 'blatta', + 'bollito', + 'bonifico', + 'bordo', + 'bosco', + 'botanico', + 'bottino', + 'bozzolo', + 'braccio', + 'bradipo', + 'brama', + 'branca', + 'bravura', + 'bretella', + 'brevetto', + 'brezza', + 'briglia', + 'brillante', + 'brindare', + 'broccolo', + 'brodo', + 'bronzina', + 'brullo', + 'bruno', + 'bubbone', + 'buca', + 'budino', + 'buffone', + 'buio', + 'bulbo', + 'buono', + 'burlone', + 'burrasca', + 'bussola', + 'busta', + 'cadetto', + 'caduco', + 'calamaro', + 'calcolo', + 'calesse', + 'calibro', + 'calmo', + 'caloria', + 'cambusa', + 'camerata', + 'camicia', + 'cammino', + 'camola', + 'campale', + 'canapa', + 'candela', + 'cane', + 'canino', + 'canotto', + 'cantina', + 'capace', + 'capello', + 'capitolo', + 'capogiro', + 'cappero', + 'capra', + 'capsula', + 'carapace', + 'carcassa', + 'cardo', + 'carisma', + 'carovana', + 'carretto', + 'cartolina', + 'casaccio', + 'cascata', + 'caserma', + 'caso', + 'cassone', + 'castello', + 'casuale', + 'catasta', + 'catena', + 'catrame', + 'cauto', + 'cavillo', + 'cedibile', + 'cedrata', + 'cefalo', + 'celebre', + 'cellulare', + 'cena', + 'cenone', + 'centesimo', + 'ceramica', + 'cercare', + 'certo', + 'cerume', + 'cervello', + 'cesoia', + 'cespo', + 'ceto', + 'chela', + 'chiaro', + 'chicca', + 'chiedere', + 'chimera', + 'china', + 'chirurgo', + 'chitarra', + 'ciao', + 'ciclismo', + 'cifrare', + 'cigno', + 'cilindro', + 'ciottolo', + 'circa', + 'cirrosi', + 'citrico', + 'cittadino', + 'ciuffo', + 'civetta', + 'civile', + 'classico', + 'clinica', + 'cloro', + 'cocco', + 'codardo', + 'codice', + 'coerente', + 'cognome', + 'collare', + 'colmato', + 'colore', + 'colposo', + 'coltivato', + 'colza', + 'coma', + 'cometa', + 'commando', + 'comodo', + 'computer', + 'comune', + 'conciso', + 'condurre', + 'conferma', + 'congelare', + 'coniuge', + 'connesso', + 'conoscere', + 'consumo', + 'continuo', + 'convegno', + 'coperto', + 'copione', + 'coppia', + 'copricapo', + 'corazza', + 'cordata', + 'coricato', + 'cornice', + 'corolla', + 'corpo', + 'corredo', + 'corsia', + 'cortese', + 'cosmico', + 'costante', + 'cottura', + 'covato', + 'cratere', + 'cravatta', + 'creato', + 'credere', + 'cremoso', + 'crescita', + 'creta', + 'criceto', + 'crinale', + 'crisi', + 'critico', + 'croce', + 'cronaca', + 'crostata', + 'cruciale', + 'crusca', + 'cucire', + 'cuculo', + 'cugino', + 'cullato', + 'cupola', + 'curatore', + 'cursore', + 'curvo', + 'cuscino', + 'custode', + 'dado', + 'daino', + 'dalmata', + 'damerino', + 'daniela', + 'dannoso', + 'danzare', + 'datato', + 'davanti', + 'davvero', + 'debutto', + 'decennio', + 'deciso', + 'declino', + 'decollo', + 'decreto', + 'dedicato', + 'definito', + 'deforme', + 'degno', + 'delegare', + 'delfino', + 'delirio', + 'delta', + 'demenza', + 'denotato', + 'dentro', + 'deposito', + 'derapata', + 'derivare', + 'deroga', + 'descritto', + 'deserto', + 'desiderio', + 'desumere', + 'detersivo', + 'devoto', + 'diametro', + 'dicembre', + 'diedro', + 'difeso', + 'diffuso', + 'digerire', + 'digitale', + 'diluvio', + 'dinamico', + 'dinnanzi', + 'dipinto', + 'diploma', + 'dipolo', + 'diradare', + 'dire', + 'dirotto', + 'dirupo', + 'disagio', + 'discreto', + 'disfare', + 'disgelo', + 'disposto', + 'distanza', + 'disumano', + 'dito', + 'divano', + 'divelto', + 'dividere', + 'divorato', + 'doblone', + 'docente', + 'doganale', + 'dogma', + 'dolce', + 'domato', + 'domenica', + 'dominare', + 'dondolo', + 'dono', + 'dormire', + 'dote', + 'dottore', + 'dovuto', + 'dozzina', + 'drago', + 'druido', + 'dubbio', + 'dubitare', + 'ducale', + 'duna', + 'duomo', + 'duplice', + 'duraturo', + 'ebano', + 'eccesso', + 'ecco', + 'eclissi', + 'economia', + 'edera', + 'edicola', + 'edile', + 'editoria', + 'educare', + 'egemonia', + 'egli', + 'egoismo', + 'egregio', + 'elaborato', + 'elargire', + 'elegante', + 'elencato', + 'eletto', + 'elevare', + 'elfico', + 'elica', + 'elmo', + 'elsa', + 'eluso', + 'emanato', + 'emblema', + 'emesso', + 'emiro', + 'emotivo', + 'emozione', + 'empirico', + 'emulo', + 'endemico', + 'enduro', + 'energia', + 'enfasi', + 'enoteca', + 'entrare', + 'enzima', + 'epatite', + 'epilogo', + 'episodio', + 'epocale', + 'eppure', + 'equatore', + 'erario', + 'erba', + 'erboso', + 'erede', + 'eremita', + 'erigere', + 'ermetico', + 'eroe', + 'erosivo', + 'errante', + 'esagono', + 'esame', + 'esanime', + 'esaudire', + 'esca', + 'esempio', + 'esercito', + 'esibito', + 'esigente', + 'esistere', + 'esito', + 'esofago', + 'esortato', + 'esoso', + 'espanso', + 'espresso', + 'essenza', + 'esso', + 'esteso', + 'estimare', + 'estonia', + 'estroso', + 'esultare', + 'etilico', + 'etnico', + 'etrusco', + 'etto', + 'euclideo', + 'europa', + 'evaso', + 'evidenza', + 'evitato', + 'evoluto', + 'evviva', + 'fabbrica', + 'faccenda', + 'fachiro', + 'falco', + 'famiglia', + 'fanale', + 'fanfara', + 'fango', + 'fantasma', + 'fare', + 'farfalla', + 'farinoso', + 'farmaco', + 'fascia', + 'fastoso', + 'fasullo', + 'faticare', + 'fato', + 'favoloso', + 'febbre', + 'fecola', + 'fede', + 'fegato', + 'felpa', + 'feltro', + 'femmina', + 'fendere', + 'fenomeno', + 'fermento', + 'ferro', + 'fertile', + 'fessura', + 'festivo', + 'fetta', + 'feudo', + 'fiaba', + 'fiducia', + 'fifa', + 'figurato', + 'filo', + 'finanza', + 'finestra', + 'finire', + 'fiore', + 'fiscale', + 'fisico', + 'fiume', + 'flacone', + 'flamenco', + 'flebo', + 'flemma', + 'florido', + 'fluente', + 'fluoro', + 'fobico', + 'focaccia', + 'focoso', + 'foderato', + 'foglio', + 'folata', + 'folclore', + 'folgore', + 'fondente', + 'fonetico', + 'fonia', + 'fontana', + 'forbito', + 'forchetta', + 'foresta', + 'formica', + 'fornaio', + 'foro', + 'fortezza', + 'forzare', + 'fosfato', + 'fosso', + 'fracasso', + 'frana', + 'frassino', + 'fratello', + 'freccetta', + 'frenata', + 'fresco', + 'frigo', + 'frollino', + 'fronde', + 'frugale', + 'frutta', + 'fucilata', + 'fucsia', + 'fuggente', + 'fulmine', + 'fulvo', + 'fumante', + 'fumetto', + 'fumoso', + 'fune', + 'funzione', + 'fuoco', + 'furbo', + 'furgone', + 'furore', + 'fuso', + 'futile', + 'gabbiano', + 'gaffe', + 'galateo', + 'gallina', + 'galoppo', + 'gambero', + 'gamma', + 'garanzia', + 'garbo', + 'garofano', + 'garzone', + 'gasdotto', + 'gasolio', + 'gastrico', + 'gatto', + 'gaudio', + 'gazebo', + 'gazzella', + 'geco', + 'gelatina', + 'gelso', + 'gemello', + 'gemmato', + 'gene', + 'genitore', + 'gennaio', + 'genotipo', + 'gergo', + 'ghepardo', + 'ghiaccio', + 'ghisa', + 'giallo', + 'gilda', + 'ginepro', + 'giocare', + 'gioiello', + 'giorno', + 'giove', + 'girato', + 'girone', + 'gittata', + 'giudizio', + 'giurato', + 'giusto', + 'globulo', + 'glutine', + 'gnomo', + 'gobba', + 'golf', + 'gomito', + 'gommone', + 'gonfio', + 'gonna', + 'governo', + 'gracile', + 'grado', + 'grafico', + 'grammo', + 'grande', + 'grattare', + 'gravoso', + 'grazia', + 'greca', + 'gregge', + 'grifone', + 'grigio', + 'grinza', + 'grotta', + 'gruppo', + 'guadagno', + 'guaio', + 'guanto', + 'guardare', + 'gufo', + 'guidare', + 'ibernato', + 'icona', + 'identico', + 'idillio', + 'idolo', + 'idra', + 'idrico', + 'idrogeno', + 'igiene', + 'ignaro', + 'ignorato', + 'ilare', + 'illeso', + 'illogico', + 'illudere', + 'imballo', + 'imbevuto', + 'imbocco', + 'imbuto', + 'immane', + 'immerso', + 'immolato', + 'impacco', + 'impeto', + 'impiego', + 'importo', + 'impronta', + 'inalare', + 'inarcare', + 'inattivo', + 'incanto', + 'incendio', + 'inchino', + 'incisivo', + 'incluso', + 'incontro', + 'incrocio', + 'incubo', + 'indagine', + 'india', + 'indole', + 'inedito', + 'infatti', + 'infilare', + 'inflitto', + 'ingaggio', + 'ingegno', + 'inglese', + 'ingordo', + 'ingrosso', + 'innesco', + 'inodore', + 'inoltrare', + 'inondato', + 'insano', + 'insetto', + 'insieme', + 'insonnia', + 'insulina', + 'intasato', + 'intero', + 'intonaco', + 'intuito', + 'inumidire', + 'invalido', + 'invece', + 'invito', + 'iperbole', + 'ipnotico', + 'ipotesi', + 'ippica', + 'iride', + 'irlanda', + 'ironico', + 'irrigato', + 'irrorare', + 'isolato', + 'isotopo', + 'isterico', + 'istituto', + 'istrice', + 'italia', + 'iterare', + 'labbro', + 'labirinto', + 'lacca', + 'lacerato', + 'lacrima', + 'lacuna', + 'laddove', + 'lago', + 'lampo', + 'lancetta', + 'lanterna', + 'lardoso', + 'larga', + 'laringe', + 'lastra', + 'latenza', + 'latino', + 'lattuga', + 'lavagna', + 'lavoro', + 'legale', + 'leggero', + 'lembo', + 'lentezza', + 'lenza', + 'leone', + 'lepre', + 'lesivo', + 'lessato', + 'lesto', + 'letterale', + 'leva', + 'levigato', + 'libero', + 'lido', + 'lievito', + 'lilla', + 'limatura', + 'limitare', + 'limpido', + 'lineare', + 'lingua', + 'liquido', + 'lira', + 'lirica', + 'lisca', + 'lite', + 'litigio', + 'livrea', + 'locanda', + 'lode', + 'logica', + 'lombare', + 'londra', + 'longevo', + 'loquace', + 'lorenzo', + 'loto', + 'lotteria', + 'luce', + 'lucidato', + 'lumaca', + 'luminoso', + 'lungo', + 'lupo', + 'luppolo', + 'lusinga', + 'lusso', + 'lutto', + 'macabro', + 'macchina', + 'macero', + 'macinato', + 'madama', + 'magico', + 'maglia', + 'magnete', + 'magro', + 'maiolica', + 'malafede', + 'malgrado', + 'malinteso', + 'malsano', + 'malto', + 'malumore', + 'mana', + 'mancia', + 'mandorla', + 'mangiare', + 'manifesto', + 'mannaro', + 'manovra', + 'mansarda', + 'mantide', + 'manubrio', + 'mappa', + 'maratona', + 'marcire', + 'maretta', + 'marmo', + 'marsupio', + 'maschera', + 'massaia', + 'mastino', + 'materasso', + 'matricola', + 'mattone', + 'maturo', + 'mazurca', + 'meandro', + 'meccanico', + 'mecenate', + 'medesimo', + 'meditare', + 'mega', + 'melassa', + 'melis', + 'melodia', + 'meninge', + 'meno', + 'mensola', + 'mercurio', + 'merenda', + 'merlo', + 'meschino', + 'mese', + 'messere', + 'mestolo', + 'metallo', + 'metodo', + 'mettere', + 'miagolare', + 'mica', + 'micelio', + 'michele', + 'microbo', + 'midollo', + 'miele', + 'migliore', + 'milano', + 'milite', + 'mimosa', + 'minerale', + 'mini', + 'minore', + 'mirino', + 'mirtillo', + 'miscela', + 'missiva', + 'misto', + 'misurare', + 'mitezza', + 'mitigare', + 'mitra', + 'mittente', + 'mnemonico', + 'modello', + 'modifica', + 'modulo', + 'mogano', + 'mogio', + 'mole', + 'molosso', + 'monastero', + 'monco', + 'mondina', + 'monetario', + 'monile', + 'monotono', + 'monsone', + 'montato', + 'monviso', + 'mora', + 'mordere', + 'morsicato', + 'mostro', + 'motivato', + 'motosega', + 'motto', + 'movenza', + 'movimento', + 'mozzo', + 'mucca', + 'mucosa', + 'muffa', + 'mughetto', + 'mugnaio', + 'mulatto', + 'mulinello', + 'multiplo', + 'mummia', + 'munto', + 'muovere', + 'murale', + 'musa', + 'muscolo', + 'musica', + 'mutevole', + 'muto', + 'nababbo', + 'nafta', + 'nanometro', + 'narciso', + 'narice', + 'narrato', + 'nascere', + 'nastrare', + 'naturale', + 'nautica', + 'naviglio', + 'nebulosa', + 'necrosi', + 'negativo', + 'negozio', + 'nemmeno', + 'neofita', + 'neretto', + 'nervo', + 'nessuno', + 'nettuno', + 'neutrale', + 'neve', + 'nevrotico', + 'nicchia', + 'ninfa', + 'nitido', + 'nobile', + 'nocivo', + 'nodo', + 'nome', + 'nomina', + 'nordico', + 'normale', + 'norvegese', + 'nostrano', + 'notare', + 'notizia', + 'notturno', + 'novella', + 'nucleo', + 'nulla', + 'numero', + 'nuovo', + 'nutrire', + 'nuvola', + 'nuziale', + 'oasi', + 'obbedire', + 'obbligo', + 'obelisco', + 'oblio', + 'obolo', + 'obsoleto', + 'occasione', + 'occhio', + 'occidente', + 'occorrere', + 'occultare', + 'ocra', + 'oculato', + 'odierno', + 'odorare', + 'offerta', + 'offrire', + 'offuscato', + 'oggetto', + 'oggi', + 'ognuno', + 'olandese', + 'olfatto', + 'oliato', + 'oliva', + 'ologramma', + 'oltre', + 'omaggio', + 'ombelico', + 'ombra', + 'omega', + 'omissione', + 'ondoso', + 'onere', + 'onice', + 'onnivoro', + 'onorevole', + 'onta', + 'operato', + 'opinione', + 'opposto', + 'oracolo', + 'orafo', + 'ordine', + 'orecchino', + 'orefice', + 'orfano', + 'organico', + 'origine', + 'orizzonte', + 'orma', + 'ormeggio', + 'ornativo', + 'orologio', + 'orrendo', + 'orribile', + 'ortensia', + 'ortica', + 'orzata', + 'orzo', + 'osare', + 'oscurare', + 'osmosi', + 'ospedale', + 'ospite', + 'ossa', + 'ossidare', + 'ostacolo', + 'oste', + 'otite', + 'otre', + 'ottagono', + 'ottimo', + 'ottobre', + 'ovale', + 'ovest', + 'ovino', + 'oviparo', + 'ovocito', + 'ovunque', + 'ovviare', + 'ozio', + 'pacchetto', + 'pace', + 'pacifico', + 'padella', + 'padrone', + 'paese', + 'paga', + 'pagina', + 'palazzina', + 'palesare', + 'pallido', + 'palo', + 'palude', + 'pandoro', + 'pannello', + 'paolo', + 'paonazzo', + 'paprica', + 'parabola', + 'parcella', + 'parere', + 'pargolo', + 'pari', + 'parlato', + 'parola', + 'partire', + 'parvenza', + 'parziale', + 'passivo', + 'pasticca', + 'patacca', + 'patologia', + 'pattume', + 'pavone', + 'peccato', + 'pedalare', + 'pedonale', + 'peggio', + 'peloso', + 'penare', + 'pendice', + 'penisola', + 'pennuto', + 'penombra', + 'pensare', + 'pentola', + 'pepe', + 'pepita', + 'perbene', + 'percorso', + 'perdonato', + 'perforare', + 'pergamena', + 'periodo', + 'permesso', + 'perno', + 'perplesso', + 'persuaso', + 'pertugio', + 'pervaso', + 'pesatore', + 'pesista', + 'peso', + 'pestifero', + 'petalo', + 'pettine', + 'petulante', + 'pezzo', + 'piacere', + 'pianta', + 'piattino', + 'piccino', + 'picozza', + 'piega', + 'pietra', + 'piffero', + 'pigiama', + 'pigolio', + 'pigro', + 'pila', + 'pilifero', + 'pillola', + 'pilota', + 'pimpante', + 'pineta', + 'pinna', + 'pinolo', + 'pioggia', + 'piombo', + 'piramide', + 'piretico', + 'pirite', + 'pirolisi', + 'pitone', + 'pizzico', + 'placebo', + 'planare', + 'plasma', + 'platano', + 'plenario', + 'pochezza', + 'poderoso', + 'podismo', + 'poesia', + 'poggiare', + 'polenta', + 'poligono', + 'pollice', + 'polmonite', + 'polpetta', + 'polso', + 'poltrona', + 'polvere', + 'pomice', + 'pomodoro', + 'ponte', + 'popoloso', + 'porfido', + 'poroso', + 'porpora', + 'porre', + 'portata', + 'posa', + 'positivo', + 'possesso', + 'postulato', + 'potassio', + 'potere', + 'pranzo', + 'prassi', + 'pratica', + 'precluso', + 'predica', + 'prefisso', + 'pregiato', + 'prelievo', + 'premere', + 'prenotare', + 'preparato', + 'presenza', + 'pretesto', + 'prevalso', + 'prima', + 'principe', + 'privato', + 'problema', + 'procura', + 'produrre', + 'profumo', + 'progetto', + 'prolunga', + 'promessa', + 'pronome', + 'proposta', + 'proroga', + 'proteso', + 'prova', + 'prudente', + 'prugna', + 'prurito', + 'psiche', + 'pubblico', + 'pudica', + 'pugilato', + 'pugno', + 'pulce', + 'pulito', + 'pulsante', + 'puntare', + 'pupazzo', + 'pupilla', + 'puro', + 'quadro', + 'qualcosa', + 'quasi', + 'querela', + 'quota', + 'raccolto', + 'raddoppio', + 'radicale', + 'radunato', + 'raffica', + 'ragazzo', + 'ragione', + 'ragno', + 'ramarro', + 'ramingo', + 'ramo', + 'randagio', + 'rantolare', + 'rapato', + 'rapina', + 'rappreso', + 'rasatura', + 'raschiato', + 'rasente', + 'rassegna', + 'rastrello', + 'rata', + 'ravveduto', + 'reale', + 'recepire', + 'recinto', + 'recluta', + 'recondito', + 'recupero', + 'reddito', + 'redimere', + 'regalato', + 'registro', + 'regola', + 'regresso', + 'relazione', + 'remare', + 'remoto', + 'renna', + 'replica', + 'reprimere', + 'reputare', + 'resa', + 'residente', + 'responso', + 'restauro', + 'rete', + 'retina', + 'retorica', + 'rettifica', + 'revocato', + 'riassunto', + 'ribadire', + 'ribelle', + 'ribrezzo', + 'ricarica', + 'ricco', + 'ricevere', + 'riciclato', + 'ricordo', + 'ricreduto', + 'ridicolo', + 'ridurre', + 'rifasare', + 'riflesso', + 'riforma', + 'rifugio', + 'rigare', + 'rigettato', + 'righello', + 'rilassato', + 'rilevato', + 'rimanere', + 'rimbalzo', + 'rimedio', + 'rimorchio', + 'rinascita', + 'rincaro', + 'rinforzo', + 'rinnovo', + 'rinomato', + 'rinsavito', + 'rintocco', + 'rinuncia', + 'rinvenire', + 'riparato', + 'ripetuto', + 'ripieno', + 'riportare', + 'ripresa', + 'ripulire', + 'risata', + 'rischio', + 'riserva', + 'risibile', + 'riso', + 'rispetto', + 'ristoro', + 'risultato', + 'risvolto', + 'ritardo', + 'ritegno', + 'ritmico', + 'ritrovo', + 'riunione', + 'riva', + 'riverso', + 'rivincita', + 'rivolto', + 'rizoma', + 'roba', + 'robotico', + 'robusto', + 'roccia', + 'roco', + 'rodaggio', + 'rodere', + 'roditore', + 'rogito', + 'rollio', + 'romantico', + 'rompere', + 'ronzio', + 'rosolare', + 'rospo', + 'rotante', + 'rotondo', + 'rotula', + 'rovescio', + 'rubizzo', + 'rubrica', + 'ruga', + 'rullino', + 'rumine', + 'rumoroso', + 'ruolo', + 'rupe', + 'russare', + 'rustico', + 'sabato', + 'sabbiare', + 'sabotato', + 'sagoma', + 'salasso', + 'saldatura', + 'salgemma', + 'salivare', + 'salmone', + 'salone', + 'saltare', + 'saluto', + 'salvo', + 'sapere', + 'sapido', + 'saporito', + 'saraceno', + 'sarcasmo', + 'sarto', + 'sassoso', + 'satellite', + 'satira', + 'satollo', + 'saturno', + 'savana', + 'savio', + 'saziato', + 'sbadiglio', + 'sbalzo', + 'sbancato', + 'sbarra', + 'sbattere', + 'sbavare', + 'sbendare', + 'sbirciare', + 'sbloccato', + 'sbocciato', + 'sbrinare', + 'sbruffone', + 'sbuffare', + 'scabroso', + 'scadenza', + 'scala', + 'scambiare', + 'scandalo', + 'scapola', + 'scarso', + 'scatenare', + 'scavato', + 'scelto', + 'scenico', + 'scettro', + 'scheda', + 'schiena', + 'sciarpa', + 'scienza', + 'scindere', + 'scippo', + 'sciroppo', + 'scivolo', + 'sclerare', + 'scodella', + 'scolpito', + 'scomparto', + 'sconforto', + 'scoprire', + 'scorta', + 'scossone', + 'scozzese', + 'scriba', + 'scrollare', + 'scrutinio', + 'scuderia', + 'scultore', + 'scuola', + 'scuro', + 'scusare', + 'sdebitare', + 'sdoganare', + 'seccatura', + 'secondo', + 'sedano', + 'seggiola', + 'segnalato', + 'segregato', + 'seguito', + 'selciato', + 'selettivo', + 'sella', + 'selvaggio', + 'semaforo', + 'sembrare', + 'seme', + 'seminato', + 'sempre', + 'senso', + 'sentire', + 'sepolto', + 'sequenza', + 'serata', + 'serbato', + 'sereno', + 'serio', + 'serpente', + 'serraglio', + 'servire', + 'sestina', + 'setola', + 'settimana', + 'sfacelo', + 'sfaldare', + 'sfamato', + 'sfarzoso', + 'sfaticato', + 'sfera', + 'sfida', + 'sfilato', + 'sfinge', + 'sfocato', + 'sfoderare', + 'sfogo', + 'sfoltire', + 'sforzato', + 'sfratto', + 'sfruttato', + 'sfuggito', + 'sfumare', + 'sfuso', + 'sgabello', + 'sgarbato', + 'sgonfiare', + 'sgorbio', + 'sgrassato', + 'sguardo', + 'sibilo', + 'siccome', + 'sierra', + 'sigla', + 'signore', + 'silenzio', + 'sillaba', + 'simbolo', + 'simpatico', + 'simulato', + 'sinfonia', + 'singolo', + 'sinistro', + 'sino', + 'sintesi', + 'sinusoide', + 'sipario', + 'sisma', + 'sistole', + 'situato', + 'slitta', + 'slogatura', + 'sloveno', + 'smarrito', + 'smemorato', + 'smentito', + 'smeraldo', + 'smilzo', + 'smontare', + 'smottato', + 'smussato', + 'snellire', + 'snervato', + 'snodo', + 'sobbalzo', + 'sobrio', + 'soccorso', + 'sociale', + 'sodale', + 'soffitto', + 'sogno', + 'soldato', + 'solenne', + 'solido', + 'sollazzo', + 'solo', + 'solubile', + 'solvente', + 'somatico', + 'somma', + 'sonda', + 'sonetto', + 'sonnifero', + 'sopire', + 'soppeso', + 'sopra', + 'sorgere', + 'sorpasso', + 'sorriso', + 'sorso', + 'sorteggio', + 'sorvolato', + 'sospiro', + 'sosta', + 'sottile', + 'spada', + 'spalla', + 'spargere', + 'spatola', + 'spavento', + 'spazzola', + 'specie', + 'spedire', + 'spegnere', + 'spelatura', + 'speranza', + 'spessore', + 'spettrale', + 'spezzato', + 'spia', + 'spigoloso', + 'spillato', + 'spinoso', + 'spirale', + 'splendido', + 'sportivo', + 'sposo', + 'spranga', + 'sprecare', + 'spronato', + 'spruzzo', + 'spuntino', + 'squillo', + 'sradicare', + 'srotolato', + 'stabile', + 'stacco', + 'staffa', + 'stagnare', + 'stampato', + 'stantio', + 'starnuto', + 'stasera', + 'statuto', + 'stelo', + 'steppa', + 'sterzo', + 'stiletto', + 'stima', + 'stirpe', + 'stivale', + 'stizzoso', + 'stonato', + 'storico', + 'strappo', + 'stregato', + 'stridulo', + 'strozzare', + 'strutto', + 'stuccare', + 'stufo', + 'stupendo', + 'subentro', + 'succoso', + 'sudore', + 'suggerito', + 'sugo', + 'sultano', + 'suonare', + 'superbo', + 'supporto', + 'surgelato', + 'surrogato', + 'sussurro', + 'sutura', + 'svagare', + 'svedese', + 'sveglio', + 'svelare', + 'svenuto', + 'svezia', + 'sviluppo', + 'svista', + 'svizzera', + 'svolta', + 'svuotare', + 'tabacco', + 'tabulato', + 'tacciare', + 'taciturno', + 'tale', + 'talismano', + 'tampone', + 'tannino', + 'tara', + 'tardivo', + 'targato', + 'tariffa', + 'tarpare', + 'tartaruga', + 'tasto', + 'tattico', + 'taverna', + 'tavolata', + 'tazza', + 'teca', + 'tecnico', + 'telefono', + 'temerario', + 'tempo', + 'temuto', + 'tendone', + 'tenero', + 'tensione', + 'tentacolo', + 'teorema', + 'terme', + 'terrazzo', + 'terzetto', + 'tesi', + 'tesserato', + 'testato', + 'tetro', + 'tettoia', + 'tifare', + 'tigella', + 'timbro', + 'tinto', + 'tipico', + 'tipografo', + 'tiraggio', + 'tiro', + 'titanio', + 'titolo', + 'titubante', + 'tizio', + 'tizzone', + 'toccare', + 'tollerare', + 'tolto', + 'tombola', + 'tomo', + 'tonfo', + 'tonsilla', + 'topazio', + 'topologia', + 'toppa', + 'torba', + 'tornare', + 'torrone', + 'tortora', + 'toscano', + 'tossire', + 'tostatura', + 'totano', + 'trabocco', + 'trachea', + 'trafila', + 'tragedia', + 'tralcio', + 'tramonto', + 'transito', + 'trapano', + 'trarre', + 'trasloco', + 'trattato', + 'trave', + 'treccia', + 'tremolio', + 'trespolo', + 'tributo', + 'tricheco', + 'trifoglio', + 'trillo', + 'trincea', + 'trio', + 'tristezza', + 'triturato', + 'trivella', + 'tromba', + 'trono', + 'troppo', + 'trottola', + 'trovare', + 'truccato', + 'tubatura', + 'tuffato', + 'tulipano', + 'tumulto', + 'tunisia', + 'turbare', + 'turchino', + 'tuta', + 'tutela', + 'ubicato', + 'uccello', + 'uccisore', + 'udire', + 'uditivo', + 'uffa', + 'ufficio', + 'uguale', + 'ulisse', + 'ultimato', + 'umano', + 'umile', + 'umorismo', + 'uncinetto', + 'ungere', + 'ungherese', + 'unicorno', + 'unificato', + 'unisono', + 'unitario', + 'unte', + 'uovo', + 'upupa', + 'uragano', + 'urgenza', + 'urlo', + 'usanza', + 'usato', + 'uscito', + 'usignolo', + 'usuraio', + 'utensile', + 'utilizzo', + 'utopia', + 'vacante', + 'vaccinato', + 'vagabondo', + 'vagliato', + 'valanga', + 'valgo', + 'valico', + 'valletta', + 'valoroso', + 'valutare', + 'valvola', + 'vampata', + 'vangare', + 'vanitoso', + 'vano', + 'vantaggio', + 'vanvera', + 'vapore', + 'varano', + 'varcato', + 'variante', + 'vasca', + 'vedetta', + 'vedova', + 'veduto', + 'vegetale', + 'veicolo', + 'velcro', + 'velina', + 'velluto', + 'veloce', + 'venato', + 'vendemmia', + 'vento', + 'verace', + 'verbale', + 'vergogna', + 'verifica', + 'vero', + 'verruca', + 'verticale', + 'vescica', + 'vessillo', + 'vestale', + 'veterano', + 'vetrina', + 'vetusto', + 'viandante', + 'vibrante', + 'vicenda', + 'vichingo', + 'vicinanza', + 'vidimare', + 'vigilia', + 'vigneto', + 'vigore', + 'vile', + 'villano', + 'vimini', + 'vincitore', + 'viola', + 'vipera', + 'virgola', + 'virologo', + 'virulento', + 'viscoso', + 'visione', + 'vispo', + 'vissuto', + 'visura', + 'vita', + 'vitello', + 'vittima', + 'vivanda', + 'vivido', + 'viziare', + 'voce', + 'voga', + 'volatile', + 'volere', + 'volpe', + 'voragine', + 'vulcano', + 'zampogna', + 'zanna', + 'zappato', + 'zattera', + 'zavorra', + 'zefiro', + 'zelante', + 'zelo', + 'zenzero', + 'zerbino', + 'zibetto', + 'zinco', + 'zircone', + 'zitto', + 'zolla', + 'zotico', + 'zucchero', + 'zufolo', + 'zulu', + 'zuppa', +]; + +const japanese = [ + 'あいこくしん', + 'あいさつ', + 'あいだ', + 'あおぞら', + 'あかちゃん', + 'あきる', + 'あけがた', + 'あける', + 'あこがれる', + 'あさい', + 'あさひ', + 'あしあと', + 'あじわう', + 'あずかる', + 'あずき', + 'あそぶ', + 'あたえる', + 'あたためる', + 'あたりまえ', + 'あたる', + 'あつい', + 'あつかう', + 'あっしゅく', + 'あつまり', + 'あつめる', + 'あてな', + 'あてはまる', + 'あひる', + 'あぶら', + 'あぶる', + 'あふれる', + 'あまい', + 'あまど', + 'あまやかす', + 'あまり', + 'あみもの', + 'あめりか', + 'あやまる', + 'あゆむ', + 'あらいぐま', + 'あらし', + 'あらすじ', + 'あらためる', + 'あらゆる', + 'あらわす', + 'ありがとう', + 'あわせる', + 'あわてる', + 'あんい', + 'あんがい', + 'あんこ', + 'あんぜん', + 'あんてい', + 'あんない', + 'あんまり', + 'いいだす', + 'いおん', + 'いがい', + 'いがく', + 'いきおい', + 'いきなり', + 'いきもの', + 'いきる', + 'いくじ', + 'いくぶん', + 'いけばな', + 'いけん', + 'いこう', + 'いこく', + 'いこつ', + 'いさましい', + 'いさん', + 'いしき', + 'いじゅう', + 'いじょう', + 'いじわる', + 'いずみ', + 'いずれ', + 'いせい', + 'いせえび', + 'いせかい', + 'いせき', + 'いぜん', + 'いそうろう', + 'いそがしい', + 'いだい', + 'いだく', + 'いたずら', + 'いたみ', + 'いたりあ', + 'いちおう', + 'いちじ', + 'いちど', + 'いちば', + 'いちぶ', + 'いちりゅう', + 'いつか', + 'いっしゅん', + 'いっせい', + 'いっそう', + 'いったん', + 'いっち', + 'いってい', + 'いっぽう', + 'いてざ', + 'いてん', + 'いどう', + 'いとこ', + 'いない', + 'いなか', + 'いねむり', + 'いのち', + 'いのる', + 'いはつ', + 'いばる', + 'いはん', + 'いびき', + 'いひん', + 'いふく', + 'いへん', + 'いほう', + 'いみん', + 'いもうと', + 'いもたれ', + 'いもり', + 'いやがる', + 'いやす', + 'いよかん', + 'いよく', + 'いらい', + 'いらすと', + 'いりぐち', + 'いりょう', + 'いれい', + 'いれもの', + 'いれる', + 'いろえんぴつ', + 'いわい', + 'いわう', + 'いわかん', + 'いわば', + 'いわゆる', + 'いんげんまめ', + 'いんさつ', + 'いんしょう', + 'いんよう', + 'うえき', + 'うえる', + 'うおざ', + 'うがい', + 'うかぶ', + 'うかべる', + 'うきわ', + 'うくらいな', + 'うくれれ', + 'うけたまわる', + 'うけつけ', + 'うけとる', + 'うけもつ', + 'うける', + 'うごかす', + 'うごく', + 'うこん', + 'うさぎ', + 'うしなう', + 'うしろがみ', + 'うすい', + 'うすぎ', + 'うすぐらい', + 'うすめる', + 'うせつ', + 'うちあわせ', + 'うちがわ', + 'うちき', + 'うちゅう', + 'うっかり', + 'うつくしい', + 'うったえる', + 'うつる', + 'うどん', + 'うなぎ', + 'うなじ', + 'うなずく', + 'うなる', + 'うねる', + 'うのう', + 'うぶげ', + 'うぶごえ', + 'うまれる', + 'うめる', + 'うもう', + 'うやまう', + 'うよく', + 'うらがえす', + 'うらぐち', + 'うらない', + 'うりあげ', + 'うりきれ', + 'うるさい', + 'うれしい', + 'うれゆき', + 'うれる', + 'うろこ', + 'うわき', + 'うわさ', + 'うんこう', + 'うんちん', + 'うんてん', + 'うんどう', + 'えいえん', + 'えいが', + 'えいきょう', + 'えいご', + 'えいせい', + 'えいぶん', + 'えいよう', + 'えいわ', + 'えおり', + 'えがお', + 'えがく', + 'えきたい', + 'えくせる', + 'えしゃく', + 'えすて', + 'えつらん', + 'えのぐ', + 'えほうまき', + 'えほん', + 'えまき', + 'えもじ', + 'えもの', + 'えらい', + 'えらぶ', + 'えりあ', + 'えんえん', + 'えんかい', + 'えんぎ', + 'えんげき', + 'えんしゅう', + 'えんぜつ', + 'えんそく', + 'えんちょう', + 'えんとつ', + 'おいかける', + 'おいこす', + 'おいしい', + 'おいつく', + 'おうえん', + 'おうさま', + 'おうじ', + 'おうせつ', + 'おうたい', + 'おうふく', + 'おうべい', + 'おうよう', + 'おえる', + 'おおい', + 'おおう', + 'おおどおり', + 'おおや', + 'おおよそ', + 'おかえり', + 'おかず', + 'おがむ', + 'おかわり', + 'おぎなう', + 'おきる', + 'おくさま', + 'おくじょう', + 'おくりがな', + 'おくる', + 'おくれる', + 'おこす', + 'おこなう', + 'おこる', + 'おさえる', + 'おさない', + 'おさめる', + 'おしいれ', + 'おしえる', + 'おじぎ', + 'おじさん', + 'おしゃれ', + 'おそらく', + 'おそわる', + 'おたがい', + 'おたく', + 'おだやか', + 'おちつく', + 'おっと', + 'おつり', + 'おでかけ', + 'おとしもの', + 'おとなしい', + 'おどり', + 'おどろかす', + 'おばさん', + 'おまいり', + 'おめでとう', + 'おもいで', + 'おもう', + 'おもたい', + 'おもちゃ', + 'おやつ', + 'おやゆび', + 'およぼす', + 'おらんだ', + 'おろす', + 'おんがく', + 'おんけい', + 'おんしゃ', + 'おんせん', + 'おんだん', + 'おんちゅう', + 'おんどけい', + 'かあつ', + 'かいが', + 'がいき', + 'がいけん', + 'がいこう', + 'かいさつ', + 'かいしゃ', + 'かいすいよく', + 'かいぜん', + 'かいぞうど', + 'かいつう', + 'かいてん', + 'かいとう', + 'かいふく', + 'がいへき', + 'かいほう', + 'かいよう', + 'がいらい', + 'かいわ', + 'かえる', + 'かおり', + 'かかえる', + 'かがく', + 'かがし', + 'かがみ', + 'かくご', + 'かくとく', + 'かざる', + 'がぞう', + 'かたい', + 'かたち', + 'がちょう', + 'がっきゅう', + 'がっこう', + 'がっさん', + 'がっしょう', + 'かなざわし', + 'かのう', + 'がはく', + 'かぶか', + 'かほう', + 'かほご', + 'かまう', + 'かまぼこ', + 'かめれおん', + 'かゆい', + 'かようび', + 'からい', + 'かるい', + 'かろう', + 'かわく', + 'かわら', + 'がんか', + 'かんけい', + 'かんこう', + 'かんしゃ', + 'かんそう', + 'かんたん', + 'かんち', + 'がんばる', + 'きあい', + 'きあつ', + 'きいろ', + 'ぎいん', + 'きうい', + 'きうん', + 'きえる', + 'きおう', + 'きおく', + 'きおち', + 'きおん', + 'きかい', + 'きかく', + 'きかんしゃ', + 'ききて', + 'きくばり', + 'きくらげ', + 'きけんせい', + 'きこう', + 'きこえる', + 'きこく', + 'きさい', + 'きさく', + 'きさま', + 'きさらぎ', + 'ぎじかがく', + 'ぎしき', + 'ぎじたいけん', + 'ぎじにってい', + 'ぎじゅつしゃ', + 'きすう', + 'きせい', + 'きせき', + 'きせつ', + 'きそう', + 'きぞく', + 'きぞん', + 'きたえる', + 'きちょう', + 'きつえん', + 'ぎっちり', + 'きつつき', + 'きつね', + 'きてい', + 'きどう', + 'きどく', + 'きない', + 'きなが', + 'きなこ', + 'きぬごし', + 'きねん', + 'きのう', + 'きのした', + 'きはく', + 'きびしい', + 'きひん', + 'きふく', + 'きぶん', + 'きぼう', + 'きほん', + 'きまる', + 'きみつ', + 'きむずかしい', + 'きめる', + 'きもだめし', + 'きもち', + 'きもの', + 'きゃく', + 'きやく', + 'ぎゅうにく', + 'きよう', + 'きょうりゅう', + 'きらい', + 'きらく', + 'きりん', + 'きれい', + 'きれつ', + 'きろく', + 'ぎろん', + 'きわめる', + 'ぎんいろ', + 'きんかくじ', + 'きんじょ', + 'きんようび', + 'ぐあい', + 'くいず', + 'くうかん', + 'くうき', + 'くうぐん', + 'くうこう', + 'ぐうせい', + 'くうそう', + 'ぐうたら', + 'くうふく', + 'くうぼ', + 'くかん', + 'くきょう', + 'くげん', + 'ぐこう', + 'くさい', + 'くさき', + 'くさばな', + 'くさる', + 'くしゃみ', + 'くしょう', + 'くすのき', + 'くすりゆび', + 'くせげ', + 'くせん', + 'ぐたいてき', + 'くださる', + 'くたびれる', + 'くちこみ', + 'くちさき', + 'くつした', + 'ぐっすり', + 'くつろぐ', + 'くとうてん', + 'くどく', + 'くなん', + 'くねくね', + 'くのう', + 'くふう', + 'くみあわせ', + 'くみたてる', + 'くめる', + 'くやくしょ', + 'くらす', + 'くらべる', + 'くるま', + 'くれる', + 'くろう', + 'くわしい', + 'ぐんかん', + 'ぐんしょく', + 'ぐんたい', + 'ぐんて', + 'けあな', + 'けいかく', + 'けいけん', + 'けいこ', + 'けいさつ', + 'げいじゅつ', + 'けいたい', + 'げいのうじん', + 'けいれき', + 'けいろ', + 'けおとす', + 'けおりもの', + 'げきか', + 'げきげん', + 'げきだん', + 'げきちん', + 'げきとつ', + 'げきは', + 'げきやく', + 'げこう', + 'げこくじょう', + 'げざい', + 'けさき', + 'げざん', + 'けしき', + 'けしごむ', + 'けしょう', + 'げすと', + 'けたば', + 'けちゃっぷ', + 'けちらす', + 'けつあつ', + 'けつい', + 'けつえき', + 'けっこん', + 'けつじょ', + 'けっせき', + 'けってい', + 'けつまつ', + 'げつようび', + 'げつれい', + 'けつろん', + 'げどく', + 'けとばす', + 'けとる', + 'けなげ', + 'けなす', + 'けなみ', + 'けぬき', + 'げねつ', + 'けねん', + 'けはい', + 'げひん', + 'けぶかい', + 'げぼく', + 'けまり', + 'けみかる', + 'けむし', + 'けむり', + 'けもの', + 'けらい', + 'けろけろ', + 'けわしい', + 'けんい', + 'けんえつ', + 'けんお', + 'けんか', + 'げんき', + 'けんげん', + 'けんこう', + 'けんさく', + 'けんしゅう', + 'けんすう', + 'げんそう', + 'けんちく', + 'けんてい', + 'けんとう', + 'けんない', + 'けんにん', + 'げんぶつ', + 'けんま', + 'けんみん', + 'けんめい', + 'けんらん', + 'けんり', + 'こあくま', + 'こいぬ', + 'こいびと', + 'ごうい', + 'こうえん', + 'こうおん', + 'こうかん', + 'ごうきゅう', + 'ごうけい', + 'こうこう', + 'こうさい', + 'こうじ', + 'こうすい', + 'ごうせい', + 'こうそく', + 'こうたい', + 'こうちゃ', + 'こうつう', + 'こうてい', + 'こうどう', + 'こうない', + 'こうはい', + 'ごうほう', + 'ごうまん', + 'こうもく', + 'こうりつ', + 'こえる', + 'こおり', + 'ごかい', + 'ごがつ', + 'ごかん', + 'こくご', + 'こくさい', + 'こくとう', + 'こくない', + 'こくはく', + 'こぐま', + 'こけい', + 'こける', + 'ここのか', + 'こころ', + 'こさめ', + 'こしつ', + 'こすう', + 'こせい', + 'こせき', + 'こぜん', + 'こそだて', + 'こたい', + 'こたえる', + 'こたつ', + 'こちょう', + 'こっか', + 'こつこつ', + 'こつばん', + 'こつぶ', + 'こてい', + 'こてん', + 'ことがら', + 'ことし', + 'ことば', + 'ことり', + 'こなごな', + 'こねこね', + 'このまま', + 'このみ', + 'このよ', + 'ごはん', + 'こひつじ', + 'こふう', + 'こふん', + 'こぼれる', + 'ごまあぶら', + 'こまかい', + 'ごますり', + 'こまつな', + 'こまる', + 'こむぎこ', + 'こもじ', + 'こもち', + 'こもの', + 'こもん', + 'こやく', + 'こやま', + 'こゆう', + 'こゆび', + 'こよい', + 'こよう', + 'こりる', + 'これくしょん', + 'ころっけ', + 'こわもて', + 'こわれる', + 'こんいん', + 'こんかい', + 'こんき', + 'こんしゅう', + 'こんすい', + 'こんだて', + 'こんとん', + 'こんなん', + 'こんびに', + 'こんぽん', + 'こんまけ', + 'こんや', + 'こんれい', + 'こんわく', + 'ざいえき', + 'さいかい', + 'さいきん', + 'ざいげん', + 'ざいこ', + 'さいしょ', + 'さいせい', + 'ざいたく', + 'ざいちゅう', + 'さいてき', + 'ざいりょう', + 'さうな', + 'さかいし', + 'さがす', + 'さかな', + 'さかみち', + 'さがる', + 'さぎょう', + 'さくし', + 'さくひん', + 'さくら', + 'さこく', + 'さこつ', + 'さずかる', + 'ざせき', + 'さたん', + 'さつえい', + 'ざつおん', + 'ざっか', + 'ざつがく', + 'さっきょく', + 'ざっし', + 'さつじん', + 'ざっそう', + 'さつたば', + 'さつまいも', + 'さてい', + 'さといも', + 'さとう', + 'さとおや', + 'さとし', + 'さとる', + 'さのう', + 'さばく', + 'さびしい', + 'さべつ', + 'さほう', + 'さほど', + 'さます', + 'さみしい', + 'さみだれ', + 'さむけ', + 'さめる', + 'さやえんどう', + 'さゆう', + 'さよう', + 'さよく', + 'さらだ', + 'ざるそば', + 'さわやか', + 'さわる', + 'さんいん', + 'さんか', + 'さんきゃく', + 'さんこう', + 'さんさい', + 'ざんしょ', + 'さんすう', + 'さんせい', + 'さんそ', + 'さんち', + 'さんま', + 'さんみ', + 'さんらん', + 'しあい', + 'しあげ', + 'しあさって', + 'しあわせ', + 'しいく', + 'しいん', + 'しうち', + 'しえい', + 'しおけ', + 'しかい', + 'しかく', + 'じかん', + 'しごと', + 'しすう', + 'じだい', + 'したうけ', + 'したぎ', + 'したて', + 'したみ', + 'しちょう', + 'しちりん', + 'しっかり', + 'しつじ', + 'しつもん', + 'してい', + 'してき', + 'してつ', + 'じてん', + 'じどう', + 'しなぎれ', + 'しなもの', + 'しなん', + 'しねま', + 'しねん', + 'しのぐ', + 'しのぶ', + 'しはい', + 'しばかり', + 'しはつ', + 'しはらい', + 'しはん', + 'しひょう', + 'しふく', + 'じぶん', + 'しへい', + 'しほう', + 'しほん', + 'しまう', + 'しまる', + 'しみん', + 'しむける', + 'じむしょ', + 'しめい', + 'しめる', + 'しもん', + 'しゃいん', + 'しゃうん', + 'しゃおん', + 'じゃがいも', + 'しやくしょ', + 'しゃくほう', + 'しゃけん', + 'しゃこ', + 'しゃざい', + 'しゃしん', + 'しゃせん', + 'しゃそう', + 'しゃたい', + 'しゃちょう', + 'しゃっきん', + 'じゃま', + 'しゃりん', + 'しゃれい', + 'じゆう', + 'じゅうしょ', + 'しゅくはく', + 'じゅしん', + 'しゅっせき', + 'しゅみ', + 'しゅらば', + 'じゅんばん', + 'しょうかい', + 'しょくたく', + 'しょっけん', + 'しょどう', + 'しょもつ', + 'しらせる', + 'しらべる', + 'しんか', + 'しんこう', + 'じんじゃ', + 'しんせいじ', + 'しんちく', + 'しんりん', + 'すあげ', + 'すあし', + 'すあな', + 'ずあん', + 'すいえい', + 'すいか', + 'すいとう', + 'ずいぶん', + 'すいようび', + 'すうがく', + 'すうじつ', + 'すうせん', + 'すおどり', + 'すきま', + 'すくう', + 'すくない', + 'すける', + 'すごい', + 'すこし', + 'ずさん', + 'すずしい', + 'すすむ', + 'すすめる', + 'すっかり', + 'ずっしり', + 'ずっと', + 'すてき', + 'すてる', + 'すねる', + 'すのこ', + 'すはだ', + 'すばらしい', + 'ずひょう', + 'ずぶぬれ', + 'すぶり', + 'すふれ', + 'すべて', + 'すべる', + 'ずほう', + 'すぼん', + 'すまい', + 'すめし', + 'すもう', + 'すやき', + 'すらすら', + 'するめ', + 'すれちがう', + 'すろっと', + 'すわる', + 'すんぜん', + 'すんぽう', + 'せあぶら', + 'せいかつ', + 'せいげん', + 'せいじ', + 'せいよう', + 'せおう', + 'せかいかん', + 'せきにん', + 'せきむ', + 'せきゆ', + 'せきらんうん', + 'せけん', + 'せこう', + 'せすじ', + 'せたい', + 'せたけ', + 'せっかく', + 'せっきゃく', + 'ぜっく', + 'せっけん', + 'せっこつ', + 'せっさたくま', + 'せつぞく', + 'せつだん', + 'せつでん', + 'せっぱん', + 'せつび', + 'せつぶん', + 'せつめい', + 'せつりつ', + 'せなか', + 'せのび', + 'せはば', + 'せびろ', + 'せぼね', + 'せまい', + 'せまる', + 'せめる', + 'せもたれ', + 'せりふ', + 'ぜんあく', + 'せんい', + 'せんえい', + 'せんか', + 'せんきょ', + 'せんく', + 'せんげん', + 'ぜんご', + 'せんさい', + 'せんしゅ', + 'せんすい', + 'せんせい', + 'せんぞ', + 'せんたく', + 'せんちょう', + 'せんてい', + 'せんとう', + 'せんぬき', + 'せんねん', + 'せんぱい', + 'ぜんぶ', + 'ぜんぽう', + 'せんむ', + 'せんめんじょ', + 'せんもん', + 'せんやく', + 'せんゆう', + 'せんよう', + 'ぜんら', + 'ぜんりゃく', + 'せんれい', + 'せんろ', + 'そあく', + 'そいとげる', + 'そいね', + 'そうがんきょう', + 'そうき', + 'そうご', + 'そうしん', + 'そうだん', + 'そうなん', + 'そうび', + 'そうめん', + 'そうり', + 'そえもの', + 'そえん', + 'そがい', + 'そげき', + 'そこう', + 'そこそこ', + 'そざい', + 'そしな', + 'そせい', + 'そせん', + 'そそぐ', + 'そだてる', + 'そつう', + 'そつえん', + 'そっかん', + 'そつぎょう', + 'そっけつ', + 'そっこう', + 'そっせん', + 'そっと', + 'そとがわ', + 'そとづら', + 'そなえる', + 'そなた', + 'そふぼ', + 'そぼく', + 'そぼろ', + 'そまつ', + 'そまる', + 'そむく', + 'そむりえ', + 'そめる', + 'そもそも', + 'そよかぜ', + 'そらまめ', + 'そろう', + 'そんかい', + 'そんけい', + 'そんざい', + 'そんしつ', + 'そんぞく', + 'そんちょう', + 'ぞんび', + 'ぞんぶん', + 'そんみん', + 'たあい', + 'たいいん', + 'たいうん', + 'たいえき', + 'たいおう', + 'だいがく', + 'たいき', + 'たいぐう', + 'たいけん', + 'たいこ', + 'たいざい', + 'だいじょうぶ', + 'だいすき', + 'たいせつ', + 'たいそう', + 'だいたい', + 'たいちょう', + 'たいてい', + 'だいどころ', + 'たいない', + 'たいねつ', + 'たいのう', + 'たいはん', + 'だいひょう', + 'たいふう', + 'たいへん', + 'たいほ', + 'たいまつばな', + 'たいみんぐ', + 'たいむ', + 'たいめん', + 'たいやき', + 'たいよう', + 'たいら', + 'たいりょく', + 'たいる', + 'たいわん', + 'たうえ', + 'たえる', + 'たおす', + 'たおる', + 'たおれる', + 'たかい', + 'たかね', + 'たきび', + 'たくさん', + 'たこく', + 'たこやき', + 'たさい', + 'たしざん', + 'だじゃれ', + 'たすける', + 'たずさわる', + 'たそがれ', + 'たたかう', + 'たたく', + 'ただしい', + 'たたみ', + 'たちばな', + 'だっかい', + 'だっきゃく', + 'だっこ', + 'だっしゅつ', + 'だったい', + 'たてる', + 'たとえる', + 'たなばた', + 'たにん', + 'たぬき', + 'たのしみ', + 'たはつ', + 'たぶん', + 'たべる', + 'たぼう', + 'たまご', + 'たまる', + 'だむる', + 'ためいき', + 'ためす', + 'ためる', + 'たもつ', + 'たやすい', + 'たよる', + 'たらす', + 'たりきほんがん', + 'たりょう', + 'たりる', + 'たると', + 'たれる', + 'たれんと', + 'たろっと', + 'たわむれる', + 'だんあつ', + 'たんい', + 'たんおん', + 'たんか', + 'たんき', + 'たんけん', + 'たんご', + 'たんさん', + 'たんじょうび', + 'だんせい', + 'たんそく', + 'たんたい', + 'だんち', + 'たんてい', + 'たんとう', + 'だんな', + 'たんにん', + 'だんねつ', + 'たんのう', + 'たんぴん', + 'だんぼう', + 'たんまつ', + 'たんめい', + 'だんれつ', + 'だんろ', + 'だんわ', + 'ちあい', + 'ちあん', + 'ちいき', + 'ちいさい', + 'ちえん', + 'ちかい', + 'ちから', + 'ちきゅう', + 'ちきん', + 'ちけいず', + 'ちけん', + 'ちこく', + 'ちさい', + 'ちしき', + 'ちしりょう', + 'ちせい', + 'ちそう', + 'ちたい', + 'ちたん', + 'ちちおや', + 'ちつじょ', + 'ちてき', + 'ちてん', + 'ちぬき', + 'ちぬり', + 'ちのう', + 'ちひょう', + 'ちへいせん', + 'ちほう', + 'ちまた', + 'ちみつ', + 'ちみどろ', + 'ちめいど', + 'ちゃんこなべ', + 'ちゅうい', + 'ちゆりょく', + 'ちょうし', + 'ちょさくけん', + 'ちらし', + 'ちらみ', + 'ちりがみ', + 'ちりょう', + 'ちるど', + 'ちわわ', + 'ちんたい', + 'ちんもく', + 'ついか', + 'ついたち', + 'つうか', + 'つうじょう', + 'つうはん', + 'つうわ', + 'つかう', + 'つかれる', + 'つくね', + 'つくる', + 'つけね', + 'つける', + 'つごう', + 'つたえる', + 'つづく', + 'つつじ', + 'つつむ', + 'つとめる', + 'つながる', + 'つなみ', + 'つねづね', + 'つのる', + 'つぶす', + 'つまらない', + 'つまる', + 'つみき', + 'つめたい', + 'つもり', + 'つもる', + 'つよい', + 'つるぼ', + 'つるみく', + 'つわもの', + 'つわり', + 'てあし', + 'てあて', + 'てあみ', + 'ていおん', + 'ていか', + 'ていき', + 'ていけい', + 'ていこく', + 'ていさつ', + 'ていし', + 'ていせい', + 'ていたい', + 'ていど', + 'ていねい', + 'ていひょう', + 'ていへん', + 'ていぼう', + 'てうち', + 'ておくれ', + 'てきとう', + 'てくび', + 'でこぼこ', + 'てさぎょう', + 'てさげ', + 'てすり', + 'てそう', + 'てちがい', + 'てちょう', + 'てつがく', + 'てつづき', + 'でっぱ', + 'てつぼう', + 'てつや', + 'でぬかえ', + 'てぬき', + 'てぬぐい', + 'てのひら', + 'てはい', + 'てぶくろ', + 'てふだ', + 'てほどき', + 'てほん', + 'てまえ', + 'てまきずし', + 'てみじか', + 'てみやげ', + 'てらす', + 'てれび', + 'てわけ', + 'てわたし', + 'でんあつ', + 'てんいん', + 'てんかい', + 'てんき', + 'てんぐ', + 'てんけん', + 'てんごく', + 'てんさい', + 'てんし', + 'てんすう', + 'でんち', + 'てんてき', + 'てんとう', + 'てんない', + 'てんぷら', + 'てんぼうだい', + 'てんめつ', + 'てんらんかい', + 'でんりょく', + 'でんわ', + 'どあい', + 'といれ', + 'どうかん', + 'とうきゅう', + 'どうぐ', + 'とうし', + 'とうむぎ', + 'とおい', + 'とおか', + 'とおく', + 'とおす', + 'とおる', + 'とかい', + 'とかす', + 'ときおり', + 'ときどき', + 'とくい', + 'とくしゅう', + 'とくてん', + 'とくに', + 'とくべつ', + 'とけい', + 'とける', + 'とこや', + 'とさか', + 'としょかん', + 'とそう', + 'とたん', + 'とちゅう', + 'とっきゅう', + 'とっくん', + 'とつぜん', + 'とつにゅう', + 'とどける', + 'ととのえる', + 'とない', + 'となえる', + 'となり', + 'とのさま', + 'とばす', + 'どぶがわ', + 'とほう', + 'とまる', + 'とめる', + 'ともだち', + 'ともる', + 'どようび', + 'とらえる', + 'とんかつ', + 'どんぶり', + 'ないかく', + 'ないこう', + 'ないしょ', + 'ないす', + 'ないせん', + 'ないそう', + 'なおす', + 'ながい', + 'なくす', + 'なげる', + 'なこうど', + 'なさけ', + 'なたでここ', + 'なっとう', + 'なつやすみ', + 'ななおし', + 'なにごと', + 'なにもの', + 'なにわ', + 'なのか', + 'なふだ', + 'なまいき', + 'なまえ', + 'なまみ', + 'なみだ', + 'なめらか', + 'なめる', + 'なやむ', + 'ならう', + 'ならび', + 'ならぶ', + 'なれる', + 'なわとび', + 'なわばり', + 'にあう', + 'にいがた', + 'にうけ', + 'におい', + 'にかい', + 'にがて', + 'にきび', + 'にくしみ', + 'にくまん', + 'にげる', + 'にさんかたんそ', + 'にしき', + 'にせもの', + 'にちじょう', + 'にちようび', + 'にっか', + 'にっき', + 'にっけい', + 'にっこう', + 'にっさん', + 'にっしょく', + 'にっすう', + 'にっせき', + 'にってい', + 'になう', + 'にほん', + 'にまめ', + 'にもつ', + 'にやり', + 'にゅういん', + 'にりんしゃ', + 'にわとり', + 'にんい', + 'にんか', + 'にんき', + 'にんげん', + 'にんしき', + 'にんずう', + 'にんそう', + 'にんたい', + 'にんち', + 'にんてい', + 'にんにく', + 'にんぷ', + 'にんまり', + 'にんむ', + 'にんめい', + 'にんよう', + 'ぬいくぎ', + 'ぬかす', + 'ぬぐいとる', + 'ぬぐう', + 'ぬくもり', + 'ぬすむ', + 'ぬまえび', + 'ぬめり', + 'ぬらす', + 'ぬんちゃく', + 'ねあげ', + 'ねいき', + 'ねいる', + 'ねいろ', + 'ねぐせ', + 'ねくたい', + 'ねくら', + 'ねこぜ', + 'ねこむ', + 'ねさげ', + 'ねすごす', + 'ねそべる', + 'ねだん', + 'ねつい', + 'ねっしん', + 'ねつぞう', + 'ねったいぎょ', + 'ねぶそく', + 'ねふだ', + 'ねぼう', + 'ねほりはほり', + 'ねまき', + 'ねまわし', + 'ねみみ', + 'ねむい', + 'ねむたい', + 'ねもと', + 'ねらう', + 'ねわざ', + 'ねんいり', + 'ねんおし', + 'ねんかん', + 'ねんきん', + 'ねんぐ', + 'ねんざ', + 'ねんし', + 'ねんちゃく', + 'ねんど', + 'ねんぴ', + 'ねんぶつ', + 'ねんまつ', + 'ねんりょう', + 'ねんれい', + 'のいず', + 'のおづま', + 'のがす', + 'のきなみ', + 'のこぎり', + 'のこす', + 'のこる', + 'のせる', + 'のぞく', + 'のぞむ', + 'のたまう', + 'のちほど', + 'のっく', + 'のばす', + 'のはら', + 'のべる', + 'のぼる', + 'のみもの', + 'のやま', + 'のらいぬ', + 'のらねこ', + 'のりもの', + 'のりゆき', + 'のれん', + 'のんき', + 'ばあい', + 'はあく', + 'ばあさん', + 'ばいか', + 'ばいく', + 'はいけん', + 'はいご', + 'はいしん', + 'はいすい', + 'はいせん', + 'はいそう', + 'はいち', + 'ばいばい', + 'はいれつ', + 'はえる', + 'はおる', + 'はかい', + 'ばかり', + 'はかる', + 'はくしゅ', + 'はけん', + 'はこぶ', + 'はさみ', + 'はさん', + 'はしご', + 'ばしょ', + 'はしる', + 'はせる', + 'ぱそこん', + 'はそん', + 'はたん', + 'はちみつ', + 'はつおん', + 'はっかく', + 'はづき', + 'はっきり', + 'はっくつ', + 'はっけん', + 'はっこう', + 'はっさん', + 'はっしん', + 'はったつ', + 'はっちゅう', + 'はってん', + 'はっぴょう', + 'はっぽう', + 'はなす', + 'はなび', + 'はにかむ', + 'はぶらし', + 'はみがき', + 'はむかう', + 'はめつ', + 'はやい', + 'はやし', + 'はらう', + 'はろうぃん', + 'はわい', + 'はんい', + 'はんえい', + 'はんおん', + 'はんかく', + 'はんきょう', + 'ばんぐみ', + 'はんこ', + 'はんしゃ', + 'はんすう', + 'はんだん', + 'ぱんち', + 'ぱんつ', + 'はんてい', + 'はんとし', + 'はんのう', + 'はんぱ', + 'はんぶん', + 'はんぺん', + 'はんぼうき', + 'はんめい', + 'はんらん', + 'はんろん', + 'ひいき', + 'ひうん', + 'ひえる', + 'ひかく', + 'ひかり', + 'ひかる', + 'ひかん', + 'ひくい', + 'ひけつ', + 'ひこうき', + 'ひこく', + 'ひさい', + 'ひさしぶり', + 'ひさん', + 'びじゅつかん', + 'ひしょ', + 'ひそか', + 'ひそむ', + 'ひたむき', + 'ひだり', + 'ひたる', + 'ひつぎ', + 'ひっこし', + 'ひっし', + 'ひつじゅひん', + 'ひっす', + 'ひつぜん', + 'ぴったり', + 'ぴっちり', + 'ひつよう', + 'ひてい', + 'ひとごみ', + 'ひなまつり', + 'ひなん', + 'ひねる', + 'ひはん', + 'ひびく', + 'ひひょう', + 'ひほう', + 'ひまわり', + 'ひまん', + 'ひみつ', + 'ひめい', + 'ひめじし', + 'ひやけ', + 'ひやす', + 'ひよう', + 'びょうき', + 'ひらがな', + 'ひらく', + 'ひりつ', + 'ひりょう', + 'ひるま', + 'ひるやすみ', + 'ひれい', + 'ひろい', + 'ひろう', + 'ひろき', + 'ひろゆき', + 'ひんかく', + 'ひんけつ', + 'ひんこん', + 'ひんしゅ', + 'ひんそう', + 'ぴんち', + 'ひんぱん', + 'びんぼう', + 'ふあん', + 'ふいうち', + 'ふうけい', + 'ふうせん', + 'ぷうたろう', + 'ふうとう', + 'ふうふ', + 'ふえる', + 'ふおん', + 'ふかい', + 'ふきん', + 'ふくざつ', + 'ふくぶくろ', + 'ふこう', + 'ふさい', + 'ふしぎ', + 'ふじみ', + 'ふすま', + 'ふせい', + 'ふせぐ', + 'ふそく', + 'ぶたにく', + 'ふたん', + 'ふちょう', + 'ふつう', + 'ふつか', + 'ふっかつ', + 'ふっき', + 'ふっこく', + 'ぶどう', + 'ふとる', + 'ふとん', + 'ふのう', + 'ふはい', + 'ふひょう', + 'ふへん', + 'ふまん', + 'ふみん', + 'ふめつ', + 'ふめん', + 'ふよう', + 'ふりこ', + 'ふりる', + 'ふるい', + 'ふんいき', + 'ぶんがく', + 'ぶんぐ', + 'ふんしつ', + 'ぶんせき', + 'ふんそう', + 'ぶんぽう', + 'へいあん', + 'へいおん', + 'へいがい', + 'へいき', + 'へいげん', + 'へいこう', + 'へいさ', + 'へいしゃ', + 'へいせつ', + 'へいそ', + 'へいたく', + 'へいてん', + 'へいねつ', + 'へいわ', + 'へきが', + 'へこむ', + 'べにいろ', + 'べにしょうが', + 'へらす', + 'へんかん', + 'べんきょう', + 'べんごし', + 'へんさい', + 'へんたい', + 'べんり', + 'ほあん', + 'ほいく', + 'ぼうぎょ', + 'ほうこく', + 'ほうそう', + 'ほうほう', + 'ほうもん', + 'ほうりつ', + 'ほえる', + 'ほおん', + 'ほかん', + 'ほきょう', + 'ぼきん', + 'ほくろ', + 'ほけつ', + 'ほけん', + 'ほこう', + 'ほこる', + 'ほしい', + 'ほしつ', + 'ほしゅ', + 'ほしょう', + 'ほせい', + 'ほそい', + 'ほそく', + 'ほたて', + 'ほたる', + 'ぽちぶくろ', + 'ほっきょく', + 'ほっさ', + 'ほったん', + 'ほとんど', + 'ほめる', + 'ほんい', + 'ほんき', + 'ほんけ', + 'ほんしつ', + 'ほんやく', + 'まいにち', + 'まかい', + 'まかせる', + 'まがる', + 'まける', + 'まこと', + 'まさつ', + 'まじめ', + 'ますく', + 'まぜる', + 'まつり', + 'まとめ', + 'まなぶ', + 'まぬけ', + 'まねく', + 'まほう', + 'まもる', + 'まゆげ', + 'まよう', + 'まろやか', + 'まわす', + 'まわり', + 'まわる', + 'まんが', + 'まんきつ', + 'まんぞく', + 'まんなか', + 'みいら', + 'みうち', + 'みえる', + 'みがく', + 'みかた', + 'みかん', + 'みけん', + 'みこん', + 'みじかい', + 'みすい', + 'みすえる', + 'みせる', + 'みっか', + 'みつかる', + 'みつける', + 'みてい', + 'みとめる', + 'みなと', + 'みなみかさい', + 'みねらる', + 'みのう', + 'みのがす', + 'みほん', + 'みもと', + 'みやげ', + 'みらい', + 'みりょく', + 'みわく', + 'みんか', + 'みんぞく', + 'むいか', + 'むえき', + 'むえん', + 'むかい', + 'むかう', + 'むかえ', + 'むかし', + 'むぎちゃ', + 'むける', + 'むげん', + 'むさぼる', + 'むしあつい', + 'むしば', + 'むじゅん', + 'むしろ', + 'むすう', + 'むすこ', + 'むすぶ', + 'むすめ', + 'むせる', + 'むせん', + 'むちゅう', + 'むなしい', + 'むのう', + 'むやみ', + 'むよう', + 'むらさき', + 'むりょう', + 'むろん', + 'めいあん', + 'めいうん', + 'めいえん', + 'めいかく', + 'めいきょく', + 'めいさい', + 'めいし', + 'めいそう', + 'めいぶつ', + 'めいれい', + 'めいわく', + 'めぐまれる', + 'めざす', + 'めした', + 'めずらしい', + 'めだつ', + 'めまい', + 'めやす', + 'めんきょ', + 'めんせき', + 'めんどう', + 'もうしあげる', + 'もうどうけん', + 'もえる', + 'もくし', + 'もくてき', + 'もくようび', + 'もちろん', + 'もどる', + 'もらう', + 'もんく', + 'もんだい', + 'やおや', + 'やける', + 'やさい', + 'やさしい', + 'やすい', + 'やすたろう', + 'やすみ', + 'やせる', + 'やそう', + 'やたい', + 'やちん', + 'やっと', + 'やっぱり', + 'やぶる', + 'やめる', + 'ややこしい', + 'やよい', + 'やわらかい', + 'ゆうき', + 'ゆうびんきょく', + 'ゆうべ', + 'ゆうめい', + 'ゆけつ', + 'ゆしゅつ', + 'ゆせん', + 'ゆそう', + 'ゆたか', + 'ゆちゃく', + 'ゆでる', + 'ゆにゅう', + 'ゆびわ', + 'ゆらい', + 'ゆれる', + 'ようい', + 'ようか', + 'ようきゅう', + 'ようじ', + 'ようす', + 'ようちえん', + 'よかぜ', + 'よかん', + 'よきん', + 'よくせい', + 'よくぼう', + 'よけい', + 'よごれる', + 'よさん', + 'よしゅう', + 'よそう', + 'よそく', + 'よっか', + 'よてい', + 'よどがわく', + 'よねつ', + 'よやく', + 'よゆう', + 'よろこぶ', + 'よろしい', + 'らいう', + 'らくがき', + 'らくご', + 'らくさつ', + 'らくだ', + 'らしんばん', + 'らせん', + 'らぞく', + 'らたい', + 'らっか', + 'られつ', + 'りえき', + 'りかい', + 'りきさく', + 'りきせつ', + 'りくぐん', + 'りくつ', + 'りけん', + 'りこう', + 'りせい', + 'りそう', + 'りそく', + 'りてん', + 'りねん', + 'りゆう', + 'りゅうがく', + 'りよう', + 'りょうり', + 'りょかん', + 'りょくちゃ', + 'りょこう', + 'りりく', + 'りれき', + 'りろん', + 'りんご', + 'るいけい', + 'るいさい', + 'るいじ', + 'るいせき', + 'るすばん', + 'るりがわら', + 'れいかん', + 'れいぎ', + 'れいせい', + 'れいぞうこ', + 'れいとう', + 'れいぼう', + 'れきし', + 'れきだい', + 'れんあい', + 'れんけい', + 'れんこん', + 'れんさい', + 'れんしゅう', + 'れんぞく', + 'れんらく', + 'ろうか', + 'ろうご', + 'ろうじん', + 'ろうそく', + 'ろくが', + 'ろこつ', + 'ろじうら', + 'ろしゅつ', + 'ろせん', + 'ろてん', + 'ろめん', + 'ろれつ', + 'ろんぎ', + 'ろんぱ', + 'ろんぶん', + 'ろんり', + 'わかす', + 'わかめ', + 'わかやま', + 'わかれる', + 'わしつ', + 'わじまし', + 'わすれもの', + 'わらう', + 'われる', +]; + +const korean = [ + '가격', + '가끔', + '가난', + '가능', + '가득', + '가르침', + '가뭄', + '가방', + '가상', + '가슴', + '가운데', + '가을', + '가이드', + '가입', + '가장', + '가정', + '가족', + '가죽', + '각오', + '각자', + '간격', + '간부', + '간섭', + '간장', + '간접', + '간판', + '갈등', + '갈비', + '갈색', + '갈증', + '감각', + '감기', + '감소', + '감수성', + '감자', + '감정', + '갑자기', + '강남', + '강당', + '강도', + '강력히', + '강변', + '강북', + '강사', + '강수량', + '강아지', + '강원도', + '강의', + '강제', + '강조', + '같이', + '개구리', + '개나리', + '개방', + '개별', + '개선', + '개성', + '개인', + '객관적', + '거실', + '거액', + '거울', + '거짓', + '거품', + '걱정', + '건강', + '건물', + '건설', + '건조', + '건축', + '걸음', + '검사', + '검토', + '게시판', + '게임', + '겨울', + '견해', + '결과', + '결국', + '결론', + '결석', + '결승', + '결심', + '결정', + '결혼', + '경계', + '경고', + '경기', + '경력', + '경복궁', + '경비', + '경상도', + '경영', + '경우', + '경쟁', + '경제', + '경주', + '경찰', + '경치', + '경향', + '경험', + '계곡', + '계단', + '계란', + '계산', + '계속', + '계약', + '계절', + '계층', + '계획', + '고객', + '고구려', + '고궁', + '고급', + '고등학생', + '고무신', + '고민', + '고양이', + '고장', + '고전', + '고집', + '고춧가루', + '고통', + '고향', + '곡식', + '골목', + '골짜기', + '골프', + '공간', + '공개', + '공격', + '공군', + '공급', + '공기', + '공동', + '공무원', + '공부', + '공사', + '공식', + '공업', + '공연', + '공원', + '공장', + '공짜', + '공책', + '공통', + '공포', + '공항', + '공휴일', + '과목', + '과일', + '과장', + '과정', + '과학', + '관객', + '관계', + '관광', + '관념', + '관람', + '관련', + '관리', + '관습', + '관심', + '관점', + '관찰', + '광경', + '광고', + '광장', + '광주', + '괴로움', + '굉장히', + '교과서', + '교문', + '교복', + '교실', + '교양', + '교육', + '교장', + '교직', + '교통', + '교환', + '교훈', + '구경', + '구름', + '구멍', + '구별', + '구분', + '구석', + '구성', + '구속', + '구역', + '구입', + '구청', + '구체적', + '국가', + '국기', + '국내', + '국립', + '국물', + '국민', + '국수', + '국어', + '국왕', + '국적', + '국제', + '국회', + '군대', + '군사', + '군인', + '궁극적', + '권리', + '권위', + '권투', + '귀국', + '귀신', + '규정', + '규칙', + '균형', + '그날', + '그냥', + '그늘', + '그러나', + '그룹', + '그릇', + '그림', + '그제서야', + '그토록', + '극복', + '극히', + '근거', + '근교', + '근래', + '근로', + '근무', + '근본', + '근원', + '근육', + '근처', + '글씨', + '글자', + '금강산', + '금고', + '금년', + '금메달', + '금액', + '금연', + '금요일', + '금지', + '긍정적', + '기간', + '기관', + '기념', + '기능', + '기독교', + '기둥', + '기록', + '기름', + '기법', + '기본', + '기분', + '기쁨', + '기숙사', + '기술', + '기억', + '기업', + '기온', + '기운', + '기원', + '기적', + '기준', + '기침', + '기혼', + '기획', + '긴급', + '긴장', + '길이', + '김밥', + '김치', + '김포공항', + '깍두기', + '깜빡', + '깨달음', + '깨소금', + '껍질', + '꼭대기', + '꽃잎', + '나들이', + '나란히', + '나머지', + '나물', + '나침반', + '나흘', + '낙엽', + '난방', + '날개', + '날씨', + '날짜', + '남녀', + '남대문', + '남매', + '남산', + '남자', + '남편', + '남학생', + '낭비', + '낱말', + '내년', + '내용', + '내일', + '냄비', + '냄새', + '냇물', + '냉동', + '냉면', + '냉방', + '냉장고', + '넥타이', + '넷째', + '노동', + '노란색', + '노력', + '노인', + '녹음', + '녹차', + '녹화', + '논리', + '논문', + '논쟁', + '놀이', + '농구', + '농담', + '농민', + '농부', + '농업', + '농장', + '농촌', + '높이', + '눈동자', + '눈물', + '눈썹', + '뉴욕', + '느낌', + '늑대', + '능동적', + '능력', + '다방', + '다양성', + '다음', + '다이어트', + '다행', + '단계', + '단골', + '단독', + '단맛', + '단순', + '단어', + '단위', + '단점', + '단체', + '단추', + '단편', + '단풍', + '달걀', + '달러', + '달력', + '달리', + '닭고기', + '담당', + '담배', + '담요', + '담임', + '답변', + '답장', + '당근', + '당분간', + '당연히', + '당장', + '대규모', + '대낮', + '대단히', + '대답', + '대도시', + '대략', + '대량', + '대륙', + '대문', + '대부분', + '대신', + '대응', + '대장', + '대전', + '대접', + '대중', + '대책', + '대출', + '대충', + '대통령', + '대학', + '대한민국', + '대합실', + '대형', + '덩어리', + '데이트', + '도대체', + '도덕', + '도둑', + '도망', + '도서관', + '도심', + '도움', + '도입', + '도자기', + '도저히', + '도전', + '도중', + '도착', + '독감', + '독립', + '독서', + '독일', + '독창적', + '동화책', + '뒷모습', + '뒷산', + '딸아이', + '마누라', + '마늘', + '마당', + '마라톤', + '마련', + '마무리', + '마사지', + '마약', + '마요네즈', + '마을', + '마음', + '마이크', + '마중', + '마지막', + '마찬가지', + '마찰', + '마흔', + '막걸리', + '막내', + '막상', + '만남', + '만두', + '만세', + '만약', + '만일', + '만점', + '만족', + '만화', + '많이', + '말기', + '말씀', + '말투', + '맘대로', + '망원경', + '매년', + '매달', + '매력', + '매번', + '매스컴', + '매일', + '매장', + '맥주', + '먹이', + '먼저', + '먼지', + '멀리', + '메일', + '며느리', + '며칠', + '면담', + '멸치', + '명단', + '명령', + '명예', + '명의', + '명절', + '명칭', + '명함', + '모금', + '모니터', + '모델', + '모든', + '모범', + '모습', + '모양', + '모임', + '모조리', + '모집', + '모퉁이', + '목걸이', + '목록', + '목사', + '목소리', + '목숨', + '목적', + '목표', + '몰래', + '몸매', + '몸무게', + '몸살', + '몸속', + '몸짓', + '몸통', + '몹시', + '무관심', + '무궁화', + '무더위', + '무덤', + '무릎', + '무슨', + '무엇', + '무역', + '무용', + '무조건', + '무지개', + '무척', + '문구', + '문득', + '문법', + '문서', + '문제', + '문학', + '문화', + '물가', + '물건', + '물결', + '물고기', + '물론', + '물리학', + '물음', + '물질', + '물체', + '미국', + '미디어', + '미사일', + '미술', + '미역', + '미용실', + '미움', + '미인', + '미팅', + '미혼', + '민간', + '민족', + '민주', + '믿음', + '밀가루', + '밀리미터', + '밑바닥', + '바가지', + '바구니', + '바나나', + '바늘', + '바닥', + '바닷가', + '바람', + '바이러스', + '바탕', + '박물관', + '박사', + '박수', + '반대', + '반드시', + '반말', + '반발', + '반성', + '반응', + '반장', + '반죽', + '반지', + '반찬', + '받침', + '발가락', + '발걸음', + '발견', + '발달', + '발레', + '발목', + '발바닥', + '발생', + '발음', + '발자국', + '발전', + '발톱', + '발표', + '밤하늘', + '밥그릇', + '밥맛', + '밥상', + '밥솥', + '방금', + '방면', + '방문', + '방바닥', + '방법', + '방송', + '방식', + '방안', + '방울', + '방지', + '방학', + '방해', + '방향', + '배경', + '배꼽', + '배달', + '배드민턴', + '백두산', + '백색', + '백성', + '백인', + '백제', + '백화점', + '버릇', + '버섯', + '버튼', + '번개', + '번역', + '번지', + '번호', + '벌금', + '벌레', + '벌써', + '범위', + '범인', + '범죄', + '법률', + '법원', + '법적', + '법칙', + '베이징', + '벨트', + '변경', + '변동', + '변명', + '변신', + '변호사', + '변화', + '별도', + '별명', + '별일', + '병실', + '병아리', + '병원', + '보관', + '보너스', + '보라색', + '보람', + '보름', + '보상', + '보안', + '보자기', + '보장', + '보전', + '보존', + '보통', + '보편적', + '보험', + '복도', + '복사', + '복숭아', + '복습', + '볶음', + '본격적', + '본래', + '본부', + '본사', + '본성', + '본인', + '본질', + '볼펜', + '봉사', + '봉지', + '봉투', + '부근', + '부끄러움', + '부담', + '부동산', + '부문', + '부분', + '부산', + '부상', + '부엌', + '부인', + '부작용', + '부장', + '부정', + '부족', + '부지런히', + '부친', + '부탁', + '부품', + '부회장', + '북부', + '북한', + '분노', + '분량', + '분리', + '분명', + '분석', + '분야', + '분위기', + '분필', + '분홍색', + '불고기', + '불과', + '불교', + '불꽃', + '불만', + '불법', + '불빛', + '불안', + '불이익', + '불행', + '브랜드', + '비극', + '비난', + '비닐', + '비둘기', + '비디오', + '비로소', + '비만', + '비명', + '비밀', + '비바람', + '비빔밥', + '비상', + '비용', + '비율', + '비중', + '비타민', + '비판', + '빌딩', + '빗물', + '빗방울', + '빗줄기', + '빛깔', + '빨간색', + '빨래', + '빨리', + '사건', + '사계절', + '사나이', + '사냥', + '사람', + '사랑', + '사립', + '사모님', + '사물', + '사방', + '사상', + '사생활', + '사설', + '사슴', + '사실', + '사업', + '사용', + '사월', + '사장', + '사전', + '사진', + '사촌', + '사춘기', + '사탕', + '사투리', + '사흘', + '산길', + '산부인과', + '산업', + '산책', + '살림', + '살인', + '살짝', + '삼계탕', + '삼국', + '삼십', + '삼월', + '삼촌', + '상관', + '상금', + '상대', + '상류', + '상반기', + '상상', + '상식', + '상업', + '상인', + '상자', + '상점', + '상처', + '상추', + '상태', + '상표', + '상품', + '상황', + '새벽', + '색깔', + '색연필', + '생각', + '생명', + '생물', + '생방송', + '생산', + '생선', + '생신', + '생일', + '생활', + '서랍', + '서른', + '서명', + '서민', + '서비스', + '서양', + '서울', + '서적', + '서점', + '서쪽', + '서클', + '석사', + '석유', + '선거', + '선물', + '선배', + '선생', + '선수', + '선원', + '선장', + '선전', + '선택', + '선풍기', + '설거지', + '설날', + '설렁탕', + '설명', + '설문', + '설사', + '설악산', + '설치', + '설탕', + '섭씨', + '성공', + '성당', + '성명', + '성별', + '성인', + '성장', + '성적', + '성질', + '성함', + '세금', + '세미나', + '세상', + '세월', + '세종대왕', + '세탁', + '센터', + '센티미터', + '셋째', + '소규모', + '소극적', + '소금', + '소나기', + '소년', + '소득', + '소망', + '소문', + '소설', + '소속', + '소아과', + '소용', + '소원', + '소음', + '소중히', + '소지품', + '소질', + '소풍', + '소형', + '속담', + '속도', + '속옷', + '손가락', + '손길', + '손녀', + '손님', + '손등', + '손목', + '손뼉', + '손실', + '손질', + '손톱', + '손해', + '솔직히', + '솜씨', + '송아지', + '송이', + '송편', + '쇠고기', + '쇼핑', + '수건', + '수년', + '수단', + '수돗물', + '수동적', + '수면', + '수명', + '수박', + '수상', + '수석', + '수술', + '수시로', + '수업', + '수염', + '수영', + '수입', + '수준', + '수집', + '수출', + '수컷', + '수필', + '수학', + '수험생', + '수화기', + '숙녀', + '숙소', + '숙제', + '순간', + '순서', + '순수', + '순식간', + '순위', + '숟가락', + '술병', + '술집', + '숫자', + '스님', + '스물', + '스스로', + '스승', + '스웨터', + '스위치', + '스케이트', + '스튜디오', + '스트레스', + '스포츠', + '슬쩍', + '슬픔', + '습관', + '습기', + '승객', + '승리', + '승부', + '승용차', + '승진', + '시각', + '시간', + '시골', + '시금치', + '시나리오', + '시댁', + '시리즈', + '시멘트', + '시민', + '시부모', + '시선', + '시설', + '시스템', + '시아버지', + '시어머니', + '시월', + '시인', + '시일', + '시작', + '시장', + '시절', + '시점', + '시중', + '시즌', + '시집', + '시청', + '시합', + '시험', + '식구', + '식기', + '식당', + '식량', + '식료품', + '식물', + '식빵', + '식사', + '식생활', + '식초', + '식탁', + '식품', + '신고', + '신규', + '신념', + '신문', + '신발', + '신비', + '신사', + '신세', + '신용', + '신제품', + '신청', + '신체', + '신화', + '실감', + '실내', + '실력', + '실례', + '실망', + '실수', + '실습', + '실시', + '실장', + '실정', + '실질적', + '실천', + '실체', + '실컷', + '실태', + '실패', + '실험', + '실현', + '심리', + '심부름', + '심사', + '심장', + '심정', + '심판', + '쌍둥이', + '씨름', + '씨앗', + '아가씨', + '아나운서', + '아드님', + '아들', + '아쉬움', + '아스팔트', + '아시아', + '아울러', + '아저씨', + '아줌마', + '아직', + '아침', + '아파트', + '아프리카', + '아픔', + '아홉', + '아흔', + '악기', + '악몽', + '악수', + '안개', + '안경', + '안과', + '안내', + '안녕', + '안동', + '안방', + '안부', + '안주', + '알루미늄', + '알코올', + '암시', + '암컷', + '압력', + '앞날', + '앞문', + '애인', + '애정', + '액수', + '앨범', + '야간', + '야단', + '야옹', + '약간', + '약국', + '약속', + '약수', + '약점', + '약품', + '약혼녀', + '양념', + '양력', + '양말', + '양배추', + '양주', + '양파', + '어둠', + '어려움', + '어른', + '어젯밤', + '어쨌든', + '어쩌다가', + '어쩐지', + '언니', + '언덕', + '언론', + '언어', + '얼굴', + '얼른', + '얼음', + '얼핏', + '엄마', + '업무', + '업종', + '업체', + '엉덩이', + '엉망', + '엉터리', + '엊그제', + '에너지', + '에어컨', + '엔진', + '여건', + '여고생', + '여관', + '여군', + '여권', + '여대생', + '여덟', + '여동생', + '여든', + '여론', + '여름', + '여섯', + '여성', + '여왕', + '여인', + '여전히', + '여직원', + '여학생', + '여행', + '역사', + '역시', + '역할', + '연결', + '연구', + '연극', + '연기', + '연락', + '연설', + '연세', + '연속', + '연습', + '연애', + '연예인', + '연인', + '연장', + '연주', + '연출', + '연필', + '연합', + '연휴', + '열기', + '열매', + '열쇠', + '열심히', + '열정', + '열차', + '열흘', + '염려', + '엽서', + '영국', + '영남', + '영상', + '영양', + '영역', + '영웅', + '영원히', + '영하', + '영향', + '영혼', + '영화', + '옆구리', + '옆방', + '옆집', + '예감', + '예금', + '예방', + '예산', + '예상', + '예선', + '예술', + '예습', + '예식장', + '예약', + '예전', + '예절', + '예정', + '예컨대', + '옛날', + '오늘', + '오락', + '오랫동안', + '오렌지', + '오로지', + '오른발', + '오븐', + '오십', + '오염', + '오월', + '오전', + '오직', + '오징어', + '오페라', + '오피스텔', + '오히려', + '옥상', + '옥수수', + '온갖', + '온라인', + '온몸', + '온종일', + '온통', + '올가을', + '올림픽', + '올해', + '옷차림', + '와이셔츠', + '와인', + '완성', + '완전', + '왕비', + '왕자', + '왜냐하면', + '왠지', + '외갓집', + '외국', + '외로움', + '외삼촌', + '외출', + '외침', + '외할머니', + '왼발', + '왼손', + '왼쪽', + '요금', + '요일', + '요즘', + '요청', + '용기', + '용서', + '용어', + '우산', + '우선', + '우승', + '우연히', + '우정', + '우체국', + '우편', + '운동', + '운명', + '운반', + '운전', + '운행', + '울산', + '울음', + '움직임', + '웃어른', + '웃음', + '워낙', + '원고', + '원래', + '원서', + '원숭이', + '원인', + '원장', + '원피스', + '월급', + '월드컵', + '월세', + '월요일', + '웨이터', + '위반', + '위법', + '위성', + '위원', + '위험', + '위협', + '윗사람', + '유난히', + '유럽', + '유명', + '유물', + '유산', + '유적', + '유치원', + '유학', + '유행', + '유형', + '육군', + '육상', + '육십', + '육체', + '은행', + '음력', + '음료', + '음반', + '음성', + '음식', + '음악', + '음주', + '의견', + '의논', + '의문', + '의복', + '의식', + '의심', + '의외로', + '의욕', + '의원', + '의학', + '이것', + '이곳', + '이념', + '이놈', + '이달', + '이대로', + '이동', + '이렇게', + '이력서', + '이론적', + '이름', + '이민', + '이발소', + '이별', + '이불', + '이빨', + '이상', + '이성', + '이슬', + '이야기', + '이용', + '이웃', + '이월', + '이윽고', + '이익', + '이전', + '이중', + '이튿날', + '이틀', + '이혼', + '인간', + '인격', + '인공', + '인구', + '인근', + '인기', + '인도', + '인류', + '인물', + '인생', + '인쇄', + '인연', + '인원', + '인재', + '인종', + '인천', + '인체', + '인터넷', + '인하', + '인형', + '일곱', + '일기', + '일단', + '일대', + '일등', + '일반', + '일본', + '일부', + '일상', + '일생', + '일손', + '일요일', + '일월', + '일정', + '일종', + '일주일', + '일찍', + '일체', + '일치', + '일행', + '일회용', + '임금', + '임무', + '입대', + '입력', + '입맛', + '입사', + '입술', + '입시', + '입원', + '입장', + '입학', + '자가용', + '자격', + '자극', + '자동', + '자랑', + '자부심', + '자식', + '자신', + '자연', + '자원', + '자율', + '자전거', + '자정', + '자존심', + '자판', + '작가', + '작년', + '작성', + '작업', + '작용', + '작은딸', + '작품', + '잔디', + '잔뜩', + '잔치', + '잘못', + '잠깐', + '잠수함', + '잠시', + '잠옷', + '잠자리', + '잡지', + '장관', + '장군', + '장기간', + '장래', + '장례', + '장르', + '장마', + '장면', + '장모', + '장미', + '장비', + '장사', + '장소', + '장식', + '장애인', + '장인', + '장점', + '장차', + '장학금', + '재능', + '재빨리', + '재산', + '재생', + '재작년', + '재정', + '재채기', + '재판', + '재학', + '재활용', + '저것', + '저고리', + '저곳', + '저녁', + '저런', + '저렇게', + '저번', + '저울', + '저절로', + '저축', + '적극', + '적당히', + '적성', + '적용', + '적응', + '전개', + '전공', + '전기', + '전달', + '전라도', + '전망', + '전문', + '전반', + '전부', + '전세', + '전시', + '전용', + '전자', + '전쟁', + '전주', + '전철', + '전체', + '전통', + '전혀', + '전후', + '절대', + '절망', + '절반', + '절약', + '절차', + '점검', + '점수', + '점심', + '점원', + '점점', + '점차', + '접근', + '접시', + '접촉', + '젓가락', + '정거장', + '정도', + '정류장', + '정리', + '정말', + '정면', + '정문', + '정반대', + '정보', + '정부', + '정비', + '정상', + '정성', + '정오', + '정원', + '정장', + '정지', + '정치', + '정확히', + '제공', + '제과점', + '제대로', + '제목', + '제발', + '제법', + '제삿날', + '제안', + '제일', + '제작', + '제주도', + '제출', + '제품', + '제한', + '조각', + '조건', + '조금', + '조깅', + '조명', + '조미료', + '조상', + '조선', + '조용히', + '조절', + '조정', + '조직', + '존댓말', + '존재', + '졸업', + '졸음', + '종교', + '종로', + '종류', + '종소리', + '종업원', + '종종', + '종합', + '좌석', + '죄인', + '주관적', + '주름', + '주말', + '주머니', + '주먹', + '주문', + '주민', + '주방', + '주변', + '주식', + '주인', + '주일', + '주장', + '주전자', + '주택', + '준비', + '줄거리', + '줄기', + '줄무늬', + '중간', + '중계방송', + '중국', + '중년', + '중단', + '중독', + '중반', + '중부', + '중세', + '중소기업', + '중순', + '중앙', + '중요', + '중학교', + '즉석', + '즉시', + '즐거움', + '증가', + '증거', + '증권', + '증상', + '증세', + '지각', + '지갑', + '지경', + '지극히', + '지금', + '지급', + '지능', + '지름길', + '지리산', + '지방', + '지붕', + '지식', + '지역', + '지우개', + '지원', + '지적', + '지점', + '지진', + '지출', + '직선', + '직업', + '직원', + '직장', + '진급', + '진동', + '진로', + '진료', + '진리', + '진짜', + '진찰', + '진출', + '진통', + '진행', + '질문', + '질병', + '질서', + '짐작', + '집단', + '집안', + '집중', + '짜증', + '찌꺼기', + '차남', + '차라리', + '차량', + '차림', + '차별', + '차선', + '차츰', + '착각', + '찬물', + '찬성', + '참가', + '참기름', + '참새', + '참석', + '참여', + '참외', + '참조', + '찻잔', + '창가', + '창고', + '창구', + '창문', + '창밖', + '창작', + '창조', + '채널', + '채점', + '책가방', + '책방', + '책상', + '책임', + '챔피언', + '처벌', + '처음', + '천국', + '천둥', + '천장', + '천재', + '천천히', + '철도', + '철저히', + '철학', + '첫날', + '첫째', + '청년', + '청바지', + '청소', + '청춘', + '체계', + '체력', + '체온', + '체육', + '체중', + '체험', + '초등학생', + '초반', + '초밥', + '초상화', + '초순', + '초여름', + '초원', + '초저녁', + '초점', + '초청', + '초콜릿', + '촛불', + '총각', + '총리', + '총장', + '촬영', + '최근', + '최상', + '최선', + '최신', + '최악', + '최종', + '추석', + '추억', + '추진', + '추천', + '추측', + '축구', + '축소', + '축제', + '축하', + '출근', + '출발', + '출산', + '출신', + '출연', + '출입', + '출장', + '출판', + '충격', + '충고', + '충돌', + '충분히', + '충청도', + '취업', + '취직', + '취향', + '치약', + '친구', + '친척', + '칠십', + '칠월', + '칠판', + '침대', + '침묵', + '침실', + '칫솔', + '칭찬', + '카메라', + '카운터', + '칼국수', + '캐릭터', + '캠퍼스', + '캠페인', + '커튼', + '컨디션', + '컬러', + '컴퓨터', + '코끼리', + '코미디', + '콘서트', + '콜라', + '콤플렉스', + '콩나물', + '쾌감', + '쿠데타', + '크림', + '큰길', + '큰딸', + '큰소리', + '큰아들', + '큰어머니', + '큰일', + '큰절', + '클래식', + '클럽', + '킬로', + '타입', + '타자기', + '탁구', + '탁자', + '탄생', + '태권도', + '태양', + '태풍', + '택시', + '탤런트', + '터널', + '터미널', + '테니스', + '테스트', + '테이블', + '텔레비전', + '토론', + '토마토', + '토요일', + '통계', + '통과', + '통로', + '통신', + '통역', + '통일', + '통장', + '통제', + '통증', + '통합', + '통화', + '퇴근', + '퇴원', + '퇴직금', + '튀김', + '트럭', + '특급', + '특별', + '특성', + '특수', + '특징', + '특히', + '튼튼히', + '티셔츠', + '파란색', + '파일', + '파출소', + '판결', + '판단', + '판매', + '판사', + '팔십', + '팔월', + '팝송', + '패션', + '팩스', + '팩시밀리', + '팬티', + '퍼센트', + '페인트', + '편견', + '편의', + '편지', + '편히', + '평가', + '평균', + '평생', + '평소', + '평양', + '평일', + '평화', + '포스터', + '포인트', + '포장', + '포함', + '표면', + '표정', + '표준', + '표현', + '품목', + '품질', + '풍경', + '풍속', + '풍습', + '프랑스', + '프린터', + '플라스틱', + '피곤', + '피망', + '피아노', + '필름', + '필수', + '필요', + '필자', + '필통', + '핑계', + '하느님', + '하늘', + '하드웨어', + '하룻밤', + '하반기', + '하숙집', + '하순', + '하여튼', + '하지만', + '하천', + '하품', + '하필', + '학과', + '학교', + '학급', + '학기', + '학년', + '학력', + '학번', + '학부모', + '학비', + '학생', + '학술', + '학습', + '학용품', + '학원', + '학위', + '학자', + '학점', + '한계', + '한글', + '한꺼번에', + '한낮', + '한눈', + '한동안', + '한때', + '한라산', + '한마디', + '한문', + '한번', + '한복', + '한식', + '한여름', + '한쪽', + '할머니', + '할아버지', + '할인', + '함께', + '함부로', + '합격', + '합리적', + '항공', + '항구', + '항상', + '항의', + '해결', + '해군', + '해답', + '해당', + '해물', + '해석', + '해설', + '해수욕장', + '해안', + '핵심', + '핸드백', + '햄버거', + '햇볕', + '햇살', + '행동', + '행복', + '행사', + '행운', + '행위', + '향기', + '향상', + '향수', + '허락', + '허용', + '헬기', + '현관', + '현금', + '현대', + '현상', + '현실', + '현장', + '현재', + '현지', + '혈액', + '협력', + '형부', + '형사', + '형수', + '형식', + '형제', + '형태', + '형편', + '혜택', + '호기심', + '호남', + '호랑이', + '호박', + '호텔', + '호흡', + '혹시', + '홀로', + '홈페이지', + '홍보', + '홍수', + '홍차', + '화면', + '화분', + '화살', + '화요일', + '화장', + '화학', + '확보', + '확인', + '확장', + '확정', + '환갑', + '환경', + '환영', + '환율', + '환자', + '활기', + '활동', + '활발히', + '활용', + '활짝', + '회견', + '회관', + '회복', + '회색', + '회원', + '회장', + '회전', + '횟수', + '횡단보도', + '효율적', + '후반', + '후춧가루', + '훈련', + '훨씬', + '휴식', + '휴일', + '흉내', + '흐름', + '흑백', + '흑인', + '흔적', + '흔히', + '흥미', + '흥분', + '희곡', + '희망', + '희생', + '흰색', + '힘껏', +]; + +const spanish = [ + 'ábaco', + 'abdomen', + 'abeja', + 'abierto', + 'abogado', + 'abono', + 'aborto', + 'abrazo', + 'abrir', + 'abuelo', + 'abuso', + 'acabar', + 'academia', + 'acceso', + 'acción', + 'aceite', + 'acelga', + 'acento', + 'aceptar', + 'ácido', + 'aclarar', + 'acné', + 'acoger', + 'acoso', + 'activo', + 'acto', + 'actriz', + 'actuar', + 'acudir', + 'acuerdo', + 'acusar', + 'adicto', + 'admitir', + 'adoptar', + 'adorno', + 'aduana', + 'adulto', + 'aéreo', + 'afectar', + 'afición', + 'afinar', + 'afirmar', + 'ágil', + 'agitar', + 'agonía', + 'agosto', + 'agotar', + 'agregar', + 'agrio', + 'agua', + 'agudo', + 'águila', + 'aguja', + 'ahogo', + 'ahorro', + 'aire', + 'aislar', + 'ajedrez', + 'ajeno', + 'ajuste', + 'alacrán', + 'alambre', + 'alarma', + 'alba', + 'álbum', + 'alcalde', + 'aldea', + 'alegre', + 'alejar', + 'alerta', + 'aleta', + 'alfiler', + 'alga', + 'algodón', + 'aliado', + 'aliento', + 'alivio', + 'alma', + 'almeja', + 'almíbar', + 'altar', + 'alteza', + 'altivo', + 'alto', + 'altura', + 'alumno', + 'alzar', + 'amable', + 'amante', + 'amapola', + 'amargo', + 'amasar', + 'ámbar', + 'ámbito', + 'ameno', + 'amigo', + 'amistad', + 'amor', + 'amparo', + 'amplio', + 'ancho', + 'anciano', + 'ancla', + 'andar', + 'andén', + 'anemia', + 'ángulo', + 'anillo', + 'ánimo', + 'anís', + 'anotar', + 'antena', + 'antiguo', + 'antojo', + 'anual', + 'anular', + 'anuncio', + 'añadir', + 'añejo', + 'año', + 'apagar', + 'aparato', + 'apetito', + 'apio', + 'aplicar', + 'apodo', + 'aporte', + 'apoyo', + 'aprender', + 'aprobar', + 'apuesta', + 'apuro', + 'arado', + 'araña', + 'arar', + 'árbitro', + 'árbol', + 'arbusto', + 'archivo', + 'arco', + 'arder', + 'ardilla', + 'arduo', + 'área', + 'árido', + 'aries', + 'armonía', + 'arnés', + 'aroma', + 'arpa', + 'arpón', + 'arreglo', + 'arroz', + 'arruga', + 'arte', + 'artista', + 'asa', + 'asado', + 'asalto', + 'ascenso', + 'asegurar', + 'aseo', + 'asesor', + 'asiento', + 'asilo', + 'asistir', + 'asno', + 'asombro', + 'áspero', + 'astilla', + 'astro', + 'astuto', + 'asumir', + 'asunto', + 'atajo', + 'ataque', + 'atar', + 'atento', + 'ateo', + 'ático', + 'atleta', + 'átomo', + 'atraer', + 'atroz', + 'atún', + 'audaz', + 'audio', + 'auge', + 'aula', + 'aumento', + 'ausente', + 'autor', + 'aval', + 'avance', + 'avaro', + 'ave', + 'avellana', + 'avena', + 'avestruz', + 'avión', + 'aviso', + 'ayer', + 'ayuda', + 'ayuno', + 'azafrán', + 'azar', + 'azote', + 'azúcar', + 'azufre', + 'azul', + 'baba', + 'babor', + 'bache', + 'bahía', + 'baile', + 'bajar', + 'balanza', + 'balcón', + 'balde', + 'bambú', + 'banco', + 'banda', + 'baño', + 'barba', + 'barco', + 'barniz', + 'barro', + 'báscula', + 'bastón', + 'basura', + 'batalla', + 'batería', + 'batir', + 'batuta', + 'baúl', + 'bazar', + 'bebé', + 'bebida', + 'bello', + 'besar', + 'beso', + 'bestia', + 'bicho', + 'bien', + 'bingo', + 'blanco', + 'bloque', + 'blusa', + 'boa', + 'bobina', + 'bobo', + 'boca', + 'bocina', + 'boda', + 'bodega', + 'boina', + 'bola', + 'bolero', + 'bolsa', + 'bomba', + 'bondad', + 'bonito', + 'bono', + 'bonsái', + 'borde', + 'borrar', + 'bosque', + 'bote', + 'botín', + 'bóveda', + 'bozal', + 'bravo', + 'brazo', + 'brecha', + 'breve', + 'brillo', + 'brinco', + 'brisa', + 'broca', + 'broma', + 'bronce', + 'brote', + 'bruja', + 'brusco', + 'bruto', + 'buceo', + 'bucle', + 'bueno', + 'buey', + 'bufanda', + 'bufón', + 'búho', + 'buitre', + 'bulto', + 'burbuja', + 'burla', + 'burro', + 'buscar', + 'butaca', + 'buzón', + 'caballo', + 'cabeza', + 'cabina', + 'cabra', + 'cacao', + 'cadáver', + 'cadena', + 'caer', + 'café', + 'caída', + 'caimán', + 'caja', + 'cajón', + 'cal', + 'calamar', + 'calcio', + 'caldo', + 'calidad', + 'calle', + 'calma', + 'calor', + 'calvo', + 'cama', + 'cambio', + 'camello', + 'camino', + 'campo', + 'cáncer', + 'candil', + 'canela', + 'canguro', + 'canica', + 'canto', + 'caña', + 'cañón', + 'caoba', + 'caos', + 'capaz', + 'capitán', + 'capote', + 'captar', + 'capucha', + 'cara', + 'carbón', + 'cárcel', + 'careta', + 'carga', + 'cariño', + 'carne', + 'carpeta', + 'carro', + 'carta', + 'casa', + 'casco', + 'casero', + 'caspa', + 'castor', + 'catorce', + 'catre', + 'caudal', + 'causa', + 'cazo', + 'cebolla', + 'ceder', + 'cedro', + 'celda', + 'célebre', + 'celoso', + 'célula', + 'cemento', + 'ceniza', + 'centro', + 'cerca', + 'cerdo', + 'cereza', + 'cero', + 'cerrar', + 'certeza', + 'césped', + 'cetro', + 'chacal', + 'chaleco', + 'champú', + 'chancla', + 'chapa', + 'charla', + 'chico', + 'chiste', + 'chivo', + 'choque', + 'choza', + 'chuleta', + 'chupar', + 'ciclón', + 'ciego', + 'cielo', + 'cien', + 'cierto', + 'cifra', + 'cigarro', + 'cima', + 'cinco', + 'cine', + 'cinta', + 'ciprés', + 'circo', + 'ciruela', + 'cisne', + 'cita', + 'ciudad', + 'clamor', + 'clan', + 'claro', + 'clase', + 'clave', + 'cliente', + 'clima', + 'clínica', + 'cobre', + 'cocción', + 'cochino', + 'cocina', + 'coco', + 'código', + 'codo', + 'cofre', + 'coger', + 'cohete', + 'cojín', + 'cojo', + 'cola', + 'colcha', + 'colegio', + 'colgar', + 'colina', + 'collar', + 'colmo', + 'columna', + 'combate', + 'comer', + 'comida', + 'cómodo', + 'compra', + 'conde', + 'conejo', + 'conga', + 'conocer', + 'consejo', + 'contar', + 'copa', + 'copia', + 'corazón', + 'corbata', + 'corcho', + 'cordón', + 'corona', + 'correr', + 'coser', + 'cosmos', + 'costa', + 'cráneo', + 'cráter', + 'crear', + 'crecer', + 'creído', + 'crema', + 'cría', + 'crimen', + 'cripta', + 'crisis', + 'cromo', + 'crónica', + 'croqueta', + 'crudo', + 'cruz', + 'cuadro', + 'cuarto', + 'cuatro', + 'cubo', + 'cubrir', + 'cuchara', + 'cuello', + 'cuento', + 'cuerda', + 'cuesta', + 'cueva', + 'cuidar', + 'culebra', + 'culpa', + 'culto', + 'cumbre', + 'cumplir', + 'cuna', + 'cuneta', + 'cuota', + 'cupón', + 'cúpula', + 'curar', + 'curioso', + 'curso', + 'curva', + 'cutis', + 'dama', + 'danza', + 'dar', + 'dardo', + 'dátil', + 'deber', + 'débil', + 'década', + 'decir', + 'dedo', + 'defensa', + 'definir', + 'dejar', + 'delfín', + 'delgado', + 'delito', + 'demora', + 'denso', + 'dental', + 'deporte', + 'derecho', + 'derrota', + 'desayuno', + 'deseo', + 'desfile', + 'desnudo', + 'destino', + 'desvío', + 'detalle', + 'detener', + 'deuda', + 'día', + 'diablo', + 'diadema', + 'diamante', + 'diana', + 'diario', + 'dibujo', + 'dictar', + 'diente', + 'dieta', + 'diez', + 'difícil', + 'digno', + 'dilema', + 'diluir', + 'dinero', + 'directo', + 'dirigir', + 'disco', + 'diseño', + 'disfraz', + 'diva', + 'divino', + 'doble', + 'doce', + 'dolor', + 'domingo', + 'don', + 'donar', + 'dorado', + 'dormir', + 'dorso', + 'dos', + 'dosis', + 'dragón', + 'droga', + 'ducha', + 'duda', + 'duelo', + 'dueño', + 'dulce', + 'dúo', + 'duque', + 'durar', + 'dureza', + 'duro', + 'ébano', + 'ebrio', + 'echar', + 'eco', + 'ecuador', + 'edad', + 'edición', + 'edificio', + 'editor', + 'educar', + 'efecto', + 'eficaz', + 'eje', + 'ejemplo', + 'elefante', + 'elegir', + 'elemento', + 'elevar', + 'elipse', + 'élite', + 'elixir', + 'elogio', + 'eludir', + 'embudo', + 'emitir', + 'emoción', + 'empate', + 'empeño', + 'empleo', + 'empresa', + 'enano', + 'encargo', + 'enchufe', + 'encía', + 'enemigo', + 'enero', + 'enfado', + 'enfermo', + 'engaño', + 'enigma', + 'enlace', + 'enorme', + 'enredo', + 'ensayo', + 'enseñar', + 'entero', + 'entrar', + 'envase', + 'envío', + 'época', + 'equipo', + 'erizo', + 'escala', + 'escena', + 'escolar', + 'escribir', + 'escudo', + 'esencia', + 'esfera', + 'esfuerzo', + 'espada', + 'espejo', + 'espía', + 'esposa', + 'espuma', + 'esquí', + 'estar', + 'este', + 'estilo', + 'estufa', + 'etapa', + 'eterno', + 'ética', + 'etnia', + 'evadir', + 'evaluar', + 'evento', + 'evitar', + 'exacto', + 'examen', + 'exceso', + 'excusa', + 'exento', + 'exigir', + 'exilio', + 'existir', + 'éxito', + 'experto', + 'explicar', + 'exponer', + 'extremo', + 'fábrica', + 'fábula', + 'fachada', + 'fácil', + 'factor', + 'faena', + 'faja', + 'falda', + 'fallo', + 'falso', + 'faltar', + 'fama', + 'familia', + 'famoso', + 'faraón', + 'farmacia', + 'farol', + 'farsa', + 'fase', + 'fatiga', + 'fauna', + 'favor', + 'fax', + 'febrero', + 'fecha', + 'feliz', + 'feo', + 'feria', + 'feroz', + 'fértil', + 'fervor', + 'festín', + 'fiable', + 'fianza', + 'fiar', + 'fibra', + 'ficción', + 'ficha', + 'fideo', + 'fiebre', + 'fiel', + 'fiera', + 'fiesta', + 'figura', + 'fijar', + 'fijo', + 'fila', + 'filete', + 'filial', + 'filtro', + 'fin', + 'finca', + 'fingir', + 'finito', + 'firma', + 'flaco', + 'flauta', + 'flecha', + 'flor', + 'flota', + 'fluir', + 'flujo', + 'flúor', + 'fobia', + 'foca', + 'fogata', + 'fogón', + 'folio', + 'folleto', + 'fondo', + 'forma', + 'forro', + 'fortuna', + 'forzar', + 'fosa', + 'foto', + 'fracaso', + 'frágil', + 'franja', + 'frase', + 'fraude', + 'freír', + 'freno', + 'fresa', + 'frío', + 'frito', + 'fruta', + 'fuego', + 'fuente', + 'fuerza', + 'fuga', + 'fumar', + 'función', + 'funda', + 'furgón', + 'furia', + 'fusil', + 'fútbol', + 'futuro', + 'gacela', + 'gafas', + 'gaita', + 'gajo', + 'gala', + 'galería', + 'gallo', + 'gamba', + 'ganar', + 'gancho', + 'ganga', + 'ganso', + 'garaje', + 'garza', + 'gasolina', + 'gastar', + 'gato', + 'gavilán', + 'gemelo', + 'gemir', + 'gen', + 'género', + 'genio', + 'gente', + 'geranio', + 'gerente', + 'germen', + 'gesto', + 'gigante', + 'gimnasio', + 'girar', + 'giro', + 'glaciar', + 'globo', + 'gloria', + 'gol', + 'golfo', + 'goloso', + 'golpe', + 'goma', + 'gordo', + 'gorila', + 'gorra', + 'gota', + 'goteo', + 'gozar', + 'grada', + 'gráfico', + 'grano', + 'grasa', + 'gratis', + 'grave', + 'grieta', + 'grillo', + 'gripe', + 'gris', + 'grito', + 'grosor', + 'grúa', + 'grueso', + 'grumo', + 'grupo', + 'guante', + 'guapo', + 'guardia', + 'guerra', + 'guía', + 'guiño', + 'guion', + 'guiso', + 'guitarra', + 'gusano', + 'gustar', + 'haber', + 'hábil', + 'hablar', + 'hacer', + 'hacha', + 'hada', + 'hallar', + 'hamaca', + 'harina', + 'haz', + 'hazaña', + 'hebilla', + 'hebra', + 'hecho', + 'helado', + 'helio', + 'hembra', + 'herir', + 'hermano', + 'héroe', + 'hervir', + 'hielo', + 'hierro', + 'hígado', + 'higiene', + 'hijo', + 'himno', + 'historia', + 'hocico', + 'hogar', + 'hoguera', + 'hoja', + 'hombre', + 'hongo', + 'honor', + 'honra', + 'hora', + 'hormiga', + 'horno', + 'hostil', + 'hoyo', + 'hueco', + 'huelga', + 'huerta', + 'hueso', + 'huevo', + 'huida', + 'huir', + 'humano', + 'húmedo', + 'humilde', + 'humo', + 'hundir', + 'huracán', + 'hurto', + 'icono', + 'ideal', + 'idioma', + 'ídolo', + 'iglesia', + 'iglú', + 'igual', + 'ilegal', + 'ilusión', + 'imagen', + 'imán', + 'imitar', + 'impar', + 'imperio', + 'imponer', + 'impulso', + 'incapaz', + 'índice', + 'inerte', + 'infiel', + 'informe', + 'ingenio', + 'inicio', + 'inmenso', + 'inmune', + 'innato', + 'insecto', + 'instante', + 'interés', + 'íntimo', + 'intuir', + 'inútil', + 'invierno', + 'ira', + 'iris', + 'ironía', + 'isla', + 'islote', + 'jabalí', + 'jabón', + 'jamón', + 'jarabe', + 'jardín', + 'jarra', + 'jaula', + 'jazmín', + 'jefe', + 'jeringa', + 'jinete', + 'jornada', + 'joroba', + 'joven', + 'joya', + 'juerga', + 'jueves', + 'juez', + 'jugador', + 'jugo', + 'juguete', + 'juicio', + 'junco', + 'jungla', + 'junio', + 'juntar', + 'júpiter', + 'jurar', + 'justo', + 'juvenil', + 'juzgar', + 'kilo', + 'koala', + 'labio', + 'lacio', + 'lacra', + 'lado', + 'ladrón', + 'lagarto', + 'lágrima', + 'laguna', + 'laico', + 'lamer', + 'lámina', + 'lámpara', + 'lana', + 'lancha', + 'langosta', + 'lanza', + 'lápiz', + 'largo', + 'larva', + 'lástima', + 'lata', + 'látex', + 'latir', + 'laurel', + 'lavar', + 'lazo', + 'leal', + 'lección', + 'leche', + 'lector', + 'leer', + 'legión', + 'legumbre', + 'lejano', + 'lengua', + 'lento', + 'leña', + 'león', + 'leopardo', + 'lesión', + 'letal', + 'letra', + 'leve', + 'leyenda', + 'libertad', + 'libro', + 'licor', + 'líder', + 'lidiar', + 'lienzo', + 'liga', + 'ligero', + 'lima', + 'límite', + 'limón', + 'limpio', + 'lince', + 'lindo', + 'línea', + 'lingote', + 'lino', + 'linterna', + 'líquido', + 'liso', + 'lista', + 'litera', + 'litio', + 'litro', + 'llaga', + 'llama', + 'llanto', + 'llave', + 'llegar', + 'llenar', + 'llevar', + 'llorar', + 'llover', + 'lluvia', + 'lobo', + 'loción', + 'loco', + 'locura', + 'lógica', + 'logro', + 'lombriz', + 'lomo', + 'lonja', + 'lote', + 'lucha', + 'lucir', + 'lugar', + 'lujo', + 'luna', + 'lunes', + 'lupa', + 'lustro', + 'luto', + 'luz', + 'maceta', + 'macho', + 'madera', + 'madre', + 'maduro', + 'maestro', + 'mafia', + 'magia', + 'mago', + 'maíz', + 'maldad', + 'maleta', + 'malla', + 'malo', + 'mamá', + 'mambo', + 'mamut', + 'manco', + 'mando', + 'manejar', + 'manga', + 'maniquí', + 'manjar', + 'mano', + 'manso', + 'manta', + 'mañana', + 'mapa', + 'máquina', + 'mar', + 'marco', + 'marea', + 'marfil', + 'margen', + 'marido', + 'mármol', + 'marrón', + 'martes', + 'marzo', + 'masa', + 'máscara', + 'masivo', + 'matar', + 'materia', + 'matiz', + 'matriz', + 'máximo', + 'mayor', + 'mazorca', + 'mecha', + 'medalla', + 'medio', + 'médula', + 'mejilla', + 'mejor', + 'melena', + 'melón', + 'memoria', + 'menor', + 'mensaje', + 'mente', + 'menú', + 'mercado', + 'merengue', + 'mérito', + 'mes', + 'mesón', + 'meta', + 'meter', + 'método', + 'metro', + 'mezcla', + 'miedo', + 'miel', + 'miembro', + 'miga', + 'mil', + 'milagro', + 'militar', + 'millón', + 'mimo', + 'mina', + 'minero', + 'mínimo', + 'minuto', + 'miope', + 'mirar', + 'misa', + 'miseria', + 'misil', + 'mismo', + 'mitad', + 'mito', + 'mochila', + 'moción', + 'moda', + 'modelo', + 'moho', + 'mojar', + 'molde', + 'moler', + 'molino', + 'momento', + 'momia', + 'monarca', + 'moneda', + 'monja', + 'monto', + 'moño', + 'morada', + 'morder', + 'moreno', + 'morir', + 'morro', + 'morsa', + 'mortal', + 'mosca', + 'mostrar', + 'motivo', + 'mover', + 'móvil', + 'mozo', + 'mucho', + 'mudar', + 'mueble', + 'muela', + 'muerte', + 'muestra', + 'mugre', + 'mujer', + 'mula', + 'muleta', + 'multa', + 'mundo', + 'muñeca', + 'mural', + 'muro', + 'músculo', + 'museo', + 'musgo', + 'música', + 'muslo', + 'nácar', + 'nación', + 'nadar', + 'naipe', + 'naranja', + 'nariz', + 'narrar', + 'nasal', + 'natal', + 'nativo', + 'natural', + 'náusea', + 'naval', + 'nave', + 'navidad', + 'necio', + 'néctar', + 'negar', + 'negocio', + 'negro', + 'neón', + 'nervio', + 'neto', + 'neutro', + 'nevar', + 'nevera', + 'nicho', + 'nido', + 'niebla', + 'nieto', + 'niñez', + 'niño', + 'nítido', + 'nivel', + 'nobleza', + 'noche', + 'nómina', + 'noria', + 'norma', + 'norte', + 'nota', + 'noticia', + 'novato', + 'novela', + 'novio', + 'nube', + 'nuca', + 'núcleo', + 'nudillo', + 'nudo', + 'nuera', + 'nueve', + 'nuez', + 'nulo', + 'número', + 'nutria', + 'oasis', + 'obeso', + 'obispo', + 'objeto', + 'obra', + 'obrero', + 'observar', + 'obtener', + 'obvio', + 'oca', + 'ocaso', + 'océano', + 'ochenta', + 'ocho', + 'ocio', + 'ocre', + 'octavo', + 'octubre', + 'oculto', + 'ocupar', + 'ocurrir', + 'odiar', + 'odio', + 'odisea', + 'oeste', + 'ofensa', + 'oferta', + 'oficio', + 'ofrecer', + 'ogro', + 'oído', + 'oír', + 'ojo', + 'ola', + 'oleada', + 'olfato', + 'olivo', + 'olla', + 'olmo', + 'olor', + 'olvido', + 'ombligo', + 'onda', + 'onza', + 'opaco', + 'opción', + 'ópera', + 'opinar', + 'oponer', + 'optar', + 'óptica', + 'opuesto', + 'oración', + 'orador', + 'oral', + 'órbita', + 'orca', + 'orden', + 'oreja', + 'órgano', + 'orgía', + 'orgullo', + 'oriente', + 'origen', + 'orilla', + 'oro', + 'orquesta', + 'oruga', + 'osadía', + 'oscuro', + 'osezno', + 'oso', + 'ostra', + 'otoño', + 'otro', + 'oveja', + 'óvulo', + 'óxido', + 'oxígeno', + 'oyente', + 'ozono', + 'pacto', + 'padre', + 'paella', + 'página', + 'pago', + 'país', + 'pájaro', + 'palabra', + 'palco', + 'paleta', + 'pálido', + 'palma', + 'paloma', + 'palpar', + 'pan', + 'panal', + 'pánico', + 'pantera', + 'pañuelo', + 'papá', + 'papel', + 'papilla', + 'paquete', + 'parar', + 'parcela', + 'pared', + 'parir', + 'paro', + 'párpado', + 'parque', + 'párrafo', + 'parte', + 'pasar', + 'paseo', + 'pasión', + 'paso', + 'pasta', + 'pata', + 'patio', + 'patria', + 'pausa', + 'pauta', + 'pavo', + 'payaso', + 'peatón', + 'pecado', + 'pecera', + 'pecho', + 'pedal', + 'pedir', + 'pegar', + 'peine', + 'pelar', + 'peldaño', + 'pelea', + 'peligro', + 'pellejo', + 'pelo', + 'peluca', + 'pena', + 'pensar', + 'peñón', + 'peón', + 'peor', + 'pepino', + 'pequeño', + 'pera', + 'percha', + 'perder', + 'pereza', + 'perfil', + 'perico', + 'perla', + 'permiso', + 'perro', + 'persona', + 'pesa', + 'pesca', + 'pésimo', + 'pestaña', + 'pétalo', + 'petróleo', + 'pez', + 'pezuña', + 'picar', + 'pichón', + 'pie', + 'piedra', + 'pierna', + 'pieza', + 'pijama', + 'pilar', + 'piloto', + 'pimienta', + 'pino', + 'pintor', + 'pinza', + 'piña', + 'piojo', + 'pipa', + 'pirata', + 'pisar', + 'piscina', + 'piso', + 'pista', + 'pitón', + 'pizca', + 'placa', + 'plan', + 'plata', + 'playa', + 'plaza', + 'pleito', + 'pleno', + 'plomo', + 'pluma', + 'plural', + 'pobre', + 'poco', + 'poder', + 'podio', + 'poema', + 'poesía', + 'poeta', + 'polen', + 'policía', + 'pollo', + 'polvo', + 'pomada', + 'pomelo', + 'pomo', + 'pompa', + 'poner', + 'porción', + 'portal', + 'posada', + 'poseer', + 'posible', + 'poste', + 'potencia', + 'potro', + 'pozo', + 'prado', + 'precoz', + 'pregunta', + 'premio', + 'prensa', + 'preso', + 'previo', + 'primo', + 'príncipe', + 'prisión', + 'privar', + 'proa', + 'probar', + 'proceso', + 'producto', + 'proeza', + 'profesor', + 'programa', + 'prole', + 'promesa', + 'pronto', + 'propio', + 'próximo', + 'prueba', + 'público', + 'puchero', + 'pudor', + 'pueblo', + 'puerta', + 'puesto', + 'pulga', + 'pulir', + 'pulmón', + 'pulpo', + 'pulso', + 'puma', + 'punto', + 'puñal', + 'puño', + 'pupa', + 'pupila', + 'puré', + 'quedar', + 'queja', + 'quemar', + 'querer', + 'queso', + 'quieto', + 'química', + 'quince', + 'quitar', + 'rábano', + 'rabia', + 'rabo', + 'ración', + 'radical', + 'raíz', + 'rama', + 'rampa', + 'rancho', + 'rango', + 'rapaz', + 'rápido', + 'rapto', + 'rasgo', + 'raspa', + 'rato', + 'rayo', + 'raza', + 'razón', + 'reacción', + 'realidad', + 'rebaño', + 'rebote', + 'recaer', + 'receta', + 'rechazo', + 'recoger', + 'recreo', + 'recto', + 'recurso', + 'red', + 'redondo', + 'reducir', + 'reflejo', + 'reforma', + 'refrán', + 'refugio', + 'regalo', + 'regir', + 'regla', + 'regreso', + 'rehén', + 'reino', + 'reír', + 'reja', + 'relato', + 'relevo', + 'relieve', + 'relleno', + 'reloj', + 'remar', + 'remedio', + 'remo', + 'rencor', + 'rendir', + 'renta', + 'reparto', + 'repetir', + 'reposo', + 'reptil', + 'res', + 'rescate', + 'resina', + 'respeto', + 'resto', + 'resumen', + 'retiro', + 'retorno', + 'retrato', + 'reunir', + 'revés', + 'revista', + 'rey', + 'rezar', + 'rico', + 'riego', + 'rienda', + 'riesgo', + 'rifa', + 'rígido', + 'rigor', + 'rincón', + 'riñón', + 'río', + 'riqueza', + 'risa', + 'ritmo', + 'rito', + 'rizo', + 'roble', + 'roce', + 'rociar', + 'rodar', + 'rodeo', + 'rodilla', + 'roer', + 'rojizo', + 'rojo', + 'romero', + 'romper', + 'ron', + 'ronco', + 'ronda', + 'ropa', + 'ropero', + 'rosa', + 'rosca', + 'rostro', + 'rotar', + 'rubí', + 'rubor', + 'rudo', + 'rueda', + 'rugir', + 'ruido', + 'ruina', + 'ruleta', + 'rulo', + 'rumbo', + 'rumor', + 'ruptura', + 'ruta', + 'rutina', + 'sábado', + 'saber', + 'sabio', + 'sable', + 'sacar', + 'sagaz', + 'sagrado', + 'sala', + 'saldo', + 'salero', + 'salir', + 'salmón', + 'salón', + 'salsa', + 'salto', + 'salud', + 'salvar', + 'samba', + 'sanción', + 'sandía', + 'sanear', + 'sangre', + 'sanidad', + 'sano', + 'santo', + 'sapo', + 'saque', + 'sardina', + 'sartén', + 'sastre', + 'satán', + 'sauna', + 'saxofón', + 'sección', + 'seco', + 'secreto', + 'secta', + 'sed', + 'seguir', + 'seis', + 'sello', + 'selva', + 'semana', + 'semilla', + 'senda', + 'sensor', + 'señal', + 'señor', + 'separar', + 'sepia', + 'sequía', + 'ser', + 'serie', + 'sermón', + 'servir', + 'sesenta', + 'sesión', + 'seta', + 'setenta', + 'severo', + 'sexo', + 'sexto', + 'sidra', + 'siesta', + 'siete', + 'siglo', + 'signo', + 'sílaba', + 'silbar', + 'silencio', + 'silla', + 'símbolo', + 'simio', + 'sirena', + 'sistema', + 'sitio', + 'situar', + 'sobre', + 'socio', + 'sodio', + 'sol', + 'solapa', + 'soldado', + 'soledad', + 'sólido', + 'soltar', + 'solución', + 'sombra', + 'sondeo', + 'sonido', + 'sonoro', + 'sonrisa', + 'sopa', + 'soplar', + 'soporte', + 'sordo', + 'sorpresa', + 'sorteo', + 'sostén', + 'sótano', + 'suave', + 'subir', + 'suceso', + 'sudor', + 'suegra', + 'suelo', + 'sueño', + 'suerte', + 'sufrir', + 'sujeto', + 'sultán', + 'sumar', + 'superar', + 'suplir', + 'suponer', + 'supremo', + 'sur', + 'surco', + 'sureño', + 'surgir', + 'susto', + 'sutil', + 'tabaco', + 'tabique', + 'tabla', + 'tabú', + 'taco', + 'tacto', + 'tajo', + 'talar', + 'talco', + 'talento', + 'talla', + 'talón', + 'tamaño', + 'tambor', + 'tango', + 'tanque', + 'tapa', + 'tapete', + 'tapia', + 'tapón', + 'taquilla', + 'tarde', + 'tarea', + 'tarifa', + 'tarjeta', + 'tarot', + 'tarro', + 'tarta', + 'tatuaje', + 'tauro', + 'taza', + 'tazón', + 'teatro', + 'techo', + 'tecla', + 'técnica', + 'tejado', + 'tejer', + 'tejido', + 'tela', + 'teléfono', + 'tema', + 'temor', + 'templo', + 'tenaz', + 'tender', + 'tener', + 'tenis', + 'tenso', + 'teoría', + 'terapia', + 'terco', + 'término', + 'ternura', + 'terror', + 'tesis', + 'tesoro', + 'testigo', + 'tetera', + 'texto', + 'tez', + 'tibio', + 'tiburón', + 'tiempo', + 'tienda', + 'tierra', + 'tieso', + 'tigre', + 'tijera', + 'tilde', + 'timbre', + 'tímido', + 'timo', + 'tinta', + 'tío', + 'típico', + 'tipo', + 'tira', + 'tirón', + 'titán', + 'títere', + 'título', + 'tiza', + 'toalla', + 'tobillo', + 'tocar', + 'tocino', + 'todo', + 'toga', + 'toldo', + 'tomar', + 'tono', + 'tonto', + 'topar', + 'tope', + 'toque', + 'tórax', + 'torero', + 'tormenta', + 'torneo', + 'toro', + 'torpedo', + 'torre', + 'torso', + 'tortuga', + 'tos', + 'tosco', + 'toser', + 'tóxico', + 'trabajo', + 'tractor', + 'traer', + 'tráfico', + 'trago', + 'traje', + 'tramo', + 'trance', + 'trato', + 'trauma', + 'trazar', + 'trébol', + 'tregua', + 'treinta', + 'tren', + 'trepar', + 'tres', + 'tribu', + 'trigo', + 'tripa', + 'triste', + 'triunfo', + 'trofeo', + 'trompa', + 'tronco', + 'tropa', + 'trote', + 'trozo', + 'truco', + 'trueno', + 'trufa', + 'tubería', + 'tubo', + 'tuerto', + 'tumba', + 'tumor', + 'túnel', + 'túnica', + 'turbina', + 'turismo', + 'turno', + 'tutor', + 'ubicar', + 'úlcera', + 'umbral', + 'unidad', + 'unir', + 'universo', + 'uno', + 'untar', + 'uña', + 'urbano', + 'urbe', + 'urgente', + 'urna', + 'usar', + 'usuario', + 'útil', + 'utopía', + 'uva', + 'vaca', + 'vacío', + 'vacuna', + 'vagar', + 'vago', + 'vaina', + 'vajilla', + 'vale', + 'válido', + 'valle', + 'valor', + 'válvula', + 'vampiro', + 'vara', + 'variar', + 'varón', + 'vaso', + 'vecino', + 'vector', + 'vehículo', + 'veinte', + 'vejez', + 'vela', + 'velero', + 'veloz', + 'vena', + 'vencer', + 'venda', + 'veneno', + 'vengar', + 'venir', + 'venta', + 'venus', + 'ver', + 'verano', + 'verbo', + 'verde', + 'vereda', + 'verja', + 'verso', + 'verter', + 'vía', + 'viaje', + 'vibrar', + 'vicio', + 'víctima', + 'vida', + 'vídeo', + 'vidrio', + 'viejo', + 'viernes', + 'vigor', + 'vil', + 'villa', + 'vinagre', + 'vino', + 'viñedo', + 'violín', + 'viral', + 'virgo', + 'virtud', + 'visor', + 'víspera', + 'vista', + 'vitamina', + 'viudo', + 'vivaz', + 'vivero', + 'vivir', + 'vivo', + 'volcán', + 'volumen', + 'volver', + 'voraz', + 'votar', + 'voto', + 'voz', + 'vuelo', + 'vulgar', + 'yacer', + 'yate', + 'yegua', + 'yema', + 'yerno', + 'yeso', + 'yodo', + 'yoga', + 'yogur', + 'zafiro', + 'zanja', + 'zapato', + 'zarza', + 'zona', + 'zorro', + 'zumo', + 'zurdo', +]; + +const portuguese = [ + 'abacate', + 'abaixo', + 'abalar', + 'abater', + 'abduzir', + 'abelha', + 'aberto', + 'abismo', + 'abotoar', + 'abranger', + 'abreviar', + 'abrigar', + 'abrupto', + 'absinto', + 'absoluto', + 'absurdo', + 'abutre', + 'acabado', + 'acalmar', + 'acampar', + 'acanhar', + 'acaso', + 'aceitar', + 'acelerar', + 'acenar', + 'acervo', + 'acessar', + 'acetona', + 'achatar', + 'acidez', + 'acima', + 'acionado', + 'acirrar', + 'aclamar', + 'aclive', + 'acolhida', + 'acomodar', + 'acoplar', + 'acordar', + 'acumular', + 'acusador', + 'adaptar', + 'adega', + 'adentro', + 'adepto', + 'adequar', + 'aderente', + 'adesivo', + 'adeus', + 'adiante', + 'aditivo', + 'adjetivo', + 'adjunto', + 'admirar', + 'adorar', + 'adquirir', + 'adubo', + 'adverso', + 'advogado', + 'aeronave', + 'afastar', + 'aferir', + 'afetivo', + 'afinador', + 'afivelar', + 'aflito', + 'afluente', + 'afrontar', + 'agachar', + 'agarrar', + 'agasalho', + 'agenciar', + 'agilizar', + 'agiota', + 'agitado', + 'agora', + 'agradar', + 'agreste', + 'agrupar', + 'aguardar', + 'agulha', + 'ajoelhar', + 'ajudar', + 'ajustar', + 'alameda', + 'alarme', + 'alastrar', + 'alavanca', + 'albergue', + 'albino', + 'alcatra', + 'aldeia', + 'alecrim', + 'alegria', + 'alertar', + 'alface', + 'alfinete', + 'algum', + 'alheio', + 'aliar', + 'alicate', + 'alienar', + 'alinhar', + 'aliviar', + 'almofada', + 'alocar', + 'alpiste', + 'alterar', + 'altitude', + 'alucinar', + 'alugar', + 'aluno', + 'alusivo', + 'alvo', + 'amaciar', + 'amador', + 'amarelo', + 'amassar', + 'ambas', + 'ambiente', + 'ameixa', + 'amenizar', + 'amido', + 'amistoso', + 'amizade', + 'amolador', + 'amontoar', + 'amoroso', + 'amostra', + 'amparar', + 'ampliar', + 'ampola', + 'anagrama', + 'analisar', + 'anarquia', + 'anatomia', + 'andaime', + 'anel', + 'anexo', + 'angular', + 'animar', + 'anjo', + 'anomalia', + 'anotado', + 'ansioso', + 'anterior', + 'anuidade', + 'anunciar', + 'anzol', + 'apagador', + 'apalpar', + 'apanhado', + 'apego', + 'apelido', + 'apertada', + 'apesar', + 'apetite', + 'apito', + 'aplauso', + 'aplicada', + 'apoio', + 'apontar', + 'aposta', + 'aprendiz', + 'aprovar', + 'aquecer', + 'arame', + 'aranha', + 'arara', + 'arcada', + 'ardente', + 'areia', + 'arejar', + 'arenito', + 'aresta', + 'argiloso', + 'argola', + 'arma', + 'arquivo', + 'arraial', + 'arrebate', + 'arriscar', + 'arroba', + 'arrumar', + 'arsenal', + 'arterial', + 'artigo', + 'arvoredo', + 'asfaltar', + 'asilado', + 'aspirar', + 'assador', + 'assinar', + 'assoalho', + 'assunto', + 'astral', + 'atacado', + 'atadura', + 'atalho', + 'atarefar', + 'atear', + 'atender', + 'aterro', + 'ateu', + 'atingir', + 'atirador', + 'ativo', + 'atoleiro', + 'atracar', + 'atrevido', + 'atriz', + 'atual', + 'atum', + 'auditor', + 'aumentar', + 'aura', + 'aurora', + 'autismo', + 'autoria', + 'autuar', + 'avaliar', + 'avante', + 'avaria', + 'avental', + 'avesso', + 'aviador', + 'avisar', + 'avulso', + 'axila', + 'azarar', + 'azedo', + 'azeite', + 'azulejo', + 'babar', + 'babosa', + 'bacalhau', + 'bacharel', + 'bacia', + 'bagagem', + 'baiano', + 'bailar', + 'baioneta', + 'bairro', + 'baixista', + 'bajular', + 'baleia', + 'baliza', + 'balsa', + 'banal', + 'bandeira', + 'banho', + 'banir', + 'banquete', + 'barato', + 'barbado', + 'baronesa', + 'barraca', + 'barulho', + 'baseado', + 'bastante', + 'batata', + 'batedor', + 'batida', + 'batom', + 'batucar', + 'baunilha', + 'beber', + 'beijo', + 'beirada', + 'beisebol', + 'beldade', + 'beleza', + 'belga', + 'beliscar', + 'bendito', + 'bengala', + 'benzer', + 'berimbau', + 'berlinda', + 'berro', + 'besouro', + 'bexiga', + 'bezerro', + 'bico', + 'bicudo', + 'bienal', + 'bifocal', + 'bifurcar', + 'bigorna', + 'bilhete', + 'bimestre', + 'bimotor', + 'biologia', + 'biombo', + 'biosfera', + 'bipolar', + 'birrento', + 'biscoito', + 'bisneto', + 'bispo', + 'bissexto', + 'bitola', + 'bizarro', + 'blindado', + 'bloco', + 'bloquear', + 'boato', + 'bobagem', + 'bocado', + 'bocejo', + 'bochecha', + 'boicotar', + 'bolada', + 'boletim', + 'bolha', + 'bolo', + 'bombeiro', + 'bonde', + 'boneco', + 'bonita', + 'borbulha', + 'borda', + 'boreal', + 'borracha', + 'bovino', + 'boxeador', + 'branco', + 'brasa', + 'braveza', + 'breu', + 'briga', + 'brilho', + 'brincar', + 'broa', + 'brochura', + 'bronzear', + 'broto', + 'bruxo', + 'bucha', + 'budismo', + 'bufar', + 'bule', + 'buraco', + 'busca', + 'busto', + 'buzina', + 'cabana', + 'cabelo', + 'cabide', + 'cabo', + 'cabrito', + 'cacau', + 'cacetada', + 'cachorro', + 'cacique', + 'cadastro', + 'cadeado', + 'cafezal', + 'caiaque', + 'caipira', + 'caixote', + 'cajado', + 'caju', + 'calafrio', + 'calcular', + 'caldeira', + 'calibrar', + 'calmante', + 'calota', + 'camada', + 'cambista', + 'camisa', + 'camomila', + 'campanha', + 'camuflar', + 'canavial', + 'cancelar', + 'caneta', + 'canguru', + 'canhoto', + 'canivete', + 'canoa', + 'cansado', + 'cantar', + 'canudo', + 'capacho', + 'capela', + 'capinar', + 'capotar', + 'capricho', + 'captador', + 'capuz', + 'caracol', + 'carbono', + 'cardeal', + 'careca', + 'carimbar', + 'carneiro', + 'carpete', + 'carreira', + 'cartaz', + 'carvalho', + 'casaco', + 'casca', + 'casebre', + 'castelo', + 'casulo', + 'catarata', + 'cativar', + 'caule', + 'causador', + 'cautelar', + 'cavalo', + 'caverna', + 'cebola', + 'cedilha', + 'cegonha', + 'celebrar', + 'celular', + 'cenoura', + 'censo', + 'centeio', + 'cercar', + 'cerrado', + 'certeiro', + 'cerveja', + 'cetim', + 'cevada', + 'chacota', + 'chaleira', + 'chamado', + 'chapada', + 'charme', + 'chatice', + 'chave', + 'chefe', + 'chegada', + 'cheiro', + 'cheque', + 'chicote', + 'chifre', + 'chinelo', + 'chocalho', + 'chover', + 'chumbo', + 'chutar', + 'chuva', + 'cicatriz', + 'ciclone', + 'cidade', + 'cidreira', + 'ciente', + 'cigana', + 'cimento', + 'cinto', + 'cinza', + 'ciranda', + 'circuito', + 'cirurgia', + 'citar', + 'clareza', + 'clero', + 'clicar', + 'clone', + 'clube', + 'coado', + 'coagir', + 'cobaia', + 'cobertor', + 'cobrar', + 'cocada', + 'coelho', + 'coentro', + 'coeso', + 'cogumelo', + 'coibir', + 'coifa', + 'coiote', + 'colar', + 'coleira', + 'colher', + 'colidir', + 'colmeia', + 'colono', + 'coluna', + 'comando', + 'combinar', + 'comentar', + 'comitiva', + 'comover', + 'complexo', + 'comum', + 'concha', + 'condor', + 'conectar', + 'confuso', + 'congelar', + 'conhecer', + 'conjugar', + 'consumir', + 'contrato', + 'convite', + 'cooperar', + 'copeiro', + 'copiador', + 'copo', + 'coquetel', + 'coragem', + 'cordial', + 'corneta', + 'coronha', + 'corporal', + 'correio', + 'cortejo', + 'coruja', + 'corvo', + 'cosseno', + 'costela', + 'cotonete', + 'couro', + 'couve', + 'covil', + 'cozinha', + 'cratera', + 'cravo', + 'creche', + 'credor', + 'creme', + 'crer', + 'crespo', + 'criada', + 'criminal', + 'crioulo', + 'crise', + 'criticar', + 'crosta', + 'crua', + 'cruzeiro', + 'cubano', + 'cueca', + 'cuidado', + 'cujo', + 'culatra', + 'culminar', + 'culpar', + 'cultura', + 'cumprir', + 'cunhado', + 'cupido', + 'curativo', + 'curral', + 'cursar', + 'curto', + 'cuspir', + 'custear', + 'cutelo', + 'damasco', + 'datar', + 'debater', + 'debitar', + 'deboche', + 'debulhar', + 'decalque', + 'decimal', + 'declive', + 'decote', + 'decretar', + 'dedal', + 'dedicado', + 'deduzir', + 'defesa', + 'defumar', + 'degelo', + 'degrau', + 'degustar', + 'deitado', + 'deixar', + 'delator', + 'delegado', + 'delinear', + 'delonga', + 'demanda', + 'demitir', + 'demolido', + 'dentista', + 'depenado', + 'depilar', + 'depois', + 'depressa', + 'depurar', + 'deriva', + 'derramar', + 'desafio', + 'desbotar', + 'descanso', + 'desenho', + 'desfiado', + 'desgaste', + 'desigual', + 'deslize', + 'desmamar', + 'desova', + 'despesa', + 'destaque', + 'desviar', + 'detalhar', + 'detentor', + 'detonar', + 'detrito', + 'deusa', + 'dever', + 'devido', + 'devotado', + 'dezena', + 'diagrama', + 'dialeto', + 'didata', + 'difuso', + 'digitar', + 'dilatado', + 'diluente', + 'diminuir', + 'dinastia', + 'dinheiro', + 'diocese', + 'direto', + 'discreta', + 'disfarce', + 'disparo', + 'disquete', + 'dissipar', + 'distante', + 'ditador', + 'diurno', + 'diverso', + 'divisor', + 'divulgar', + 'dizer', + 'dobrador', + 'dolorido', + 'domador', + 'dominado', + 'donativo', + 'donzela', + 'dormente', + 'dorsal', + 'dosagem', + 'dourado', + 'doutor', + 'drenagem', + 'drible', + 'drogaria', + 'duelar', + 'duende', + 'dueto', + 'duplo', + 'duquesa', + 'durante', + 'duvidoso', + 'eclodir', + 'ecoar', + 'ecologia', + 'edificar', + 'edital', + 'educado', + 'efeito', + 'efetivar', + 'ejetar', + 'elaborar', + 'eleger', + 'eleitor', + 'elenco', + 'elevador', + 'eliminar', + 'elogiar', + 'embargo', + 'embolado', + 'embrulho', + 'embutido', + 'emenda', + 'emergir', + 'emissor', + 'empatia', + 'empenho', + 'empinado', + 'empolgar', + 'emprego', + 'empurrar', + 'emulador', + 'encaixe', + 'encenado', + 'enchente', + 'encontro', + 'endeusar', + 'endossar', + 'enfaixar', + 'enfeite', + 'enfim', + 'engajado', + 'engenho', + 'englobar', + 'engomado', + 'engraxar', + 'enguia', + 'enjoar', + 'enlatar', + 'enquanto', + 'enraizar', + 'enrolado', + 'enrugar', + 'ensaio', + 'enseada', + 'ensino', + 'ensopado', + 'entanto', + 'enteado', + 'entidade', + 'entortar', + 'entrada', + 'entulho', + 'envergar', + 'enviado', + 'envolver', + 'enxame', + 'enxerto', + 'enxofre', + 'enxuto', + 'epiderme', + 'equipar', + 'ereto', + 'erguido', + 'errata', + 'erva', + 'ervilha', + 'esbanjar', + 'esbelto', + 'escama', + 'escola', + 'escrita', + 'escuta', + 'esfinge', + 'esfolar', + 'esfregar', + 'esfumado', + 'esgrima', + 'esmalte', + 'espanto', + 'espelho', + 'espiga', + 'esponja', + 'espreita', + 'espumar', + 'esquerda', + 'estaca', + 'esteira', + 'esticar', + 'estofado', + 'estrela', + 'estudo', + 'esvaziar', + 'etanol', + 'etiqueta', + 'euforia', + 'europeu', + 'evacuar', + 'evaporar', + 'evasivo', + 'eventual', + 'evidente', + 'evoluir', + 'exagero', + 'exalar', + 'examinar', + 'exato', + 'exausto', + 'excesso', + 'excitar', + 'exclamar', + 'executar', + 'exemplo', + 'exibir', + 'exigente', + 'exonerar', + 'expandir', + 'expelir', + 'expirar', + 'explanar', + 'exposto', + 'expresso', + 'expulsar', + 'externo', + 'extinto', + 'extrato', + 'fabricar', + 'fabuloso', + 'faceta', + 'facial', + 'fada', + 'fadiga', + 'faixa', + 'falar', + 'falta', + 'familiar', + 'fandango', + 'fanfarra', + 'fantoche', + 'fardado', + 'farelo', + 'farinha', + 'farofa', + 'farpa', + 'fartura', + 'fatia', + 'fator', + 'favorita', + 'faxina', + 'fazenda', + 'fechado', + 'feijoada', + 'feirante', + 'felino', + 'feminino', + 'fenda', + 'feno', + 'fera', + 'feriado', + 'ferrugem', + 'ferver', + 'festejar', + 'fetal', + 'feudal', + 'fiapo', + 'fibrose', + 'ficar', + 'ficheiro', + 'figurado', + 'fileira', + 'filho', + 'filme', + 'filtrar', + 'firmeza', + 'fisgada', + 'fissura', + 'fita', + 'fivela', + 'fixador', + 'fixo', + 'flacidez', + 'flamingo', + 'flanela', + 'flechada', + 'flora', + 'flutuar', + 'fluxo', + 'focal', + 'focinho', + 'fofocar', + 'fogo', + 'foguete', + 'foice', + 'folgado', + 'folheto', + 'forjar', + 'formiga', + 'forno', + 'forte', + 'fosco', + 'fossa', + 'fragata', + 'fralda', + 'frango', + 'frasco', + 'fraterno', + 'freira', + 'frente', + 'fretar', + 'frieza', + 'friso', + 'fritura', + 'fronha', + 'frustrar', + 'fruteira', + 'fugir', + 'fulano', + 'fuligem', + 'fundar', + 'fungo', + 'funil', + 'furador', + 'furioso', + 'futebol', + 'gabarito', + 'gabinete', + 'gado', + 'gaiato', + 'gaiola', + 'gaivota', + 'galega', + 'galho', + 'galinha', + 'galocha', + 'ganhar', + 'garagem', + 'garfo', + 'gargalo', + 'garimpo', + 'garoupa', + 'garrafa', + 'gasoduto', + 'gasto', + 'gata', + 'gatilho', + 'gaveta', + 'gazela', + 'gelado', + 'geleia', + 'gelo', + 'gemada', + 'gemer', + 'gemido', + 'generoso', + 'gengiva', + 'genial', + 'genoma', + 'genro', + 'geologia', + 'gerador', + 'germinar', + 'gesso', + 'gestor', + 'ginasta', + 'gincana', + 'gingado', + 'girafa', + 'girino', + 'glacial', + 'glicose', + 'global', + 'glorioso', + 'goela', + 'goiaba', + 'golfe', + 'golpear', + 'gordura', + 'gorjeta', + 'gorro', + 'gostoso', + 'goteira', + 'governar', + 'gracejo', + 'gradual', + 'grafite', + 'gralha', + 'grampo', + 'granada', + 'gratuito', + 'graveto', + 'graxa', + 'grego', + 'grelhar', + 'greve', + 'grilo', + 'grisalho', + 'gritaria', + 'grosso', + 'grotesco', + 'grudado', + 'grunhido', + 'gruta', + 'guache', + 'guarani', + 'guaxinim', + 'guerrear', + 'guiar', + 'guincho', + 'guisado', + 'gula', + 'guloso', + 'guru', + 'habitar', + 'harmonia', + 'haste', + 'haver', + 'hectare', + 'herdar', + 'heresia', + 'hesitar', + 'hiato', + 'hibernar', + 'hidratar', + 'hiena', + 'hino', + 'hipismo', + 'hipnose', + 'hipoteca', + 'hoje', + 'holofote', + 'homem', + 'honesto', + 'honrado', + 'hormonal', + 'hospedar', + 'humorado', + 'iate', + 'ideia', + 'idoso', + 'ignorado', + 'igreja', + 'iguana', + 'ileso', + 'ilha', + 'iludido', + 'iluminar', + 'ilustrar', + 'imagem', + 'imediato', + 'imenso', + 'imersivo', + 'iminente', + 'imitador', + 'imortal', + 'impacto', + 'impedir', + 'implante', + 'impor', + 'imprensa', + 'impune', + 'imunizar', + 'inalador', + 'inapto', + 'inativo', + 'incenso', + 'inchar', + 'incidir', + 'incluir', + 'incolor', + 'indeciso', + 'indireto', + 'indutor', + 'ineficaz', + 'inerente', + 'infantil', + 'infestar', + 'infinito', + 'inflamar', + 'informal', + 'infrator', + 'ingerir', + 'inibido', + 'inicial', + 'inimigo', + 'injetar', + 'inocente', + 'inodoro', + 'inovador', + 'inox', + 'inquieto', + 'inscrito', + 'inseto', + 'insistir', + 'inspetor', + 'instalar', + 'insulto', + 'intacto', + 'integral', + 'intimar', + 'intocado', + 'intriga', + 'invasor', + 'inverno', + 'invicto', + 'invocar', + 'iogurte', + 'iraniano', + 'ironizar', + 'irreal', + 'irritado', + 'isca', + 'isento', + 'isolado', + 'isqueiro', + 'italiano', + 'janeiro', + 'jangada', + 'janta', + 'jararaca', + 'jardim', + 'jarro', + 'jasmim', + 'jato', + 'javali', + 'jazida', + 'jejum', + 'joaninha', + 'joelhada', + 'jogador', + 'joia', + 'jornal', + 'jorrar', + 'jovem', + 'juba', + 'judeu', + 'judoca', + 'juiz', + 'julgador', + 'julho', + 'jurado', + 'jurista', + 'juro', + 'justa', + 'labareda', + 'laboral', + 'lacre', + 'lactante', + 'ladrilho', + 'lagarta', + 'lagoa', + 'laje', + 'lamber', + 'lamentar', + 'laminar', + 'lampejo', + 'lanche', + 'lapidar', + 'lapso', + 'laranja', + 'lareira', + 'largura', + 'lasanha', + 'lastro', + 'lateral', + 'latido', + 'lavanda', + 'lavoura', + 'lavrador', + 'laxante', + 'lazer', + 'lealdade', + 'lebre', + 'legado', + 'legendar', + 'legista', + 'leigo', + 'leiloar', + 'leitura', + 'lembrete', + 'leme', + 'lenhador', + 'lentilha', + 'leoa', + 'lesma', + 'leste', + 'letivo', + 'letreiro', + 'levar', + 'leveza', + 'levitar', + 'liberal', + 'libido', + 'liderar', + 'ligar', + 'ligeiro', + 'limitar', + 'limoeiro', + 'limpador', + 'linda', + 'linear', + 'linhagem', + 'liquidez', + 'listagem', + 'lisura', + 'litoral', + 'livro', + 'lixa', + 'lixeira', + 'locador', + 'locutor', + 'lojista', + 'lombo', + 'lona', + 'longe', + 'lontra', + 'lorde', + 'lotado', + 'loteria', + 'loucura', + 'lousa', + 'louvar', + 'luar', + 'lucidez', + 'lucro', + 'luneta', + 'lustre', + 'lutador', + 'luva', + 'macaco', + 'macete', + 'machado', + 'macio', + 'madeira', + 'madrinha', + 'magnata', + 'magreza', + 'maior', + 'mais', + 'malandro', + 'malha', + 'malote', + 'maluco', + 'mamilo', + 'mamoeiro', + 'mamute', + 'manada', + 'mancha', + 'mandato', + 'manequim', + 'manhoso', + 'manivela', + 'manobrar', + 'mansa', + 'manter', + 'manusear', + 'mapeado', + 'maquinar', + 'marcador', + 'maresia', + 'marfim', + 'margem', + 'marinho', + 'marmita', + 'maroto', + 'marquise', + 'marreco', + 'martelo', + 'marujo', + 'mascote', + 'masmorra', + 'massagem', + 'mastigar', + 'matagal', + 'materno', + 'matinal', + 'matutar', + 'maxilar', + 'medalha', + 'medida', + 'medusa', + 'megafone', + 'meiga', + 'melancia', + 'melhor', + 'membro', + 'memorial', + 'menino', + 'menos', + 'mensagem', + 'mental', + 'merecer', + 'mergulho', + 'mesada', + 'mesclar', + 'mesmo', + 'mesquita', + 'mestre', + 'metade', + 'meteoro', + 'metragem', + 'mexer', + 'mexicano', + 'micro', + 'migalha', + 'migrar', + 'milagre', + 'milenar', + 'milhar', + 'mimado', + 'minerar', + 'minhoca', + 'ministro', + 'minoria', + 'miolo', + 'mirante', + 'mirtilo', + 'misturar', + 'mocidade', + 'moderno', + 'modular', + 'moeda', + 'moer', + 'moinho', + 'moita', + 'moldura', + 'moleza', + 'molho', + 'molinete', + 'molusco', + 'montanha', + 'moqueca', + 'morango', + 'morcego', + 'mordomo', + 'morena', + 'mosaico', + 'mosquete', + 'mostarda', + 'motel', + 'motim', + 'moto', + 'motriz', + 'muda', + 'muito', + 'mulata', + 'mulher', + 'multar', + 'mundial', + 'munido', + 'muralha', + 'murcho', + 'muscular', + 'museu', + 'musical', + 'nacional', + 'nadador', + 'naja', + 'namoro', + 'narina', + 'narrado', + 'nascer', + 'nativa', + 'natureza', + 'navalha', + 'navegar', + 'navio', + 'neblina', + 'nebuloso', + 'negativa', + 'negociar', + 'negrito', + 'nervoso', + 'neta', + 'neural', + 'nevasca', + 'nevoeiro', + 'ninar', + 'ninho', + 'nitidez', + 'nivelar', + 'nobreza', + 'noite', + 'noiva', + 'nomear', + 'nominal', + 'nordeste', + 'nortear', + 'notar', + 'noticiar', + 'noturno', + 'novelo', + 'novilho', + 'novo', + 'nublado', + 'nudez', + 'numeral', + 'nupcial', + 'nutrir', + 'nuvem', + 'obcecado', + 'obedecer', + 'objetivo', + 'obrigado', + 'obscuro', + 'obstetra', + 'obter', + 'obturar', + 'ocidente', + 'ocioso', + 'ocorrer', + 'oculista', + 'ocupado', + 'ofegante', + 'ofensiva', + 'oferenda', + 'oficina', + 'ofuscado', + 'ogiva', + 'olaria', + 'oleoso', + 'olhar', + 'oliveira', + 'ombro', + 'omelete', + 'omisso', + 'omitir', + 'ondulado', + 'oneroso', + 'ontem', + 'opcional', + 'operador', + 'oponente', + 'oportuno', + 'oposto', + 'orar', + 'orbitar', + 'ordem', + 'ordinal', + 'orfanato', + 'orgasmo', + 'orgulho', + 'oriental', + 'origem', + 'oriundo', + 'orla', + 'ortodoxo', + 'orvalho', + 'oscilar', + 'ossada', + 'osso', + 'ostentar', + 'otimismo', + 'ousadia', + 'outono', + 'outubro', + 'ouvido', + 'ovelha', + 'ovular', + 'oxidar', + 'oxigenar', + 'pacato', + 'paciente', + 'pacote', + 'pactuar', + 'padaria', + 'padrinho', + 'pagar', + 'pagode', + 'painel', + 'pairar', + 'paisagem', + 'palavra', + 'palestra', + 'palheta', + 'palito', + 'palmada', + 'palpitar', + 'pancada', + 'panela', + 'panfleto', + 'panqueca', + 'pantanal', + 'papagaio', + 'papelada', + 'papiro', + 'parafina', + 'parcial', + 'pardal', + 'parede', + 'partida', + 'pasmo', + 'passado', + 'pastel', + 'patamar', + 'patente', + 'patinar', + 'patrono', + 'paulada', + 'pausar', + 'peculiar', + 'pedalar', + 'pedestre', + 'pediatra', + 'pedra', + 'pegada', + 'peitoral', + 'peixe', + 'pele', + 'pelicano', + 'penca', + 'pendurar', + 'peneira', + 'penhasco', + 'pensador', + 'pente', + 'perceber', + 'perfeito', + 'pergunta', + 'perito', + 'permitir', + 'perna', + 'perplexo', + 'persiana', + 'pertence', + 'peruca', + 'pescado', + 'pesquisa', + 'pessoa', + 'petiscar', + 'piada', + 'picado', + 'piedade', + 'pigmento', + 'pilastra', + 'pilhado', + 'pilotar', + 'pimenta', + 'pincel', + 'pinguim', + 'pinha', + 'pinote', + 'pintar', + 'pioneiro', + 'pipoca', + 'piquete', + 'piranha', + 'pires', + 'pirueta', + 'piscar', + 'pistola', + 'pitanga', + 'pivete', + 'planta', + 'plaqueta', + 'platina', + 'plebeu', + 'plumagem', + 'pluvial', + 'pneu', + 'poda', + 'poeira', + 'poetisa', + 'polegada', + 'policiar', + 'poluente', + 'polvilho', + 'pomar', + 'pomba', + 'ponderar', + 'pontaria', + 'populoso', + 'porta', + 'possuir', + 'postal', + 'pote', + 'poupar', + 'pouso', + 'povoar', + 'praia', + 'prancha', + 'prato', + 'praxe', + 'prece', + 'predador', + 'prefeito', + 'premiar', + 'prensar', + 'preparar', + 'presilha', + 'pretexto', + 'prevenir', + 'prezar', + 'primata', + 'princesa', + 'prisma', + 'privado', + 'processo', + 'produto', + 'profeta', + 'proibido', + 'projeto', + 'prometer', + 'propagar', + 'prosa', + 'protetor', + 'provador', + 'publicar', + 'pudim', + 'pular', + 'pulmonar', + 'pulseira', + 'punhal', + 'punir', + 'pupilo', + 'pureza', + 'puxador', + 'quadra', + 'quantia', + 'quarto', + 'quase', + 'quebrar', + 'queda', + 'queijo', + 'quente', + 'querido', + 'quimono', + 'quina', + 'quiosque', + 'rabanada', + 'rabisco', + 'rachar', + 'racionar', + 'radial', + 'raiar', + 'rainha', + 'raio', + 'raiva', + 'rajada', + 'ralado', + 'ramal', + 'ranger', + 'ranhura', + 'rapadura', + 'rapel', + 'rapidez', + 'raposa', + 'raquete', + 'raridade', + 'rasante', + 'rascunho', + 'rasgar', + 'raspador', + 'rasteira', + 'rasurar', + 'ratazana', + 'ratoeira', + 'realeza', + 'reanimar', + 'reaver', + 'rebaixar', + 'rebelde', + 'rebolar', + 'recado', + 'recente', + 'recheio', + 'recibo', + 'recordar', + 'recrutar', + 'recuar', + 'rede', + 'redimir', + 'redonda', + 'reduzida', + 'reenvio', + 'refinar', + 'refletir', + 'refogar', + 'refresco', + 'refugiar', + 'regalia', + 'regime', + 'regra', + 'reinado', + 'reitor', + 'rejeitar', + 'relativo', + 'remador', + 'remendo', + 'remorso', + 'renovado', + 'reparo', + 'repelir', + 'repleto', + 'repolho', + 'represa', + 'repudiar', + 'requerer', + 'resenha', + 'resfriar', + 'resgatar', + 'residir', + 'resolver', + 'respeito', + 'ressaca', + 'restante', + 'resumir', + 'retalho', + 'reter', + 'retirar', + 'retomada', + 'retratar', + 'revelar', + 'revisor', + 'revolta', + 'riacho', + 'rica', + 'rigidez', + 'rigoroso', + 'rimar', + 'ringue', + 'risada', + 'risco', + 'risonho', + 'robalo', + 'rochedo', + 'rodada', + 'rodeio', + 'rodovia', + 'roedor', + 'roleta', + 'romano', + 'roncar', + 'rosado', + 'roseira', + 'rosto', + 'rota', + 'roteiro', + 'rotina', + 'rotular', + 'rouco', + 'roupa', + 'roxo', + 'rubro', + 'rugido', + 'rugoso', + 'ruivo', + 'rumo', + 'rupestre', + 'russo', + 'sabor', + 'saciar', + 'sacola', + 'sacudir', + 'sadio', + 'safira', + 'saga', + 'sagrada', + 'saibro', + 'salada', + 'saleiro', + 'salgado', + 'saliva', + 'salpicar', + 'salsicha', + 'saltar', + 'salvador', + 'sambar', + 'samurai', + 'sanar', + 'sanfona', + 'sangue', + 'sanidade', + 'sapato', + 'sarda', + 'sargento', + 'sarjeta', + 'saturar', + 'saudade', + 'saxofone', + 'sazonal', + 'secar', + 'secular', + 'seda', + 'sedento', + 'sediado', + 'sedoso', + 'sedutor', + 'segmento', + 'segredo', + 'segundo', + 'seiva', + 'seleto', + 'selvagem', + 'semanal', + 'semente', + 'senador', + 'senhor', + 'sensual', + 'sentado', + 'separado', + 'sereia', + 'seringa', + 'serra', + 'servo', + 'setembro', + 'setor', + 'sigilo', + 'silhueta', + 'silicone', + 'simetria', + 'simpatia', + 'simular', + 'sinal', + 'sincero', + 'singular', + 'sinopse', + 'sintonia', + 'sirene', + 'siri', + 'situado', + 'soberano', + 'sobra', + 'socorro', + 'sogro', + 'soja', + 'solda', + 'soletrar', + 'solteiro', + 'sombrio', + 'sonata', + 'sondar', + 'sonegar', + 'sonhador', + 'sono', + 'soprano', + 'soquete', + 'sorrir', + 'sorteio', + 'sossego', + 'sotaque', + 'soterrar', + 'sovado', + 'sozinho', + 'suavizar', + 'subida', + 'submerso', + 'subsolo', + 'subtrair', + 'sucata', + 'sucesso', + 'suco', + 'sudeste', + 'sufixo', + 'sugador', + 'sugerir', + 'sujeito', + 'sulfato', + 'sumir', + 'suor', + 'superior', + 'suplicar', + 'suposto', + 'suprimir', + 'surdina', + 'surfista', + 'surpresa', + 'surreal', + 'surtir', + 'suspiro', + 'sustento', + 'tabela', + 'tablete', + 'tabuada', + 'tacho', + 'tagarela', + 'talher', + 'talo', + 'talvez', + 'tamanho', + 'tamborim', + 'tampa', + 'tangente', + 'tanto', + 'tapar', + 'tapioca', + 'tardio', + 'tarefa', + 'tarja', + 'tarraxa', + 'tatuagem', + 'taurino', + 'taxativo', + 'taxista', + 'teatral', + 'tecer', + 'tecido', + 'teclado', + 'tedioso', + 'teia', + 'teimar', + 'telefone', + 'telhado', + 'tempero', + 'tenente', + 'tensor', + 'tentar', + 'termal', + 'terno', + 'terreno', + 'tese', + 'tesoura', + 'testado', + 'teto', + 'textura', + 'texugo', + 'tiara', + 'tigela', + 'tijolo', + 'timbrar', + 'timidez', + 'tingido', + 'tinteiro', + 'tiragem', + 'titular', + 'toalha', + 'tocha', + 'tolerar', + 'tolice', + 'tomada', + 'tomilho', + 'tonel', + 'tontura', + 'topete', + 'tora', + 'torcido', + 'torneio', + 'torque', + 'torrada', + 'torto', + 'tostar', + 'touca', + 'toupeira', + 'toxina', + 'trabalho', + 'tracejar', + 'tradutor', + 'trafegar', + 'trajeto', + 'trama', + 'trancar', + 'trapo', + 'traseiro', + 'tratador', + 'travar', + 'treino', + 'tremer', + 'trepidar', + 'trevo', + 'triagem', + 'tribo', + 'triciclo', + 'tridente', + 'trilogia', + 'trindade', + 'triplo', + 'triturar', + 'triunfal', + 'trocar', + 'trombeta', + 'trova', + 'trunfo', + 'truque', + 'tubular', + 'tucano', + 'tudo', + 'tulipa', + 'tupi', + 'turbo', + 'turma', + 'turquesa', + 'tutelar', + 'tutorial', + 'uivar', + 'umbigo', + 'unha', + 'unidade', + 'uniforme', + 'urologia', + 'urso', + 'urtiga', + 'urubu', + 'usado', + 'usina', + 'usufruir', + 'vacina', + 'vadiar', + 'vagaroso', + 'vaidoso', + 'vala', + 'valente', + 'validade', + 'valores', + 'vantagem', + 'vaqueiro', + 'varanda', + 'vareta', + 'varrer', + 'vascular', + 'vasilha', + 'vassoura', + 'vazar', + 'vazio', + 'veado', + 'vedar', + 'vegetar', + 'veicular', + 'veleiro', + 'velhice', + 'veludo', + 'vencedor', + 'vendaval', + 'venerar', + 'ventre', + 'verbal', + 'verdade', + 'vereador', + 'vergonha', + 'vermelho', + 'verniz', + 'versar', + 'vertente', + 'vespa', + 'vestido', + 'vetorial', + 'viaduto', + 'viagem', + 'viajar', + 'viatura', + 'vibrador', + 'videira', + 'vidraria', + 'viela', + 'viga', + 'vigente', + 'vigiar', + 'vigorar', + 'vilarejo', + 'vinco', + 'vinheta', + 'vinil', + 'violeta', + 'virada', + 'virtude', + 'visitar', + 'visto', + 'vitral', + 'viveiro', + 'vizinho', + 'voador', + 'voar', + 'vogal', + 'volante', + 'voleibol', + 'voltagem', + 'volumoso', + 'vontade', + 'vulto', + 'vuvuzela', + 'xadrez', + 'xarope', + 'xeque', + 'xeretar', + 'xerife', + 'xingar', + 'zangado', + 'zarpar', + 'zebu', + 'zelador', + 'zombar', + 'zoologia', + 'zumbido', +]; + +let DEFAULT_WORDLIST; +const INVALID_MNEMONIC = 'Invalid mnemonic'; +const INVALID_ENTROPY = 'Invalid entropy'; +const INVALID_CHECKSUM = 'Invalid mnemonic checksum'; +const WORDLIST_REQUIRED = 'A wordlist is required but a default could not be found.\n' + + 'Please pass a 2048 word array explicitly.'; +function normalize(str) { + return (str || '').normalize('NFKD'); +} +function lpad(str, padString, length) { + while (str.length < length) { + str = padString + str; + } + return str; +} +function binaryToByte(bin) { + return parseInt(bin, 2); +} +function bytesToBinary(bytes) { + return bytes.map((x) => lpad(x.toString(2), '0', 8)).join(''); +} +function deriveChecksumBits(entropyBuffer) { + const ENT = entropyBuffer.length * 8; + const CS = ENT / 32; + const hash = sha256(entropyBuffer); + return bytesToBinary(Array.from(hash)).slice(0, CS); +} +function salt(password) { + return 'mnemonic' + (password || ''); +} +function mnemonicToSeedSync(mnemonic, password) { + const mnemonicBuffer = fromUtf8(normalize(mnemonic)); + const saltBuffer = fromUtf8(salt(normalize(password))); + const res = pbkdf2(sha512, mnemonicBuffer, saltBuffer, { + c: 2048, + dkLen: 64, + }); + return res; +} +function mnemonicToSeed(mnemonic, password) { + const mnemonicBuffer = fromUtf8(normalize(mnemonic)); + const saltBuffer = fromUtf8(salt(normalize(password))); + return pbkdf2Async(sha512, mnemonicBuffer, saltBuffer, { + c: 2048, + dkLen: 64, + }); +} +function mnemonicToEntropy(mnemonic, wordlist) { + wordlist = wordlist || DEFAULT_WORDLIST; + if (!wordlist) { + throw new Error(WORDLIST_REQUIRED); + } + const words = normalize(mnemonic).split(' '); + if (words.length % 3 !== 0) { + throw new Error(INVALID_MNEMONIC); + } + const bits = words + .map((word) => { + const index = wordlist.indexOf(word); + if (index === -1) { + throw new Error(INVALID_MNEMONIC); + } + return lpad(index.toString(2), '0', 11); + }) + .join(''); + const dividerIndex = Math.floor(bits.length / 33) * 32; + const entropyBits = bits.slice(0, dividerIndex); + const checksumBits = bits.slice(dividerIndex); + const entropyBytes = entropyBits.match(/(.{1,8})/g).map(binaryToByte); + if (entropyBytes.length < 16) { + throw new Error(INVALID_ENTROPY); + } + if (entropyBytes.length > 32) { + throw new Error(INVALID_ENTROPY); + } + if (entropyBytes.length % 4 !== 0) { + throw new Error(INVALID_ENTROPY); + } + const entropy = Uint8Array.from(entropyBytes); + const newChecksum = deriveChecksumBits(entropy); + if (newChecksum !== checksumBits) { + throw new Error(INVALID_CHECKSUM); + } + return toHex(entropy); +} +function entropyToMnemonic(entropy, wordlist) { + if (typeof entropy === 'string') { + entropy = fromHex(entropy); + } + wordlist = wordlist || DEFAULT_WORDLIST; + if (!wordlist) { + throw new Error(WORDLIST_REQUIRED); + } + if (entropy.length < 16) { + throw new TypeError(INVALID_ENTROPY); + } + if (entropy.length > 32) { + throw new TypeError(INVALID_ENTROPY); + } + if (entropy.length % 4 !== 0) { + throw new TypeError(INVALID_ENTROPY); + } + const entropyBits = bytesToBinary(Array.from(entropy)); + const checksumBits = deriveChecksumBits(entropy); + const bits = entropyBits + checksumBits; + const chunks = bits.match(/(.{1,11})/g); + const words = chunks.map((binary) => { + const index = binaryToByte(binary); + return wordlist[index]; + }); + return wordlist[0] === '\u3042\u3044\u3053\u304f\u3057\u3093' + ? words.join('\u3000') + : words.join(' '); +} +function generateMnemonic(strength, rng, wordlist) { + strength = strength || 128; + if (strength % 32 !== 0) { + throw new TypeError(INVALID_ENTROPY); + } + rng = rng || ((size) => crypto.getRandomValues(new Uint8Array(size))); + return entropyToMnemonic(rng(strength / 8), wordlist); +} +function validateMnemonic(mnemonic, wordlist) { + try { + mnemonicToEntropy(mnemonic, wordlist); + } + catch (e) { + return false; + } + return true; +} +function validateWordlist(wordlist) { + if (!Array.isArray(wordlist)) { + return false; + } + if (wordlist.length !== 2048) { + return false; + } + const unique = new Set(wordlist); + if (unique.size !== wordlist.length) { + return false; + } + console.log("hi"); + return true; +} +function setDefaultWordlist(wordlist) { + if (!validateWordlist(wordlist)) { + throw new Error('Invalid wordlist'); + } + DEFAULT_WORDLIST = wordlist; +} +function getDefaultWordlist() { + if (!DEFAULT_WORDLIST) { + throw new Error('No Default Wordlist set'); + } + return DEFAULT_WORDLIST; +} + +export { chineseSimplified, chineseTraditional, czech, english, entropyToMnemonic, french, generateMnemonic, getDefaultWordlist, italian, japanese, korean, mnemonicToEntropy, mnemonicToSeed, mnemonicToSeedSync, portuguese, setDefaultWordlist, spanish, validateMnemonic }; +//# sourceMappingURL=index.js.map diff --git a/src/esm/index.js.map b/src/esm/index.js.map new file mode 100644 index 0000000..bd72e2b --- /dev/null +++ b/src/esm/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../../node_modules/@noble/hashes/esm/_assert.js","../../node_modules/@noble/hashes/esm/utils.js","../../node_modules/@noble/hashes/esm/_sha2.js","../../node_modules/@noble/hashes/esm/sha256.js","../../node_modules/@noble/hashes/esm/_u64.js","../../node_modules/@noble/hashes/esm/sha512.js","../../node_modules/@noble/hashes/esm/hmac.js","../../node_modules/@noble/hashes/esm/pbkdf2.js","../../node_modules/uint8array-tools/src/mjs/browser.js","../../ts_src/wordlists/chinese_simplified.ts","../../ts_src/wordlists/chinese_traditional.ts","../../ts_src/wordlists/czech.ts","../../ts_src/wordlists/english.ts","../../ts_src/wordlists/french.ts","../../ts_src/wordlists/italian.ts","../../ts_src/wordlists/japanese.ts","../../ts_src/wordlists/korean.ts","../../ts_src/wordlists/spanish.ts","../../ts_src/wordlists/portuguese.ts","../../ts_src/index.ts"],"sourcesContent":["export function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nexport function bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nexport function bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new TypeError('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new TypeError(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nexport function hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nexport function exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nexport function output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nconst assert = {\n number,\n bool,\n bytes,\n hash,\n exists,\n output,\n};\nexport default assert;\n//# sourceMappingURL=_assert.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// The import here is via the package name. This is to ensure\n// that exports mapping/resolution does fall into place.\nimport { crypto } from '@noble/hashes/crypto';\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\n// There is almost no big endian hardware, but js typed arrays uses platform specific endianness.\n// So, just to be sure not to corrupt anything.\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = Array.from({ length: 256 }, (v, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xde, 0xad, 0xbe, 0xef]))\n */\nexport function bytesToHex(uint8a) {\n // pre-caching improves the speed 6x\n if (!(uint8a instanceof Uint8Array))\n throw new Error('Uint8Array expected');\n let hex = '';\n for (let i = 0; i < uint8a.length; i++) {\n hex += hexes[uint8a[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('deadbeef')\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('hexToBytes: expected string, got ' + typeof hex);\n }\n if (hex.length % 2)\n throw new Error('hexToBytes: received invalid unpadded hex');\n const array = new Uint8Array(hex.length / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow. However, call to async function will return Promise\n// which will be fullfiled only on next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string') {\n throw new TypeError(`utf8ToBytes expected string, got ${typeof str}`);\n }\n return new TextEncoder().encode(str);\n}\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!(data instanceof Uint8Array))\n throw new TypeError(`Expected input type is Uint8Array (got ${typeof data})`);\n return data;\n}\n/**\n * Concats Uint8Array-s into one; like `Buffer.concat([buf1, buf2])`\n * @example concatBytes(buf1, buf2)\n */\nexport function concatBytes(...arrays) {\n if (!arrays.every((a) => a instanceof Uint8Array))\n throw new Error('Uint8Array list expected');\n if (arrays.length === 1)\n return arrays[0];\n const length = arrays.reduce((a, arr) => a + arr.length, 0);\n const result = new Uint8Array(length);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const arr = arrays[i];\n result.set(arr, pad);\n pad += arr.length;\n }\n return result;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\n// Check if object doens't have custom constructor (like Uint8Array/Array)\nconst isPlainObject = (obj) => Object.prototype.toString.call(obj) === '[object Object]' && obj.constructor === Object;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && (typeof opts !== 'object' || !isPlainObject(opts)))\n throw new TypeError('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashConstructor) {\n const hashC = (message) => hashConstructor().update(toBytes(message)).digest();\n const tmp = hashConstructor();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashConstructor();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto.web) {\n return crypto.web.getRandomValues(new Uint8Array(bytesLength));\n }\n else if (crypto.node) {\n return new Uint8Array(crypto.node.randomBytes(bytesLength).buffer);\n }\n else {\n throw new Error(\"The environment doesn't have randomBytes function\");\n }\n}\n//# sourceMappingURL=utils.js.map","import assert from './_assert.js';\nimport { Hash, createView, toBytes } from './utils.js';\n// Polyfill for Safari 14\nfunction setBigUint64(view, byteOffset, value, isLE) {\n if (typeof view.setBigUint64 === 'function')\n return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n// Base SHA2 class (RFC 6234)\nexport class SHA2 extends Hash {\n constructor(blockLen, outputLen, padOffset, isLE) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.finished = false;\n this.length = 0;\n this.pos = 0;\n this.destroyed = false;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data) {\n assert.exists(this);\n const { view, buffer, blockLen } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen)\n this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.output(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n this.buffer.subarray(pos).fill(0);\n // we have less than padOffset left in buffer, so we cannot put length in current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++)\n buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4)\n throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length)\n throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++)\n oview.setUint32(4 * i, state[i], isLE);\n }\n digest() {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to) {\n to || (to = new this.constructor());\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.length = length;\n to.pos = pos;\n to.finished = finished;\n to.destroyed = destroyed;\n if (length % blockLen)\n to.buffer.set(buffer);\n return to;\n }\n}\n//# sourceMappingURL=_sha2.js.map","import { SHA2 } from './_sha2.js';\nimport { rotr, wrapConstructor } from './utils.js';\n// Choice: a ? b : c\nconst Chi = (a, b, c) => (a & b) ^ (~a & c);\n// Majority function, true if any two inpust is true\nconst Maj = (a, b, c) => (a & b) ^ (a & c) ^ (b & c);\n// Round constants:\n// first 32 bits of the fractional parts of the cube roots of the first 64 primes 2..311)\n// prettier-ignore\nconst SHA256_K = new Uint32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n// Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n// prettier-ignore\nconst IV = new Uint32Array([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n]);\n// Temporary buffer, not used to store anything between runs\n// Named this way because it matches specification.\nconst SHA256_W = new Uint32Array(64);\nclass SHA256 extends SHA2 {\n constructor() {\n super(64, 32, 8, false);\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n this.A = IV[0] | 0;\n this.B = IV[1] | 0;\n this.C = IV[2] | 0;\n this.D = IV[3] | 0;\n this.E = IV[4] | 0;\n this.F = IV[5] | 0;\n this.G = IV[6] | 0;\n this.H = IV[7] | 0;\n }\n get() {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n set(A, B, C, D, E, F, G, H) {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4)\n SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n roundClean() {\n SHA256_W.fill(0);\n }\n destroy() {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n this.buffer.fill(0);\n }\n}\n// Constants from https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf\nclass SHA224 extends SHA256 {\n constructor() {\n super();\n this.A = 0xc1059ed8 | 0;\n this.B = 0x367cd507 | 0;\n this.C = 0x3070dd17 | 0;\n this.D = 0xf70e5939 | 0;\n this.E = 0xffc00b31 | 0;\n this.F = 0x68581511 | 0;\n this.G = 0x64f98fa7 | 0;\n this.H = 0xbefa4fa4 | 0;\n this.outputLen = 28;\n }\n}\n/**\n * SHA2-256 hash function\n * @param message - data that would be hashed\n */\nexport const sha256 = wrapConstructor(() => new SHA256());\nexport const sha224 = wrapConstructor(() => new SHA224());\n//# sourceMappingURL=sha256.js.map","const U32_MASK64 = BigInt(2 ** 32 - 1);\nconst _32n = BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nexport function fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nexport function split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nexport const toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (h, l) => l;\nconst rotr32L = (h, l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\n// Removing \"export\" has 5% perf penalty -_-\nexport function add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","import { SHA2 } from './_sha2.js';\nimport u64 from './_u64.js';\nimport { wrapConstructor } from './utils.js';\n// Round contants (first 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409):\n// prettier-ignore\nconst [SHA512_Kh, SHA512_Kl] = u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n)));\n// Temporary buffer, not used to store anything between runs\nconst SHA512_W_H = new Uint32Array(80);\nconst SHA512_W_L = new Uint32Array(80);\nexport class SHA512 extends SHA2 {\n constructor() {\n super(128, 64, 16, false);\n // We cannot use array here since array allows indexing by variable which means optimizer/compiler cannot use registers.\n // Also looks cleaner and easier to verify with spec.\n // Initial state (first 32 bits of the fractional parts of the square roots of the first 8 primes 2..19):\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x6a09e667 | 0;\n this.Al = 0xf3bcc908 | 0;\n this.Bh = 0xbb67ae85 | 0;\n this.Bl = 0x84caa73b | 0;\n this.Ch = 0x3c6ef372 | 0;\n this.Cl = 0xfe94f82b | 0;\n this.Dh = 0xa54ff53a | 0;\n this.Dl = 0x5f1d36f1 | 0;\n this.Eh = 0x510e527f | 0;\n this.El = 0xade682d1 | 0;\n this.Fh = 0x9b05688c | 0;\n this.Fl = 0x2b3e6c1f | 0;\n this.Gh = 0x1f83d9ab | 0;\n this.Gl = 0xfb41bd6b | 0;\n this.Hh = 0x5be0cd19 | 0;\n this.Hl = 0x137e2179 | 0;\n }\n // prettier-ignore\n get() {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl) {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n process(view, offset) {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n roundClean() {\n SHA512_W_H.fill(0);\n SHA512_W_L.fill(0);\n }\n destroy() {\n this.buffer.fill(0);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\nclass SHA512_224 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x8c3d37c8 | 0;\n this.Al = 0x19544da2 | 0;\n this.Bh = 0x73e19966 | 0;\n this.Bl = 0x89dcd4d6 | 0;\n this.Ch = 0x1dfab7ae | 0;\n this.Cl = 0x32ff9c82 | 0;\n this.Dh = 0x679dd514 | 0;\n this.Dl = 0x582f9fcf | 0;\n this.Eh = 0x0f6d2b69 | 0;\n this.El = 0x7bd44da8 | 0;\n this.Fh = 0x77e36f73 | 0;\n this.Fl = 0x04c48942 | 0;\n this.Gh = 0x3f9d85a8 | 0;\n this.Gl = 0x6a1d36c8 | 0;\n this.Hh = 0x1112e6ad | 0;\n this.Hl = 0x91d692a1 | 0;\n this.outputLen = 28;\n }\n}\nclass SHA512_256 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0x22312194 | 0;\n this.Al = 0xfc2bf72c | 0;\n this.Bh = 0x9f555fa3 | 0;\n this.Bl = 0xc84c64c2 | 0;\n this.Ch = 0x2393b86b | 0;\n this.Cl = 0x6f53b151 | 0;\n this.Dh = 0x96387719 | 0;\n this.Dl = 0x5940eabd | 0;\n this.Eh = 0x96283ee2 | 0;\n this.El = 0xa88effe3 | 0;\n this.Fh = 0xbe5e1e25 | 0;\n this.Fl = 0x53863992 | 0;\n this.Gh = 0x2b0199fc | 0;\n this.Gl = 0x2c85b8aa | 0;\n this.Hh = 0x0eb72ddc | 0;\n this.Hl = 0x81c52ca2 | 0;\n this.outputLen = 32;\n }\n}\nclass SHA384 extends SHA512 {\n constructor() {\n super();\n // h -- high 32 bits, l -- low 32 bits\n this.Ah = 0xcbbb9d5d | 0;\n this.Al = 0xc1059ed8 | 0;\n this.Bh = 0x629a292a | 0;\n this.Bl = 0x367cd507 | 0;\n this.Ch = 0x9159015a | 0;\n this.Cl = 0x3070dd17 | 0;\n this.Dh = 0x152fecd8 | 0;\n this.Dl = 0xf70e5939 | 0;\n this.Eh = 0x67332667 | 0;\n this.El = 0xffc00b31 | 0;\n this.Fh = 0x8eb44a87 | 0;\n this.Fl = 0x68581511 | 0;\n this.Gh = 0xdb0c2e0d | 0;\n this.Gl = 0x64f98fa7 | 0;\n this.Hh = 0x47b5481d | 0;\n this.Hl = 0xbefa4fa4 | 0;\n this.outputLen = 48;\n }\n}\nexport const sha512 = wrapConstructor(() => new SHA512());\nexport const sha512_224 = wrapConstructor(() => new SHA512_224());\nexport const sha512_256 = wrapConstructor(() => new SHA512_256());\nexport const sha384 = wrapConstructor(() => new SHA384());\n//# sourceMappingURL=sha512.js.map","import assert from './_assert.js';\nimport { Hash, toBytes } from './utils.js';\n// HMAC (RFC 2104)\nclass HMAC extends Hash {\n constructor(hash, _key) {\n super();\n this.finished = false;\n this.destroyed = false;\n assert.hash(hash);\n const key = toBytes(_key);\n this.iHash = hash.create();\n if (typeof this.iHash.update !== 'function')\n throw new TypeError('Expected instance of class which extends utils.Hash');\n this.blockLen = this.iHash.blockLen;\n this.outputLen = this.iHash.outputLen;\n const blockLen = this.blockLen;\n const pad = new Uint8Array(blockLen);\n // blockLen can be bigger than outputLen\n pad.set(key.length > blockLen ? hash.create().update(key).digest() : key);\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36;\n this.iHash.update(pad);\n // By doing update (processing of first block) of outer hash here we can re-use it between multiple calls via clone\n this.oHash = hash.create();\n // Undo internal XOR && apply outer XOR\n for (let i = 0; i < pad.length; i++)\n pad[i] ^= 0x36 ^ 0x5c;\n this.oHash.update(pad);\n pad.fill(0);\n }\n update(buf) {\n assert.exists(this);\n this.iHash.update(buf);\n return this;\n }\n digestInto(out) {\n assert.exists(this);\n assert.bytes(out, this.outputLen);\n this.finished = true;\n this.iHash.digestInto(out);\n this.oHash.update(out);\n this.oHash.digestInto(out);\n this.destroy();\n }\n digest() {\n const out = new Uint8Array(this.oHash.outputLen);\n this.digestInto(out);\n return out;\n }\n _cloneInto(to) {\n // Create new instance without calling constructor since key already in state and we don't know it.\n to || (to = Object.create(Object.getPrototypeOf(this), {}));\n const { oHash, iHash, finished, destroyed, blockLen, outputLen } = this;\n to = to;\n to.finished = finished;\n to.destroyed = destroyed;\n to.blockLen = blockLen;\n to.outputLen = outputLen;\n to.oHash = oHash._cloneInto(to.oHash);\n to.iHash = iHash._cloneInto(to.iHash);\n return to;\n }\n destroy() {\n this.destroyed = true;\n this.oHash.destroy();\n this.iHash.destroy();\n }\n}\n/**\n * HMAC: RFC2104 message authentication code.\n * @param hash - function that would be used e.g. sha256\n * @param key - message key\n * @param message - message data\n */\nexport const hmac = (hash, key, message) => new HMAC(hash, key).update(message).digest();\nhmac.create = (hash, key) => new HMAC(hash, key);\n//# sourceMappingURL=hmac.js.map","import assert from './_assert.js';\nimport { hmac } from './hmac.js';\nimport { createView, toBytes, checkOpts, asyncLoop } from './utils.js';\n// Common prologue and epilogue for sync/async functions\nfunction pbkdf2Init(hash, _password, _salt, _opts) {\n assert.hash(hash);\n const opts = checkOpts({ dkLen: 32, asyncTick: 10 }, _opts);\n const { c, dkLen, asyncTick } = opts;\n assert.number(c);\n assert.number(dkLen);\n assert.number(asyncTick);\n if (c < 1)\n throw new Error('PBKDF2: iterations (c) should be >= 1');\n const password = toBytes(_password);\n const salt = toBytes(_salt);\n // DK = PBKDF2(PRF, Password, Salt, c, dkLen);\n const DK = new Uint8Array(dkLen);\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n const PRF = hmac.create(hash, password);\n const PRFSalt = PRF._cloneInto().update(salt);\n return { c, dkLen, asyncTick, DK, PRF, PRFSalt };\n}\nfunction pbkdf2Output(PRF, PRFSalt, DK, prfW, u) {\n PRF.destroy();\n PRFSalt.destroy();\n if (prfW)\n prfW.destroy();\n u.fill(0);\n return DK;\n}\n/**\n * PBKDF2-HMAC: RFC 2898 key derivation function\n * @param hash - hash function that would be used e.g. sha256\n * @param password - password from which a derived key is generated\n * @param salt - cryptographic salt\n * @param opts - {c, dkLen} where c is work factor and dkLen is output message size\n */\nexport function pbkdf2(hash, password, salt, opts) {\n const { c, dkLen, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = createView(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n for (let ui = 1; ui < c; ui++) {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n }\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\nexport async function pbkdf2Async(hash, password, salt, opts) {\n const { c, dkLen, asyncTick, DK, PRF, PRFSalt } = pbkdf2Init(hash, password, salt, opts);\n let prfW; // Working copy\n const arr = new Uint8Array(4);\n const view = createView(arr);\n const u = new Uint8Array(PRF.outputLen);\n // DK = T1 + T2 + ⋯ + Tdklen/hlen\n for (let ti = 1, pos = 0; pos < dkLen; ti++, pos += PRF.outputLen) {\n // Ti = F(Password, Salt, c, i)\n const Ti = DK.subarray(pos, pos + PRF.outputLen);\n view.setInt32(0, ti, false);\n // F(Password, Salt, c, i) = U1 ^ U2 ^ ⋯ ^ Uc\n // U1 = PRF(Password, Salt + INT_32_BE(i))\n (prfW = PRFSalt._cloneInto(prfW)).update(arr).digestInto(u);\n Ti.set(u.subarray(0, Ti.length));\n await asyncLoop(c - 1, asyncTick, (i) => {\n // Uc = PRF(Password, Uc−1)\n PRF._cloneInto(prfW).update(u).digestInto(u);\n for (let i = 0; i < Ti.length; i++)\n Ti[i] ^= u[i];\n });\n }\n return pbkdf2Output(PRF, PRFSalt, DK, prfW, u);\n}\n//# sourceMappingURL=pbkdf2.js.map","const HEX_STRINGS = \"0123456789abcdefABCDEF\";\nconst HEX_CODES = HEX_STRINGS.split(\"\").map((c) => c.codePointAt(0));\nconst HEX_CODEPOINTS = Array(256)\n .fill(true)\n .map((_, i) => {\n const s = String.fromCodePoint(i);\n const index = HEX_STRINGS.indexOf(s);\n // ABCDEF will use 10 - 15\n return index < 0 ? undefined : index < 16 ? index : index - 6;\n});\nconst ENCODER = new TextEncoder();\nconst DECODER = new TextDecoder();\nexport function toUtf8(bytes) {\n return DECODER.decode(bytes);\n}\nexport function fromUtf8(s) {\n return ENCODER.encode(s);\n}\nexport function concat(arrays) {\n const totalLength = arrays.reduce((a, b) => a + b.length, 0);\n const result = new Uint8Array(totalLength);\n let offset = 0;\n for (const array of arrays) {\n result.set(array, offset);\n offset += array.length;\n }\n return result;\n}\n// There are two implementations.\n// One optimizes for length of the bytes, and uses TextDecoder.\n// One optimizes for iteration count, and appends strings.\n// This removes the overhead of TextDecoder.\nexport function toHex(bytes) {\n const b = bytes || new Uint8Array();\n return b.length > 512 ? _toHexLengthPerf(b) : _toHexIterPerf(b);\n}\nfunction _toHexIterPerf(bytes) {\n let s = \"\";\n for (let i = 0; i < bytes.length; ++i) {\n s += HEX_STRINGS[HEX_CODEPOINTS[HEX_CODES[bytes[i] >> 4]]];\n s += HEX_STRINGS[HEX_CODEPOINTS[HEX_CODES[bytes[i] & 15]]];\n }\n return s;\n}\nfunction _toHexLengthPerf(bytes) {\n const hexBytes = new Uint8Array(bytes.length * 2);\n for (let i = 0; i < bytes.length; ++i) {\n hexBytes[i * 2] = HEX_CODES[bytes[i] >> 4];\n hexBytes[i * 2 + 1] = HEX_CODES[bytes[i] & 15];\n }\n return DECODER.decode(hexBytes);\n}\n// Mimics Buffer.from(x, 'hex') logic\n// Stops on first non-hex string and returns\n// https://github.com/nodejs/node/blob/v14.18.1/src/string_bytes.cc#L246-L261\nexport function fromHex(hexString) {\n const hexBytes = ENCODER.encode(hexString || \"\");\n const resultBytes = new Uint8Array(Math.floor(hexBytes.length / 2));\n let i;\n for (i = 0; i < resultBytes.length; i++) {\n const a = HEX_CODEPOINTS[hexBytes[i * 2]];\n const b = HEX_CODEPOINTS[hexBytes[i * 2 + 1]];\n if (a === undefined || b === undefined) {\n break;\n }\n resultBytes[i] = (a << 4) | b;\n }\n return i === resultBytes.length ? resultBytes : resultBytes.slice(0, i);\n}\nexport function toBase64(bytes) {\n return btoa(String.fromCharCode(...bytes));\n}\nexport function fromBase64(base64) {\n const binaryString = atob(base64);\n const bytes = new Uint8Array(binaryString.length);\n for (let i = 0; i < binaryString.length; i++) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n return bytes;\n}\n// Same behavior as Buffer.compare()\nexport function compare(v1, v2) {\n const minLength = Math.min(v1.length, v2.length);\n for (let i = 0; i < minLength; ++i) {\n if (v1[i] !== v2[i]) {\n return v1[i] < v2[i] ? -1 : 1;\n }\n }\n return v1.length === v2.length ? 0 : v1.length > v2.length ? 1 : -1;\n}\nexport function writeUInt8(buffer, offset, value) {\n if (offset + 1 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n if (value > 0xff) {\n throw new Error(`The value of \"value\" is out of range. It must be >= 0 and <= ${0xff}. Received ${value}`);\n }\n buffer[offset] = value;\n}\nexport function writeUInt16(buffer, offset, value, littleEndian) {\n if (offset + 2 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (value > 0xffff) {\n throw new Error(`The value of \"value\" is out of range. It must be >= 0 and <= ${0xffff}. Received ${value}`);\n }\n if (littleEndian === \"LE\") {\n buffer[offset] = value & 0xff;\n buffer[offset + 1] = (value >> 8) & 0xff;\n }\n else {\n buffer[offset] = (value >> 8) & 0xff;\n buffer[offset + 1] = value & 0xff;\n }\n}\nexport function writeUInt32(buffer, offset, value, littleEndian) {\n if (offset + 4 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (value > 0xffffffff) {\n throw new Error(`The value of \"value\" is out of range. It must be >= 0 and <= ${0xffffffff}. Received ${value}`);\n }\n if (littleEndian === \"LE\") {\n buffer[offset] = value & 0xff;\n buffer[offset + 1] = (value >> 8) & 0xff;\n buffer[offset + 2] = (value >> 16) & 0xff;\n buffer[offset + 3] = (value >> 24) & 0xff;\n }\n else {\n buffer[offset] = (value >> 24) & 0xff;\n buffer[offset + 1] = (value >> 16) & 0xff;\n buffer[offset + 2] = (value >> 8) & 0xff;\n buffer[offset + 3] = value & 0xff;\n }\n}\nexport function writeUInt64(buffer, offset, value, littleEndian) {\n if (offset + 8 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (value > 0xffffffffffffffffn) {\n throw new Error(`The value of \"value\" is out of range. It must be >= 0 and <= ${0xffffffffffffffffn}. Received ${value}`);\n }\n if (littleEndian === \"LE\") {\n buffer[offset] = Number(value & 0xffn);\n buffer[offset + 1] = Number((value >> 8n) & 0xffn);\n buffer[offset + 2] = Number((value >> 16n) & 0xffn);\n buffer[offset + 3] = Number((value >> 24n) & 0xffn);\n buffer[offset + 4] = Number((value >> 32n) & 0xffn);\n buffer[offset + 5] = Number((value >> 40n) & 0xffn);\n buffer[offset + 6] = Number((value >> 48n) & 0xffn);\n buffer[offset + 7] = Number((value >> 56n) & 0xffn);\n }\n else {\n buffer[offset] = Number((value >> 56n) & 0xffn);\n buffer[offset + 1] = Number((value >> 48n) & 0xffn);\n buffer[offset + 2] = Number((value >> 40n) & 0xffn);\n buffer[offset + 3] = Number((value >> 32n) & 0xffn);\n buffer[offset + 4] = Number((value >> 24n) & 0xffn);\n buffer[offset + 5] = Number((value >> 16n) & 0xffn);\n buffer[offset + 6] = Number((value >> 8n) & 0xffn);\n buffer[offset + 7] = Number(value & 0xffn);\n }\n}\nexport function readUInt8(buffer, offset) {\n if (offset + 1 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n return buffer[offset];\n}\nexport function readUInt16(buffer, offset, littleEndian) {\n if (offset + 2 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (littleEndian === \"LE\") {\n let num = 0;\n num = (num << 8) + buffer[offset + 1];\n num = (num << 8) + buffer[offset];\n return num;\n }\n else {\n let num = 0;\n num = (num << 8) + buffer[offset];\n num = (num << 8) + buffer[offset + 1];\n return num;\n }\n}\nexport function readUInt32(buffer, offset, littleEndian) {\n if (offset + 4 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (littleEndian === \"LE\") {\n let num = 0;\n num = ((num << 8) + buffer[offset + 3]) >>> 0;\n num = ((num << 8) + buffer[offset + 2]) >>> 0;\n num = ((num << 8) + buffer[offset + 1]) >>> 0;\n num = ((num << 8) + buffer[offset]) >>> 0;\n return num;\n }\n else {\n let num = 0;\n num = ((num << 8) + buffer[offset]) >>> 0;\n num = ((num << 8) + buffer[offset + 1]) >>> 0;\n num = ((num << 8) + buffer[offset + 2]) >>> 0;\n num = ((num << 8) + buffer[offset + 3]) >>> 0;\n return num;\n }\n}\nexport function readUInt64(buffer, offset, littleEndian) {\n if (offset + 8 > buffer.length) {\n throw new Error(\"Offset is outside the bounds of Uint8Array\");\n }\n littleEndian = littleEndian.toUpperCase();\n if (littleEndian === \"LE\") {\n let num = 0n;\n num = (num << 8n) + BigInt(buffer[offset + 7]);\n num = (num << 8n) + BigInt(buffer[offset + 6]);\n num = (num << 8n) + BigInt(buffer[offset + 5]);\n num = (num << 8n) + BigInt(buffer[offset + 4]);\n num = (num << 8n) + BigInt(buffer[offset + 3]);\n num = (num << 8n) + BigInt(buffer[offset + 2]);\n num = (num << 8n) + BigInt(buffer[offset + 1]);\n num = (num << 8n) + BigInt(buffer[offset]);\n return num;\n }\n else {\n let num = 0n;\n num = (num << 8n) + BigInt(buffer[offset]);\n num = (num << 8n) + BigInt(buffer[offset + 1]);\n num = (num << 8n) + BigInt(buffer[offset + 2]);\n num = (num << 8n) + BigInt(buffer[offset + 3]);\n num = (num << 8n) + BigInt(buffer[offset + 4]);\n num = (num << 8n) + BigInt(buffer[offset + 5]);\n num = (num << 8n) + BigInt(buffer[offset + 6]);\n num = (num << 8n) + BigInt(buffer[offset + 7]);\n return num;\n }\n}\n",null,null,null,null,null,null,null,null,null,null,null],"names":["tools.fromUtf8","tools.toHex","tools.fromHex"],"mappings":"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E,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE;AAC/E,QAAQ,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EA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ACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;;;AChgEQ,MAAA,kBAAkB,GAAG;IAChC,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH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;IACN,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,QAAQ;IACR,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,UAAU;IACV,MAAM;IACN,UAAU;IACV,UAAU;IACV,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,QAAQ;IACR,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,SAAS;IACT,MAAM;IACN,UAAU;IACV,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,UAAU;IACV,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,SAAS;IACT,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,SAAS;IACT,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,OAAO;IACP,QAAQ;IACR,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,KAAK;IACL,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,UAAU;IACV,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,WAAW;IACX,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,SAAS;IACT,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,SAAS;IACT,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,UAAU;IACV,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,SAAS;IACT,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,QAAQ;IACR,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,UAAU;IACV,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,SAAS;IACT,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,SAAS;IACT,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,OAAO;IACP,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,QAAQ;IACR,KAAK;IACL,UAAU;IACV,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,SAAS;IACT,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,QAAQ;IACR,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,UAAU;IACV,KAAK;IACL,MAAM;IACN,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,KAAK;IACL,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,QAAQ;IACR,MAAM;IACN,KAAK;IACL,QAAQ;IACR,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,SAAS;IACT,SAAS;IACT,KAAK;IACL,KAAK;IACL,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,UAAU;IACV,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,OAAO;IACP,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,OAAO;IACP,MAAM;IACN,KAAK;IACL,OAAO;IACP,MAAM;IACN,MAAM;IACN,MAAM;IACN,QAAQ;IACR,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]} \ No newline at end of file diff --git a/src/esm/wordlists/chinese_simplified.d.ts b/src/esm/wordlists/chinese_simplified.d.ts new file mode 100644 index 0000000..32d8e72 --- /dev/null +++ b/src/esm/wordlists/chinese_simplified.d.ts @@ -0,0 +1,2 @@ +export declare const chineseSimplified: string[]; +//# sourceMappingURL=chinese_simplified.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/chinese_simplified.d.ts.map b/src/esm/wordlists/chinese_simplified.d.ts.map new file mode 100644 index 0000000..9e67aff --- /dev/null +++ b/src/esm/wordlists/chinese_simplified.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"chinese_simplified.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/chinese_simplified.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,UAigE7B,CAAC"} \ No newline at end of file diff --git a/src/esm/wordlists/chinese_traditional.d.ts b/src/esm/wordlists/chinese_traditional.d.ts new file mode 100644 index 0000000..94139d5 --- /dev/null +++ b/src/esm/wordlists/chinese_traditional.d.ts @@ -0,0 +1,2 @@ +export declare const chineseTraditional: string[]; +//# sourceMappingURL=chinese_traditional.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/chinese_traditional.d.ts.map b/src/esm/wordlists/chinese_traditional.d.ts.map new file mode 100644 index 0000000..04739e9 --- /dev/null +++ b/src/esm/wordlists/chinese_traditional.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"chinese_traditional.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/chinese_traditional.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,kBAAkB,UAigE9B,CAAC"} \ No newline at end of file diff --git a/src/esm/wordlists/czech.d.ts b/src/esm/wordlists/czech.d.ts new file mode 100644 index 0000000..98775e6 --- /dev/null +++ b/src/esm/wordlists/czech.d.ts @@ -0,0 +1,2 @@ +export declare const czech: string[]; +//# sourceMappingURL=czech.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/czech.d.ts.map b/src/esm/wordlists/czech.d.ts.map new file mode 100644 index 0000000..ec64634 --- /dev/null +++ b/src/esm/wordlists/czech.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"czech.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/czech.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,UAigEjB,CAAC"} \ No newline at end of file diff --git a/src/esm/wordlists/english.d.ts b/src/esm/wordlists/english.d.ts new file mode 100644 index 0000000..8f0a1a9 --- /dev/null +++ b/src/esm/wordlists/english.d.ts @@ -0,0 +1,2 @@ +export declare const english: string[]; +//# sourceMappingURL=english.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/english.d.ts.map b/src/esm/wordlists/english.d.ts.map new file mode 100644 index 0000000..d0a92b7 --- /dev/null +++ b/src/esm/wordlists/english.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"english.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/english.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAigEnB,CAAC"} \ No newline at end of file diff --git a/src/esm/wordlists/french.d.ts b/src/esm/wordlists/french.d.ts new file mode 100644 index 0000000..fd4ee12 --- /dev/null +++ b/src/esm/wordlists/french.d.ts @@ -0,0 +1,2 @@ +export declare const french: string[]; +//# sourceMappingURL=french.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/french.d.ts.map b/src/esm/wordlists/french.d.ts.map new file mode 100644 index 0000000..004b243 --- /dev/null +++ b/src/esm/wordlists/french.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"french.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/french.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,UAigElB,CAAC"} \ No newline at end of file diff --git a/src/esm/wordlists/index.d.ts b/src/esm/wordlists/index.d.ts new file mode 100644 index 0000000..ea5e120 --- /dev/null +++ b/src/esm/wordlists/index.d.ts @@ -0,0 +1,11 @@ +export { chineseSimplified } from './chinese_simplified.js'; +export { chineseTraditional } from './chinese_traditional.js'; +export { czech } from './czech.js'; +export { english } from './english.js'; +export { french } from './french.js'; +export { italian } from './italian.js'; +export { japanese } from './japanese.js'; +export { korean } from './korean.js'; +export { spanish } from './spanish.js'; +export { portuguese } from './portuguese.js'; +//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/index.d.ts.map b/src/esm/wordlists/index.d.ts.map new file mode 100644 index 0000000..6c11474 --- /dev/null +++ b/src/esm/wordlists/index.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC"} \ No newline at end of file diff --git a/src/esm/wordlists/italian.d.ts b/src/esm/wordlists/italian.d.ts new file mode 100644 index 0000000..40ef81b --- /dev/null +++ b/src/esm/wordlists/italian.d.ts @@ -0,0 +1,2 @@ +export declare const italian: string[]; +//# sourceMappingURL=italian.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/italian.d.ts.map b/src/esm/wordlists/italian.d.ts.map new file mode 100644 index 0000000..1742fae --- /dev/null +++ b/src/esm/wordlists/italian.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"italian.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/italian.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAigEnB,CAAC"} \ No newline at end of file diff --git a/src/esm/wordlists/japanese.d.ts b/src/esm/wordlists/japanese.d.ts new file mode 100644 index 0000000..65a5dca --- /dev/null +++ b/src/esm/wordlists/japanese.d.ts @@ -0,0 +1,2 @@ +export declare const japanese: string[]; +//# sourceMappingURL=japanese.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/japanese.d.ts.map b/src/esm/wordlists/japanese.d.ts.map new file mode 100644 index 0000000..bce1c2c --- /dev/null +++ b/src/esm/wordlists/japanese.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"japanese.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/japanese.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,UAigEpB,CAAC"} \ No newline at end of file diff --git a/src/esm/wordlists/korean.d.ts b/src/esm/wordlists/korean.d.ts new file mode 100644 index 0000000..82601d0 --- /dev/null +++ b/src/esm/wordlists/korean.d.ts @@ -0,0 +1,2 @@ +export declare const korean: string[]; +//# sourceMappingURL=korean.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/korean.d.ts.map b/src/esm/wordlists/korean.d.ts.map new file mode 100644 index 0000000..915bd8e --- /dev/null +++ b/src/esm/wordlists/korean.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"korean.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/korean.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,UAigElB,CAAC"} \ No newline at end of file diff --git a/src/esm/wordlists/portuguese.d.ts b/src/esm/wordlists/portuguese.d.ts new file mode 100644 index 0000000..1971427 --- /dev/null +++ b/src/esm/wordlists/portuguese.d.ts @@ -0,0 +1,2 @@ +export declare const portuguese: string[]; +//# sourceMappingURL=portuguese.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/portuguese.d.ts.map b/src/esm/wordlists/portuguese.d.ts.map new file mode 100644 index 0000000..7fbaa13 --- /dev/null +++ b/src/esm/wordlists/portuguese.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"portuguese.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/portuguese.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU,UAigEtB,CAAC"} \ No newline at end of file diff --git a/src/esm/wordlists/spanish.d.ts b/src/esm/wordlists/spanish.d.ts new file mode 100644 index 0000000..c1d10e1 --- /dev/null +++ b/src/esm/wordlists/spanish.d.ts @@ -0,0 +1,2 @@ +export declare const spanish: string[]; +//# sourceMappingURL=spanish.d.ts.map \ No newline at end of file diff --git a/src/esm/wordlists/spanish.d.ts.map b/src/esm/wordlists/spanish.d.ts.map new file mode 100644 index 0000000..765323a --- /dev/null +++ b/src/esm/wordlists/spanish.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"spanish.d.ts","sourceRoot":"","sources":["../../ts_src/wordlists/spanish.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAigEnB,CAAC"} \ No newline at end of file diff --git a/src/index.js b/src/index.js deleted file mode 100644 index 6910106..0000000 --- a/src/index.js +++ /dev/null @@ -1,164 +0,0 @@ -import { sha256 } from '@noble/hashes/sha256'; -import { sha512 } from '@noble/hashes/sha512'; -import { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'; -import { randomBytes } from '@noble/hashes/utils'; -let DEFAULT_WORDLIST; -const INVALID_MNEMONIC = 'Invalid mnemonic'; -const INVALID_ENTROPY = 'Invalid entropy'; -const INVALID_CHECKSUM = 'Invalid mnemonic checksum'; -const WORDLIST_REQUIRED = 'A wordlist is required but a default could not be found.\n' + - 'Please pass a 2048 word array explicitly.'; -function normalize(str) { - return (str || '').normalize('NFKD'); -} -function lpad(str, padString, length) { - while (str.length < length) { - str = padString + str; - } - return str; -} -function binaryToByte(bin) { - return parseInt(bin, 2); -} -function bytesToBinary(bytes) { - return bytes.map((x) => lpad(x.toString(2), '0', 8)).join(''); -} -function deriveChecksumBits(entropyBuffer) { - const ENT = entropyBuffer.length * 8; - const CS = ENT / 32; - const hash = sha256(Uint8Array.from(entropyBuffer)); - return bytesToBinary(Array.from(hash)).slice(0, CS); -} -function salt(password) { - return 'mnemonic' + (password || ''); -} -export function mnemonicToSeedSync(mnemonic, password) { - const mnemonicBuffer = Uint8Array.from(Buffer.from(normalize(mnemonic), 'utf8')); - const saltBuffer = Uint8Array.from(Buffer.from(salt(normalize(password)), 'utf8')); - const res = pbkdf2(sha512, mnemonicBuffer, saltBuffer, { - c: 2048, - dkLen: 64, - }); - return Buffer.from(res); -} -export function mnemonicToSeed(mnemonic, password) { - const mnemonicBuffer = Uint8Array.from(Buffer.from(normalize(mnemonic), 'utf8')); - const saltBuffer = Uint8Array.from(Buffer.from(salt(normalize(password)), 'utf8')); - return pbkdf2Async(sha512, mnemonicBuffer, saltBuffer, { - c: 2048, - dkLen: 64, - }).then((res) => Buffer.from(res)); -} -export function mnemonicToEntropy(mnemonic, wordlist) { - wordlist = wordlist || DEFAULT_WORDLIST; - if (!wordlist) { - throw new Error(WORDLIST_REQUIRED); - } - const words = normalize(mnemonic).split(' '); - if (words.length % 3 !== 0) { - throw new Error(INVALID_MNEMONIC); - } - // convert word indices to 11 bit binary strings - const bits = words - .map((word) => { - const index = wordlist.indexOf(word); - if (index === -1) { - throw new Error(INVALID_MNEMONIC); - } - return lpad(index.toString(2), '0', 11); - }) - .join(''); - // split the binary string into ENT/CS - const dividerIndex = Math.floor(bits.length / 33) * 32; - const entropyBits = bits.slice(0, dividerIndex); - const checksumBits = bits.slice(dividerIndex); - // calculate the checksum and compare - const entropyBytes = entropyBits.match(/(.{1,8})/g).map(binaryToByte); - if (entropyBytes.length < 16) { - throw new Error(INVALID_ENTROPY); - } - if (entropyBytes.length > 32) { - throw new Error(INVALID_ENTROPY); - } - if (entropyBytes.length % 4 !== 0) { - throw new Error(INVALID_ENTROPY); - } - const entropy = Buffer.from(entropyBytes); - const newChecksum = deriveChecksumBits(entropy); - if (newChecksum !== checksumBits) { - throw new Error(INVALID_CHECKSUM); - } - return entropy.toString('hex'); -} -export function entropyToMnemonic(entropy, wordlist) { - if (!Buffer.isBuffer(entropy)) { - entropy = Buffer.from(entropy, 'hex'); - } - wordlist = wordlist || DEFAULT_WORDLIST; - if (!wordlist) { - throw new Error(WORDLIST_REQUIRED); - } - // 128 <= ENT <= 256 - if (entropy.length < 16) { - throw new TypeError(INVALID_ENTROPY); - } - if (entropy.length > 32) { - throw new TypeError(INVALID_ENTROPY); - } - if (entropy.length % 4 !== 0) { - throw new TypeError(INVALID_ENTROPY); - } - const entropyBits = bytesToBinary(Array.from(entropy)); - const checksumBits = deriveChecksumBits(entropy); - const bits = entropyBits + checksumBits; - const chunks = bits.match(/(.{1,11})/g); - const words = chunks.map((binary) => { - const index = binaryToByte(binary); - return wordlist[index]; - }); - return wordlist[0] === '\u3042\u3044\u3053\u304f\u3057\u3093' // Japanese wordlist - ? words.join('\u3000') - : words.join(' '); -} -export function generateMnemonic(strength, rng, wordlist) { - strength = strength || 128; - if (strength % 32 !== 0) { - throw new TypeError(INVALID_ENTROPY); - } - rng = rng || ((size) => Buffer.from(randomBytes(size))); - return entropyToMnemonic(rng(strength / 8), wordlist); -} -export function validateMnemonic(mnemonic, wordlist) { - try { - mnemonicToEntropy(mnemonic, wordlist); - } - catch (e) { - return false; - } - return true; -} -function validateWordlist(wordlist) { - if (!Array.isArray(wordlist)) { - return false; - } - if (wordlist.length !== 2048) { - return false; - } - const unique = new Set(wordlist); - if (unique.size !== wordlist.length) { - return false; - } - return true; -} -export function setDefaultWordlist(wordlist) { - if (!validateWordlist(wordlist)) { - throw new Error('Invalid wordlist'); - } - DEFAULT_WORDLIST = wordlist; -} -export function getDefaultWordlist() { - if (!DEFAULT_WORDLIST) { - throw new Error('No Default Wordlist set'); - } - return DEFAULT_WORDLIST; -} diff --git a/src/wordlists/chinese_simplified.d.ts b/src/wordlists/chinese_simplified.d.ts deleted file mode 100644 index d451d2b..0000000 --- a/src/wordlists/chinese_simplified.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: string[]; -export default _default; diff --git a/src/wordlists/chinese_simplified.js b/src/wordlists/chinese_simplified.js deleted file mode 100644 index 4890e7e..0000000 --- a/src/wordlists/chinese_simplified.js +++ /dev/null @@ -1,2050 +0,0 @@ -export default [ - '的', - '一', - '是', - '在', - '不', - '了', - '有', - '和', - '人', - '这', - '中', - '大', - '为', - '上', - '个', - '国', - '我', - '以', - '要', - '他', - '时', - '来', - '用', - '们', - '生', - '到', - '作', - '地', - '于', - '出', - '就', - '分', - '对', - '成', - '会', - '可', - '主', - '发', - '年', - '动', - '同', - '工', - '也', - '能', - '下', - '过', - '子', - '说', - '产', - '种', - '面', - '而', - '方', - '后', - '多', - '定', - '行', - '学', - '法', - '所', - '民', - '得', - '经', - '十', - '三', - '之', - '进', - '着', - '等', - '部', - '度', - '家', - '电', - '力', - '里', - '如', - '水', - '化', - '高', - '自', - '二', - '理', - '起', - '小', - '物', - '现', - '实', - '加', - '量', - '都', - '两', - '体', - '制', - '机', - '当', - '使', - '点', - '从', - '业', - '本', - '去', - '把', - '性', - '好', - '应', - '开', - '它', - '合', - '还', - '因', - '由', - '其', - '些', - '然', - '前', - '外', - '天', - '政', - '四', - '日', - '那', - '社', - '义', - '事', - '平', - '形', - '相', - '全', - '表', - '间', - '样', - '与', - '关', - '各', - '重', - '新', - '线', - '内', - '数', - '正', - '心', - '反', - '你', - '明', - '看', - '原', - '又', - '么', - '利', - '比', - '或', - '但', - '质', - '气', - '第', - '向', - '道', - '命', - '此', - '变', - '条', - '只', - '没', - '结', - '解', - '问', - '意', - '建', - '月', - '公', - '无', - '系', - '军', - '很', - '情', - '者', - '最', - '立', - '代', - '想', - '已', - '通', - '并', - '提', - '直', - '题', - '党', - '程', - '展', - '五', - '果', - '料', - '象', - '员', - '革', - '位', - '入', - '常', - '文', - '总', - '次', - '品', - '式', - '活', - '设', - '及', - '管', - '特', - '件', - '长', - '求', - '老', - '头', - '基', - '资', - '边', - '流', - '路', - '级', - '少', - '图', - '山', - '统', - '接', - '知', - '较', - '将', - '组', - '见', - '计', - '别', - '她', - '手', - '角', - '期', - '根', - '论', - '运', - '农', - '指', - '几', - '九', - '区', - '强', - '放', - '决', - '西', - '被', - '干', - '做', - '必', - '战', - '先', - '回', - '则', - '任', - '取', - '据', - '处', - '队', - '南', - '给', - '色', - '光', - '门', - '即', - '保', - '治', - '北', - '造', - '百', - '规', - '热', - '领', - '七', - '海', - '口', - '东', - '导', - '器', - '压', - '志', - '世', - '金', - '增', - '争', - '济', - '阶', - '油', - '思', - '术', - '极', - '交', - '受', - '联', - '什', - '认', - '六', - '共', - '权', - '收', - '证', - '改', - '清', - '美', - '再', - '采', - '转', - '更', - '单', - '风', - '切', - '打', - '白', - '教', - '速', - '花', - '带', - '安', - '场', - '身', - '车', - '例', - '真', - '务', - '具', - '万', - '每', - '目', - '至', - '达', - '走', - '积', - '示', - '议', - '声', - '报', - '斗', - '完', - '类', - '八', - '离', - '华', - '名', - '确', - '才', - '科', - '张', - '信', - '马', - '节', - '话', - '米', - '整', - '空', - '元', - '况', - '今', - '集', - '温', - '传', - '土', - '许', - '步', - '群', - '广', - '石', - '记', - '需', - '段', - '研', - '界', - '拉', - '林', - '律', - '叫', - '且', - '究', - '观', - '越', - '织', - '装', - '影', - '算', - '低', - '持', - '音', - '众', - '书', - '布', - '复', - '容', - '儿', - '须', - '际', - '商', - '非', - '验', - '连', - '断', - '深', - '难', - '近', - '矿', - '千', - '周', - '委', - '素', - '技', - '备', - '半', - '办', - '青', - '省', - '列', - '习', - '响', - '约', - '支', - '般', - '史', - '感', - '劳', - '便', - '团', - '往', - '酸', - '历', - '市', - '克', - '何', - '除', - '消', - '构', - '府', - '称', - '太', - '准', - '精', - '值', - '号', - '率', - '族', - '维', - '划', - '选', - '标', - '写', - '存', - '候', - '毛', - '亲', - '快', - '效', - '斯', - '院', - '查', - '江', - '型', - '眼', - '王', - '按', - '格', - '养', - '易', - '置', - '派', - '层', - '片', - '始', - '却', - '专', - '状', - '育', - '厂', - '京', - '识', - '适', - '属', - '圆', - '包', - '火', - '住', - '调', - '满', - '县', - '局', - '照', - '参', - '红', - '细', - '引', - '听', - '该', - '铁', - '价', - '严', - '首', - '底', - '液', - '官', - '德', - '随', - '病', - '苏', - '失', - '尔', - '死', - '讲', - '配', - '女', - '黄', - '推', - '显', - '谈', - '罪', - '神', - '艺', - '呢', - '席', - '含', - '企', - '望', - '密', - '批', - '营', - '项', - '防', - '举', - '球', - '英', - '氧', - '势', - '告', - '李', - '台', - '落', - '木', - '帮', - '轮', - '破', - '亚', - '师', - '围', - '注', - '远', - '字', - '材', - '排', - '供', - '河', - '态', - '封', - '另', - '施', - '减', - '树', - '溶', - '怎', - '止', - '案', - '言', - '士', - '均', - '武', - '固', - '叶', - '鱼', - '波', - '视', - '仅', - '费', - '紧', - '爱', - '左', - '章', - '早', - '朝', - '害', - '续', - '轻', - '服', - '试', - '食', - '充', - '兵', - '源', - '判', - '护', - '司', - '足', - '某', - '练', - '差', - '致', - '板', - '田', - '降', - '黑', - '犯', - '负', - '击', - '范', - '继', - '兴', - '似', - '余', - '坚', - '曲', - '输', - '修', - '故', - '城', - '夫', - '够', - '送', - '笔', - '船', - '占', - '右', - '财', - '吃', - '富', - '春', - '职', - '觉', - '汉', - '画', - '功', - '巴', - '跟', - '虽', - '杂', - '飞', - '检', - '吸', - '助', - '升', - '阳', - '互', - '初', - '创', - '抗', - '考', - '投', - '坏', - '策', - '古', - '径', - '换', - '未', - '跑', - '留', - '钢', - '曾', - '端', - '责', - '站', - '简', - '述', - '钱', - '副', - '尽', - '帝', - '射', - '草', - '冲', - '承', - '独', - '令', - '限', - '阿', - '宣', - '环', - '双', - '请', - '超', - '微', - '让', - '控', - '州', - '良', - '轴', - '找', - '否', - '纪', - '益', - '依', - '优', - '顶', - '础', - '载', - '倒', - '房', - '突', - '坐', - '粉', - '敌', - '略', - '客', - '袁', - '冷', - '胜', - '绝', - '析', - '块', - '剂', - '测', - '丝', - '协', - '诉', - '念', - '陈', - '仍', - '罗', - '盐', - '友', - '洋', - '错', - '苦', - '夜', - '刑', - '移', - '频', - '逐', - '靠', - '混', - '母', - '短', - '皮', - '终', - '聚', - '汽', - '村', - '云', - '哪', - '既', - '距', - '卫', - '停', - '烈', - '央', - '察', - '烧', - '迅', - '境', - '若', - '印', - '洲', - '刻', - '括', - '激', - '孔', - '搞', - '甚', - '室', - '待', - '核', - '校', - '散', - '侵', - '吧', - '甲', - '游', - '久', - '菜', - '味', - '旧', - '模', - '湖', - '货', - '损', - '预', - '阻', - '毫', - '普', - '稳', - '乙', - '妈', - '植', - '息', - '扩', - '银', - '语', - '挥', - '酒', - '守', - '拿', - '序', - '纸', - '医', - '缺', - '雨', - '吗', - '针', - '刘', - '啊', - '急', - '唱', - '误', - '训', - '愿', - '审', - '附', - '获', - '茶', - '鲜', - '粮', - '斤', - '孩', - '脱', - '硫', - '肥', - '善', - '龙', - '演', - '父', - '渐', - '血', - '欢', - '械', - '掌', - '歌', - '沙', - '刚', - '攻', - '谓', - '盾', - '讨', - '晚', - '粒', - '乱', - '燃', - '矛', - '乎', - '杀', - '药', - '宁', - '鲁', - '贵', - '钟', - '煤', - '读', - '班', - '伯', - '香', - '介', - '迫', - '句', - '丰', - '培', - '握', - '兰', - '担', - '弦', - '蛋', - '沉', - '假', - '穿', - '执', - '答', - '乐', - '谁', - '顺', - '烟', - '缩', - '征', - '脸', - '喜', - '松', - '脚', - '困', - '异', - '免', - '背', - '星', - '福', - '买', - '染', - '井', - '概', - '慢', - '怕', - '磁', - '倍', - '祖', - '皇', - '促', - '静', - '补', - '评', - '翻', - '肉', - '践', - '尼', - '衣', - '宽', - '扬', - '棉', - '希', - '伤', - '操', - '垂', - '秋', - '宜', - '氢', - '套', - '督', - '振', - '架', - '亮', - '末', - '宪', - '庆', - '编', - '牛', - '触', - '映', - '雷', - '销', - '诗', - '座', - '居', - '抓', - '裂', - '胞', - '呼', - '娘', - '景', - '威', - '绿', - '晶', - '厚', - '盟', - '衡', - '鸡', - '孙', - '延', - '危', - '胶', - '屋', - '乡', - '临', - '陆', - '顾', - '掉', - '呀', - '灯', - '岁', - '措', - '束', - '耐', - '剧', - '玉', - '赵', - '跳', - '哥', - '季', - '课', - '凯', - '胡', - '额', - '款', - '绍', - '卷', - '齐', - '伟', - '蒸', - '殖', - '永', - '宗', - '苗', - '川', - '炉', - '岩', - '弱', - '零', - '杨', - '奏', - '沿', - '露', - '杆', - '探', - '滑', - '镇', - '饭', - '浓', - '航', - '怀', - '赶', - '库', - '夺', - '伊', - '灵', - '税', - '途', - '灭', - '赛', - '归', - '召', - '鼓', - '播', - '盘', - '裁', - '险', - '康', - '唯', - '录', - '菌', - '纯', - '借', - '糖', - '盖', - '横', - '符', - '私', - '努', - '堂', - '域', - '枪', - '润', - '幅', - '哈', - '竟', - '熟', - '虫', - '泽', - '脑', - '壤', - '碳', - '欧', - '遍', - '侧', - '寨', - '敢', - '彻', - '虑', - '斜', - '薄', - '庭', - '纳', - '弹', - '饲', - '伸', - '折', - '麦', - '湿', - '暗', - '荷', - '瓦', - '塞', - '床', - '筑', - '恶', - '户', - '访', - '塔', - '奇', - '透', - '梁', - '刀', - '旋', - '迹', - '卡', - '氯', - '遇', - '份', - '毒', - '泥', - '退', - '洗', - '摆', - '灰', - '彩', - '卖', - '耗', - '夏', - '择', - '忙', - '铜', - '献', - '硬', - '予', - '繁', - '圈', - '雪', - '函', - '亦', - '抽', - '篇', - '阵', - '阴', - '丁', - '尺', - '追', - '堆', - '雄', - '迎', - '泛', - '爸', - '楼', - '避', - '谋', - '吨', - '野', - '猪', - '旗', - '累', - '偏', - '典', - '馆', - '索', - '秦', - '脂', - '潮', - '爷', - '豆', - '忽', - '托', - '惊', - '塑', - '遗', - '愈', - '朱', - '替', - '纤', - '粗', - '倾', - '尚', - '痛', - '楚', - '谢', - '奋', - '购', - '磨', - '君', - '池', - '旁', - '碎', - '骨', - '监', - '捕', - '弟', - '暴', - '割', - '贯', - '殊', - '释', - '词', - '亡', - '壁', - '顿', - '宝', - '午', - '尘', - '闻', - '揭', - '炮', - '残', - '冬', - '桥', - '妇', - '警', - '综', - '招', - '吴', - '付', - '浮', - '遭', - '徐', - '您', - '摇', - '谷', - '赞', - '箱', - '隔', - '订', - '男', - '吹', - '园', - '纷', - '唐', - '败', - '宋', - '玻', - '巨', - '耕', - '坦', - '荣', - '闭', - '湾', - '键', - '凡', - '驻', - '锅', - '救', - '恩', - '剥', - '凝', - '碱', - '齿', - '截', - '炼', - '麻', - '纺', - '禁', - '废', - '盛', - '版', - '缓', - '净', - '睛', - '昌', - '婚', - '涉', - '筒', - '嘴', - '插', - '岸', - '朗', - '庄', - '街', - '藏', - '姑', - '贸', - '腐', - '奴', - '啦', - '惯', - '乘', - '伙', - '恢', - '匀', - '纱', - '扎', - '辩', - '耳', - '彪', - '臣', - '亿', - '璃', - '抵', - '脉', - '秀', - '萨', - '俄', - '网', - '舞', - '店', - '喷', - '纵', - '寸', - '汗', - '挂', - '洪', - '贺', - '闪', - '柬', - '爆', - '烯', - '津', - '稻', - '墙', - '软', - '勇', - '像', - '滚', - '厘', - '蒙', - '芳', - '肯', - '坡', - '柱', - '荡', - '腿', - '仪', - '旅', - '尾', - '轧', - '冰', - '贡', - '登', - '黎', - '削', - '钻', - '勒', - '逃', - '障', - '氨', - '郭', - '峰', - '币', - '港', - '伏', - '轨', - '亩', - '毕', - '擦', - '莫', - '刺', - '浪', - '秘', - '援', - '株', - '健', - '售', - '股', - '岛', - '甘', - '泡', - '睡', - '童', - '铸', - '汤', - '阀', - '休', - '汇', - '舍', - '牧', - '绕', - '炸', - '哲', - '磷', - '绩', - '朋', - '淡', - '尖', - '启', - '陷', - '柴', - '呈', - '徒', - '颜', - '泪', - '稍', - '忘', - '泵', - '蓝', - '拖', - '洞', - '授', - '镜', - '辛', - '壮', - '锋', - '贫', - '虚', - '弯', - '摩', - '泰', - '幼', - '廷', - '尊', - '窗', - '纲', - '弄', - '隶', - '疑', - '氏', - '宫', - '姐', - '震', - '瑞', - '怪', - '尤', - '琴', - '循', - '描', - '膜', - '违', - '夹', - '腰', - '缘', - '珠', - '穷', - '森', - '枝', - '竹', - '沟', - '催', - '绳', - '忆', - '邦', - '剩', - '幸', - '浆', - '栏', - '拥', - '牙', - '贮', - '礼', - '滤', - '钠', - '纹', - '罢', - '拍', - '咱', - '喊', - '袖', - '埃', - '勤', - '罚', - '焦', - '潜', - '伍', - '墨', - '欲', - '缝', - '姓', - '刊', - '饱', - '仿', - '奖', - '铝', - '鬼', - '丽', - '跨', - '默', - '挖', - '链', - '扫', - '喝', - '袋', - '炭', - '污', - '幕', - '诸', - '弧', - '励', - '梅', - '奶', - '洁', - '灾', - '舟', - '鉴', - '苯', - '讼', - '抱', - '毁', - '懂', - '寒', - '智', - '埔', - '寄', - '届', - '跃', - '渡', - '挑', - '丹', - '艰', - '贝', - '碰', - '拔', - '爹', - '戴', - '码', - '梦', - '芽', - '熔', - '赤', - '渔', - '哭', - '敬', - '颗', - '奔', - '铅', - '仲', - '虎', - '稀', - '妹', - '乏', - '珍', - '申', - '桌', - '遵', - '允', - '隆', - '螺', - '仓', - '魏', - '锐', - '晓', - '氮', - '兼', - '隐', - '碍', - '赫', - '拨', - '忠', - '肃', - '缸', - '牵', - '抢', - '博', - '巧', - '壳', - '兄', - '杜', - '讯', - '诚', - '碧', - '祥', - '柯', - '页', - '巡', - '矩', - '悲', - '灌', - '龄', - '伦', - '票', - '寻', - '桂', - '铺', - '圣', - '恐', - '恰', - '郑', - '趣', - '抬', - '荒', - '腾', - '贴', - '柔', - '滴', - '猛', - '阔', - '辆', - '妻', - '填', - '撤', - '储', - '签', - '闹', - '扰', - '紫', - '砂', - '递', - '戏', - '吊', - '陶', - '伐', - '喂', - '疗', - '瓶', - '婆', - '抚', - '臂', - '摸', - '忍', - '虾', - '蜡', - '邻', - '胸', - '巩', - '挤', - '偶', - '弃', - '槽', - '劲', - '乳', - '邓', - '吉', - '仁', - '烂', - '砖', - '租', - '乌', - '舰', - '伴', - '瓜', - '浅', - '丙', - '暂', - '燥', - '橡', - '柳', - '迷', - '暖', - '牌', - '秧', - '胆', - '详', - '簧', - '踏', - '瓷', - '谱', - '呆', - '宾', - '糊', - '洛', - '辉', - '愤', - '竞', - '隙', - '怒', - '粘', - '乃', - '绪', - '肩', - '籍', - '敏', - '涂', - '熙', - '皆', - '侦', - '悬', - '掘', - '享', - '纠', - '醒', - '狂', - '锁', - '淀', - '恨', - '牲', - '霸', - '爬', - '赏', - '逆', - '玩', - '陵', - '祝', - '秒', - '浙', - '貌', - '役', - '彼', - '悉', - '鸭', - '趋', - '凤', - '晨', - '畜', - '辈', - '秩', - '卵', - '署', - '梯', - '炎', - '滩', - '棋', - '驱', - '筛', - '峡', - '冒', - '啥', - '寿', - '译', - '浸', - '泉', - '帽', - '迟', - '硅', - '疆', - '贷', - '漏', - '稿', - '冠', - '嫩', - '胁', - '芯', - '牢', - '叛', - '蚀', - '奥', - '鸣', - '岭', - '羊', - '凭', - '串', - '塘', - '绘', - '酵', - '融', - '盆', - '锡', - '庙', - '筹', - '冻', - '辅', - '摄', - '袭', - '筋', - '拒', - '僚', - '旱', - '钾', - '鸟', - '漆', - '沈', - '眉', - '疏', - '添', - '棒', - '穗', - '硝', - '韩', - '逼', - '扭', - '侨', - '凉', - '挺', - '碗', - '栽', - '炒', - '杯', - '患', - '馏', - '劝', - '豪', - '辽', - '勃', - '鸿', - '旦', - '吏', - '拜', - '狗', - '埋', - '辊', - '掩', - '饮', - '搬', - '骂', - '辞', - '勾', - '扣', - '估', - '蒋', - '绒', - '雾', - '丈', - '朵', - '姆', - '拟', - '宇', - '辑', - '陕', - '雕', - '偿', - '蓄', - '崇', - '剪', - '倡', - '厅', - '咬', - '驶', - '薯', - '刷', - '斥', - '番', - '赋', - '奉', - '佛', - '浇', - '漫', - '曼', - '扇', - '钙', - '桃', - '扶', - '仔', - '返', - '俗', - '亏', - '腔', - '鞋', - '棱', - '覆', - '框', - '悄', - '叔', - '撞', - '骗', - '勘', - '旺', - '沸', - '孤', - '吐', - '孟', - '渠', - '屈', - '疾', - '妙', - '惜', - '仰', - '狠', - '胀', - '谐', - '抛', - '霉', - '桑', - '岗', - '嘛', - '衰', - '盗', - '渗', - '脏', - '赖', - '涌', - '甜', - '曹', - '阅', - '肌', - '哩', - '厉', - '烃', - '纬', - '毅', - '昨', - '伪', - '症', - '煮', - '叹', - '钉', - '搭', - '茎', - '笼', - '酷', - '偷', - '弓', - '锥', - '恒', - '杰', - '坑', - '鼻', - '翼', - '纶', - '叙', - '狱', - '逮', - '罐', - '络', - '棚', - '抑', - '膨', - '蔬', - '寺', - '骤', - '穆', - '冶', - '枯', - '册', - '尸', - '凸', - '绅', - '坯', - '牺', - '焰', - '轰', - '欣', - '晋', - '瘦', - '御', - '锭', - '锦', - '丧', - '旬', - '锻', - '垄', - '搜', - '扑', - '邀', - '亭', - '酯', - '迈', - '舒', - '脆', - '酶', - '闲', - '忧', - '酚', - '顽', - '羽', - '涨', - '卸', - '仗', - '陪', - '辟', - '惩', - '杭', - '姚', - '肚', - '捉', - '飘', - '漂', - '昆', - '欺', - '吾', - '郎', - '烷', - '汁', - '呵', - '饰', - '萧', - '雅', - '邮', - '迁', - '燕', - '撒', - '姻', - '赴', - '宴', - '烦', - '债', - '帐', - '斑', - '铃', - '旨', - '醇', - '董', - '饼', - '雏', - '姿', - '拌', - '傅', - '腹', - '妥', - '揉', - '贤', - '拆', - '歪', - '葡', - '胺', - '丢', - '浩', - '徽', - '昂', - '垫', - '挡', - '览', - '贪', - '慰', - '缴', - '汪', - '慌', - '冯', - '诺', - '姜', - '谊', - '凶', - '劣', - '诬', - '耀', - '昏', - '躺', - '盈', - '骑', - '乔', - '溪', - '丛', - '卢', - '抹', - '闷', - '咨', - '刮', - '驾', - '缆', - '悟', - '摘', - '铒', - '掷', - '颇', - '幻', - '柄', - '惠', - '惨', - '佳', - '仇', - '腊', - '窝', - '涤', - '剑', - '瞧', - '堡', - '泼', - '葱', - '罩', - '霍', - '捞', - '胎', - '苍', - '滨', - '俩', - '捅', - '湘', - '砍', - '霞', - '邵', - '萄', - '疯', - '淮', - '遂', - '熊', - '粪', - '烘', - '宿', - '档', - '戈', - '驳', - '嫂', - '裕', - '徙', - '箭', - '捐', - '肠', - '撑', - '晒', - '辨', - '殿', - '莲', - '摊', - '搅', - '酱', - '屏', - '疫', - '哀', - '蔡', - '堵', - '沫', - '皱', - '畅', - '叠', - '阁', - '莱', - '敲', - '辖', - '钩', - '痕', - '坝', - '巷', - '饿', - '祸', - '丘', - '玄', - '溜', - '曰', - '逻', - '彭', - '尝', - '卿', - '妨', - '艇', - '吞', - '韦', - '怨', - '矮', - '歇', -]; diff --git a/src/wordlists/chinese_traditional.d.ts b/src/wordlists/chinese_traditional.d.ts deleted file mode 100644 index d451d2b..0000000 --- a/src/wordlists/chinese_traditional.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: string[]; -export default _default; diff --git a/src/wordlists/chinese_traditional.js b/src/wordlists/chinese_traditional.js deleted file mode 100644 index 9127067..0000000 --- a/src/wordlists/chinese_traditional.js +++ /dev/null @@ -1,2050 +0,0 @@ -export default [ - '的', - '一', - '是', - '在', - '不', - '了', - '有', - '和', - '人', - '這', - '中', - '大', - '為', - '上', - '個', - '國', - '我', - '以', - '要', - '他', - '時', - '來', - '用', - '們', - '生', - '到', - '作', - '地', - '於', - '出', - '就', - '分', - '對', - '成', - '會', - '可', - '主', - '發', - '年', - '動', - '同', - '工', - '也', - '能', - '下', - '過', - '子', - '說', - '產', - '種', - '面', - '而', - '方', - '後', - '多', - '定', - '行', - '學', - '法', - '所', - '民', - '得', - '經', - '十', - '三', - '之', - '進', - '著', - '等', - '部', - '度', - '家', - '電', - '力', - '裡', - '如', - '水', - '化', - '高', - '自', - '二', - '理', - '起', - '小', - '物', - '現', - '實', - '加', - '量', - '都', - '兩', - '體', - '制', - '機', - '當', - '使', - '點', - '從', - '業', - '本', - '去', - '把', - '性', - '好', - '應', - '開', - '它', - '合', - '還', - '因', - '由', - '其', - '些', - '然', - '前', - '外', - '天', - '政', - '四', - '日', - '那', - '社', - '義', - '事', - '平', - '形', - '相', - '全', - '表', - '間', - '樣', - '與', - '關', - '各', - '重', - '新', - '線', - '內', - '數', - '正', - '心', - '反', - '你', - '明', - '看', - '原', - '又', - '麼', - '利', - '比', - '或', - '但', - '質', - '氣', - '第', - '向', - '道', - '命', - '此', - '變', - '條', - '只', - '沒', - '結', - '解', - '問', - '意', - '建', - '月', - '公', - '無', - '系', - '軍', - '很', - '情', - '者', - '最', - '立', - '代', - '想', - '已', - '通', - '並', - '提', - '直', - '題', - '黨', - '程', - '展', - '五', - '果', - '料', - '象', - '員', - '革', - '位', - '入', - '常', - '文', - '總', - '次', - '品', - '式', - '活', - '設', - '及', - '管', - '特', - '件', - '長', - '求', - '老', - '頭', - '基', - '資', - '邊', - '流', - '路', - '級', - '少', - '圖', - '山', - '統', - '接', - '知', - '較', - '將', - '組', - '見', - '計', - '別', - '她', - '手', - '角', - '期', - '根', - '論', - '運', - '農', - '指', - '幾', - '九', - '區', - '強', - '放', - '決', - '西', - '被', - '幹', - '做', - '必', - '戰', - '先', - '回', - '則', - '任', - '取', - '據', - '處', - '隊', - '南', - '給', - '色', - '光', - '門', - '即', - '保', - '治', - '北', - '造', - '百', - '規', - '熱', - '領', - '七', - '海', - '口', - '東', - '導', - '器', - '壓', - '志', - '世', - '金', - '增', - '爭', - '濟', - '階', - '油', - '思', - '術', - '極', - '交', - '受', - '聯', - '什', - '認', - '六', - '共', - '權', - '收', - '證', - '改', - '清', - '美', - '再', - '採', - '轉', - '更', - '單', - '風', - '切', - '打', - '白', - '教', - '速', - '花', - '帶', - '安', - '場', - '身', - '車', - '例', - '真', - '務', - '具', - '萬', - '每', - '目', - '至', - '達', - '走', - '積', - '示', - '議', - '聲', - '報', - '鬥', - '完', - '類', - '八', - '離', - '華', - '名', - '確', - '才', - '科', - '張', - '信', - '馬', - '節', - '話', - '米', - '整', - '空', - '元', - '況', - '今', - '集', - '溫', - '傳', - '土', - '許', - '步', - '群', - '廣', - '石', - '記', - '需', - '段', - '研', - '界', - '拉', - '林', - '律', - '叫', - '且', - '究', - '觀', - '越', - '織', - '裝', - '影', - '算', - '低', - '持', - '音', - '眾', - '書', - '布', - '复', - '容', - '兒', - '須', - '際', - '商', - '非', - '驗', - '連', - '斷', - '深', - '難', - '近', - '礦', - '千', - '週', - '委', - '素', - '技', - '備', - '半', - '辦', - '青', - '省', - '列', - '習', - '響', - '約', - '支', - '般', - '史', - '感', - '勞', - '便', - '團', - '往', - '酸', - '歷', - '市', - '克', - '何', - '除', - '消', - '構', - '府', - '稱', - '太', - '準', - '精', - '值', - '號', - '率', - '族', - '維', - '劃', - '選', - '標', - '寫', - '存', - '候', - '毛', - '親', - '快', - '效', - '斯', - '院', - '查', - '江', - '型', - '眼', - '王', - '按', - '格', - '養', - '易', - '置', - '派', - '層', - '片', - '始', - '卻', - '專', - '狀', - '育', - '廠', - '京', - '識', - '適', - '屬', - '圓', - '包', - '火', - '住', - '調', - '滿', - '縣', - '局', - '照', - '參', - '紅', - '細', - '引', - '聽', - '該', - '鐵', - '價', - '嚴', - '首', - '底', - '液', - '官', - '德', - '隨', - '病', - '蘇', - '失', - '爾', - '死', - '講', - '配', - '女', - '黃', - '推', - '顯', - '談', - '罪', - '神', - '藝', - '呢', - '席', - '含', - '企', - '望', - '密', - '批', - '營', - '項', - '防', - '舉', - '球', - '英', - '氧', - '勢', - '告', - '李', - '台', - '落', - '木', - '幫', - '輪', - '破', - '亞', - '師', - '圍', - '注', - '遠', - '字', - '材', - '排', - '供', - '河', - '態', - '封', - '另', - '施', - '減', - '樹', - '溶', - '怎', - '止', - '案', - '言', - '士', - '均', - '武', - '固', - '葉', - '魚', - '波', - '視', - '僅', - '費', - '緊', - '愛', - '左', - '章', - '早', - '朝', - '害', - '續', - '輕', - '服', - '試', - '食', - '充', - '兵', - '源', - '判', - '護', - '司', - '足', - '某', - '練', - '差', - '致', - '板', - '田', - '降', - '黑', - '犯', - '負', - '擊', - '范', - '繼', - '興', - '似', - '餘', - '堅', - '曲', - '輸', - '修', - '故', - '城', - '夫', - '夠', - '送', - '筆', - '船', - '佔', - '右', - '財', - '吃', - '富', - '春', - '職', - '覺', - '漢', - '畫', - '功', - '巴', - '跟', - '雖', - '雜', - '飛', - '檢', - '吸', - '助', - '昇', - '陽', - '互', - '初', - '創', - '抗', - '考', - '投', - '壞', - '策', - '古', - '徑', - '換', - '未', - '跑', - '留', - '鋼', - '曾', - '端', - '責', - '站', - '簡', - '述', - '錢', - '副', - '盡', - '帝', - '射', - '草', - '衝', - '承', - '獨', - '令', - '限', - '阿', - '宣', - '環', - '雙', - '請', - '超', - '微', - '讓', - '控', - '州', - '良', - '軸', - '找', - '否', - '紀', - '益', - '依', - '優', - '頂', - '礎', - '載', - '倒', - '房', - '突', - '坐', - '粉', - '敵', - '略', - '客', - '袁', - '冷', - '勝', - '絕', - '析', - '塊', - '劑', - '測', - '絲', - '協', - '訴', - '念', - '陳', - '仍', - '羅', - '鹽', - '友', - '洋', - '錯', - '苦', - '夜', - '刑', - '移', - '頻', - '逐', - '靠', - '混', - '母', - '短', - '皮', - '終', - '聚', - '汽', - '村', - '雲', - '哪', - '既', - '距', - '衛', - '停', - '烈', - '央', - '察', - '燒', - '迅', - '境', - '若', - '印', - '洲', - '刻', - '括', - '激', - '孔', - '搞', - '甚', - '室', - '待', - '核', - '校', - '散', - '侵', - '吧', - '甲', - '遊', - '久', - '菜', - '味', - '舊', - '模', - '湖', - '貨', - '損', - '預', - '阻', - '毫', - '普', - '穩', - '乙', - '媽', - '植', - '息', - '擴', - '銀', - '語', - '揮', - '酒', - '守', - '拿', - '序', - '紙', - '醫', - '缺', - '雨', - '嗎', - '針', - '劉', - '啊', - '急', - '唱', - '誤', - '訓', - '願', - '審', - '附', - '獲', - '茶', - '鮮', - '糧', - '斤', - '孩', - '脫', - '硫', - '肥', - '善', - '龍', - '演', - '父', - '漸', - '血', - '歡', - '械', - '掌', - '歌', - '沙', - '剛', - '攻', - '謂', - '盾', - '討', - '晚', - '粒', - '亂', - '燃', - '矛', - '乎', - '殺', - '藥', - '寧', - '魯', - '貴', - '鐘', - '煤', - '讀', - '班', - '伯', - '香', - '介', - '迫', - '句', - '豐', - '培', - '握', - '蘭', - '擔', - '弦', - '蛋', - '沉', - '假', - '穿', - '執', - '答', - '樂', - '誰', - '順', - '煙', - '縮', - '徵', - '臉', - '喜', - '松', - '腳', - '困', - '異', - '免', - '背', - '星', - '福', - '買', - '染', - '井', - '概', - '慢', - '怕', - '磁', - '倍', - '祖', - '皇', - '促', - '靜', - '補', - '評', - '翻', - '肉', - '踐', - '尼', - '衣', - '寬', - '揚', - '棉', - '希', - '傷', - '操', - '垂', - '秋', - '宜', - '氫', - '套', - '督', - '振', - '架', - '亮', - '末', - '憲', - '慶', - '編', - '牛', - '觸', - '映', - '雷', - '銷', - '詩', - '座', - '居', - '抓', - '裂', - '胞', - '呼', - '娘', - '景', - '威', - '綠', - '晶', - '厚', - '盟', - '衡', - '雞', - '孫', - '延', - '危', - '膠', - '屋', - '鄉', - '臨', - '陸', - '顧', - '掉', - '呀', - '燈', - '歲', - '措', - '束', - '耐', - '劇', - '玉', - '趙', - '跳', - '哥', - '季', - '課', - '凱', - '胡', - '額', - '款', - '紹', - '卷', - '齊', - '偉', - '蒸', - '殖', - '永', - '宗', - '苗', - '川', - '爐', - '岩', - '弱', - '零', - '楊', - '奏', - '沿', - '露', - '桿', - '探', - '滑', - '鎮', - '飯', - '濃', - '航', - '懷', - '趕', - '庫', - '奪', - '伊', - '靈', - '稅', - '途', - '滅', - '賽', - '歸', - '召', - '鼓', - '播', - '盤', - '裁', - '險', - '康', - '唯', - '錄', - '菌', - '純', - '借', - '糖', - '蓋', - '橫', - '符', - '私', - '努', - '堂', - '域', - '槍', - '潤', - '幅', - '哈', - '竟', - '熟', - '蟲', - '澤', - '腦', - '壤', - '碳', - '歐', - '遍', - '側', - '寨', - '敢', - '徹', - '慮', - '斜', - '薄', - '庭', - '納', - '彈', - '飼', - '伸', - '折', - '麥', - '濕', - '暗', - '荷', - '瓦', - '塞', - '床', - '築', - '惡', - '戶', - '訪', - '塔', - '奇', - '透', - '梁', - '刀', - '旋', - '跡', - '卡', - '氯', - '遇', - '份', - '毒', - '泥', - '退', - '洗', - '擺', - '灰', - '彩', - '賣', - '耗', - '夏', - '擇', - '忙', - '銅', - '獻', - '硬', - '予', - '繁', - '圈', - '雪', - '函', - '亦', - '抽', - '篇', - '陣', - '陰', - '丁', - '尺', - '追', - '堆', - '雄', - '迎', - '泛', - '爸', - '樓', - '避', - '謀', - '噸', - '野', - '豬', - '旗', - '累', - '偏', - '典', - '館', - '索', - '秦', - '脂', - '潮', - '爺', - '豆', - '忽', - '托', - '驚', - '塑', - '遺', - '愈', - '朱', - '替', - '纖', - '粗', - '傾', - '尚', - '痛', - '楚', - '謝', - '奮', - '購', - '磨', - '君', - '池', - '旁', - '碎', - '骨', - '監', - '捕', - '弟', - '暴', - '割', - '貫', - '殊', - '釋', - '詞', - '亡', - '壁', - '頓', - '寶', - '午', - '塵', - '聞', - '揭', - '炮', - '殘', - '冬', - '橋', - '婦', - '警', - '綜', - '招', - '吳', - '付', - '浮', - '遭', - '徐', - '您', - '搖', - '谷', - '贊', - '箱', - '隔', - '訂', - '男', - '吹', - '園', - '紛', - '唐', - '敗', - '宋', - '玻', - '巨', - '耕', - '坦', - '榮', - '閉', - '灣', - '鍵', - '凡', - '駐', - '鍋', - '救', - '恩', - '剝', - '凝', - '鹼', - '齒', - '截', - '煉', - '麻', - '紡', - '禁', - '廢', - '盛', - '版', - '緩', - '淨', - '睛', - '昌', - '婚', - '涉', - '筒', - '嘴', - '插', - '岸', - '朗', - '莊', - '街', - '藏', - '姑', - '貿', - '腐', - '奴', - '啦', - '慣', - '乘', - '夥', - '恢', - '勻', - '紗', - '扎', - '辯', - '耳', - '彪', - '臣', - '億', - '璃', - '抵', - '脈', - '秀', - '薩', - '俄', - '網', - '舞', - '店', - '噴', - '縱', - '寸', - '汗', - '掛', - '洪', - '賀', - '閃', - '柬', - '爆', - '烯', - '津', - '稻', - '牆', - '軟', - '勇', - '像', - '滾', - '厘', - '蒙', - '芳', - '肯', - '坡', - '柱', - '盪', - '腿', - '儀', - '旅', - '尾', - '軋', - '冰', - '貢', - '登', - '黎', - '削', - '鑽', - '勒', - '逃', - '障', - '氨', - '郭', - '峰', - '幣', - '港', - '伏', - '軌', - '畝', - '畢', - '擦', - '莫', - '刺', - '浪', - '秘', - '援', - '株', - '健', - '售', - '股', - '島', - '甘', - '泡', - '睡', - '童', - '鑄', - '湯', - '閥', - '休', - '匯', - '舍', - '牧', - '繞', - '炸', - '哲', - '磷', - '績', - '朋', - '淡', - '尖', - '啟', - '陷', - '柴', - '呈', - '徒', - '顏', - '淚', - '稍', - '忘', - '泵', - '藍', - '拖', - '洞', - '授', - '鏡', - '辛', - '壯', - '鋒', - '貧', - '虛', - '彎', - '摩', - '泰', - '幼', - '廷', - '尊', - '窗', - '綱', - '弄', - '隸', - '疑', - '氏', - '宮', - '姐', - '震', - '瑞', - '怪', - '尤', - '琴', - '循', - '描', - '膜', - '違', - '夾', - '腰', - '緣', - '珠', - '窮', - '森', - '枝', - '竹', - '溝', - '催', - '繩', - '憶', - '邦', - '剩', - '幸', - '漿', - '欄', - '擁', - '牙', - '貯', - '禮', - '濾', - '鈉', - '紋', - '罷', - '拍', - '咱', - '喊', - '袖', - '埃', - '勤', - '罰', - '焦', - '潛', - '伍', - '墨', - '欲', - '縫', - '姓', - '刊', - '飽', - '仿', - '獎', - '鋁', - '鬼', - '麗', - '跨', - '默', - '挖', - '鏈', - '掃', - '喝', - '袋', - '炭', - '污', - '幕', - '諸', - '弧', - '勵', - '梅', - '奶', - '潔', - '災', - '舟', - '鑑', - '苯', - '訟', - '抱', - '毀', - '懂', - '寒', - '智', - '埔', - '寄', - '屆', - '躍', - '渡', - '挑', - '丹', - '艱', - '貝', - '碰', - '拔', - '爹', - '戴', - '碼', - '夢', - '芽', - '熔', - '赤', - '漁', - '哭', - '敬', - '顆', - '奔', - '鉛', - '仲', - '虎', - '稀', - '妹', - '乏', - '珍', - '申', - '桌', - '遵', - '允', - '隆', - '螺', - '倉', - '魏', - '銳', - '曉', - '氮', - '兼', - '隱', - '礙', - '赫', - '撥', - '忠', - '肅', - '缸', - '牽', - '搶', - '博', - '巧', - '殼', - '兄', - '杜', - '訊', - '誠', - '碧', - '祥', - '柯', - '頁', - '巡', - '矩', - '悲', - '灌', - '齡', - '倫', - '票', - '尋', - '桂', - '鋪', - '聖', - '恐', - '恰', - '鄭', - '趣', - '抬', - '荒', - '騰', - '貼', - '柔', - '滴', - '猛', - '闊', - '輛', - '妻', - '填', - '撤', - '儲', - '簽', - '鬧', - '擾', - '紫', - '砂', - '遞', - '戲', - '吊', - '陶', - '伐', - '餵', - '療', - '瓶', - '婆', - '撫', - '臂', - '摸', - '忍', - '蝦', - '蠟', - '鄰', - '胸', - '鞏', - '擠', - '偶', - '棄', - '槽', - '勁', - '乳', - '鄧', - '吉', - '仁', - '爛', - '磚', - '租', - '烏', - '艦', - '伴', - '瓜', - '淺', - '丙', - '暫', - '燥', - '橡', - '柳', - '迷', - '暖', - '牌', - '秧', - '膽', - '詳', - '簧', - '踏', - '瓷', - '譜', - '呆', - '賓', - '糊', - '洛', - '輝', - '憤', - '競', - '隙', - '怒', - '粘', - '乃', - '緒', - '肩', - '籍', - '敏', - '塗', - '熙', - '皆', - '偵', - '懸', - '掘', - '享', - '糾', - '醒', - '狂', - '鎖', - '淀', - '恨', - '牲', - '霸', - '爬', - '賞', - '逆', - '玩', - '陵', - '祝', - '秒', - '浙', - '貌', - '役', - '彼', - '悉', - '鴨', - '趨', - '鳳', - '晨', - '畜', - '輩', - '秩', - '卵', - '署', - '梯', - '炎', - '灘', - '棋', - '驅', - '篩', - '峽', - '冒', - '啥', - '壽', - '譯', - '浸', - '泉', - '帽', - '遲', - '矽', - '疆', - '貸', - '漏', - '稿', - '冠', - '嫩', - '脅', - '芯', - '牢', - '叛', - '蝕', - '奧', - '鳴', - '嶺', - '羊', - '憑', - '串', - '塘', - '繪', - '酵', - '融', - '盆', - '錫', - '廟', - '籌', - '凍', - '輔', - '攝', - '襲', - '筋', - '拒', - '僚', - '旱', - '鉀', - '鳥', - '漆', - '沈', - '眉', - '疏', - '添', - '棒', - '穗', - '硝', - '韓', - '逼', - '扭', - '僑', - '涼', - '挺', - '碗', - '栽', - '炒', - '杯', - '患', - '餾', - '勸', - '豪', - '遼', - '勃', - '鴻', - '旦', - '吏', - '拜', - '狗', - '埋', - '輥', - '掩', - '飲', - '搬', - '罵', - '辭', - '勾', - '扣', - '估', - '蔣', - '絨', - '霧', - '丈', - '朵', - '姆', - '擬', - '宇', - '輯', - '陝', - '雕', - '償', - '蓄', - '崇', - '剪', - '倡', - '廳', - '咬', - '駛', - '薯', - '刷', - '斥', - '番', - '賦', - '奉', - '佛', - '澆', - '漫', - '曼', - '扇', - '鈣', - '桃', - '扶', - '仔', - '返', - '俗', - '虧', - '腔', - '鞋', - '棱', - '覆', - '框', - '悄', - '叔', - '撞', - '騙', - '勘', - '旺', - '沸', - '孤', - '吐', - '孟', - '渠', - '屈', - '疾', - '妙', - '惜', - '仰', - '狠', - '脹', - '諧', - '拋', - '黴', - '桑', - '崗', - '嘛', - '衰', - '盜', - '滲', - '臟', - '賴', - '湧', - '甜', - '曹', - '閱', - '肌', - '哩', - '厲', - '烴', - '緯', - '毅', - '昨', - '偽', - '症', - '煮', - '嘆', - '釘', - '搭', - '莖', - '籠', - '酷', - '偷', - '弓', - '錐', - '恆', - '傑', - '坑', - '鼻', - '翼', - '綸', - '敘', - '獄', - '逮', - '罐', - '絡', - '棚', - '抑', - '膨', - '蔬', - '寺', - '驟', - '穆', - '冶', - '枯', - '冊', - '屍', - '凸', - '紳', - '坯', - '犧', - '焰', - '轟', - '欣', - '晉', - '瘦', - '禦', - '錠', - '錦', - '喪', - '旬', - '鍛', - '壟', - '搜', - '撲', - '邀', - '亭', - '酯', - '邁', - '舒', - '脆', - '酶', - '閒', - '憂', - '酚', - '頑', - '羽', - '漲', - '卸', - '仗', - '陪', - '闢', - '懲', - '杭', - '姚', - '肚', - '捉', - '飄', - '漂', - '昆', - '欺', - '吾', - '郎', - '烷', - '汁', - '呵', - '飾', - '蕭', - '雅', - '郵', - '遷', - '燕', - '撒', - '姻', - '赴', - '宴', - '煩', - '債', - '帳', - '斑', - '鈴', - '旨', - '醇', - '董', - '餅', - '雛', - '姿', - '拌', - '傅', - '腹', - '妥', - '揉', - '賢', - '拆', - '歪', - '葡', - '胺', - '丟', - '浩', - '徽', - '昂', - '墊', - '擋', - '覽', - '貪', - '慰', - '繳', - '汪', - '慌', - '馮', - '諾', - '姜', - '誼', - '兇', - '劣', - '誣', - '耀', - '昏', - '躺', - '盈', - '騎', - '喬', - '溪', - '叢', - '盧', - '抹', - '悶', - '諮', - '刮', - '駕', - '纜', - '悟', - '摘', - '鉺', - '擲', - '頗', - '幻', - '柄', - '惠', - '慘', - '佳', - '仇', - '臘', - '窩', - '滌', - '劍', - '瞧', - '堡', - '潑', - '蔥', - '罩', - '霍', - '撈', - '胎', - '蒼', - '濱', - '倆', - '捅', - '湘', - '砍', - '霞', - '邵', - '萄', - '瘋', - '淮', - '遂', - '熊', - '糞', - '烘', - '宿', - '檔', - '戈', - '駁', - '嫂', - '裕', - '徙', - '箭', - '捐', - '腸', - '撐', - '曬', - '辨', - '殿', - '蓮', - '攤', - '攪', - '醬', - '屏', - '疫', - '哀', - '蔡', - '堵', - '沫', - '皺', - '暢', - '疊', - '閣', - '萊', - '敲', - '轄', - '鉤', - '痕', - '壩', - '巷', - '餓', - '禍', - '丘', - '玄', - '溜', - '曰', - '邏', - '彭', - '嘗', - '卿', - '妨', - '艇', - '吞', - '韋', - '怨', - '矮', - '歇', -]; diff --git a/src/wordlists/czech.d.ts b/src/wordlists/czech.d.ts deleted file mode 100644 index d451d2b..0000000 --- a/src/wordlists/czech.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: string[]; -export default _default; diff --git a/src/wordlists/czech.js b/src/wordlists/czech.js deleted file mode 100644 index 7cbab32..0000000 --- a/src/wordlists/czech.js +++ /dev/null @@ -1,2050 +0,0 @@ -export default [ - 'abdikace', - 'abeceda', - 'adresa', - 'agrese', - 'akce', - 'aktovka', - 'alej', - 'alkohol', - 'amputace', - 'ananas', - 'andulka', - 'anekdota', - 'anketa', - 'antika', - 'anulovat', - 'archa', - 'arogance', - 'asfalt', - 'asistent', - 'aspirace', - 'astma', - 'astronom', - 'atlas', - 'atletika', - 'atol', - 'autobus', - 'azyl', - 'babka', - 'bachor', - 'bacil', - 'baculka', - 'badatel', - 'bageta', - 'bagr', - 'bahno', - 'bakterie', - 'balada', - 'baletka', - 'balkon', - 'balonek', - 'balvan', - 'balza', - 'bambus', - 'bankomat', - 'barbar', - 'baret', - 'barman', - 'baroko', - 'barva', - 'baterka', - 'batoh', - 'bavlna', - 'bazalka', - 'bazilika', - 'bazuka', - 'bedna', - 'beran', - 'beseda', - 'bestie', - 'beton', - 'bezinka', - 'bezmoc', - 'beztak', - 'bicykl', - 'bidlo', - 'biftek', - 'bikiny', - 'bilance', - 'biograf', - 'biolog', - 'bitva', - 'bizon', - 'blahobyt', - 'blatouch', - 'blecha', - 'bledule', - 'blesk', - 'blikat', - 'blizna', - 'blokovat', - 'bloudit', - 'blud', - 'bobek', - 'bobr', - 'bodlina', - 'bodnout', - 'bohatost', - 'bojkot', - 'bojovat', - 'bokorys', - 'bolest', - 'borec', - 'borovice', - 'bota', - 'boubel', - 'bouchat', - 'bouda', - 'boule', - 'bourat', - 'boxer', - 'bradavka', - 'brambora', - 'branka', - 'bratr', - 'brepta', - 'briketa', - 'brko', - 'brloh', - 'bronz', - 'broskev', - 'brunetka', - 'brusinka', - 'brzda', - 'brzy', - 'bublina', - 'bubnovat', - 'buchta', - 'buditel', - 'budka', - 'budova', - 'bufet', - 'bujarost', - 'bukvice', - 'buldok', - 'bulva', - 'bunda', - 'bunkr', - 'burza', - 'butik', - 'buvol', - 'buzola', - 'bydlet', - 'bylina', - 'bytovka', - 'bzukot', - 'capart', - 'carevna', - 'cedr', - 'cedule', - 'cejch', - 'cejn', - 'cela', - 'celer', - 'celkem', - 'celnice', - 'cenina', - 'cennost', - 'cenovka', - 'centrum', - 'cenzor', - 'cestopis', - 'cetka', - 'chalupa', - 'chapadlo', - 'charita', - 'chata', - 'chechtat', - 'chemie', - 'chichot', - 'chirurg', - 'chlad', - 'chleba', - 'chlubit', - 'chmel', - 'chmura', - 'chobot', - 'chochol', - 'chodba', - 'cholera', - 'chomout', - 'chopit', - 'choroba', - 'chov', - 'chrapot', - 'chrlit', - 'chrt', - 'chrup', - 'chtivost', - 'chudina', - 'chutnat', - 'chvat', - 'chvilka', - 'chvost', - 'chyba', - 'chystat', - 'chytit', - 'cibule', - 'cigareta', - 'cihelna', - 'cihla', - 'cinkot', - 'cirkus', - 'cisterna', - 'citace', - 'citrus', - 'cizinec', - 'cizost', - 'clona', - 'cokoliv', - 'couvat', - 'ctitel', - 'ctnost', - 'cudnost', - 'cuketa', - 'cukr', - 'cupot', - 'cvaknout', - 'cval', - 'cvik', - 'cvrkot', - 'cyklista', - 'daleko', - 'dareba', - 'datel', - 'datum', - 'dcera', - 'debata', - 'dechovka', - 'decibel', - 'deficit', - 'deflace', - 'dekl', - 'dekret', - 'demokrat', - 'deprese', - 'derby', - 'deska', - 'detektiv', - 'dikobraz', - 'diktovat', - 'dioda', - 'diplom', - 'disk', - 'displej', - 'divadlo', - 'divoch', - 'dlaha', - 'dlouho', - 'dluhopis', - 'dnes', - 'dobro', - 'dobytek', - 'docent', - 'dochutit', - 'dodnes', - 'dohled', - 'dohoda', - 'dohra', - 'dojem', - 'dojnice', - 'doklad', - 'dokola', - 'doktor', - 'dokument', - 'dolar', - 'doleva', - 'dolina', - 'doma', - 'dominant', - 'domluvit', - 'domov', - 'donutit', - 'dopad', - 'dopis', - 'doplnit', - 'doposud', - 'doprovod', - 'dopustit', - 'dorazit', - 'dorost', - 'dort', - 'dosah', - 'doslov', - 'dostatek', - 'dosud', - 'dosyta', - 'dotaz', - 'dotek', - 'dotknout', - 'doufat', - 'doutnat', - 'dovozce', - 'dozadu', - 'doznat', - 'dozorce', - 'drahota', - 'drak', - 'dramatik', - 'dravec', - 'draze', - 'drdol', - 'drobnost', - 'drogerie', - 'drozd', - 'drsnost', - 'drtit', - 'drzost', - 'duben', - 'duchovno', - 'dudek', - 'duha', - 'duhovka', - 'dusit', - 'dusno', - 'dutost', - 'dvojice', - 'dvorec', - 'dynamit', - 'ekolog', - 'ekonomie', - 'elektron', - 'elipsa', - 'email', - 'emise', - 'emoce', - 'empatie', - 'epizoda', - 'epocha', - 'epopej', - 'epos', - 'esej', - 'esence', - 'eskorta', - 'eskymo', - 'etiketa', - 'euforie', - 'evoluce', - 'exekuce', - 'exkurze', - 'expedice', - 'exploze', - 'export', - 'extrakt', - 'facka', - 'fajfka', - 'fakulta', - 'fanatik', - 'fantazie', - 'farmacie', - 'favorit', - 'fazole', - 'federace', - 'fejeton', - 'fenka', - 'fialka', - 'figurant', - 'filozof', - 'filtr', - 'finance', - 'finta', - 'fixace', - 'fjord', - 'flanel', - 'flirt', - 'flotila', - 'fond', - 'fosfor', - 'fotbal', - 'fotka', - 'foton', - 'frakce', - 'freska', - 'fronta', - 'fukar', - 'funkce', - 'fyzika', - 'galeje', - 'garant', - 'genetika', - 'geolog', - 'gilotina', - 'glazura', - 'glejt', - 'golem', - 'golfista', - 'gotika', - 'graf', - 'gramofon', - 'granule', - 'grep', - 'gril', - 'grog', - 'groteska', - 'guma', - 'hadice', - 'hadr', - 'hala', - 'halenka', - 'hanba', - 'hanopis', - 'harfa', - 'harpuna', - 'havran', - 'hebkost', - 'hejkal', - 'hejno', - 'hejtman', - 'hektar', - 'helma', - 'hematom', - 'herec', - 'herna', - 'heslo', - 'hezky', - 'historik', - 'hladovka', - 'hlasivky', - 'hlava', - 'hledat', - 'hlen', - 'hlodavec', - 'hloh', - 'hloupost', - 'hltat', - 'hlubina', - 'hluchota', - 'hmat', - 'hmota', - 'hmyz', - 'hnis', - 'hnojivo', - 'hnout', - 'hoblina', - 'hoboj', - 'hoch', - 'hodiny', - 'hodlat', - 'hodnota', - 'hodovat', - 'hojnost', - 'hokej', - 'holinka', - 'holka', - 'holub', - 'homole', - 'honitba', - 'honorace', - 'horal', - 'horda', - 'horizont', - 'horko', - 'horlivec', - 'hormon', - 'hornina', - 'horoskop', - 'horstvo', - 'hospoda', - 'hostina', - 'hotovost', - 'houba', - 'houf', - 'houpat', - 'houska', - 'hovor', - 'hradba', - 'hranice', - 'hravost', - 'hrazda', - 'hrbolek', - 'hrdina', - 'hrdlo', - 'hrdost', - 'hrnek', - 'hrobka', - 'hromada', - 'hrot', - 'hrouda', - 'hrozen', - 'hrstka', - 'hrubost', - 'hryzat', - 'hubenost', - 'hubnout', - 'hudba', - 'hukot', - 'humr', - 'husita', - 'hustota', - 'hvozd', - 'hybnost', - 'hydrant', - 'hygiena', - 'hymna', - 'hysterik', - 'idylka', - 'ihned', - 'ikona', - 'iluze', - 'imunita', - 'infekce', - 'inflace', - 'inkaso', - 'inovace', - 'inspekce', - 'internet', - 'invalida', - 'investor', - 'inzerce', - 'ironie', - 'jablko', - 'jachta', - 'jahoda', - 'jakmile', - 'jakost', - 'jalovec', - 'jantar', - 'jarmark', - 'jaro', - 'jasan', - 'jasno', - 'jatka', - 'javor', - 'jazyk', - 'jedinec', - 'jedle', - 'jednatel', - 'jehlan', - 'jekot', - 'jelen', - 'jelito', - 'jemnost', - 'jenom', - 'jepice', - 'jeseter', - 'jevit', - 'jezdec', - 'jezero', - 'jinak', - 'jindy', - 'jinoch', - 'jiskra', - 'jistota', - 'jitrnice', - 'jizva', - 'jmenovat', - 'jogurt', - 'jurta', - 'kabaret', - 'kabel', - 'kabinet', - 'kachna', - 'kadet', - 'kadidlo', - 'kahan', - 'kajak', - 'kajuta', - 'kakao', - 'kaktus', - 'kalamita', - 'kalhoty', - 'kalibr', - 'kalnost', - 'kamera', - 'kamkoliv', - 'kamna', - 'kanibal', - 'kanoe', - 'kantor', - 'kapalina', - 'kapela', - 'kapitola', - 'kapka', - 'kaple', - 'kapota', - 'kapr', - 'kapusta', - 'kapybara', - 'karamel', - 'karotka', - 'karton', - 'kasa', - 'katalog', - 'katedra', - 'kauce', - 'kauza', - 'kavalec', - 'kazajka', - 'kazeta', - 'kazivost', - 'kdekoliv', - 'kdesi', - 'kedluben', - 'kemp', - 'keramika', - 'kino', - 'klacek', - 'kladivo', - 'klam', - 'klapot', - 'klasika', - 'klaun', - 'klec', - 'klenba', - 'klepat', - 'klesnout', - 'klid', - 'klima', - 'klisna', - 'klobouk', - 'klokan', - 'klopa', - 'kloub', - 'klubovna', - 'klusat', - 'kluzkost', - 'kmen', - 'kmitat', - 'kmotr', - 'kniha', - 'knot', - 'koalice', - 'koberec', - 'kobka', - 'kobliha', - 'kobyla', - 'kocour', - 'kohout', - 'kojenec', - 'kokos', - 'koktejl', - 'kolaps', - 'koleda', - 'kolize', - 'kolo', - 'komando', - 'kometa', - 'komik', - 'komnata', - 'komora', - 'kompas', - 'komunita', - 'konat', - 'koncept', - 'kondice', - 'konec', - 'konfese', - 'kongres', - 'konina', - 'konkurs', - 'kontakt', - 'konzerva', - 'kopanec', - 'kopie', - 'kopnout', - 'koprovka', - 'korbel', - 'korektor', - 'kormidlo', - 'koroptev', - 'korpus', - 'koruna', - 'koryto', - 'korzet', - 'kosatec', - 'kostka', - 'kotel', - 'kotleta', - 'kotoul', - 'koukat', - 'koupelna', - 'kousek', - 'kouzlo', - 'kovboj', - 'koza', - 'kozoroh', - 'krabice', - 'krach', - 'krajina', - 'kralovat', - 'krasopis', - 'kravata', - 'kredit', - 'krejcar', - 'kresba', - 'kreveta', - 'kriket', - 'kritik', - 'krize', - 'krkavec', - 'krmelec', - 'krmivo', - 'krocan', - 'krok', - 'kronika', - 'kropit', - 'kroupa', - 'krovka', - 'krtek', - 'kruhadlo', - 'krupice', - 'krutost', - 'krvinka', - 'krychle', - 'krypta', - 'krystal', - 'kryt', - 'kudlanka', - 'kufr', - 'kujnost', - 'kukla', - 'kulajda', - 'kulich', - 'kulka', - 'kulomet', - 'kultura', - 'kuna', - 'kupodivu', - 'kurt', - 'kurzor', - 'kutil', - 'kvalita', - 'kvasinka', - 'kvestor', - 'kynolog', - 'kyselina', - 'kytara', - 'kytice', - 'kytka', - 'kytovec', - 'kyvadlo', - 'labrador', - 'lachtan', - 'ladnost', - 'laik', - 'lakomec', - 'lamela', - 'lampa', - 'lanovka', - 'lasice', - 'laso', - 'lastura', - 'latinka', - 'lavina', - 'lebka', - 'leckdy', - 'leden', - 'lednice', - 'ledovka', - 'ledvina', - 'legenda', - 'legie', - 'legrace', - 'lehce', - 'lehkost', - 'lehnout', - 'lektvar', - 'lenochod', - 'lentilka', - 'lepenka', - 'lepidlo', - 'letadlo', - 'letec', - 'letmo', - 'letokruh', - 'levhart', - 'levitace', - 'levobok', - 'libra', - 'lichotka', - 'lidojed', - 'lidskost', - 'lihovina', - 'lijavec', - 'lilek', - 'limetka', - 'linie', - 'linka', - 'linoleum', - 'listopad', - 'litina', - 'litovat', - 'lobista', - 'lodivod', - 'logika', - 'logoped', - 'lokalita', - 'loket', - 'lomcovat', - 'lopata', - 'lopuch', - 'lord', - 'losos', - 'lotr', - 'loudal', - 'louh', - 'louka', - 'louskat', - 'lovec', - 'lstivost', - 'lucerna', - 'lucifer', - 'lump', - 'lusk', - 'lustrace', - 'lvice', - 'lyra', - 'lyrika', - 'lysina', - 'madam', - 'madlo', - 'magistr', - 'mahagon', - 'majetek', - 'majitel', - 'majorita', - 'makak', - 'makovice', - 'makrela', - 'malba', - 'malina', - 'malovat', - 'malvice', - 'maminka', - 'mandle', - 'manko', - 'marnost', - 'masakr', - 'maskot', - 'masopust', - 'matice', - 'matrika', - 'maturita', - 'mazanec', - 'mazivo', - 'mazlit', - 'mazurka', - 'mdloba', - 'mechanik', - 'meditace', - 'medovina', - 'melasa', - 'meloun', - 'mentolka', - 'metla', - 'metoda', - 'metr', - 'mezera', - 'migrace', - 'mihnout', - 'mihule', - 'mikina', - 'mikrofon', - 'milenec', - 'milimetr', - 'milost', - 'mimika', - 'mincovna', - 'minibar', - 'minomet', - 'minulost', - 'miska', - 'mistr', - 'mixovat', - 'mladost', - 'mlha', - 'mlhovina', - 'mlok', - 'mlsat', - 'mluvit', - 'mnich', - 'mnohem', - 'mobil', - 'mocnost', - 'modelka', - 'modlitba', - 'mohyla', - 'mokro', - 'molekula', - 'momentka', - 'monarcha', - 'monokl', - 'monstrum', - 'montovat', - 'monzun', - 'mosaz', - 'moskyt', - 'most', - 'motivace', - 'motorka', - 'motyka', - 'moucha', - 'moudrost', - 'mozaika', - 'mozek', - 'mozol', - 'mramor', - 'mravenec', - 'mrkev', - 'mrtvola', - 'mrzet', - 'mrzutost', - 'mstitel', - 'mudrc', - 'muflon', - 'mulat', - 'mumie', - 'munice', - 'muset', - 'mutace', - 'muzeum', - 'muzikant', - 'myslivec', - 'mzda', - 'nabourat', - 'nachytat', - 'nadace', - 'nadbytek', - 'nadhoz', - 'nadobro', - 'nadpis', - 'nahlas', - 'nahnat', - 'nahodile', - 'nahradit', - 'naivita', - 'najednou', - 'najisto', - 'najmout', - 'naklonit', - 'nakonec', - 'nakrmit', - 'nalevo', - 'namazat', - 'namluvit', - 'nanometr', - 'naoko', - 'naopak', - 'naostro', - 'napadat', - 'napevno', - 'naplnit', - 'napnout', - 'naposled', - 'naprosto', - 'narodit', - 'naruby', - 'narychlo', - 'nasadit', - 'nasekat', - 'naslepo', - 'nastat', - 'natolik', - 'navenek', - 'navrch', - 'navzdory', - 'nazvat', - 'nebe', - 'nechat', - 'necky', - 'nedaleko', - 'nedbat', - 'neduh', - 'negace', - 'nehet', - 'nehoda', - 'nejen', - 'nejprve', - 'neklid', - 'nelibost', - 'nemilost', - 'nemoc', - 'neochota', - 'neonka', - 'nepokoj', - 'nerost', - 'nerv', - 'nesmysl', - 'nesoulad', - 'netvor', - 'neuron', - 'nevina', - 'nezvykle', - 'nicota', - 'nijak', - 'nikam', - 'nikdy', - 'nikl', - 'nikterak', - 'nitro', - 'nocleh', - 'nohavice', - 'nominace', - 'nora', - 'norek', - 'nositel', - 'nosnost', - 'nouze', - 'noviny', - 'novota', - 'nozdra', - 'nuda', - 'nudle', - 'nuget', - 'nutit', - 'nutnost', - 'nutrie', - 'nymfa', - 'obal', - 'obarvit', - 'obava', - 'obdiv', - 'obec', - 'obehnat', - 'obejmout', - 'obezita', - 'obhajoba', - 'obilnice', - 'objasnit', - 'objekt', - 'obklopit', - 'oblast', - 'oblek', - 'obliba', - 'obloha', - 'obluda', - 'obnos', - 'obohatit', - 'obojek', - 'obout', - 'obrazec', - 'obrna', - 'obruba', - 'obrys', - 'obsah', - 'obsluha', - 'obstarat', - 'obuv', - 'obvaz', - 'obvinit', - 'obvod', - 'obvykle', - 'obyvatel', - 'obzor', - 'ocas', - 'ocel', - 'ocenit', - 'ochladit', - 'ochota', - 'ochrana', - 'ocitnout', - 'odboj', - 'odbyt', - 'odchod', - 'odcizit', - 'odebrat', - 'odeslat', - 'odevzdat', - 'odezva', - 'odhadce', - 'odhodit', - 'odjet', - 'odjinud', - 'odkaz', - 'odkoupit', - 'odliv', - 'odluka', - 'odmlka', - 'odolnost', - 'odpad', - 'odpis', - 'odplout', - 'odpor', - 'odpustit', - 'odpykat', - 'odrazka', - 'odsoudit', - 'odstup', - 'odsun', - 'odtok', - 'odtud', - 'odvaha', - 'odveta', - 'odvolat', - 'odvracet', - 'odznak', - 'ofina', - 'ofsajd', - 'ohlas', - 'ohnisko', - 'ohrada', - 'ohrozit', - 'ohryzek', - 'okap', - 'okenice', - 'oklika', - 'okno', - 'okouzlit', - 'okovy', - 'okrasa', - 'okres', - 'okrsek', - 'okruh', - 'okupant', - 'okurka', - 'okusit', - 'olejnina', - 'olizovat', - 'omak', - 'omeleta', - 'omezit', - 'omladina', - 'omlouvat', - 'omluva', - 'omyl', - 'onehdy', - 'opakovat', - 'opasek', - 'operace', - 'opice', - 'opilost', - 'opisovat', - 'opora', - 'opozice', - 'opravdu', - 'oproti', - 'orbital', - 'orchestr', - 'orgie', - 'orlice', - 'orloj', - 'ortel', - 'osada', - 'oschnout', - 'osika', - 'osivo', - 'oslava', - 'oslepit', - 'oslnit', - 'oslovit', - 'osnova', - 'osoba', - 'osolit', - 'ospalec', - 'osten', - 'ostraha', - 'ostuda', - 'ostych', - 'osvojit', - 'oteplit', - 'otisk', - 'otop', - 'otrhat', - 'otrlost', - 'otrok', - 'otruby', - 'otvor', - 'ovanout', - 'ovar', - 'oves', - 'ovlivnit', - 'ovoce', - 'oxid', - 'ozdoba', - 'pachatel', - 'pacient', - 'padouch', - 'pahorek', - 'pakt', - 'palanda', - 'palec', - 'palivo', - 'paluba', - 'pamflet', - 'pamlsek', - 'panenka', - 'panika', - 'panna', - 'panovat', - 'panstvo', - 'pantofle', - 'paprika', - 'parketa', - 'parodie', - 'parta', - 'paruka', - 'paryba', - 'paseka', - 'pasivita', - 'pastelka', - 'patent', - 'patrona', - 'pavouk', - 'pazneht', - 'pazourek', - 'pecka', - 'pedagog', - 'pejsek', - 'peklo', - 'peloton', - 'penalta', - 'pendrek', - 'penze', - 'periskop', - 'pero', - 'pestrost', - 'petarda', - 'petice', - 'petrolej', - 'pevnina', - 'pexeso', - 'pianista', - 'piha', - 'pijavice', - 'pikle', - 'piknik', - 'pilina', - 'pilnost', - 'pilulka', - 'pinzeta', - 'pipeta', - 'pisatel', - 'pistole', - 'pitevna', - 'pivnice', - 'pivovar', - 'placenta', - 'plakat', - 'plamen', - 'planeta', - 'plastika', - 'platit', - 'plavidlo', - 'plaz', - 'plech', - 'plemeno', - 'plenta', - 'ples', - 'pletivo', - 'plevel', - 'plivat', - 'plnit', - 'plno', - 'plocha', - 'plodina', - 'plomba', - 'plout', - 'pluk', - 'plyn', - 'pobavit', - 'pobyt', - 'pochod', - 'pocit', - 'poctivec', - 'podat', - 'podcenit', - 'podepsat', - 'podhled', - 'podivit', - 'podklad', - 'podmanit', - 'podnik', - 'podoba', - 'podpora', - 'podraz', - 'podstata', - 'podvod', - 'podzim', - 'poezie', - 'pohanka', - 'pohnutka', - 'pohovor', - 'pohroma', - 'pohyb', - 'pointa', - 'pojistka', - 'pojmout', - 'pokazit', - 'pokles', - 'pokoj', - 'pokrok', - 'pokuta', - 'pokyn', - 'poledne', - 'polibek', - 'polknout', - 'poloha', - 'polynom', - 'pomalu', - 'pominout', - 'pomlka', - 'pomoc', - 'pomsta', - 'pomyslet', - 'ponechat', - 'ponorka', - 'ponurost', - 'popadat', - 'popel', - 'popisek', - 'poplach', - 'poprosit', - 'popsat', - 'popud', - 'poradce', - 'porce', - 'porod', - 'porucha', - 'poryv', - 'posadit', - 'posed', - 'posila', - 'poskok', - 'poslanec', - 'posoudit', - 'pospolu', - 'postava', - 'posudek', - 'posyp', - 'potah', - 'potkan', - 'potlesk', - 'potomek', - 'potrava', - 'potupa', - 'potvora', - 'poukaz', - 'pouto', - 'pouzdro', - 'povaha', - 'povidla', - 'povlak', - 'povoz', - 'povrch', - 'povstat', - 'povyk', - 'povzdech', - 'pozdrav', - 'pozemek', - 'poznatek', - 'pozor', - 'pozvat', - 'pracovat', - 'prahory', - 'praktika', - 'prales', - 'praotec', - 'praporek', - 'prase', - 'pravda', - 'princip', - 'prkno', - 'probudit', - 'procento', - 'prodej', - 'profese', - 'prohra', - 'projekt', - 'prolomit', - 'promile', - 'pronikat', - 'propad', - 'prorok', - 'prosba', - 'proton', - 'proutek', - 'provaz', - 'prskavka', - 'prsten', - 'prudkost', - 'prut', - 'prvek', - 'prvohory', - 'psanec', - 'psovod', - 'pstruh', - 'ptactvo', - 'puberta', - 'puch', - 'pudl', - 'pukavec', - 'puklina', - 'pukrle', - 'pult', - 'pumpa', - 'punc', - 'pupen', - 'pusa', - 'pusinka', - 'pustina', - 'putovat', - 'putyka', - 'pyramida', - 'pysk', - 'pytel', - 'racek', - 'rachot', - 'radiace', - 'radnice', - 'radon', - 'raft', - 'ragby', - 'raketa', - 'rakovina', - 'rameno', - 'rampouch', - 'rande', - 'rarach', - 'rarita', - 'rasovna', - 'rastr', - 'ratolest', - 'razance', - 'razidlo', - 'reagovat', - 'reakce', - 'recept', - 'redaktor', - 'referent', - 'reflex', - 'rejnok', - 'reklama', - 'rekord', - 'rekrut', - 'rektor', - 'reputace', - 'revize', - 'revma', - 'revolver', - 'rezerva', - 'riskovat', - 'riziko', - 'robotika', - 'rodokmen', - 'rohovka', - 'rokle', - 'rokoko', - 'romaneto', - 'ropovod', - 'ropucha', - 'rorejs', - 'rosol', - 'rostlina', - 'rotmistr', - 'rotoped', - 'rotunda', - 'roubenka', - 'roucho', - 'roup', - 'roura', - 'rovina', - 'rovnice', - 'rozbor', - 'rozchod', - 'rozdat', - 'rozeznat', - 'rozhodce', - 'rozinka', - 'rozjezd', - 'rozkaz', - 'rozloha', - 'rozmar', - 'rozpad', - 'rozruch', - 'rozsah', - 'roztok', - 'rozum', - 'rozvod', - 'rubrika', - 'ruchadlo', - 'rukavice', - 'rukopis', - 'ryba', - 'rybolov', - 'rychlost', - 'rydlo', - 'rypadlo', - 'rytina', - 'ryzost', - 'sadista', - 'sahat', - 'sako', - 'samec', - 'samizdat', - 'samota', - 'sanitka', - 'sardinka', - 'sasanka', - 'satelit', - 'sazba', - 'sazenice', - 'sbor', - 'schovat', - 'sebranka', - 'secese', - 'sedadlo', - 'sediment', - 'sedlo', - 'sehnat', - 'sejmout', - 'sekera', - 'sekta', - 'sekunda', - 'sekvoje', - 'semeno', - 'seno', - 'servis', - 'sesadit', - 'seshora', - 'seskok', - 'seslat', - 'sestra', - 'sesuv', - 'sesypat', - 'setba', - 'setina', - 'setkat', - 'setnout', - 'setrvat', - 'sever', - 'seznam', - 'shoda', - 'shrnout', - 'sifon', - 'silnice', - 'sirka', - 'sirotek', - 'sirup', - 'situace', - 'skafandr', - 'skalisko', - 'skanzen', - 'skaut', - 'skeptik', - 'skica', - 'skladba', - 'sklenice', - 'sklo', - 'skluz', - 'skoba', - 'skokan', - 'skoro', - 'skripta', - 'skrz', - 'skupina', - 'skvost', - 'skvrna', - 'slabika', - 'sladidlo', - 'slanina', - 'slast', - 'slavnost', - 'sledovat', - 'slepec', - 'sleva', - 'slezina', - 'slib', - 'slina', - 'sliznice', - 'slon', - 'sloupek', - 'slovo', - 'sluch', - 'sluha', - 'slunce', - 'slupka', - 'slza', - 'smaragd', - 'smetana', - 'smilstvo', - 'smlouva', - 'smog', - 'smrad', - 'smrk', - 'smrtka', - 'smutek', - 'smysl', - 'snad', - 'snaha', - 'snob', - 'sobota', - 'socha', - 'sodovka', - 'sokol', - 'sopka', - 'sotva', - 'souboj', - 'soucit', - 'soudce', - 'souhlas', - 'soulad', - 'soumrak', - 'souprava', - 'soused', - 'soutok', - 'souviset', - 'spalovna', - 'spasitel', - 'spis', - 'splav', - 'spodek', - 'spojenec', - 'spolu', - 'sponzor', - 'spornost', - 'spousta', - 'sprcha', - 'spustit', - 'sranda', - 'sraz', - 'srdce', - 'srna', - 'srnec', - 'srovnat', - 'srpen', - 'srst', - 'srub', - 'stanice', - 'starosta', - 'statika', - 'stavba', - 'stehno', - 'stezka', - 'stodola', - 'stolek', - 'stopa', - 'storno', - 'stoupat', - 'strach', - 'stres', - 'strhnout', - 'strom', - 'struna', - 'studna', - 'stupnice', - 'stvol', - 'styk', - 'subjekt', - 'subtropy', - 'suchar', - 'sudost', - 'sukno', - 'sundat', - 'sunout', - 'surikata', - 'surovina', - 'svah', - 'svalstvo', - 'svetr', - 'svatba', - 'svazek', - 'svisle', - 'svitek', - 'svoboda', - 'svodidlo', - 'svorka', - 'svrab', - 'sykavka', - 'sykot', - 'synek', - 'synovec', - 'sypat', - 'sypkost', - 'syrovost', - 'sysel', - 'sytost', - 'tabletka', - 'tabule', - 'tahoun', - 'tajemno', - 'tajfun', - 'tajga', - 'tajit', - 'tajnost', - 'taktika', - 'tamhle', - 'tampon', - 'tancovat', - 'tanec', - 'tanker', - 'tapeta', - 'tavenina', - 'tazatel', - 'technika', - 'tehdy', - 'tekutina', - 'telefon', - 'temnota', - 'tendence', - 'tenista', - 'tenor', - 'teplota', - 'tepna', - 'teprve', - 'terapie', - 'termoska', - 'textil', - 'ticho', - 'tiskopis', - 'titulek', - 'tkadlec', - 'tkanina', - 'tlapka', - 'tleskat', - 'tlukot', - 'tlupa', - 'tmel', - 'toaleta', - 'topinka', - 'topol', - 'torzo', - 'touha', - 'toulec', - 'tradice', - 'traktor', - 'tramp', - 'trasa', - 'traverza', - 'trefit', - 'trest', - 'trezor', - 'trhavina', - 'trhlina', - 'trochu', - 'trojice', - 'troska', - 'trouba', - 'trpce', - 'trpitel', - 'trpkost', - 'trubec', - 'truchlit', - 'truhlice', - 'trus', - 'trvat', - 'tudy', - 'tuhnout', - 'tuhost', - 'tundra', - 'turista', - 'turnaj', - 'tuzemsko', - 'tvaroh', - 'tvorba', - 'tvrdost', - 'tvrz', - 'tygr', - 'tykev', - 'ubohost', - 'uboze', - 'ubrat', - 'ubrousek', - 'ubrus', - 'ubytovna', - 'ucho', - 'uctivost', - 'udivit', - 'uhradit', - 'ujednat', - 'ujistit', - 'ujmout', - 'ukazatel', - 'uklidnit', - 'uklonit', - 'ukotvit', - 'ukrojit', - 'ulice', - 'ulita', - 'ulovit', - 'umyvadlo', - 'unavit', - 'uniforma', - 'uniknout', - 'upadnout', - 'uplatnit', - 'uplynout', - 'upoutat', - 'upravit', - 'uran', - 'urazit', - 'usednout', - 'usilovat', - 'usmrtit', - 'usnadnit', - 'usnout', - 'usoudit', - 'ustlat', - 'ustrnout', - 'utahovat', - 'utkat', - 'utlumit', - 'utonout', - 'utopenec', - 'utrousit', - 'uvalit', - 'uvolnit', - 'uvozovka', - 'uzdravit', - 'uzel', - 'uzenina', - 'uzlina', - 'uznat', - 'vagon', - 'valcha', - 'valoun', - 'vana', - 'vandal', - 'vanilka', - 'varan', - 'varhany', - 'varovat', - 'vcelku', - 'vchod', - 'vdova', - 'vedro', - 'vegetace', - 'vejce', - 'velbloud', - 'veletrh', - 'velitel', - 'velmoc', - 'velryba', - 'venkov', - 'veranda', - 'verze', - 'veselka', - 'veskrze', - 'vesnice', - 'vespodu', - 'vesta', - 'veterina', - 'veverka', - 'vibrace', - 'vichr', - 'videohra', - 'vidina', - 'vidle', - 'vila', - 'vinice', - 'viset', - 'vitalita', - 'vize', - 'vizitka', - 'vjezd', - 'vklad', - 'vkus', - 'vlajka', - 'vlak', - 'vlasec', - 'vlevo', - 'vlhkost', - 'vliv', - 'vlnovka', - 'vloupat', - 'vnucovat', - 'vnuk', - 'voda', - 'vodivost', - 'vodoznak', - 'vodstvo', - 'vojensky', - 'vojna', - 'vojsko', - 'volant', - 'volba', - 'volit', - 'volno', - 'voskovka', - 'vozidlo', - 'vozovna', - 'vpravo', - 'vrabec', - 'vracet', - 'vrah', - 'vrata', - 'vrba', - 'vrcholek', - 'vrhat', - 'vrstva', - 'vrtule', - 'vsadit', - 'vstoupit', - 'vstup', - 'vtip', - 'vybavit', - 'vybrat', - 'vychovat', - 'vydat', - 'vydra', - 'vyfotit', - 'vyhledat', - 'vyhnout', - 'vyhodit', - 'vyhradit', - 'vyhubit', - 'vyjasnit', - 'vyjet', - 'vyjmout', - 'vyklopit', - 'vykonat', - 'vylekat', - 'vymazat', - 'vymezit', - 'vymizet', - 'vymyslet', - 'vynechat', - 'vynikat', - 'vynutit', - 'vypadat', - 'vyplatit', - 'vypravit', - 'vypustit', - 'vyrazit', - 'vyrovnat', - 'vyrvat', - 'vyslovit', - 'vysoko', - 'vystavit', - 'vysunout', - 'vysypat', - 'vytasit', - 'vytesat', - 'vytratit', - 'vyvinout', - 'vyvolat', - 'vyvrhel', - 'vyzdobit', - 'vyznat', - 'vzadu', - 'vzbudit', - 'vzchopit', - 'vzdor', - 'vzduch', - 'vzdychat', - 'vzestup', - 'vzhledem', - 'vzkaz', - 'vzlykat', - 'vznik', - 'vzorek', - 'vzpoura', - 'vztah', - 'vztek', - 'xylofon', - 'zabrat', - 'zabydlet', - 'zachovat', - 'zadarmo', - 'zadusit', - 'zafoukat', - 'zahltit', - 'zahodit', - 'zahrada', - 'zahynout', - 'zajatec', - 'zajet', - 'zajistit', - 'zaklepat', - 'zakoupit', - 'zalepit', - 'zamezit', - 'zamotat', - 'zamyslet', - 'zanechat', - 'zanikat', - 'zaplatit', - 'zapojit', - 'zapsat', - 'zarazit', - 'zastavit', - 'zasunout', - 'zatajit', - 'zatemnit', - 'zatknout', - 'zaujmout', - 'zavalit', - 'zavelet', - 'zavinit', - 'zavolat', - 'zavrtat', - 'zazvonit', - 'zbavit', - 'zbrusu', - 'zbudovat', - 'zbytek', - 'zdaleka', - 'zdarma', - 'zdatnost', - 'zdivo', - 'zdobit', - 'zdroj', - 'zdvih', - 'zdymadlo', - 'zelenina', - 'zeman', - 'zemina', - 'zeptat', - 'zezadu', - 'zezdola', - 'zhatit', - 'zhltnout', - 'zhluboka', - 'zhotovit', - 'zhruba', - 'zima', - 'zimnice', - 'zjemnit', - 'zklamat', - 'zkoumat', - 'zkratka', - 'zkumavka', - 'zlato', - 'zlehka', - 'zloba', - 'zlom', - 'zlost', - 'zlozvyk', - 'zmapovat', - 'zmar', - 'zmatek', - 'zmije', - 'zmizet', - 'zmocnit', - 'zmodrat', - 'zmrzlina', - 'zmutovat', - 'znak', - 'znalost', - 'znamenat', - 'znovu', - 'zobrazit', - 'zotavit', - 'zoubek', - 'zoufale', - 'zplodit', - 'zpomalit', - 'zprava', - 'zprostit', - 'zprudka', - 'zprvu', - 'zrada', - 'zranit', - 'zrcadlo', - 'zrnitost', - 'zrno', - 'zrovna', - 'zrychlit', - 'zrzavost', - 'zticha', - 'ztratit', - 'zubovina', - 'zubr', - 'zvednout', - 'zvenku', - 'zvesela', - 'zvon', - 'zvrat', - 'zvukovod', - 'zvyk', -]; diff --git a/src/wordlists/english.d.ts b/src/wordlists/english.d.ts deleted file mode 100644 index d451d2b..0000000 --- a/src/wordlists/english.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: string[]; -export default _default; diff --git a/src/wordlists/english.js b/src/wordlists/english.js deleted file mode 100644 index 5a069f3..0000000 --- a/src/wordlists/english.js +++ /dev/null @@ -1,2050 +0,0 @@ -export default [ - 'abandon', - 'ability', - 'able', - 'about', - 'above', - 'absent', - 'absorb', - 'abstract', - 'absurd', - 'abuse', - 'access', - 'accident', - 'account', - 'accuse', - 'achieve', - 'acid', - 'acoustic', - 'acquire', - 'across', - 'act', - 'action', - 'actor', - 'actress', - 'actual', - 'adapt', - 'add', - 'addict', - 'address', - 'adjust', - 'admit', - 'adult', - 'advance', - 'advice', - 'aerobic', - 'affair', - 'afford', - 'afraid', - 'again', - 'age', - 'agent', - 'agree', - 'ahead', - 'aim', - 'air', - 'airport', - 'aisle', - 'alarm', - 'album', - 'alcohol', - 'alert', - 'alien', - 'all', - 'alley', - 'allow', - 'almost', - 'alone', - 'alpha', - 'already', - 'also', - 'alter', - 'always', - 'amateur', - 'amazing', - 'among', - 'amount', - 'amused', - 'analyst', - 'anchor', - 'ancient', - 'anger', - 'angle', - 'angry', - 'animal', - 'ankle', - 'announce', - 'annual', - 'another', - 'answer', - 'antenna', - 'antique', - 'anxiety', - 'any', - 'apart', - 'apology', - 'appear', - 'apple', - 'approve', - 'april', - 'arch', - 'arctic', - 'area', - 'arena', - 'argue', - 'arm', - 'armed', - 'armor', - 'army', - 'around', - 'arrange', - 'arrest', - 'arrive', - 'arrow', - 'art', - 'artefact', - 'artist', - 'artwork', - 'ask', - 'aspect', - 'assault', - 'asset', - 'assist', - 'assume', - 'asthma', - 'athlete', - 'atom', - 'attack', - 'attend', - 'attitude', - 'attract', - 'auction', - 'audit', - 'august', - 'aunt', - 'author', - 'auto', - 'autumn', - 'average', - 'avocado', - 'avoid', - 'awake', - 'aware', - 'away', - 'awesome', - 'awful', - 'awkward', - 'axis', - 'baby', - 'bachelor', - 'bacon', - 'badge', - 'bag', - 'balance', - 'balcony', - 'ball', - 'bamboo', - 'banana', - 'banner', - 'bar', - 'barely', - 'bargain', - 'barrel', - 'base', - 'basic', - 'basket', - 'battle', - 'beach', - 'bean', - 'beauty', - 'because', - 'become', - 'beef', - 'before', - 'begin', - 'behave', - 'behind', - 'believe', - 'below', - 'belt', - 'bench', - 'benefit', - 'best', - 'betray', - 'better', - 'between', - 'beyond', - 'bicycle', - 'bid', - 'bike', - 'bind', - 'biology', - 'bird', - 'birth', - 'bitter', - 'black', - 'blade', - 'blame', - 'blanket', - 'blast', - 'bleak', - 'bless', - 'blind', - 'blood', - 'blossom', - 'blouse', - 'blue', - 'blur', - 'blush', - 'board', - 'boat', - 'body', - 'boil', - 'bomb', - 'bone', - 'bonus', - 'book', - 'boost', - 'border', - 'boring', - 'borrow', - 'boss', - 'bottom', - 'bounce', - 'box', - 'boy', - 'bracket', - 'brain', - 'brand', - 'brass', - 'brave', - 'bread', - 'breeze', - 'brick', - 'bridge', - 'brief', - 'bright', - 'bring', - 'brisk', - 'broccoli', - 'broken', - 'bronze', - 'broom', - 'brother', - 'brown', - 'brush', - 'bubble', - 'buddy', - 'budget', - 'buffalo', - 'build', - 'bulb', - 'bulk', - 'bullet', - 'bundle', - 'bunker', - 'burden', - 'burger', - 'burst', - 'bus', - 'business', - 'busy', - 'butter', - 'buyer', - 'buzz', - 'cabbage', - 'cabin', - 'cable', - 'cactus', - 'cage', - 'cake', - 'call', - 'calm', - 'camera', - 'camp', - 'can', - 'canal', - 'cancel', - 'candy', - 'cannon', - 'canoe', - 'canvas', - 'canyon', - 'capable', - 'capital', - 'captain', - 'car', - 'carbon', - 'card', - 'cargo', - 'carpet', - 'carry', - 'cart', - 'case', - 'cash', - 'casino', - 'castle', - 'casual', - 'cat', - 'catalog', - 'catch', - 'category', - 'cattle', - 'caught', - 'cause', - 'caution', - 'cave', - 'ceiling', - 'celery', - 'cement', - 'census', - 'century', - 'cereal', - 'certain', - 'chair', - 'chalk', - 'champion', - 'change', - 'chaos', - 'chapter', - 'charge', - 'chase', - 'chat', - 'cheap', - 'check', - 'cheese', - 'chef', - 'cherry', - 'chest', - 'chicken', - 'chief', - 'child', - 'chimney', - 'choice', - 'choose', - 'chronic', - 'chuckle', - 'chunk', - 'churn', - 'cigar', - 'cinnamon', - 'circle', - 'citizen', - 'city', - 'civil', - 'claim', - 'clap', - 'clarify', - 'claw', - 'clay', - 'clean', - 'clerk', - 'clever', - 'click', - 'client', - 'cliff', - 'climb', - 'clinic', - 'clip', - 'clock', - 'clog', - 'close', - 'cloth', - 'cloud', - 'clown', - 'club', - 'clump', - 'cluster', - 'clutch', - 'coach', - 'coast', - 'coconut', - 'code', - 'coffee', - 'coil', - 'coin', - 'collect', - 'color', - 'column', - 'combine', - 'come', - 'comfort', - 'comic', - 'common', - 'company', - 'concert', - 'conduct', - 'confirm', - 'congress', - 'connect', - 'consider', - 'control', - 'convince', - 'cook', - 'cool', - 'copper', - 'copy', - 'coral', - 'core', - 'corn', - 'correct', - 'cost', - 'cotton', - 'couch', - 'country', - 'couple', - 'course', - 'cousin', - 'cover', - 'coyote', - 'crack', - 'cradle', - 'craft', - 'cram', - 'crane', - 'crash', - 'crater', - 'crawl', - 'crazy', - 'cream', - 'credit', - 'creek', - 'crew', - 'cricket', - 'crime', - 'crisp', - 'critic', - 'crop', - 'cross', - 'crouch', - 'crowd', - 'crucial', - 'cruel', - 'cruise', - 'crumble', - 'crunch', - 'crush', - 'cry', - 'crystal', - 'cube', - 'culture', - 'cup', - 'cupboard', - 'curious', - 'current', - 'curtain', - 'curve', - 'cushion', - 'custom', - 'cute', - 'cycle', - 'dad', - 'damage', - 'damp', - 'dance', - 'danger', - 'daring', - 'dash', - 'daughter', - 'dawn', - 'day', - 'deal', - 'debate', - 'debris', - 'decade', - 'december', - 'decide', - 'decline', - 'decorate', - 'decrease', - 'deer', - 'defense', - 'define', - 'defy', - 'degree', - 'delay', - 'deliver', - 'demand', - 'demise', - 'denial', - 'dentist', - 'deny', - 'depart', - 'depend', - 'deposit', - 'depth', - 'deputy', - 'derive', - 'describe', - 'desert', - 'design', - 'desk', - 'despair', - 'destroy', - 'detail', - 'detect', - 'develop', - 'device', - 'devote', - 'diagram', - 'dial', - 'diamond', - 'diary', - 'dice', - 'diesel', - 'diet', - 'differ', - 'digital', - 'dignity', - 'dilemma', - 'dinner', - 'dinosaur', - 'direct', - 'dirt', - 'disagree', - 'discover', - 'disease', - 'dish', - 'dismiss', - 'disorder', - 'display', - 'distance', - 'divert', - 'divide', - 'divorce', - 'dizzy', - 'doctor', - 'document', - 'dog', - 'doll', - 'dolphin', - 'domain', - 'donate', - 'donkey', - 'donor', - 'door', - 'dose', - 'double', - 'dove', - 'draft', - 'dragon', - 'drama', - 'drastic', - 'draw', - 'dream', - 'dress', - 'drift', - 'drill', - 'drink', - 'drip', - 'drive', - 'drop', - 'drum', - 'dry', - 'duck', - 'dumb', - 'dune', - 'during', - 'dust', - 'dutch', - 'duty', - 'dwarf', - 'dynamic', - 'eager', - 'eagle', - 'early', - 'earn', - 'earth', - 'easily', - 'east', - 'easy', - 'echo', - 'ecology', - 'economy', - 'edge', - 'edit', - 'educate', - 'effort', - 'egg', - 'eight', - 'either', - 'elbow', - 'elder', - 'electric', - 'elegant', - 'element', - 'elephant', - 'elevator', - 'elite', - 'else', - 'embark', - 'embody', - 'embrace', - 'emerge', - 'emotion', - 'employ', - 'empower', - 'empty', - 'enable', - 'enact', - 'end', - 'endless', - 'endorse', - 'enemy', - 'energy', - 'enforce', - 'engage', - 'engine', - 'enhance', - 'enjoy', - 'enlist', - 'enough', - 'enrich', - 'enroll', - 'ensure', - 'enter', - 'entire', - 'entry', - 'envelope', - 'episode', - 'equal', - 'equip', - 'era', - 'erase', - 'erode', - 'erosion', - 'error', - 'erupt', - 'escape', - 'essay', - 'essence', - 'estate', - 'eternal', - 'ethics', - 'evidence', - 'evil', - 'evoke', - 'evolve', - 'exact', - 'example', - 'excess', - 'exchange', - 'excite', - 'exclude', - 'excuse', - 'execute', - 'exercise', - 'exhaust', - 'exhibit', - 'exile', - 'exist', - 'exit', - 'exotic', - 'expand', - 'expect', - 'expire', - 'explain', - 'expose', - 'express', - 'extend', - 'extra', - 'eye', - 'eyebrow', - 'fabric', - 'face', - 'faculty', - 'fade', - 'faint', - 'faith', - 'fall', - 'false', - 'fame', - 'family', - 'famous', - 'fan', - 'fancy', - 'fantasy', - 'farm', - 'fashion', - 'fat', - 'fatal', - 'father', - 'fatigue', - 'fault', - 'favorite', - 'feature', - 'february', - 'federal', - 'fee', - 'feed', - 'feel', - 'female', - 'fence', - 'festival', - 'fetch', - 'fever', - 'few', - 'fiber', - 'fiction', - 'field', - 'figure', - 'file', - 'film', - 'filter', - 'final', - 'find', - 'fine', - 'finger', - 'finish', - 'fire', - 'firm', - 'first', - 'fiscal', - 'fish', - 'fit', - 'fitness', - 'fix', - 'flag', - 'flame', - 'flash', - 'flat', - 'flavor', - 'flee', - 'flight', - 'flip', - 'float', - 'flock', - 'floor', - 'flower', - 'fluid', - 'flush', - 'fly', - 'foam', - 'focus', - 'fog', - 'foil', - 'fold', - 'follow', - 'food', - 'foot', - 'force', - 'forest', - 'forget', - 'fork', - 'fortune', - 'forum', - 'forward', - 'fossil', - 'foster', - 'found', - 'fox', - 'fragile', - 'frame', - 'frequent', - 'fresh', - 'friend', - 'fringe', - 'frog', - 'front', - 'frost', - 'frown', - 'frozen', - 'fruit', - 'fuel', - 'fun', - 'funny', - 'furnace', - 'fury', - 'future', - 'gadget', - 'gain', - 'galaxy', - 'gallery', - 'game', - 'gap', - 'garage', - 'garbage', - 'garden', - 'garlic', - 'garment', - 'gas', - 'gasp', - 'gate', - 'gather', - 'gauge', - 'gaze', - 'general', - 'genius', - 'genre', - 'gentle', - 'genuine', - 'gesture', - 'ghost', - 'giant', - 'gift', - 'giggle', - 'ginger', - 'giraffe', - 'girl', - 'give', - 'glad', - 'glance', - 'glare', - 'glass', - 'glide', - 'glimpse', - 'globe', - 'gloom', - 'glory', - 'glove', - 'glow', - 'glue', - 'goat', - 'goddess', - 'gold', - 'good', - 'goose', - 'gorilla', - 'gospel', - 'gossip', - 'govern', - 'gown', - 'grab', - 'grace', - 'grain', - 'grant', - 'grape', - 'grass', - 'gravity', - 'great', - 'green', - 'grid', - 'grief', - 'grit', - 'grocery', - 'group', - 'grow', - 'grunt', - 'guard', - 'guess', - 'guide', - 'guilt', - 'guitar', - 'gun', - 'gym', - 'habit', - 'hair', - 'half', - 'hammer', - 'hamster', - 'hand', - 'happy', - 'harbor', - 'hard', - 'harsh', - 'harvest', - 'hat', - 'have', - 'hawk', - 'hazard', - 'head', - 'health', - 'heart', - 'heavy', - 'hedgehog', - 'height', - 'hello', - 'helmet', - 'help', - 'hen', - 'hero', - 'hidden', - 'high', - 'hill', - 'hint', - 'hip', - 'hire', - 'history', - 'hobby', - 'hockey', - 'hold', - 'hole', - 'holiday', - 'hollow', - 'home', - 'honey', - 'hood', - 'hope', - 'horn', - 'horror', - 'horse', - 'hospital', - 'host', - 'hotel', - 'hour', - 'hover', - 'hub', - 'huge', - 'human', - 'humble', - 'humor', - 'hundred', - 'hungry', - 'hunt', - 'hurdle', - 'hurry', - 'hurt', - 'husband', - 'hybrid', - 'ice', - 'icon', - 'idea', - 'identify', - 'idle', - 'ignore', - 'ill', - 'illegal', - 'illness', - 'image', - 'imitate', - 'immense', - 'immune', - 'impact', - 'impose', - 'improve', - 'impulse', - 'inch', - 'include', - 'income', - 'increase', - 'index', - 'indicate', - 'indoor', - 'industry', - 'infant', - 'inflict', - 'inform', - 'inhale', - 'inherit', - 'initial', - 'inject', - 'injury', - 'inmate', - 'inner', - 'innocent', - 'input', - 'inquiry', - 'insane', - 'insect', - 'inside', - 'inspire', - 'install', - 'intact', - 'interest', - 'into', - 'invest', - 'invite', - 'involve', - 'iron', - 'island', - 'isolate', - 'issue', - 'item', - 'ivory', - 'jacket', - 'jaguar', - 'jar', - 'jazz', - 'jealous', - 'jeans', - 'jelly', - 'jewel', - 'job', - 'join', - 'joke', - 'journey', - 'joy', - 'judge', - 'juice', - 'jump', - 'jungle', - 'junior', - 'junk', - 'just', - 'kangaroo', - 'keen', - 'keep', - 'ketchup', - 'key', - 'kick', - 'kid', - 'kidney', - 'kind', - 'kingdom', - 'kiss', - 'kit', - 'kitchen', - 'kite', - 'kitten', - 'kiwi', - 'knee', - 'knife', - 'knock', - 'know', - 'lab', - 'label', - 'labor', - 'ladder', - 'lady', - 'lake', - 'lamp', - 'language', - 'laptop', - 'large', - 'later', - 'latin', - 'laugh', - 'laundry', - 'lava', - 'law', - 'lawn', - 'lawsuit', - 'layer', - 'lazy', - 'leader', - 'leaf', - 'learn', - 'leave', - 'lecture', - 'left', - 'leg', - 'legal', - 'legend', - 'leisure', - 'lemon', - 'lend', - 'length', - 'lens', - 'leopard', - 'lesson', - 'letter', - 'level', - 'liar', - 'liberty', - 'library', - 'license', - 'life', - 'lift', - 'light', - 'like', - 'limb', - 'limit', - 'link', - 'lion', - 'liquid', - 'list', - 'little', - 'live', - 'lizard', - 'load', - 'loan', - 'lobster', - 'local', - 'lock', - 'logic', - 'lonely', - 'long', - 'loop', - 'lottery', - 'loud', - 'lounge', - 'love', - 'loyal', - 'lucky', - 'luggage', - 'lumber', - 'lunar', - 'lunch', - 'luxury', - 'lyrics', - 'machine', - 'mad', - 'magic', - 'magnet', - 'maid', - 'mail', - 'main', - 'major', - 'make', - 'mammal', - 'man', - 'manage', - 'mandate', - 'mango', - 'mansion', - 'manual', - 'maple', - 'marble', - 'march', - 'margin', - 'marine', - 'market', - 'marriage', - 'mask', - 'mass', - 'master', - 'match', - 'material', - 'math', - 'matrix', - 'matter', - 'maximum', - 'maze', - 'meadow', - 'mean', - 'measure', - 'meat', - 'mechanic', - 'medal', - 'media', - 'melody', - 'melt', - 'member', - 'memory', - 'mention', - 'menu', - 'mercy', - 'merge', - 'merit', - 'merry', - 'mesh', - 'message', - 'metal', - 'method', - 'middle', - 'midnight', - 'milk', - 'million', - 'mimic', - 'mind', - 'minimum', - 'minor', - 'minute', - 'miracle', - 'mirror', - 'misery', - 'miss', - 'mistake', - 'mix', - 'mixed', - 'mixture', - 'mobile', - 'model', - 'modify', - 'mom', - 'moment', - 'monitor', - 'monkey', - 'monster', - 'month', - 'moon', - 'moral', - 'more', - 'morning', - 'mosquito', - 'mother', - 'motion', - 'motor', - 'mountain', - 'mouse', - 'move', - 'movie', - 'much', - 'muffin', - 'mule', - 'multiply', - 'muscle', - 'museum', - 'mushroom', - 'music', - 'must', - 'mutual', - 'myself', - 'mystery', - 'myth', - 'naive', - 'name', - 'napkin', - 'narrow', - 'nasty', - 'nation', - 'nature', - 'near', - 'neck', - 'need', - 'negative', - 'neglect', - 'neither', - 'nephew', - 'nerve', - 'nest', - 'net', - 'network', - 'neutral', - 'never', - 'news', - 'next', - 'nice', - 'night', - 'noble', - 'noise', - 'nominee', - 'noodle', - 'normal', - 'north', - 'nose', - 'notable', - 'note', - 'nothing', - 'notice', - 'novel', - 'now', - 'nuclear', - 'number', - 'nurse', - 'nut', - 'oak', - 'obey', - 'object', - 'oblige', - 'obscure', - 'observe', - 'obtain', - 'obvious', - 'occur', - 'ocean', - 'october', - 'odor', - 'off', - 'offer', - 'office', - 'often', - 'oil', - 'okay', - 'old', - 'olive', - 'olympic', - 'omit', - 'once', - 'one', - 'onion', - 'online', - 'only', - 'open', - 'opera', - 'opinion', - 'oppose', - 'option', - 'orange', - 'orbit', - 'orchard', - 'order', - 'ordinary', - 'organ', - 'orient', - 'original', - 'orphan', - 'ostrich', - 'other', - 'outdoor', - 'outer', - 'output', - 'outside', - 'oval', - 'oven', - 'over', - 'own', - 'owner', - 'oxygen', - 'oyster', - 'ozone', - 'pact', - 'paddle', - 'page', - 'pair', - 'palace', - 'palm', - 'panda', - 'panel', - 'panic', - 'panther', - 'paper', - 'parade', - 'parent', - 'park', - 'parrot', - 'party', - 'pass', - 'patch', - 'path', - 'patient', - 'patrol', - 'pattern', - 'pause', - 'pave', - 'payment', - 'peace', - 'peanut', - 'pear', - 'peasant', - 'pelican', - 'pen', - 'penalty', - 'pencil', - 'people', - 'pepper', - 'perfect', - 'permit', - 'person', - 'pet', - 'phone', - 'photo', - 'phrase', - 'physical', - 'piano', - 'picnic', - 'picture', - 'piece', - 'pig', - 'pigeon', - 'pill', - 'pilot', - 'pink', - 'pioneer', - 'pipe', - 'pistol', - 'pitch', - 'pizza', - 'place', - 'planet', - 'plastic', - 'plate', - 'play', - 'please', - 'pledge', - 'pluck', - 'plug', - 'plunge', - 'poem', - 'poet', - 'point', - 'polar', - 'pole', - 'police', - 'pond', - 'pony', - 'pool', - 'popular', - 'portion', - 'position', - 'possible', - 'post', - 'potato', - 'pottery', - 'poverty', - 'powder', - 'power', - 'practice', - 'praise', - 'predict', - 'prefer', - 'prepare', - 'present', - 'pretty', - 'prevent', - 'price', - 'pride', - 'primary', - 'print', - 'priority', - 'prison', - 'private', - 'prize', - 'problem', - 'process', - 'produce', - 'profit', - 'program', - 'project', - 'promote', - 'proof', - 'property', - 'prosper', - 'protect', - 'proud', - 'provide', - 'public', - 'pudding', - 'pull', - 'pulp', - 'pulse', - 'pumpkin', - 'punch', - 'pupil', - 'puppy', - 'purchase', - 'purity', - 'purpose', - 'purse', - 'push', - 'put', - 'puzzle', - 'pyramid', - 'quality', - 'quantum', - 'quarter', - 'question', - 'quick', - 'quit', - 'quiz', - 'quote', - 'rabbit', - 'raccoon', - 'race', - 'rack', - 'radar', - 'radio', - 'rail', - 'rain', - 'raise', - 'rally', - 'ramp', - 'ranch', - 'random', - 'range', - 'rapid', - 'rare', - 'rate', - 'rather', - 'raven', - 'raw', - 'razor', - 'ready', - 'real', - 'reason', - 'rebel', - 'rebuild', - 'recall', - 'receive', - 'recipe', - 'record', - 'recycle', - 'reduce', - 'reflect', - 'reform', - 'refuse', - 'region', - 'regret', - 'regular', - 'reject', - 'relax', - 'release', - 'relief', - 'rely', - 'remain', - 'remember', - 'remind', - 'remove', - 'render', - 'renew', - 'rent', - 'reopen', - 'repair', - 'repeat', - 'replace', - 'report', - 'require', - 'rescue', - 'resemble', - 'resist', - 'resource', - 'response', - 'result', - 'retire', - 'retreat', - 'return', - 'reunion', - 'reveal', - 'review', - 'reward', - 'rhythm', - 'rib', - 'ribbon', - 'rice', - 'rich', - 'ride', - 'ridge', - 'rifle', - 'right', - 'rigid', - 'ring', - 'riot', - 'ripple', - 'risk', - 'ritual', - 'rival', - 'river', - 'road', - 'roast', - 'robot', - 'robust', - 'rocket', - 'romance', - 'roof', - 'rookie', - 'room', - 'rose', - 'rotate', - 'rough', - 'round', - 'route', - 'royal', - 'rubber', - 'rude', - 'rug', - 'rule', - 'run', - 'runway', - 'rural', - 'sad', - 'saddle', - 'sadness', - 'safe', - 'sail', - 'salad', - 'salmon', - 'salon', - 'salt', - 'salute', - 'same', - 'sample', - 'sand', - 'satisfy', - 'satoshi', - 'sauce', - 'sausage', - 'save', - 'say', - 'scale', - 'scan', - 'scare', - 'scatter', - 'scene', - 'scheme', - 'school', - 'science', - 'scissors', - 'scorpion', - 'scout', - 'scrap', - 'screen', - 'script', - 'scrub', - 'sea', - 'search', - 'season', - 'seat', - 'second', - 'secret', - 'section', - 'security', - 'seed', - 'seek', - 'segment', - 'select', - 'sell', - 'seminar', - 'senior', - 'sense', - 'sentence', - 'series', - 'service', - 'session', - 'settle', - 'setup', - 'seven', - 'shadow', - 'shaft', - 'shallow', - 'share', - 'shed', - 'shell', - 'sheriff', - 'shield', - 'shift', - 'shine', - 'ship', - 'shiver', - 'shock', - 'shoe', - 'shoot', - 'shop', - 'short', - 'shoulder', - 'shove', - 'shrimp', - 'shrug', - 'shuffle', - 'shy', - 'sibling', - 'sick', - 'side', - 'siege', - 'sight', - 'sign', - 'silent', - 'silk', - 'silly', - 'silver', - 'similar', - 'simple', - 'since', - 'sing', - 'siren', - 'sister', - 'situate', - 'six', - 'size', - 'skate', - 'sketch', - 'ski', - 'skill', - 'skin', - 'skirt', - 'skull', - 'slab', - 'slam', - 'sleep', - 'slender', - 'slice', - 'slide', - 'slight', - 'slim', - 'slogan', - 'slot', - 'slow', - 'slush', - 'small', - 'smart', - 'smile', - 'smoke', - 'smooth', - 'snack', - 'snake', - 'snap', - 'sniff', - 'snow', - 'soap', - 'soccer', - 'social', - 'sock', - 'soda', - 'soft', - 'solar', - 'soldier', - 'solid', - 'solution', - 'solve', - 'someone', - 'song', - 'soon', - 'sorry', - 'sort', - 'soul', - 'sound', - 'soup', - 'source', - 'south', - 'space', - 'spare', - 'spatial', - 'spawn', - 'speak', - 'special', - 'speed', - 'spell', - 'spend', - 'sphere', - 'spice', - 'spider', - 'spike', - 'spin', - 'spirit', - 'split', - 'spoil', - 'sponsor', - 'spoon', - 'sport', - 'spot', - 'spray', - 'spread', - 'spring', - 'spy', - 'square', - 'squeeze', - 'squirrel', - 'stable', - 'stadium', - 'staff', - 'stage', - 'stairs', - 'stamp', - 'stand', - 'start', - 'state', - 'stay', - 'steak', - 'steel', - 'stem', - 'step', - 'stereo', - 'stick', - 'still', - 'sting', - 'stock', - 'stomach', - 'stone', - 'stool', - 'story', - 'stove', - 'strategy', - 'street', - 'strike', - 'strong', - 'struggle', - 'student', - 'stuff', - 'stumble', - 'style', - 'subject', - 'submit', - 'subway', - 'success', - 'such', - 'sudden', - 'suffer', - 'sugar', - 'suggest', - 'suit', - 'summer', - 'sun', - 'sunny', - 'sunset', - 'super', - 'supply', - 'supreme', - 'sure', - 'surface', - 'surge', - 'surprise', - 'surround', - 'survey', - 'suspect', - 'sustain', - 'swallow', - 'swamp', - 'swap', - 'swarm', - 'swear', - 'sweet', - 'swift', - 'swim', - 'swing', - 'switch', - 'sword', - 'symbol', - 'symptom', - 'syrup', - 'system', - 'table', - 'tackle', - 'tag', - 'tail', - 'talent', - 'talk', - 'tank', - 'tape', - 'target', - 'task', - 'taste', - 'tattoo', - 'taxi', - 'teach', - 'team', - 'tell', - 'ten', - 'tenant', - 'tennis', - 'tent', - 'term', - 'test', - 'text', - 'thank', - 'that', - 'theme', - 'then', - 'theory', - 'there', - 'they', - 'thing', - 'this', - 'thought', - 'three', - 'thrive', - 'throw', - 'thumb', - 'thunder', - 'ticket', - 'tide', - 'tiger', - 'tilt', - 'timber', - 'time', - 'tiny', - 'tip', - 'tired', - 'tissue', - 'title', - 'toast', - 'tobacco', - 'today', - 'toddler', - 'toe', - 'together', - 'toilet', - 'token', - 'tomato', - 'tomorrow', - 'tone', - 'tongue', - 'tonight', - 'tool', - 'tooth', - 'top', - 'topic', - 'topple', - 'torch', - 'tornado', - 'tortoise', - 'toss', - 'total', - 'tourist', - 'toward', - 'tower', - 'town', - 'toy', - 'track', - 'trade', - 'traffic', - 'tragic', - 'train', - 'transfer', - 'trap', - 'trash', - 'travel', - 'tray', - 'treat', - 'tree', - 'trend', - 'trial', - 'tribe', - 'trick', - 'trigger', - 'trim', - 'trip', - 'trophy', - 'trouble', - 'truck', - 'true', - 'truly', - 'trumpet', - 'trust', - 'truth', - 'try', - 'tube', - 'tuition', - 'tumble', - 'tuna', - 'tunnel', - 'turkey', - 'turn', - 'turtle', - 'twelve', - 'twenty', - 'twice', - 'twin', - 'twist', - 'two', - 'type', - 'typical', - 'ugly', - 'umbrella', - 'unable', - 'unaware', - 'uncle', - 'uncover', - 'under', - 'undo', - 'unfair', - 'unfold', - 'unhappy', - 'uniform', - 'unique', - 'unit', - 'universe', - 'unknown', - 'unlock', - 'until', - 'unusual', - 'unveil', - 'update', - 'upgrade', - 'uphold', - 'upon', - 'upper', - 'upset', - 'urban', - 'urge', - 'usage', - 'use', - 'used', - 'useful', - 'useless', - 'usual', - 'utility', - 'vacant', - 'vacuum', - 'vague', - 'valid', - 'valley', - 'valve', - 'van', - 'vanish', - 'vapor', - 'various', - 'vast', - 'vault', - 'vehicle', - 'velvet', - 'vendor', - 'venture', - 'venue', - 'verb', - 'verify', - 'version', - 'very', - 'vessel', - 'veteran', - 'viable', - 'vibrant', - 'vicious', - 'victory', - 'video', - 'view', - 'village', - 'vintage', - 'violin', - 'virtual', - 'virus', - 'visa', - 'visit', - 'visual', - 'vital', - 'vivid', - 'vocal', - 'voice', - 'void', - 'volcano', - 'volume', - 'vote', - 'voyage', - 'wage', - 'wagon', - 'wait', - 'walk', - 'wall', - 'walnut', - 'want', - 'warfare', - 'warm', - 'warrior', - 'wash', - 'wasp', - 'waste', - 'water', - 'wave', - 'way', - 'wealth', - 'weapon', - 'wear', - 'weasel', - 'weather', - 'web', - 'wedding', - 'weekend', - 'weird', - 'welcome', - 'west', - 'wet', - 'whale', - 'what', - 'wheat', - 'wheel', - 'when', - 'where', - 'whip', - 'whisper', - 'wide', - 'width', - 'wife', - 'wild', - 'will', - 'win', - 'window', - 'wine', - 'wing', - 'wink', - 'winner', - 'winter', - 'wire', - 'wisdom', - 'wise', - 'wish', - 'witness', - 'wolf', - 'woman', - 'wonder', - 'wood', - 'wool', - 'word', - 'work', - 'world', - 'worry', - 'worth', - 'wrap', - 'wreck', - 'wrestle', - 'wrist', - 'write', - 'wrong', - 'yard', - 'year', - 'yellow', - 'you', - 'young', - 'youth', - 'zebra', - 'zero', - 'zone', - 'zoo', -]; diff --git a/src/wordlists/french.d.ts b/src/wordlists/french.d.ts deleted file mode 100644 index d451d2b..0000000 --- a/src/wordlists/french.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: string[]; -export default _default; diff --git a/src/wordlists/french.js b/src/wordlists/french.js deleted file mode 100644 index 7ba4c1b..0000000 --- a/src/wordlists/french.js +++ /dev/null @@ -1,2050 +0,0 @@ -export default [ - 'abaisser', - 'abandon', - 'abdiquer', - 'abeille', - 'abolir', - 'aborder', - 'aboutir', - 'aboyer', - 'abrasif', - 'abreuver', - 'abriter', - 'abroger', - 'abrupt', - 'absence', - 'absolu', - 'absurde', - 'abusif', - 'abyssal', - 'académie', - 'acajou', - 'acarien', - 'accabler', - 'accepter', - 'acclamer', - 'accolade', - 'accroche', - 'accuser', - 'acerbe', - 'achat', - 'acheter', - 'aciduler', - 'acier', - 'acompte', - 'acquérir', - 'acronyme', - 'acteur', - 'actif', - 'actuel', - 'adepte', - 'adéquat', - 'adhésif', - 'adjectif', - 'adjuger', - 'admettre', - 'admirer', - 'adopter', - 'adorer', - 'adoucir', - 'adresse', - 'adroit', - 'adulte', - 'adverbe', - 'aérer', - 'aéronef', - 'affaire', - 'affecter', - 'affiche', - 'affreux', - 'affubler', - 'agacer', - 'agencer', - 'agile', - 'agiter', - 'agrafer', - 'agréable', - 'agrume', - 'aider', - 'aiguille', - 'ailier', - 'aimable', - 'aisance', - 'ajouter', - 'ajuster', - 'alarmer', - 'alchimie', - 'alerte', - 'algèbre', - 'algue', - 'aliéner', - 'aliment', - 'alléger', - 'alliage', - 'allouer', - 'allumer', - 'alourdir', - 'alpaga', - 'altesse', - 'alvéole', - 'amateur', - 'ambigu', - 'ambre', - 'aménager', - 'amertume', - 'amidon', - 'amiral', - 'amorcer', - 'amour', - 'amovible', - 'amphibie', - 'ampleur', - 'amusant', - 'analyse', - 'anaphore', - 'anarchie', - 'anatomie', - 'ancien', - 'anéantir', - 'angle', - 'angoisse', - 'anguleux', - 'animal', - 'annexer', - 'annonce', - 'annuel', - 'anodin', - 'anomalie', - 'anonyme', - 'anormal', - 'antenne', - 'antidote', - 'anxieux', - 'apaiser', - 'apéritif', - 'aplanir', - 'apologie', - 'appareil', - 'appeler', - 'apporter', - 'appuyer', - 'aquarium', - 'aqueduc', - 'arbitre', - 'arbuste', - 'ardeur', - 'ardoise', - 'argent', - 'arlequin', - 'armature', - 'armement', - 'armoire', - 'armure', - 'arpenter', - 'arracher', - 'arriver', - 'arroser', - 'arsenic', - 'artériel', - 'article', - 'aspect', - 'asphalte', - 'aspirer', - 'assaut', - 'asservir', - 'assiette', - 'associer', - 'assurer', - 'asticot', - 'astre', - 'astuce', - 'atelier', - 'atome', - 'atrium', - 'atroce', - 'attaque', - 'attentif', - 'attirer', - 'attraper', - 'aubaine', - 'auberge', - 'audace', - 'audible', - 'augurer', - 'aurore', - 'automne', - 'autruche', - 'avaler', - 'avancer', - 'avarice', - 'avenir', - 'averse', - 'aveugle', - 'aviateur', - 'avide', - 'avion', - 'aviser', - 'avoine', - 'avouer', - 'avril', - 'axial', - 'axiome', - 'badge', - 'bafouer', - 'bagage', - 'baguette', - 'baignade', - 'balancer', - 'balcon', - 'baleine', - 'balisage', - 'bambin', - 'bancaire', - 'bandage', - 'banlieue', - 'bannière', - 'banquier', - 'barbier', - 'baril', - 'baron', - 'barque', - 'barrage', - 'bassin', - 'bastion', - 'bataille', - 'bateau', - 'batterie', - 'baudrier', - 'bavarder', - 'belette', - 'bélier', - 'belote', - 'bénéfice', - 'berceau', - 'berger', - 'berline', - 'bermuda', - 'besace', - 'besogne', - 'bétail', - 'beurre', - 'biberon', - 'bicycle', - 'bidule', - 'bijou', - 'bilan', - 'bilingue', - 'billard', - 'binaire', - 'biologie', - 'biopsie', - 'biotype', - 'biscuit', - 'bison', - 'bistouri', - 'bitume', - 'bizarre', - 'blafard', - 'blague', - 'blanchir', - 'blessant', - 'blinder', - 'blond', - 'bloquer', - 'blouson', - 'bobard', - 'bobine', - 'boire', - 'boiser', - 'bolide', - 'bonbon', - 'bondir', - 'bonheur', - 'bonifier', - 'bonus', - 'bordure', - 'borne', - 'botte', - 'boucle', - 'boueux', - 'bougie', - 'boulon', - 'bouquin', - 'bourse', - 'boussole', - 'boutique', - 'boxeur', - 'branche', - 'brasier', - 'brave', - 'brebis', - 'brèche', - 'breuvage', - 'bricoler', - 'brigade', - 'brillant', - 'brioche', - 'brique', - 'brochure', - 'broder', - 'bronzer', - 'brousse', - 'broyeur', - 'brume', - 'brusque', - 'brutal', - 'bruyant', - 'buffle', - 'buisson', - 'bulletin', - 'bureau', - 'burin', - 'bustier', - 'butiner', - 'butoir', - 'buvable', - 'buvette', - 'cabanon', - 'cabine', - 'cachette', - 'cadeau', - 'cadre', - 'caféine', - 'caillou', - 'caisson', - 'calculer', - 'calepin', - 'calibre', - 'calmer', - 'calomnie', - 'calvaire', - 'camarade', - 'caméra', - 'camion', - 'campagne', - 'canal', - 'caneton', - 'canon', - 'cantine', - 'canular', - 'capable', - 'caporal', - 'caprice', - 'capsule', - 'capter', - 'capuche', - 'carabine', - 'carbone', - 'caresser', - 'caribou', - 'carnage', - 'carotte', - 'carreau', - 'carton', - 'cascade', - 'casier', - 'casque', - 'cassure', - 'causer', - 'caution', - 'cavalier', - 'caverne', - 'caviar', - 'cédille', - 'ceinture', - 'céleste', - 'cellule', - 'cendrier', - 'censurer', - 'central', - 'cercle', - 'cérébral', - 'cerise', - 'cerner', - 'cerveau', - 'cesser', - 'chagrin', - 'chaise', - 'chaleur', - 'chambre', - 'chance', - 'chapitre', - 'charbon', - 'chasseur', - 'chaton', - 'chausson', - 'chavirer', - 'chemise', - 'chenille', - 'chéquier', - 'chercher', - 'cheval', - 'chien', - 'chiffre', - 'chignon', - 'chimère', - 'chiot', - 'chlorure', - 'chocolat', - 'choisir', - 'chose', - 'chouette', - 'chrome', - 'chute', - 'cigare', - 'cigogne', - 'cimenter', - 'cinéma', - 'cintrer', - 'circuler', - 'cirer', - 'cirque', - 'citerne', - 'citoyen', - 'citron', - 'civil', - 'clairon', - 'clameur', - 'claquer', - 'classe', - 'clavier', - 'client', - 'cligner', - 'climat', - 'clivage', - 'cloche', - 'clonage', - 'cloporte', - 'cobalt', - 'cobra', - 'cocasse', - 'cocotier', - 'coder', - 'codifier', - 'coffre', - 'cogner', - 'cohésion', - 'coiffer', - 'coincer', - 'colère', - 'colibri', - 'colline', - 'colmater', - 'colonel', - 'combat', - 'comédie', - 'commande', - 'compact', - 'concert', - 'conduire', - 'confier', - 'congeler', - 'connoter', - 'consonne', - 'contact', - 'convexe', - 'copain', - 'copie', - 'corail', - 'corbeau', - 'cordage', - 'corniche', - 'corpus', - 'correct', - 'cortège', - 'cosmique', - 'costume', - 'coton', - 'coude', - 'coupure', - 'courage', - 'couteau', - 'couvrir', - 'coyote', - 'crabe', - 'crainte', - 'cravate', - 'crayon', - 'créature', - 'créditer', - 'crémeux', - 'creuser', - 'crevette', - 'cribler', - 'crier', - 'cristal', - 'critère', - 'croire', - 'croquer', - 'crotale', - 'crucial', - 'cruel', - 'crypter', - 'cubique', - 'cueillir', - 'cuillère', - 'cuisine', - 'cuivre', - 'culminer', - 'cultiver', - 'cumuler', - 'cupide', - 'curatif', - 'curseur', - 'cyanure', - 'cycle', - 'cylindre', - 'cynique', - 'daigner', - 'damier', - 'danger', - 'danseur', - 'dauphin', - 'débattre', - 'débiter', - 'déborder', - 'débrider', - 'débutant', - 'décaler', - 'décembre', - 'déchirer', - 'décider', - 'déclarer', - 'décorer', - 'décrire', - 'décupler', - 'dédale', - 'déductif', - 'déesse', - 'défensif', - 'défiler', - 'défrayer', - 'dégager', - 'dégivrer', - 'déglutir', - 'dégrafer', - 'déjeuner', - 'délice', - 'déloger', - 'demander', - 'demeurer', - 'démolir', - 'dénicher', - 'dénouer', - 'dentelle', - 'dénuder', - 'départ', - 'dépenser', - 'déphaser', - 'déplacer', - 'déposer', - 'déranger', - 'dérober', - 'désastre', - 'descente', - 'désert', - 'désigner', - 'désobéir', - 'dessiner', - 'destrier', - 'détacher', - 'détester', - 'détourer', - 'détresse', - 'devancer', - 'devenir', - 'deviner', - 'devoir', - 'diable', - 'dialogue', - 'diamant', - 'dicter', - 'différer', - 'digérer', - 'digital', - 'digne', - 'diluer', - 'dimanche', - 'diminuer', - 'dioxyde', - 'directif', - 'diriger', - 'discuter', - 'disposer', - 'dissiper', - 'distance', - 'divertir', - 'diviser', - 'docile', - 'docteur', - 'dogme', - 'doigt', - 'domaine', - 'domicile', - 'dompter', - 'donateur', - 'donjon', - 'donner', - 'dopamine', - 'dortoir', - 'dorure', - 'dosage', - 'doseur', - 'dossier', - 'dotation', - 'douanier', - 'double', - 'douceur', - 'douter', - 'doyen', - 'dragon', - 'draper', - 'dresser', - 'dribbler', - 'droiture', - 'duperie', - 'duplexe', - 'durable', - 'durcir', - 'dynastie', - 'éblouir', - 'écarter', - 'écharpe', - 'échelle', - 'éclairer', - 'éclipse', - 'éclore', - 'écluse', - 'école', - 'économie', - 'écorce', - 'écouter', - 'écraser', - 'écrémer', - 'écrivain', - 'écrou', - 'écume', - 'écureuil', - 'édifier', - 'éduquer', - 'effacer', - 'effectif', - 'effigie', - 'effort', - 'effrayer', - 'effusion', - 'égaliser', - 'égarer', - 'éjecter', - 'élaborer', - 'élargir', - 'électron', - 'élégant', - 'éléphant', - 'élève', - 'éligible', - 'élitisme', - 'éloge', - 'élucider', - 'éluder', - 'emballer', - 'embellir', - 'embryon', - 'émeraude', - 'émission', - 'emmener', - 'émotion', - 'émouvoir', - 'empereur', - 'employer', - 'emporter', - 'emprise', - 'émulsion', - 'encadrer', - 'enchère', - 'enclave', - 'encoche', - 'endiguer', - 'endosser', - 'endroit', - 'enduire', - 'énergie', - 'enfance', - 'enfermer', - 'enfouir', - 'engager', - 'engin', - 'englober', - 'énigme', - 'enjamber', - 'enjeu', - 'enlever', - 'ennemi', - 'ennuyeux', - 'enrichir', - 'enrobage', - 'enseigne', - 'entasser', - 'entendre', - 'entier', - 'entourer', - 'entraver', - 'énumérer', - 'envahir', - 'enviable', - 'envoyer', - 'enzyme', - 'éolien', - 'épaissir', - 'épargne', - 'épatant', - 'épaule', - 'épicerie', - 'épidémie', - 'épier', - 'épilogue', - 'épine', - 'épisode', - 'épitaphe', - 'époque', - 'épreuve', - 'éprouver', - 'épuisant', - 'équerre', - 'équipe', - 'ériger', - 'érosion', - 'erreur', - 'éruption', - 'escalier', - 'espadon', - 'espèce', - 'espiègle', - 'espoir', - 'esprit', - 'esquiver', - 'essayer', - 'essence', - 'essieu', - 'essorer', - 'estime', - 'estomac', - 'estrade', - 'étagère', - 'étaler', - 'étanche', - 'étatique', - 'éteindre', - 'étendoir', - 'éternel', - 'éthanol', - 'éthique', - 'ethnie', - 'étirer', - 'étoffer', - 'étoile', - 'étonnant', - 'étourdir', - 'étrange', - 'étroit', - 'étude', - 'euphorie', - 'évaluer', - 'évasion', - 'éventail', - 'évidence', - 'éviter', - 'évolutif', - 'évoquer', - 'exact', - 'exagérer', - 'exaucer', - 'exceller', - 'excitant', - 'exclusif', - 'excuse', - 'exécuter', - 'exemple', - 'exercer', - 'exhaler', - 'exhorter', - 'exigence', - 'exiler', - 'exister', - 'exotique', - 'expédier', - 'explorer', - 'exposer', - 'exprimer', - 'exquis', - 'extensif', - 'extraire', - 'exulter', - 'fable', - 'fabuleux', - 'facette', - 'facile', - 'facture', - 'faiblir', - 'falaise', - 'fameux', - 'famille', - 'farceur', - 'farfelu', - 'farine', - 'farouche', - 'fasciner', - 'fatal', - 'fatigue', - 'faucon', - 'fautif', - 'faveur', - 'favori', - 'fébrile', - 'féconder', - 'fédérer', - 'félin', - 'femme', - 'fémur', - 'fendoir', - 'féodal', - 'fermer', - 'féroce', - 'ferveur', - 'festival', - 'feuille', - 'feutre', - 'février', - 'fiasco', - 'ficeler', - 'fictif', - 'fidèle', - 'figure', - 'filature', - 'filetage', - 'filière', - 'filleul', - 'filmer', - 'filou', - 'filtrer', - 'financer', - 'finir', - 'fiole', - 'firme', - 'fissure', - 'fixer', - 'flairer', - 'flamme', - 'flasque', - 'flatteur', - 'fléau', - 'flèche', - 'fleur', - 'flexion', - 'flocon', - 'flore', - 'fluctuer', - 'fluide', - 'fluvial', - 'folie', - 'fonderie', - 'fongible', - 'fontaine', - 'forcer', - 'forgeron', - 'formuler', - 'fortune', - 'fossile', - 'foudre', - 'fougère', - 'fouiller', - 'foulure', - 'fourmi', - 'fragile', - 'fraise', - 'franchir', - 'frapper', - 'frayeur', - 'frégate', - 'freiner', - 'frelon', - 'frémir', - 'frénésie', - 'frère', - 'friable', - 'friction', - 'frisson', - 'frivole', - 'froid', - 'fromage', - 'frontal', - 'frotter', - 'fruit', - 'fugitif', - 'fuite', - 'fureur', - 'furieux', - 'furtif', - 'fusion', - 'futur', - 'gagner', - 'galaxie', - 'galerie', - 'gambader', - 'garantir', - 'gardien', - 'garnir', - 'garrigue', - 'gazelle', - 'gazon', - 'géant', - 'gélatine', - 'gélule', - 'gendarme', - 'général', - 'génie', - 'genou', - 'gentil', - 'géologie', - 'géomètre', - 'géranium', - 'germe', - 'gestuel', - 'geyser', - 'gibier', - 'gicler', - 'girafe', - 'givre', - 'glace', - 'glaive', - 'glisser', - 'globe', - 'gloire', - 'glorieux', - 'golfeur', - 'gomme', - 'gonfler', - 'gorge', - 'gorille', - 'goudron', - 'gouffre', - 'goulot', - 'goupille', - 'gourmand', - 'goutte', - 'graduel', - 'graffiti', - 'graine', - 'grand', - 'grappin', - 'gratuit', - 'gravir', - 'grenat', - 'griffure', - 'griller', - 'grimper', - 'grogner', - 'gronder', - 'grotte', - 'groupe', - 'gruger', - 'grutier', - 'gruyère', - 'guépard', - 'guerrier', - 'guide', - 'guimauve', - 'guitare', - 'gustatif', - 'gymnaste', - 'gyrostat', - 'habitude', - 'hachoir', - 'halte', - 'hameau', - 'hangar', - 'hanneton', - 'haricot', - 'harmonie', - 'harpon', - 'hasard', - 'hélium', - 'hématome', - 'herbe', - 'hérisson', - 'hermine', - 'héron', - 'hésiter', - 'heureux', - 'hiberner', - 'hibou', - 'hilarant', - 'histoire', - 'hiver', - 'homard', - 'hommage', - 'homogène', - 'honneur', - 'honorer', - 'honteux', - 'horde', - 'horizon', - 'horloge', - 'hormone', - 'horrible', - 'houleux', - 'housse', - 'hublot', - 'huileux', - 'humain', - 'humble', - 'humide', - 'humour', - 'hurler', - 'hydromel', - 'hygiène', - 'hymne', - 'hypnose', - 'idylle', - 'ignorer', - 'iguane', - 'illicite', - 'illusion', - 'image', - 'imbiber', - 'imiter', - 'immense', - 'immobile', - 'immuable', - 'impact', - 'impérial', - 'implorer', - 'imposer', - 'imprimer', - 'imputer', - 'incarner', - 'incendie', - 'incident', - 'incliner', - 'incolore', - 'indexer', - 'indice', - 'inductif', - 'inédit', - 'ineptie', - 'inexact', - 'infini', - 'infliger', - 'informer', - 'infusion', - 'ingérer', - 'inhaler', - 'inhiber', - 'injecter', - 'injure', - 'innocent', - 'inoculer', - 'inonder', - 'inscrire', - 'insecte', - 'insigne', - 'insolite', - 'inspirer', - 'instinct', - 'insulter', - 'intact', - 'intense', - 'intime', - 'intrigue', - 'intuitif', - 'inutile', - 'invasion', - 'inventer', - 'inviter', - 'invoquer', - 'ironique', - 'irradier', - 'irréel', - 'irriter', - 'isoler', - 'ivoire', - 'ivresse', - 'jaguar', - 'jaillir', - 'jambe', - 'janvier', - 'jardin', - 'jauger', - 'jaune', - 'javelot', - 'jetable', - 'jeton', - 'jeudi', - 'jeunesse', - 'joindre', - 'joncher', - 'jongler', - 'joueur', - 'jouissif', - 'journal', - 'jovial', - 'joyau', - 'joyeux', - 'jubiler', - 'jugement', - 'junior', - 'jupon', - 'juriste', - 'justice', - 'juteux', - 'juvénile', - 'kayak', - 'kimono', - 'kiosque', - 'label', - 'labial', - 'labourer', - 'lacérer', - 'lactose', - 'lagune', - 'laine', - 'laisser', - 'laitier', - 'lambeau', - 'lamelle', - 'lampe', - 'lanceur', - 'langage', - 'lanterne', - 'lapin', - 'largeur', - 'larme', - 'laurier', - 'lavabo', - 'lavoir', - 'lecture', - 'légal', - 'léger', - 'légume', - 'lessive', - 'lettre', - 'levier', - 'lexique', - 'lézard', - 'liasse', - 'libérer', - 'libre', - 'licence', - 'licorne', - 'liège', - 'lièvre', - 'ligature', - 'ligoter', - 'ligue', - 'limer', - 'limite', - 'limonade', - 'limpide', - 'linéaire', - 'lingot', - 'lionceau', - 'liquide', - 'lisière', - 'lister', - 'lithium', - 'litige', - 'littoral', - 'livreur', - 'logique', - 'lointain', - 'loisir', - 'lombric', - 'loterie', - 'louer', - 'lourd', - 'loutre', - 'louve', - 'loyal', - 'lubie', - 'lucide', - 'lucratif', - 'lueur', - 'lugubre', - 'luisant', - 'lumière', - 'lunaire', - 'lundi', - 'luron', - 'lutter', - 'luxueux', - 'machine', - 'magasin', - 'magenta', - 'magique', - 'maigre', - 'maillon', - 'maintien', - 'mairie', - 'maison', - 'majorer', - 'malaxer', - 'maléfice', - 'malheur', - 'malice', - 'mallette', - 'mammouth', - 'mandater', - 'maniable', - 'manquant', - 'manteau', - 'manuel', - 'marathon', - 'marbre', - 'marchand', - 'mardi', - 'maritime', - 'marqueur', - 'marron', - 'marteler', - 'mascotte', - 'massif', - 'matériel', - 'matière', - 'matraque', - 'maudire', - 'maussade', - 'mauve', - 'maximal', - 'méchant', - 'méconnu', - 'médaille', - 'médecin', - 'méditer', - 'méduse', - 'meilleur', - 'mélange', - 'mélodie', - 'membre', - 'mémoire', - 'menacer', - 'mener', - 'menhir', - 'mensonge', - 'mentor', - 'mercredi', - 'mérite', - 'merle', - 'messager', - 'mesure', - 'métal', - 'météore', - 'méthode', - 'métier', - 'meuble', - 'miauler', - 'microbe', - 'miette', - 'mignon', - 'migrer', - 'milieu', - 'million', - 'mimique', - 'mince', - 'minéral', - 'minimal', - 'minorer', - 'minute', - 'miracle', - 'miroiter', - 'missile', - 'mixte', - 'mobile', - 'moderne', - 'moelleux', - 'mondial', - 'moniteur', - 'monnaie', - 'monotone', - 'monstre', - 'montagne', - 'monument', - 'moqueur', - 'morceau', - 'morsure', - 'mortier', - 'moteur', - 'motif', - 'mouche', - 'moufle', - 'moulin', - 'mousson', - 'mouton', - 'mouvant', - 'multiple', - 'munition', - 'muraille', - 'murène', - 'murmure', - 'muscle', - 'muséum', - 'musicien', - 'mutation', - 'muter', - 'mutuel', - 'myriade', - 'myrtille', - 'mystère', - 'mythique', - 'nageur', - 'nappe', - 'narquois', - 'narrer', - 'natation', - 'nation', - 'nature', - 'naufrage', - 'nautique', - 'navire', - 'nébuleux', - 'nectar', - 'néfaste', - 'négation', - 'négliger', - 'négocier', - 'neige', - 'nerveux', - 'nettoyer', - 'neurone', - 'neutron', - 'neveu', - 'niche', - 'nickel', - 'nitrate', - 'niveau', - 'noble', - 'nocif', - 'nocturne', - 'noirceur', - 'noisette', - 'nomade', - 'nombreux', - 'nommer', - 'normatif', - 'notable', - 'notifier', - 'notoire', - 'nourrir', - 'nouveau', - 'novateur', - 'novembre', - 'novice', - 'nuage', - 'nuancer', - 'nuire', - 'nuisible', - 'numéro', - 'nuptial', - 'nuque', - 'nutritif', - 'obéir', - 'objectif', - 'obliger', - 'obscur', - 'observer', - 'obstacle', - 'obtenir', - 'obturer', - 'occasion', - 'occuper', - 'océan', - 'octobre', - 'octroyer', - 'octupler', - 'oculaire', - 'odeur', - 'odorant', - 'offenser', - 'officier', - 'offrir', - 'ogive', - 'oiseau', - 'oisillon', - 'olfactif', - 'olivier', - 'ombrage', - 'omettre', - 'onctueux', - 'onduler', - 'onéreux', - 'onirique', - 'opale', - 'opaque', - 'opérer', - 'opinion', - 'opportun', - 'opprimer', - 'opter', - 'optique', - 'orageux', - 'orange', - 'orbite', - 'ordonner', - 'oreille', - 'organe', - 'orgueil', - 'orifice', - 'ornement', - 'orque', - 'ortie', - 'osciller', - 'osmose', - 'ossature', - 'otarie', - 'ouragan', - 'ourson', - 'outil', - 'outrager', - 'ouvrage', - 'ovation', - 'oxyde', - 'oxygène', - 'ozone', - 'paisible', - 'palace', - 'palmarès', - 'palourde', - 'palper', - 'panache', - 'panda', - 'pangolin', - 'paniquer', - 'panneau', - 'panorama', - 'pantalon', - 'papaye', - 'papier', - 'papoter', - 'papyrus', - 'paradoxe', - 'parcelle', - 'paresse', - 'parfumer', - 'parler', - 'parole', - 'parrain', - 'parsemer', - 'partager', - 'parure', - 'parvenir', - 'passion', - 'pastèque', - 'paternel', - 'patience', - 'patron', - 'pavillon', - 'pavoiser', - 'payer', - 'paysage', - 'peigne', - 'peintre', - 'pelage', - 'pélican', - 'pelle', - 'pelouse', - 'peluche', - 'pendule', - 'pénétrer', - 'pénible', - 'pensif', - 'pénurie', - 'pépite', - 'péplum', - 'perdrix', - 'perforer', - 'période', - 'permuter', - 'perplexe', - 'persil', - 'perte', - 'peser', - 'pétale', - 'petit', - 'pétrir', - 'peuple', - 'pharaon', - 'phobie', - 'phoque', - 'photon', - 'phrase', - 'physique', - 'piano', - 'pictural', - 'pièce', - 'pierre', - 'pieuvre', - 'pilote', - 'pinceau', - 'pipette', - 'piquer', - 'pirogue', - 'piscine', - 'piston', - 'pivoter', - 'pixel', - 'pizza', - 'placard', - 'plafond', - 'plaisir', - 'planer', - 'plaque', - 'plastron', - 'plateau', - 'pleurer', - 'plexus', - 'pliage', - 'plomb', - 'plonger', - 'pluie', - 'plumage', - 'pochette', - 'poésie', - 'poète', - 'pointe', - 'poirier', - 'poisson', - 'poivre', - 'polaire', - 'policier', - 'pollen', - 'polygone', - 'pommade', - 'pompier', - 'ponctuel', - 'pondérer', - 'poney', - 'portique', - 'position', - 'posséder', - 'posture', - 'potager', - 'poteau', - 'potion', - 'pouce', - 'poulain', - 'poumon', - 'pourpre', - 'poussin', - 'pouvoir', - 'prairie', - 'pratique', - 'précieux', - 'prédire', - 'préfixe', - 'prélude', - 'prénom', - 'présence', - 'prétexte', - 'prévoir', - 'primitif', - 'prince', - 'prison', - 'priver', - 'problème', - 'procéder', - 'prodige', - 'profond', - 'progrès', - 'proie', - 'projeter', - 'prologue', - 'promener', - 'propre', - 'prospère', - 'protéger', - 'prouesse', - 'proverbe', - 'prudence', - 'pruneau', - 'psychose', - 'public', - 'puceron', - 'puiser', - 'pulpe', - 'pulsar', - 'punaise', - 'punitif', - 'pupitre', - 'purifier', - 'puzzle', - 'pyramide', - 'quasar', - 'querelle', - 'question', - 'quiétude', - 'quitter', - 'quotient', - 'racine', - 'raconter', - 'radieux', - 'ragondin', - 'raideur', - 'raisin', - 'ralentir', - 'rallonge', - 'ramasser', - 'rapide', - 'rasage', - 'ratisser', - 'ravager', - 'ravin', - 'rayonner', - 'réactif', - 'réagir', - 'réaliser', - 'réanimer', - 'recevoir', - 'réciter', - 'réclamer', - 'récolter', - 'recruter', - 'reculer', - 'recycler', - 'rédiger', - 'redouter', - 'refaire', - 'réflexe', - 'réformer', - 'refrain', - 'refuge', - 'régalien', - 'région', - 'réglage', - 'régulier', - 'réitérer', - 'rejeter', - 'rejouer', - 'relatif', - 'relever', - 'relief', - 'remarque', - 'remède', - 'remise', - 'remonter', - 'remplir', - 'remuer', - 'renard', - 'renfort', - 'renifler', - 'renoncer', - 'rentrer', - 'renvoi', - 'replier', - 'reporter', - 'reprise', - 'reptile', - 'requin', - 'réserve', - 'résineux', - 'résoudre', - 'respect', - 'rester', - 'résultat', - 'rétablir', - 'retenir', - 'réticule', - 'retomber', - 'retracer', - 'réunion', - 'réussir', - 'revanche', - 'revivre', - 'révolte', - 'révulsif', - 'richesse', - 'rideau', - 'rieur', - 'rigide', - 'rigoler', - 'rincer', - 'riposter', - 'risible', - 'risque', - 'rituel', - 'rival', - 'rivière', - 'rocheux', - 'romance', - 'rompre', - 'ronce', - 'rondin', - 'roseau', - 'rosier', - 'rotatif', - 'rotor', - 'rotule', - 'rouge', - 'rouille', - 'rouleau', - 'routine', - 'royaume', - 'ruban', - 'rubis', - 'ruche', - 'ruelle', - 'rugueux', - 'ruiner', - 'ruisseau', - 'ruser', - 'rustique', - 'rythme', - 'sabler', - 'saboter', - 'sabre', - 'sacoche', - 'safari', - 'sagesse', - 'saisir', - 'salade', - 'salive', - 'salon', - 'saluer', - 'samedi', - 'sanction', - 'sanglier', - 'sarcasme', - 'sardine', - 'saturer', - 'saugrenu', - 'saumon', - 'sauter', - 'sauvage', - 'savant', - 'savonner', - 'scalpel', - 'scandale', - 'scélérat', - 'scénario', - 'sceptre', - 'schéma', - 'science', - 'scinder', - 'score', - 'scrutin', - 'sculpter', - 'séance', - 'sécable', - 'sécher', - 'secouer', - 'sécréter', - 'sédatif', - 'séduire', - 'seigneur', - 'séjour', - 'sélectif', - 'semaine', - 'sembler', - 'semence', - 'séminal', - 'sénateur', - 'sensible', - 'sentence', - 'séparer', - 'séquence', - 'serein', - 'sergent', - 'sérieux', - 'serrure', - 'sérum', - 'service', - 'sésame', - 'sévir', - 'sevrage', - 'sextuple', - 'sidéral', - 'siècle', - 'siéger', - 'siffler', - 'sigle', - 'signal', - 'silence', - 'silicium', - 'simple', - 'sincère', - 'sinistre', - 'siphon', - 'sirop', - 'sismique', - 'situer', - 'skier', - 'social', - 'socle', - 'sodium', - 'soigneux', - 'soldat', - 'soleil', - 'solitude', - 'soluble', - 'sombre', - 'sommeil', - 'somnoler', - 'sonde', - 'songeur', - 'sonnette', - 'sonore', - 'sorcier', - 'sortir', - 'sosie', - 'sottise', - 'soucieux', - 'soudure', - 'souffle', - 'soulever', - 'soupape', - 'source', - 'soutirer', - 'souvenir', - 'spacieux', - 'spatial', - 'spécial', - 'sphère', - 'spiral', - 'stable', - 'station', - 'sternum', - 'stimulus', - 'stipuler', - 'strict', - 'studieux', - 'stupeur', - 'styliste', - 'sublime', - 'substrat', - 'subtil', - 'subvenir', - 'succès', - 'sucre', - 'suffixe', - 'suggérer', - 'suiveur', - 'sulfate', - 'superbe', - 'supplier', - 'surface', - 'suricate', - 'surmener', - 'surprise', - 'sursaut', - 'survie', - 'suspect', - 'syllabe', - 'symbole', - 'symétrie', - 'synapse', - 'syntaxe', - 'système', - 'tabac', - 'tablier', - 'tactile', - 'tailler', - 'talent', - 'talisman', - 'talonner', - 'tambour', - 'tamiser', - 'tangible', - 'tapis', - 'taquiner', - 'tarder', - 'tarif', - 'tartine', - 'tasse', - 'tatami', - 'tatouage', - 'taupe', - 'taureau', - 'taxer', - 'témoin', - 'temporel', - 'tenaille', - 'tendre', - 'teneur', - 'tenir', - 'tension', - 'terminer', - 'terne', - 'terrible', - 'tétine', - 'texte', - 'thème', - 'théorie', - 'thérapie', - 'thorax', - 'tibia', - 'tiède', - 'timide', - 'tirelire', - 'tiroir', - 'tissu', - 'titane', - 'titre', - 'tituber', - 'toboggan', - 'tolérant', - 'tomate', - 'tonique', - 'tonneau', - 'toponyme', - 'torche', - 'tordre', - 'tornade', - 'torpille', - 'torrent', - 'torse', - 'tortue', - 'totem', - 'toucher', - 'tournage', - 'tousser', - 'toxine', - 'traction', - 'trafic', - 'tragique', - 'trahir', - 'train', - 'trancher', - 'travail', - 'trèfle', - 'tremper', - 'trésor', - 'treuil', - 'triage', - 'tribunal', - 'tricoter', - 'trilogie', - 'triomphe', - 'tripler', - 'triturer', - 'trivial', - 'trombone', - 'tronc', - 'tropical', - 'troupeau', - 'tuile', - 'tulipe', - 'tumulte', - 'tunnel', - 'turbine', - 'tuteur', - 'tutoyer', - 'tuyau', - 'tympan', - 'typhon', - 'typique', - 'tyran', - 'ubuesque', - 'ultime', - 'ultrason', - 'unanime', - 'unifier', - 'union', - 'unique', - 'unitaire', - 'univers', - 'uranium', - 'urbain', - 'urticant', - 'usage', - 'usine', - 'usuel', - 'usure', - 'utile', - 'utopie', - 'vacarme', - 'vaccin', - 'vagabond', - 'vague', - 'vaillant', - 'vaincre', - 'vaisseau', - 'valable', - 'valise', - 'vallon', - 'valve', - 'vampire', - 'vanille', - 'vapeur', - 'varier', - 'vaseux', - 'vassal', - 'vaste', - 'vecteur', - 'vedette', - 'végétal', - 'véhicule', - 'veinard', - 'véloce', - 'vendredi', - 'vénérer', - 'venger', - 'venimeux', - 'ventouse', - 'verdure', - 'vérin', - 'vernir', - 'verrou', - 'verser', - 'vertu', - 'veston', - 'vétéran', - 'vétuste', - 'vexant', - 'vexer', - 'viaduc', - 'viande', - 'victoire', - 'vidange', - 'vidéo', - 'vignette', - 'vigueur', - 'vilain', - 'village', - 'vinaigre', - 'violon', - 'vipère', - 'virement', - 'virtuose', - 'virus', - 'visage', - 'viseur', - 'vision', - 'visqueux', - 'visuel', - 'vital', - 'vitesse', - 'viticole', - 'vitrine', - 'vivace', - 'vivipare', - 'vocation', - 'voguer', - 'voile', - 'voisin', - 'voiture', - 'volaille', - 'volcan', - 'voltiger', - 'volume', - 'vorace', - 'vortex', - 'voter', - 'vouloir', - 'voyage', - 'voyelle', - 'wagon', - 'xénon', - 'yacht', - 'zèbre', - 'zénith', - 'zeste', - 'zoologie', -]; diff --git a/src/wordlists/italian.d.ts b/src/wordlists/italian.d.ts deleted file mode 100644 index d451d2b..0000000 --- a/src/wordlists/italian.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: string[]; -export default _default; diff --git a/src/wordlists/italian.js b/src/wordlists/italian.js deleted file mode 100644 index 594fffb..0000000 --- a/src/wordlists/italian.js +++ /dev/null @@ -1,2050 +0,0 @@ -export default [ - 'abaco', - 'abbaglio', - 'abbinato', - 'abete', - 'abisso', - 'abolire', - 'abrasivo', - 'abrogato', - 'accadere', - 'accenno', - 'accusato', - 'acetone', - 'achille', - 'acido', - 'acqua', - 'acre', - 'acrilico', - 'acrobata', - 'acuto', - 'adagio', - 'addebito', - 'addome', - 'adeguato', - 'aderire', - 'adipe', - 'adottare', - 'adulare', - 'affabile', - 'affetto', - 'affisso', - 'affranto', - 'aforisma', - 'afoso', - 'africano', - 'agave', - 'agente', - 'agevole', - 'aggancio', - 'agire', - 'agitare', - 'agonismo', - 'agricolo', - 'agrumeto', - 'aguzzo', - 'alabarda', - 'alato', - 'albatro', - 'alberato', - 'albo', - 'albume', - 'alce', - 'alcolico', - 'alettone', - 'alfa', - 'algebra', - 'aliante', - 'alibi', - 'alimento', - 'allagato', - 'allegro', - 'allievo', - 'allodola', - 'allusivo', - 'almeno', - 'alogeno', - 'alpaca', - 'alpestre', - 'altalena', - 'alterno', - 'alticcio', - 'altrove', - 'alunno', - 'alveolo', - 'alzare', - 'amalgama', - 'amanita', - 'amarena', - 'ambito', - 'ambrato', - 'ameba', - 'america', - 'ametista', - 'amico', - 'ammasso', - 'ammenda', - 'ammirare', - 'ammonito', - 'amore', - 'ampio', - 'ampliare', - 'amuleto', - 'anacardo', - 'anagrafe', - 'analista', - 'anarchia', - 'anatra', - 'anca', - 'ancella', - 'ancora', - 'andare', - 'andrea', - 'anello', - 'angelo', - 'angolare', - 'angusto', - 'anima', - 'annegare', - 'annidato', - 'anno', - 'annuncio', - 'anonimo', - 'anticipo', - 'anzi', - 'apatico', - 'apertura', - 'apode', - 'apparire', - 'appetito', - 'appoggio', - 'approdo', - 'appunto', - 'aprile', - 'arabica', - 'arachide', - 'aragosta', - 'araldica', - 'arancio', - 'aratura', - 'arazzo', - 'arbitro', - 'archivio', - 'ardito', - 'arenile', - 'argento', - 'argine', - 'arguto', - 'aria', - 'armonia', - 'arnese', - 'arredato', - 'arringa', - 'arrosto', - 'arsenico', - 'arso', - 'artefice', - 'arzillo', - 'asciutto', - 'ascolto', - 'asepsi', - 'asettico', - 'asfalto', - 'asino', - 'asola', - 'aspirato', - 'aspro', - 'assaggio', - 'asse', - 'assoluto', - 'assurdo', - 'asta', - 'astenuto', - 'astice', - 'astratto', - 'atavico', - 'ateismo', - 'atomico', - 'atono', - 'attesa', - 'attivare', - 'attorno', - 'attrito', - 'attuale', - 'ausilio', - 'austria', - 'autista', - 'autonomo', - 'autunno', - 'avanzato', - 'avere', - 'avvenire', - 'avviso', - 'avvolgere', - 'azione', - 'azoto', - 'azzimo', - 'azzurro', - 'babele', - 'baccano', - 'bacino', - 'baco', - 'badessa', - 'badilata', - 'bagnato', - 'baita', - 'balcone', - 'baldo', - 'balena', - 'ballata', - 'balzano', - 'bambino', - 'bandire', - 'baraonda', - 'barbaro', - 'barca', - 'baritono', - 'barlume', - 'barocco', - 'basilico', - 'basso', - 'batosta', - 'battuto', - 'baule', - 'bava', - 'bavosa', - 'becco', - 'beffa', - 'belgio', - 'belva', - 'benda', - 'benevole', - 'benigno', - 'benzina', - 'bere', - 'berlina', - 'beta', - 'bibita', - 'bici', - 'bidone', - 'bifido', - 'biga', - 'bilancia', - 'bimbo', - 'binocolo', - 'biologo', - 'bipede', - 'bipolare', - 'birbante', - 'birra', - 'biscotto', - 'bisesto', - 'bisnonno', - 'bisonte', - 'bisturi', - 'bizzarro', - 'blando', - 'blatta', - 'bollito', - 'bonifico', - 'bordo', - 'bosco', - 'botanico', - 'bottino', - 'bozzolo', - 'braccio', - 'bradipo', - 'brama', - 'branca', - 'bravura', - 'bretella', - 'brevetto', - 'brezza', - 'briglia', - 'brillante', - 'brindare', - 'broccolo', - 'brodo', - 'bronzina', - 'brullo', - 'bruno', - 'bubbone', - 'buca', - 'budino', - 'buffone', - 'buio', - 'bulbo', - 'buono', - 'burlone', - 'burrasca', - 'bussola', - 'busta', - 'cadetto', - 'caduco', - 'calamaro', - 'calcolo', - 'calesse', - 'calibro', - 'calmo', - 'caloria', - 'cambusa', - 'camerata', - 'camicia', - 'cammino', - 'camola', - 'campale', - 'canapa', - 'candela', - 'cane', - 'canino', - 'canotto', - 'cantina', - 'capace', - 'capello', - 'capitolo', - 'capogiro', - 'cappero', - 'capra', - 'capsula', - 'carapace', - 'carcassa', - 'cardo', - 'carisma', - 'carovana', - 'carretto', - 'cartolina', - 'casaccio', - 'cascata', - 'caserma', - 'caso', - 'cassone', - 'castello', - 'casuale', - 'catasta', - 'catena', - 'catrame', - 'cauto', - 'cavillo', - 'cedibile', - 'cedrata', - 'cefalo', - 'celebre', - 'cellulare', - 'cena', - 'cenone', - 'centesimo', - 'ceramica', - 'cercare', - 'certo', - 'cerume', - 'cervello', - 'cesoia', - 'cespo', - 'ceto', - 'chela', - 'chiaro', - 'chicca', - 'chiedere', - 'chimera', - 'china', - 'chirurgo', - 'chitarra', - 'ciao', - 'ciclismo', - 'cifrare', - 'cigno', - 'cilindro', - 'ciottolo', - 'circa', - 'cirrosi', - 'citrico', - 'cittadino', - 'ciuffo', - 'civetta', - 'civile', - 'classico', - 'clinica', - 'cloro', - 'cocco', - 'codardo', - 'codice', - 'coerente', - 'cognome', - 'collare', - 'colmato', - 'colore', - 'colposo', - 'coltivato', - 'colza', - 'coma', - 'cometa', - 'commando', - 'comodo', - 'computer', - 'comune', - 'conciso', - 'condurre', - 'conferma', - 'congelare', - 'coniuge', - 'connesso', - 'conoscere', - 'consumo', - 'continuo', - 'convegno', - 'coperto', - 'copione', - 'coppia', - 'copricapo', - 'corazza', - 'cordata', - 'coricato', - 'cornice', - 'corolla', - 'corpo', - 'corredo', - 'corsia', - 'cortese', - 'cosmico', - 'costante', - 'cottura', - 'covato', - 'cratere', - 'cravatta', - 'creato', - 'credere', - 'cremoso', - 'crescita', - 'creta', - 'criceto', - 'crinale', - 'crisi', - 'critico', - 'croce', - 'cronaca', - 'crostata', - 'cruciale', - 'crusca', - 'cucire', - 'cuculo', - 'cugino', - 'cullato', - 'cupola', - 'curatore', - 'cursore', - 'curvo', - 'cuscino', - 'custode', - 'dado', - 'daino', - 'dalmata', - 'damerino', - 'daniela', - 'dannoso', - 'danzare', - 'datato', - 'davanti', - 'davvero', - 'debutto', - 'decennio', - 'deciso', - 'declino', - 'decollo', - 'decreto', - 'dedicato', - 'definito', - 'deforme', - 'degno', - 'delegare', - 'delfino', - 'delirio', - 'delta', - 'demenza', - 'denotato', - 'dentro', - 'deposito', - 'derapata', - 'derivare', - 'deroga', - 'descritto', - 'deserto', - 'desiderio', - 'desumere', - 'detersivo', - 'devoto', - 'diametro', - 'dicembre', - 'diedro', - 'difeso', - 'diffuso', - 'digerire', - 'digitale', - 'diluvio', - 'dinamico', - 'dinnanzi', - 'dipinto', - 'diploma', - 'dipolo', - 'diradare', - 'dire', - 'dirotto', - 'dirupo', - 'disagio', - 'discreto', - 'disfare', - 'disgelo', - 'disposto', - 'distanza', - 'disumano', - 'dito', - 'divano', - 'divelto', - 'dividere', - 'divorato', - 'doblone', - 'docente', - 'doganale', - 'dogma', - 'dolce', - 'domato', - 'domenica', - 'dominare', - 'dondolo', - 'dono', - 'dormire', - 'dote', - 'dottore', - 'dovuto', - 'dozzina', - 'drago', - 'druido', - 'dubbio', - 'dubitare', - 'ducale', - 'duna', - 'duomo', - 'duplice', - 'duraturo', - 'ebano', - 'eccesso', - 'ecco', - 'eclissi', - 'economia', - 'edera', - 'edicola', - 'edile', - 'editoria', - 'educare', - 'egemonia', - 'egli', - 'egoismo', - 'egregio', - 'elaborato', - 'elargire', - 'elegante', - 'elencato', - 'eletto', - 'elevare', - 'elfico', - 'elica', - 'elmo', - 'elsa', - 'eluso', - 'emanato', - 'emblema', - 'emesso', - 'emiro', - 'emotivo', - 'emozione', - 'empirico', - 'emulo', - 'endemico', - 'enduro', - 'energia', - 'enfasi', - 'enoteca', - 'entrare', - 'enzima', - 'epatite', - 'epilogo', - 'episodio', - 'epocale', - 'eppure', - 'equatore', - 'erario', - 'erba', - 'erboso', - 'erede', - 'eremita', - 'erigere', - 'ermetico', - 'eroe', - 'erosivo', - 'errante', - 'esagono', - 'esame', - 'esanime', - 'esaudire', - 'esca', - 'esempio', - 'esercito', - 'esibito', - 'esigente', - 'esistere', - 'esito', - 'esofago', - 'esortato', - 'esoso', - 'espanso', - 'espresso', - 'essenza', - 'esso', - 'esteso', - 'estimare', - 'estonia', - 'estroso', - 'esultare', - 'etilico', - 'etnico', - 'etrusco', - 'etto', - 'euclideo', - 'europa', - 'evaso', - 'evidenza', - 'evitato', - 'evoluto', - 'evviva', - 'fabbrica', - 'faccenda', - 'fachiro', - 'falco', - 'famiglia', - 'fanale', - 'fanfara', - 'fango', - 'fantasma', - 'fare', - 'farfalla', - 'farinoso', - 'farmaco', - 'fascia', - 'fastoso', - 'fasullo', - 'faticare', - 'fato', - 'favoloso', - 'febbre', - 'fecola', - 'fede', - 'fegato', - 'felpa', - 'feltro', - 'femmina', - 'fendere', - 'fenomeno', - 'fermento', - 'ferro', - 'fertile', - 'fessura', - 'festivo', - 'fetta', - 'feudo', - 'fiaba', - 'fiducia', - 'fifa', - 'figurato', - 'filo', - 'finanza', - 'finestra', - 'finire', - 'fiore', - 'fiscale', - 'fisico', - 'fiume', - 'flacone', - 'flamenco', - 'flebo', - 'flemma', - 'florido', - 'fluente', - 'fluoro', - 'fobico', - 'focaccia', - 'focoso', - 'foderato', - 'foglio', - 'folata', - 'folclore', - 'folgore', - 'fondente', - 'fonetico', - 'fonia', - 'fontana', - 'forbito', - 'forchetta', - 'foresta', - 'formica', - 'fornaio', - 'foro', - 'fortezza', - 'forzare', - 'fosfato', - 'fosso', - 'fracasso', - 'frana', - 'frassino', - 'fratello', - 'freccetta', - 'frenata', - 'fresco', - 'frigo', - 'frollino', - 'fronde', - 'frugale', - 'frutta', - 'fucilata', - 'fucsia', - 'fuggente', - 'fulmine', - 'fulvo', - 'fumante', - 'fumetto', - 'fumoso', - 'fune', - 'funzione', - 'fuoco', - 'furbo', - 'furgone', - 'furore', - 'fuso', - 'futile', - 'gabbiano', - 'gaffe', - 'galateo', - 'gallina', - 'galoppo', - 'gambero', - 'gamma', - 'garanzia', - 'garbo', - 'garofano', - 'garzone', - 'gasdotto', - 'gasolio', - 'gastrico', - 'gatto', - 'gaudio', - 'gazebo', - 'gazzella', - 'geco', - 'gelatina', - 'gelso', - 'gemello', - 'gemmato', - 'gene', - 'genitore', - 'gennaio', - 'genotipo', - 'gergo', - 'ghepardo', - 'ghiaccio', - 'ghisa', - 'giallo', - 'gilda', - 'ginepro', - 'giocare', - 'gioiello', - 'giorno', - 'giove', - 'girato', - 'girone', - 'gittata', - 'giudizio', - 'giurato', - 'giusto', - 'globulo', - 'glutine', - 'gnomo', - 'gobba', - 'golf', - 'gomito', - 'gommone', - 'gonfio', - 'gonna', - 'governo', - 'gracile', - 'grado', - 'grafico', - 'grammo', - 'grande', - 'grattare', - 'gravoso', - 'grazia', - 'greca', - 'gregge', - 'grifone', - 'grigio', - 'grinza', - 'grotta', - 'gruppo', - 'guadagno', - 'guaio', - 'guanto', - 'guardare', - 'gufo', - 'guidare', - 'ibernato', - 'icona', - 'identico', - 'idillio', - 'idolo', - 'idra', - 'idrico', - 'idrogeno', - 'igiene', - 'ignaro', - 'ignorato', - 'ilare', - 'illeso', - 'illogico', - 'illudere', - 'imballo', - 'imbevuto', - 'imbocco', - 'imbuto', - 'immane', - 'immerso', - 'immolato', - 'impacco', - 'impeto', - 'impiego', - 'importo', - 'impronta', - 'inalare', - 'inarcare', - 'inattivo', - 'incanto', - 'incendio', - 'inchino', - 'incisivo', - 'incluso', - 'incontro', - 'incrocio', - 'incubo', - 'indagine', - 'india', - 'indole', - 'inedito', - 'infatti', - 'infilare', - 'inflitto', - 'ingaggio', - 'ingegno', - 'inglese', - 'ingordo', - 'ingrosso', - 'innesco', - 'inodore', - 'inoltrare', - 'inondato', - 'insano', - 'insetto', - 'insieme', - 'insonnia', - 'insulina', - 'intasato', - 'intero', - 'intonaco', - 'intuito', - 'inumidire', - 'invalido', - 'invece', - 'invito', - 'iperbole', - 'ipnotico', - 'ipotesi', - 'ippica', - 'iride', - 'irlanda', - 'ironico', - 'irrigato', - 'irrorare', - 'isolato', - 'isotopo', - 'isterico', - 'istituto', - 'istrice', - 'italia', - 'iterare', - 'labbro', - 'labirinto', - 'lacca', - 'lacerato', - 'lacrima', - 'lacuna', - 'laddove', - 'lago', - 'lampo', - 'lancetta', - 'lanterna', - 'lardoso', - 'larga', - 'laringe', - 'lastra', - 'latenza', - 'latino', - 'lattuga', - 'lavagna', - 'lavoro', - 'legale', - 'leggero', - 'lembo', - 'lentezza', - 'lenza', - 'leone', - 'lepre', - 'lesivo', - 'lessato', - 'lesto', - 'letterale', - 'leva', - 'levigato', - 'libero', - 'lido', - 'lievito', - 'lilla', - 'limatura', - 'limitare', - 'limpido', - 'lineare', - 'lingua', - 'liquido', - 'lira', - 'lirica', - 'lisca', - 'lite', - 'litigio', - 'livrea', - 'locanda', - 'lode', - 'logica', - 'lombare', - 'londra', - 'longevo', - 'loquace', - 'lorenzo', - 'loto', - 'lotteria', - 'luce', - 'lucidato', - 'lumaca', - 'luminoso', - 'lungo', - 'lupo', - 'luppolo', - 'lusinga', - 'lusso', - 'lutto', - 'macabro', - 'macchina', - 'macero', - 'macinato', - 'madama', - 'magico', - 'maglia', - 'magnete', - 'magro', - 'maiolica', - 'malafede', - 'malgrado', - 'malinteso', - 'malsano', - 'malto', - 'malumore', - 'mana', - 'mancia', - 'mandorla', - 'mangiare', - 'manifesto', - 'mannaro', - 'manovra', - 'mansarda', - 'mantide', - 'manubrio', - 'mappa', - 'maratona', - 'marcire', - 'maretta', - 'marmo', - 'marsupio', - 'maschera', - 'massaia', - 'mastino', - 'materasso', - 'matricola', - 'mattone', - 'maturo', - 'mazurca', - 'meandro', - 'meccanico', - 'mecenate', - 'medesimo', - 'meditare', - 'mega', - 'melassa', - 'melis', - 'melodia', - 'meninge', - 'meno', - 'mensola', - 'mercurio', - 'merenda', - 'merlo', - 'meschino', - 'mese', - 'messere', - 'mestolo', - 'metallo', - 'metodo', - 'mettere', - 'miagolare', - 'mica', - 'micelio', - 'michele', - 'microbo', - 'midollo', - 'miele', - 'migliore', - 'milano', - 'milite', - 'mimosa', - 'minerale', - 'mini', - 'minore', - 'mirino', - 'mirtillo', - 'miscela', - 'missiva', - 'misto', - 'misurare', - 'mitezza', - 'mitigare', - 'mitra', - 'mittente', - 'mnemonico', - 'modello', - 'modifica', - 'modulo', - 'mogano', - 'mogio', - 'mole', - 'molosso', - 'monastero', - 'monco', - 'mondina', - 'monetario', - 'monile', - 'monotono', - 'monsone', - 'montato', - 'monviso', - 'mora', - 'mordere', - 'morsicato', - 'mostro', - 'motivato', - 'motosega', - 'motto', - 'movenza', - 'movimento', - 'mozzo', - 'mucca', - 'mucosa', - 'muffa', - 'mughetto', - 'mugnaio', - 'mulatto', - 'mulinello', - 'multiplo', - 'mummia', - 'munto', - 'muovere', - 'murale', - 'musa', - 'muscolo', - 'musica', - 'mutevole', - 'muto', - 'nababbo', - 'nafta', - 'nanometro', - 'narciso', - 'narice', - 'narrato', - 'nascere', - 'nastrare', - 'naturale', - 'nautica', - 'naviglio', - 'nebulosa', - 'necrosi', - 'negativo', - 'negozio', - 'nemmeno', - 'neofita', - 'neretto', - 'nervo', - 'nessuno', - 'nettuno', - 'neutrale', - 'neve', - 'nevrotico', - 'nicchia', - 'ninfa', - 'nitido', - 'nobile', - 'nocivo', - 'nodo', - 'nome', - 'nomina', - 'nordico', - 'normale', - 'norvegese', - 'nostrano', - 'notare', - 'notizia', - 'notturno', - 'novella', - 'nucleo', - 'nulla', - 'numero', - 'nuovo', - 'nutrire', - 'nuvola', - 'nuziale', - 'oasi', - 'obbedire', - 'obbligo', - 'obelisco', - 'oblio', - 'obolo', - 'obsoleto', - 'occasione', - 'occhio', - 'occidente', - 'occorrere', - 'occultare', - 'ocra', - 'oculato', - 'odierno', - 'odorare', - 'offerta', - 'offrire', - 'offuscato', - 'oggetto', - 'oggi', - 'ognuno', - 'olandese', - 'olfatto', - 'oliato', - 'oliva', - 'ologramma', - 'oltre', - 'omaggio', - 'ombelico', - 'ombra', - 'omega', - 'omissione', - 'ondoso', - 'onere', - 'onice', - 'onnivoro', - 'onorevole', - 'onta', - 'operato', - 'opinione', - 'opposto', - 'oracolo', - 'orafo', - 'ordine', - 'orecchino', - 'orefice', - 'orfano', - 'organico', - 'origine', - 'orizzonte', - 'orma', - 'ormeggio', - 'ornativo', - 'orologio', - 'orrendo', - 'orribile', - 'ortensia', - 'ortica', - 'orzata', - 'orzo', - 'osare', - 'oscurare', - 'osmosi', - 'ospedale', - 'ospite', - 'ossa', - 'ossidare', - 'ostacolo', - 'oste', - 'otite', - 'otre', - 'ottagono', - 'ottimo', - 'ottobre', - 'ovale', - 'ovest', - 'ovino', - 'oviparo', - 'ovocito', - 'ovunque', - 'ovviare', - 'ozio', - 'pacchetto', - 'pace', - 'pacifico', - 'padella', - 'padrone', - 'paese', - 'paga', - 'pagina', - 'palazzina', - 'palesare', - 'pallido', - 'palo', - 'palude', - 'pandoro', - 'pannello', - 'paolo', - 'paonazzo', - 'paprica', - 'parabola', - 'parcella', - 'parere', - 'pargolo', - 'pari', - 'parlato', - 'parola', - 'partire', - 'parvenza', - 'parziale', - 'passivo', - 'pasticca', - 'patacca', - 'patologia', - 'pattume', - 'pavone', - 'peccato', - 'pedalare', - 'pedonale', - 'peggio', - 'peloso', - 'penare', - 'pendice', - 'penisola', - 'pennuto', - 'penombra', - 'pensare', - 'pentola', - 'pepe', - 'pepita', - 'perbene', - 'percorso', - 'perdonato', - 'perforare', - 'pergamena', - 'periodo', - 'permesso', - 'perno', - 'perplesso', - 'persuaso', - 'pertugio', - 'pervaso', - 'pesatore', - 'pesista', - 'peso', - 'pestifero', - 'petalo', - 'pettine', - 'petulante', - 'pezzo', - 'piacere', - 'pianta', - 'piattino', - 'piccino', - 'picozza', - 'piega', - 'pietra', - 'piffero', - 'pigiama', - 'pigolio', - 'pigro', - 'pila', - 'pilifero', - 'pillola', - 'pilota', - 'pimpante', - 'pineta', - 'pinna', - 'pinolo', - 'pioggia', - 'piombo', - 'piramide', - 'piretico', - 'pirite', - 'pirolisi', - 'pitone', - 'pizzico', - 'placebo', - 'planare', - 'plasma', - 'platano', - 'plenario', - 'pochezza', - 'poderoso', - 'podismo', - 'poesia', - 'poggiare', - 'polenta', - 'poligono', - 'pollice', - 'polmonite', - 'polpetta', - 'polso', - 'poltrona', - 'polvere', - 'pomice', - 'pomodoro', - 'ponte', - 'popoloso', - 'porfido', - 'poroso', - 'porpora', - 'porre', - 'portata', - 'posa', - 'positivo', - 'possesso', - 'postulato', - 'potassio', - 'potere', - 'pranzo', - 'prassi', - 'pratica', - 'precluso', - 'predica', - 'prefisso', - 'pregiato', - 'prelievo', - 'premere', - 'prenotare', - 'preparato', - 'presenza', - 'pretesto', - 'prevalso', - 'prima', - 'principe', - 'privato', - 'problema', - 'procura', - 'produrre', - 'profumo', - 'progetto', - 'prolunga', - 'promessa', - 'pronome', - 'proposta', - 'proroga', - 'proteso', - 'prova', - 'prudente', - 'prugna', - 'prurito', - 'psiche', - 'pubblico', - 'pudica', - 'pugilato', - 'pugno', - 'pulce', - 'pulito', - 'pulsante', - 'puntare', - 'pupazzo', - 'pupilla', - 'puro', - 'quadro', - 'qualcosa', - 'quasi', - 'querela', - 'quota', - 'raccolto', - 'raddoppio', - 'radicale', - 'radunato', - 'raffica', - 'ragazzo', - 'ragione', - 'ragno', - 'ramarro', - 'ramingo', - 'ramo', - 'randagio', - 'rantolare', - 'rapato', - 'rapina', - 'rappreso', - 'rasatura', - 'raschiato', - 'rasente', - 'rassegna', - 'rastrello', - 'rata', - 'ravveduto', - 'reale', - 'recepire', - 'recinto', - 'recluta', - 'recondito', - 'recupero', - 'reddito', - 'redimere', - 'regalato', - 'registro', - 'regola', - 'regresso', - 'relazione', - 'remare', - 'remoto', - 'renna', - 'replica', - 'reprimere', - 'reputare', - 'resa', - 'residente', - 'responso', - 'restauro', - 'rete', - 'retina', - 'retorica', - 'rettifica', - 'revocato', - 'riassunto', - 'ribadire', - 'ribelle', - 'ribrezzo', - 'ricarica', - 'ricco', - 'ricevere', - 'riciclato', - 'ricordo', - 'ricreduto', - 'ridicolo', - 'ridurre', - 'rifasare', - 'riflesso', - 'riforma', - 'rifugio', - 'rigare', - 'rigettato', - 'righello', - 'rilassato', - 'rilevato', - 'rimanere', - 'rimbalzo', - 'rimedio', - 'rimorchio', - 'rinascita', - 'rincaro', - 'rinforzo', - 'rinnovo', - 'rinomato', - 'rinsavito', - 'rintocco', - 'rinuncia', - 'rinvenire', - 'riparato', - 'ripetuto', - 'ripieno', - 'riportare', - 'ripresa', - 'ripulire', - 'risata', - 'rischio', - 'riserva', - 'risibile', - 'riso', - 'rispetto', - 'ristoro', - 'risultato', - 'risvolto', - 'ritardo', - 'ritegno', - 'ritmico', - 'ritrovo', - 'riunione', - 'riva', - 'riverso', - 'rivincita', - 'rivolto', - 'rizoma', - 'roba', - 'robotico', - 'robusto', - 'roccia', - 'roco', - 'rodaggio', - 'rodere', - 'roditore', - 'rogito', - 'rollio', - 'romantico', - 'rompere', - 'ronzio', - 'rosolare', - 'rospo', - 'rotante', - 'rotondo', - 'rotula', - 'rovescio', - 'rubizzo', - 'rubrica', - 'ruga', - 'rullino', - 'rumine', - 'rumoroso', - 'ruolo', - 'rupe', - 'russare', - 'rustico', - 'sabato', - 'sabbiare', - 'sabotato', - 'sagoma', - 'salasso', - 'saldatura', - 'salgemma', - 'salivare', - 'salmone', - 'salone', - 'saltare', - 'saluto', - 'salvo', - 'sapere', - 'sapido', - 'saporito', - 'saraceno', - 'sarcasmo', - 'sarto', - 'sassoso', - 'satellite', - 'satira', - 'satollo', - 'saturno', - 'savana', - 'savio', - 'saziato', - 'sbadiglio', - 'sbalzo', - 'sbancato', - 'sbarra', - 'sbattere', - 'sbavare', - 'sbendare', - 'sbirciare', - 'sbloccato', - 'sbocciato', - 'sbrinare', - 'sbruffone', - 'sbuffare', - 'scabroso', - 'scadenza', - 'scala', - 'scambiare', - 'scandalo', - 'scapola', - 'scarso', - 'scatenare', - 'scavato', - 'scelto', - 'scenico', - 'scettro', - 'scheda', - 'schiena', - 'sciarpa', - 'scienza', - 'scindere', - 'scippo', - 'sciroppo', - 'scivolo', - 'sclerare', - 'scodella', - 'scolpito', - 'scomparto', - 'sconforto', - 'scoprire', - 'scorta', - 'scossone', - 'scozzese', - 'scriba', - 'scrollare', - 'scrutinio', - 'scuderia', - 'scultore', - 'scuola', - 'scuro', - 'scusare', - 'sdebitare', - 'sdoganare', - 'seccatura', - 'secondo', - 'sedano', - 'seggiola', - 'segnalato', - 'segregato', - 'seguito', - 'selciato', - 'selettivo', - 'sella', - 'selvaggio', - 'semaforo', - 'sembrare', - 'seme', - 'seminato', - 'sempre', - 'senso', - 'sentire', - 'sepolto', - 'sequenza', - 'serata', - 'serbato', - 'sereno', - 'serio', - 'serpente', - 'serraglio', - 'servire', - 'sestina', - 'setola', - 'settimana', - 'sfacelo', - 'sfaldare', - 'sfamato', - 'sfarzoso', - 'sfaticato', - 'sfera', - 'sfida', - 'sfilato', - 'sfinge', - 'sfocato', - 'sfoderare', - 'sfogo', - 'sfoltire', - 'sforzato', - 'sfratto', - 'sfruttato', - 'sfuggito', - 'sfumare', - 'sfuso', - 'sgabello', - 'sgarbato', - 'sgonfiare', - 'sgorbio', - 'sgrassato', - 'sguardo', - 'sibilo', - 'siccome', - 'sierra', - 'sigla', - 'signore', - 'silenzio', - 'sillaba', - 'simbolo', - 'simpatico', - 'simulato', - 'sinfonia', - 'singolo', - 'sinistro', - 'sino', - 'sintesi', - 'sinusoide', - 'sipario', - 'sisma', - 'sistole', - 'situato', - 'slitta', - 'slogatura', - 'sloveno', - 'smarrito', - 'smemorato', - 'smentito', - 'smeraldo', - 'smilzo', - 'smontare', - 'smottato', - 'smussato', - 'snellire', - 'snervato', - 'snodo', - 'sobbalzo', - 'sobrio', - 'soccorso', - 'sociale', - 'sodale', - 'soffitto', - 'sogno', - 'soldato', - 'solenne', - 'solido', - 'sollazzo', - 'solo', - 'solubile', - 'solvente', - 'somatico', - 'somma', - 'sonda', - 'sonetto', - 'sonnifero', - 'sopire', - 'soppeso', - 'sopra', - 'sorgere', - 'sorpasso', - 'sorriso', - 'sorso', - 'sorteggio', - 'sorvolato', - 'sospiro', - 'sosta', - 'sottile', - 'spada', - 'spalla', - 'spargere', - 'spatola', - 'spavento', - 'spazzola', - 'specie', - 'spedire', - 'spegnere', - 'spelatura', - 'speranza', - 'spessore', - 'spettrale', - 'spezzato', - 'spia', - 'spigoloso', - 'spillato', - 'spinoso', - 'spirale', - 'splendido', - 'sportivo', - 'sposo', - 'spranga', - 'sprecare', - 'spronato', - 'spruzzo', - 'spuntino', - 'squillo', - 'sradicare', - 'srotolato', - 'stabile', - 'stacco', - 'staffa', - 'stagnare', - 'stampato', - 'stantio', - 'starnuto', - 'stasera', - 'statuto', - 'stelo', - 'steppa', - 'sterzo', - 'stiletto', - 'stima', - 'stirpe', - 'stivale', - 'stizzoso', - 'stonato', - 'storico', - 'strappo', - 'stregato', - 'stridulo', - 'strozzare', - 'strutto', - 'stuccare', - 'stufo', - 'stupendo', - 'subentro', - 'succoso', - 'sudore', - 'suggerito', - 'sugo', - 'sultano', - 'suonare', - 'superbo', - 'supporto', - 'surgelato', - 'surrogato', - 'sussurro', - 'sutura', - 'svagare', - 'svedese', - 'sveglio', - 'svelare', - 'svenuto', - 'svezia', - 'sviluppo', - 'svista', - 'svizzera', - 'svolta', - 'svuotare', - 'tabacco', - 'tabulato', - 'tacciare', - 'taciturno', - 'tale', - 'talismano', - 'tampone', - 'tannino', - 'tara', - 'tardivo', - 'targato', - 'tariffa', - 'tarpare', - 'tartaruga', - 'tasto', - 'tattico', - 'taverna', - 'tavolata', - 'tazza', - 'teca', - 'tecnico', - 'telefono', - 'temerario', - 'tempo', - 'temuto', - 'tendone', - 'tenero', - 'tensione', - 'tentacolo', - 'teorema', - 'terme', - 'terrazzo', - 'terzetto', - 'tesi', - 'tesserato', - 'testato', - 'tetro', - 'tettoia', - 'tifare', - 'tigella', - 'timbro', - 'tinto', - 'tipico', - 'tipografo', - 'tiraggio', - 'tiro', - 'titanio', - 'titolo', - 'titubante', - 'tizio', - 'tizzone', - 'toccare', - 'tollerare', - 'tolto', - 'tombola', - 'tomo', - 'tonfo', - 'tonsilla', - 'topazio', - 'topologia', - 'toppa', - 'torba', - 'tornare', - 'torrone', - 'tortora', - 'toscano', - 'tossire', - 'tostatura', - 'totano', - 'trabocco', - 'trachea', - 'trafila', - 'tragedia', - 'tralcio', - 'tramonto', - 'transito', - 'trapano', - 'trarre', - 'trasloco', - 'trattato', - 'trave', - 'treccia', - 'tremolio', - 'trespolo', - 'tributo', - 'tricheco', - 'trifoglio', - 'trillo', - 'trincea', - 'trio', - 'tristezza', - 'triturato', - 'trivella', - 'tromba', - 'trono', - 'troppo', - 'trottola', - 'trovare', - 'truccato', - 'tubatura', - 'tuffato', - 'tulipano', - 'tumulto', - 'tunisia', - 'turbare', - 'turchino', - 'tuta', - 'tutela', - 'ubicato', - 'uccello', - 'uccisore', - 'udire', - 'uditivo', - 'uffa', - 'ufficio', - 'uguale', - 'ulisse', - 'ultimato', - 'umano', - 'umile', - 'umorismo', - 'uncinetto', - 'ungere', - 'ungherese', - 'unicorno', - 'unificato', - 'unisono', - 'unitario', - 'unte', - 'uovo', - 'upupa', - 'uragano', - 'urgenza', - 'urlo', - 'usanza', - 'usato', - 'uscito', - 'usignolo', - 'usuraio', - 'utensile', - 'utilizzo', - 'utopia', - 'vacante', - 'vaccinato', - 'vagabondo', - 'vagliato', - 'valanga', - 'valgo', - 'valico', - 'valletta', - 'valoroso', - 'valutare', - 'valvola', - 'vampata', - 'vangare', - 'vanitoso', - 'vano', - 'vantaggio', - 'vanvera', - 'vapore', - 'varano', - 'varcato', - 'variante', - 'vasca', - 'vedetta', - 'vedova', - 'veduto', - 'vegetale', - 'veicolo', - 'velcro', - 'velina', - 'velluto', - 'veloce', - 'venato', - 'vendemmia', - 'vento', - 'verace', - 'verbale', - 'vergogna', - 'verifica', - 'vero', - 'verruca', - 'verticale', - 'vescica', - 'vessillo', - 'vestale', - 'veterano', - 'vetrina', - 'vetusto', - 'viandante', - 'vibrante', - 'vicenda', - 'vichingo', - 'vicinanza', - 'vidimare', - 'vigilia', - 'vigneto', - 'vigore', - 'vile', - 'villano', - 'vimini', - 'vincitore', - 'viola', - 'vipera', - 'virgola', - 'virologo', - 'virulento', - 'viscoso', - 'visione', - 'vispo', - 'vissuto', - 'visura', - 'vita', - 'vitello', - 'vittima', - 'vivanda', - 'vivido', - 'viziare', - 'voce', - 'voga', - 'volatile', - 'volere', - 'volpe', - 'voragine', - 'vulcano', - 'zampogna', - 'zanna', - 'zappato', - 'zattera', - 'zavorra', - 'zefiro', - 'zelante', - 'zelo', - 'zenzero', - 'zerbino', - 'zibetto', - 'zinco', - 'zircone', - 'zitto', - 'zolla', - 'zotico', - 'zucchero', - 'zufolo', - 'zulu', - 'zuppa', -]; diff --git a/src/wordlists/japanese.d.ts b/src/wordlists/japanese.d.ts deleted file mode 100644 index d451d2b..0000000 --- a/src/wordlists/japanese.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: string[]; -export default _default; diff --git a/src/wordlists/japanese.js b/src/wordlists/japanese.js deleted file mode 100644 index 6b8a369..0000000 --- a/src/wordlists/japanese.js +++ /dev/null @@ -1,2050 +0,0 @@ -export default [ - 'あいこくしん', - 'あいさつ', - 'あいだ', - 'あおぞら', - 'あかちゃん', - 'あきる', - 'あけがた', - 'あける', - 'あこがれる', - 'あさい', - 'あさひ', - 'あしあと', - 'あじわう', - 'あずかる', - 'あずき', - 'あそぶ', - 'あたえる', - 'あたためる', - 'あたりまえ', - 'あたる', - 'あつい', - 'あつかう', - 'あっしゅく', - 'あつまり', - 'あつめる', - 'あてな', - 'あてはまる', - 'あひる', - 'あぶら', - 'あぶる', - 'あふれる', - 'あまい', - 'あまど', - 'あまやかす', - 'あまり', - 'あみもの', - 'あめりか', - 'あやまる', - 'あゆむ', - 'あらいぐま', - 'あらし', - 'あらすじ', - 'あらためる', - 'あらゆる', - 'あらわす', - 'ありがとう', - 'あわせる', - 'あわてる', - 'あんい', - 'あんがい', - 'あんこ', - 'あんぜん', - 'あんてい', - 'あんない', - 'あんまり', - 'いいだす', - 'いおん', - 'いがい', - 'いがく', - 'いきおい', - 'いきなり', - 'いきもの', - 'いきる', - 'いくじ', - 'いくぶん', - 'いけばな', - 'いけん', - 'いこう', - 'いこく', - 'いこつ', - 'いさましい', - 'いさん', - 'いしき', - 'いじゅう', - 'いじょう', - 'いじわる', - 'いずみ', - 'いずれ', - 'いせい', - 'いせえび', - 'いせかい', - 'いせき', - 'いぜん', - 'いそうろう', - 'いそがしい', - 'いだい', - 'いだく', - 'いたずら', - 'いたみ', - 'いたりあ', - 'いちおう', - 'いちじ', - 'いちど', - 'いちば', - 'いちぶ', - 'いちりゅう', - 'いつか', - 'いっしゅん', - 'いっせい', - 'いっそう', - 'いったん', - 'いっち', - 'いってい', - 'いっぽう', - 'いてざ', - 'いてん', - 'いどう', - 'いとこ', - 'いない', - 'いなか', - 'いねむり', - 'いのち', - 'いのる', - 'いはつ', - 'いばる', - 'いはん', - 'いびき', - 'いひん', - 'いふく', - 'いへん', - 'いほう', - 'いみん', - 'いもうと', - 'いもたれ', - 'いもり', - 'いやがる', - 'いやす', - 'いよかん', - 'いよく', - 'いらい', - 'いらすと', - 'いりぐち', - 'いりょう', - 'いれい', - 'いれもの', - 'いれる', - 'いろえんぴつ', - 'いわい', - 'いわう', - 'いわかん', - 'いわば', - 'いわゆる', - 'いんげんまめ', - 'いんさつ', - 'いんしょう', - 'いんよう', - 'うえき', - 'うえる', - 'うおざ', - 'うがい', - 'うかぶ', - 'うかべる', - 'うきわ', - 'うくらいな', - 'うくれれ', - 'うけたまわる', - 'うけつけ', - 'うけとる', - 'うけもつ', - 'うける', - 'うごかす', - 'うごく', - 'うこん', - 'うさぎ', - 'うしなう', - 'うしろがみ', - 'うすい', - 'うすぎ', - 'うすぐらい', - 'うすめる', - 'うせつ', - 'うちあわせ', - 'うちがわ', - 'うちき', - 'うちゅう', - 'うっかり', - 'うつくしい', - 'うったえる', - 'うつる', - 'うどん', - 'うなぎ', - 'うなじ', - 'うなずく', - 'うなる', - 'うねる', - 'うのう', - 'うぶげ', - 'うぶごえ', - 'うまれる', - 'うめる', - 'うもう', - 'うやまう', - 'うよく', - 'うらがえす', - 'うらぐち', - 'うらない', - 'うりあげ', - 'うりきれ', - 'うるさい', - 'うれしい', - 'うれゆき', - 'うれる', - 'うろこ', - 'うわき', - 'うわさ', - 'うんこう', - 'うんちん', - 'うんてん', - 'うんどう', - 'えいえん', - 'えいが', - 'えいきょう', - 'えいご', - 'えいせい', - 'えいぶん', - 'えいよう', - 'えいわ', - 'えおり', - 'えがお', - 'えがく', - 'えきたい', - 'えくせる', - 'えしゃく', - 'えすて', - 'えつらん', - 'えのぐ', - 'えほうまき', - 'えほん', - 'えまき', - 'えもじ', - 'えもの', - 'えらい', - 'えらぶ', - 'えりあ', - 'えんえん', - 'えんかい', - 'えんぎ', - 'えんげき', - 'えんしゅう', - 'えんぜつ', - 'えんそく', - 'えんちょう', - 'えんとつ', - 'おいかける', - 'おいこす', - 'おいしい', - 'おいつく', - 'おうえん', - 'おうさま', - 'おうじ', - 'おうせつ', - 'おうたい', - 'おうふく', - 'おうべい', - 'おうよう', - 'おえる', - 'おおい', - 'おおう', - 'おおどおり', - 'おおや', - 'おおよそ', - 'おかえり', - 'おかず', - 'おがむ', - 'おかわり', - 'おぎなう', - 'おきる', - 'おくさま', - 'おくじょう', - 'おくりがな', - 'おくる', - 'おくれる', - 'おこす', - 'おこなう', - 'おこる', - 'おさえる', - 'おさない', - 'おさめる', - 'おしいれ', - 'おしえる', - 'おじぎ', - 'おじさん', - 'おしゃれ', - 'おそらく', - 'おそわる', - 'おたがい', - 'おたく', - 'おだやか', - 'おちつく', - 'おっと', - 'おつり', - 'おでかけ', - 'おとしもの', - 'おとなしい', - 'おどり', - 'おどろかす', - 'おばさん', - 'おまいり', - 'おめでとう', - 'おもいで', - 'おもう', - 'おもたい', - 'おもちゃ', - 'おやつ', - 'おやゆび', - 'およぼす', - 'おらんだ', - 'おろす', - 'おんがく', - 'おんけい', - 'おんしゃ', - 'おんせん', - 'おんだん', - 'おんちゅう', - 'おんどけい', - 'かあつ', - 'かいが', - 'がいき', - 'がいけん', - 'がいこう', - 'かいさつ', - 'かいしゃ', - 'かいすいよく', - 'かいぜん', - 'かいぞうど', - 'かいつう', - 'かいてん', - 'かいとう', - 'かいふく', - 'がいへき', - 'かいほう', - 'かいよう', - 'がいらい', - 'かいわ', - 'かえる', - 'かおり', - 'かかえる', - 'かがく', - 'かがし', - 'かがみ', - 'かくご', - 'かくとく', - 'かざる', - 'がぞう', - 'かたい', - 'かたち', - 'がちょう', - 'がっきゅう', - 'がっこう', - 'がっさん', - 'がっしょう', - 'かなざわし', - 'かのう', - 'がはく', - 'かぶか', - 'かほう', - 'かほご', - 'かまう', - 'かまぼこ', - 'かめれおん', - 'かゆい', - 'かようび', - 'からい', - 'かるい', - 'かろう', - 'かわく', - 'かわら', - 'がんか', - 'かんけい', - 'かんこう', - 'かんしゃ', - 'かんそう', - 'かんたん', - 'かんち', - 'がんばる', - 'きあい', - 'きあつ', - 'きいろ', - 'ぎいん', - 'きうい', - 'きうん', - 'きえる', - 'きおう', - 'きおく', - 'きおち', - 'きおん', - 'きかい', - 'きかく', - 'きかんしゃ', - 'ききて', - 'きくばり', - 'きくらげ', - 'きけんせい', - 'きこう', - 'きこえる', - 'きこく', - 'きさい', - 'きさく', - 'きさま', - 'きさらぎ', - 'ぎじかがく', - 'ぎしき', - 'ぎじたいけん', - 'ぎじにってい', - 'ぎじゅつしゃ', - 'きすう', - 'きせい', - 'きせき', - 'きせつ', - 'きそう', - 'きぞく', - 'きぞん', - 'きたえる', - 'きちょう', - 'きつえん', - 'ぎっちり', - 'きつつき', - 'きつね', - 'きてい', - 'きどう', - 'きどく', - 'きない', - 'きなが', - 'きなこ', - 'きぬごし', - 'きねん', - 'きのう', - 'きのした', - 'きはく', - 'きびしい', - 'きひん', - 'きふく', - 'きぶん', - 'きぼう', - 'きほん', - 'きまる', - 'きみつ', - 'きむずかしい', - 'きめる', - 'きもだめし', - 'きもち', - 'きもの', - 'きゃく', - 'きやく', - 'ぎゅうにく', - 'きよう', - 'きょうりゅう', - 'きらい', - 'きらく', - 'きりん', - 'きれい', - 'きれつ', - 'きろく', - 'ぎろん', - 'きわめる', - 'ぎんいろ', - 'きんかくじ', - 'きんじょ', - 'きんようび', - 'ぐあい', - 'くいず', - 'くうかん', - 'くうき', - 'くうぐん', - 'くうこう', - 'ぐうせい', - 'くうそう', - 'ぐうたら', - 'くうふく', - 'くうぼ', - 'くかん', - 'くきょう', - 'くげん', - 'ぐこう', - 'くさい', - 'くさき', - 'くさばな', - 'くさる', - 'くしゃみ', - 'くしょう', - 'くすのき', - 'くすりゆび', - 'くせげ', - 'くせん', - 'ぐたいてき', - 'くださる', - 'くたびれる', - 'くちこみ', - 'くちさき', - 'くつした', - 'ぐっすり', - 'くつろぐ', - 'くとうてん', - 'くどく', - 'くなん', - 'くねくね', - 'くのう', - 'くふう', - 'くみあわせ', - 'くみたてる', - 'くめる', - 'くやくしょ', - 'くらす', - 'くらべる', - 'くるま', - 'くれる', - 'くろう', - 'くわしい', - 'ぐんかん', - 'ぐんしょく', - 'ぐんたい', - 'ぐんて', - 'けあな', - 'けいかく', - 'けいけん', - 'けいこ', - 'けいさつ', - 'げいじゅつ', - 'けいたい', - 'げいのうじん', - 'けいれき', - 'けいろ', - 'けおとす', - 'けおりもの', - 'げきか', - 'げきげん', - 'げきだん', - 'げきちん', - 'げきとつ', - 'げきは', - 'げきやく', - 'げこう', - 'げこくじょう', - 'げざい', - 'けさき', - 'げざん', - 'けしき', - 'けしごむ', - 'けしょう', - 'げすと', - 'けたば', - 'けちゃっぷ', - 'けちらす', - 'けつあつ', - 'けつい', - 'けつえき', - 'けっこん', - 'けつじょ', - 'けっせき', - 'けってい', - 'けつまつ', - 'げつようび', - 'げつれい', - 'けつろん', - 'げどく', - 'けとばす', - 'けとる', - 'けなげ', - 'けなす', - 'けなみ', - 'けぬき', - 'げねつ', - 'けねん', - 'けはい', - 'げひん', - 'けぶかい', - 'げぼく', - 'けまり', - 'けみかる', - 'けむし', - 'けむり', - 'けもの', - 'けらい', - 'けろけろ', - 'けわしい', - 'けんい', - 'けんえつ', - 'けんお', - 'けんか', - 'げんき', - 'けんげん', - 'けんこう', - 'けんさく', - 'けんしゅう', - 'けんすう', - 'げんそう', - 'けんちく', - 'けんてい', - 'けんとう', - 'けんない', - 'けんにん', - 'げんぶつ', - 'けんま', - 'けんみん', - 'けんめい', - 'けんらん', - 'けんり', - 'こあくま', - 'こいぬ', - 'こいびと', - 'ごうい', - 'こうえん', - 'こうおん', - 'こうかん', - 'ごうきゅう', - 'ごうけい', - 'こうこう', - 'こうさい', - 'こうじ', - 'こうすい', - 'ごうせい', - 'こうそく', - 'こうたい', - 'こうちゃ', - 'こうつう', - 'こうてい', - 'こうどう', - 'こうない', - 'こうはい', - 'ごうほう', - 'ごうまん', - 'こうもく', - 'こうりつ', - 'こえる', - 'こおり', - 'ごかい', - 'ごがつ', - 'ごかん', - 'こくご', - 'こくさい', - 'こくとう', - 'こくない', - 'こくはく', - 'こぐま', - 'こけい', - 'こける', - 'ここのか', - 'こころ', - 'こさめ', - 'こしつ', - 'こすう', - 'こせい', - 'こせき', - 'こぜん', - 'こそだて', - 'こたい', - 'こたえる', - 'こたつ', - 'こちょう', - 'こっか', - 'こつこつ', - 'こつばん', - 'こつぶ', - 'こてい', - 'こてん', - 'ことがら', - 'ことし', - 'ことば', - 'ことり', - 'こなごな', - 'こねこね', - 'このまま', - 'このみ', - 'このよ', - 'ごはん', - 'こひつじ', - 'こふう', - 'こふん', - 'こぼれる', - 'ごまあぶら', - 'こまかい', - 'ごますり', - 'こまつな', - 'こまる', - 'こむぎこ', - 'こもじ', - 'こもち', - 'こもの', - 'こもん', - 'こやく', - 'こやま', - 'こゆう', - 'こゆび', - 'こよい', - 'こよう', - 'こりる', - 'これくしょん', - 'ころっけ', - 'こわもて', - 'こわれる', - 'こんいん', - 'こんかい', - 'こんき', - 'こんしゅう', - 'こんすい', - 'こんだて', - 'こんとん', - 'こんなん', - 'こんびに', - 'こんぽん', - 'こんまけ', - 'こんや', - 'こんれい', - 'こんわく', - 'ざいえき', - 'さいかい', - 'さいきん', - 'ざいげん', - 'ざいこ', - 'さいしょ', - 'さいせい', - 'ざいたく', - 'ざいちゅう', - 'さいてき', - 'ざいりょう', - 'さうな', - 'さかいし', - 'さがす', - 'さかな', - 'さかみち', - 'さがる', - 'さぎょう', - 'さくし', - 'さくひん', - 'さくら', - 'さこく', - 'さこつ', - 'さずかる', - 'ざせき', - 'さたん', - 'さつえい', - 'ざつおん', - 'ざっか', - 'ざつがく', - 'さっきょく', - 'ざっし', - 'さつじん', - 'ざっそう', - 'さつたば', - 'さつまいも', - 'さてい', - 'さといも', - 'さとう', - 'さとおや', - 'さとし', - 'さとる', - 'さのう', - 'さばく', - 'さびしい', - 'さべつ', - 'さほう', - 'さほど', - 'さます', - 'さみしい', - 'さみだれ', - 'さむけ', - 'さめる', - 'さやえんどう', - 'さゆう', - 'さよう', - 'さよく', - 'さらだ', - 'ざるそば', - 'さわやか', - 'さわる', - 'さんいん', - 'さんか', - 'さんきゃく', - 'さんこう', - 'さんさい', - 'ざんしょ', - 'さんすう', - 'さんせい', - 'さんそ', - 'さんち', - 'さんま', - 'さんみ', - 'さんらん', - 'しあい', - 'しあげ', - 'しあさって', - 'しあわせ', - 'しいく', - 'しいん', - 'しうち', - 'しえい', - 'しおけ', - 'しかい', - 'しかく', - 'じかん', - 'しごと', - 'しすう', - 'じだい', - 'したうけ', - 'したぎ', - 'したて', - 'したみ', - 'しちょう', - 'しちりん', - 'しっかり', - 'しつじ', - 'しつもん', - 'してい', - 'してき', - 'してつ', - 'じてん', - 'じどう', - 'しなぎれ', - 'しなもの', - 'しなん', - 'しねま', - 'しねん', - 'しのぐ', - 'しのぶ', - 'しはい', - 'しばかり', - 'しはつ', - 'しはらい', - 'しはん', - 'しひょう', - 'しふく', - 'じぶん', - 'しへい', - 'しほう', - 'しほん', - 'しまう', - 'しまる', - 'しみん', - 'しむける', - 'じむしょ', - 'しめい', - 'しめる', - 'しもん', - 'しゃいん', - 'しゃうん', - 'しゃおん', - 'じゃがいも', - 'しやくしょ', - 'しゃくほう', - 'しゃけん', - 'しゃこ', - 'しゃざい', - 'しゃしん', - 'しゃせん', - 'しゃそう', - 'しゃたい', - 'しゃちょう', - 'しゃっきん', - 'じゃま', - 'しゃりん', - 'しゃれい', - 'じゆう', - 'じゅうしょ', - 'しゅくはく', - 'じゅしん', - 'しゅっせき', - 'しゅみ', - 'しゅらば', - 'じゅんばん', - 'しょうかい', - 'しょくたく', - 'しょっけん', - 'しょどう', - 'しょもつ', - 'しらせる', - 'しらべる', - 'しんか', - 'しんこう', - 'じんじゃ', - 'しんせいじ', - 'しんちく', - 'しんりん', - 'すあげ', - 'すあし', - 'すあな', - 'ずあん', - 'すいえい', - 'すいか', - 'すいとう', - 'ずいぶん', - 'すいようび', - 'すうがく', - 'すうじつ', - 'すうせん', - 'すおどり', - 'すきま', - 'すくう', - 'すくない', - 'すける', - 'すごい', - 'すこし', - 'ずさん', - 'すずしい', - 'すすむ', - 'すすめる', - 'すっかり', - 'ずっしり', - 'ずっと', - 'すてき', - 'すてる', - 'すねる', - 'すのこ', - 'すはだ', - 'すばらしい', - 'ずひょう', - 'ずぶぬれ', - 'すぶり', - 'すふれ', - 'すべて', - 'すべる', - 'ずほう', - 'すぼん', - 'すまい', - 'すめし', - 'すもう', - 'すやき', - 'すらすら', - 'するめ', - 'すれちがう', - 'すろっと', - 'すわる', - 'すんぜん', - 'すんぽう', - 'せあぶら', - 'せいかつ', - 'せいげん', - 'せいじ', - 'せいよう', - 'せおう', - 'せかいかん', - 'せきにん', - 'せきむ', - 'せきゆ', - 'せきらんうん', - 'せけん', - 'せこう', - 'せすじ', - 'せたい', - 'せたけ', - 'せっかく', - 'せっきゃく', - 'ぜっく', - 'せっけん', - 'せっこつ', - 'せっさたくま', - 'せつぞく', - 'せつだん', - 'せつでん', - 'せっぱん', - 'せつび', - 'せつぶん', - 'せつめい', - 'せつりつ', - 'せなか', - 'せのび', - 'せはば', - 'せびろ', - 'せぼね', - 'せまい', - 'せまる', - 'せめる', - 'せもたれ', - 'せりふ', - 'ぜんあく', - 'せんい', - 'せんえい', - 'せんか', - 'せんきょ', - 'せんく', - 'せんげん', - 'ぜんご', - 'せんさい', - 'せんしゅ', - 'せんすい', - 'せんせい', - 'せんぞ', - 'せんたく', - 'せんちょう', - 'せんてい', - 'せんとう', - 'せんぬき', - 'せんねん', - 'せんぱい', - 'ぜんぶ', - 'ぜんぽう', - 'せんむ', - 'せんめんじょ', - 'せんもん', - 'せんやく', - 'せんゆう', - 'せんよう', - 'ぜんら', - 'ぜんりゃく', - 'せんれい', - 'せんろ', - 'そあく', - 'そいとげる', - 'そいね', - 'そうがんきょう', - 'そうき', - 'そうご', - 'そうしん', - 'そうだん', - 'そうなん', - 'そうび', - 'そうめん', - 'そうり', - 'そえもの', - 'そえん', - 'そがい', - 'そげき', - 'そこう', - 'そこそこ', - 'そざい', - 'そしな', - 'そせい', - 'そせん', - 'そそぐ', - 'そだてる', - 'そつう', - 'そつえん', - 'そっかん', - 'そつぎょう', - 'そっけつ', - 'そっこう', - 'そっせん', - 'そっと', - 'そとがわ', - 'そとづら', - 'そなえる', - 'そなた', - 'そふぼ', - 'そぼく', - 'そぼろ', - 'そまつ', - 'そまる', - 'そむく', - 'そむりえ', - 'そめる', - 'そもそも', - 'そよかぜ', - 'そらまめ', - 'そろう', - 'そんかい', - 'そんけい', - 'そんざい', - 'そんしつ', - 'そんぞく', - 'そんちょう', - 'ぞんび', - 'ぞんぶん', - 'そんみん', - 'たあい', - 'たいいん', - 'たいうん', - 'たいえき', - 'たいおう', - 'だいがく', - 'たいき', - 'たいぐう', - 'たいけん', - 'たいこ', - 'たいざい', - 'だいじょうぶ', - 'だいすき', - 'たいせつ', - 'たいそう', - 'だいたい', - 'たいちょう', - 'たいてい', - 'だいどころ', - 'たいない', - 'たいねつ', - 'たいのう', - 'たいはん', - 'だいひょう', - 'たいふう', - 'たいへん', - 'たいほ', - 'たいまつばな', - 'たいみんぐ', - 'たいむ', - 'たいめん', - 'たいやき', - 'たいよう', - 'たいら', - 'たいりょく', - 'たいる', - 'たいわん', - 'たうえ', - 'たえる', - 'たおす', - 'たおる', - 'たおれる', - 'たかい', - 'たかね', - 'たきび', - 'たくさん', - 'たこく', - 'たこやき', - 'たさい', - 'たしざん', - 'だじゃれ', - 'たすける', - 'たずさわる', - 'たそがれ', - 'たたかう', - 'たたく', - 'ただしい', - 'たたみ', - 'たちばな', - 'だっかい', - 'だっきゃく', - 'だっこ', - 'だっしゅつ', - 'だったい', - 'たてる', - 'たとえる', - 'たなばた', - 'たにん', - 'たぬき', - 'たのしみ', - 'たはつ', - 'たぶん', - 'たべる', - 'たぼう', - 'たまご', - 'たまる', - 'だむる', - 'ためいき', - 'ためす', - 'ためる', - 'たもつ', - 'たやすい', - 'たよる', - 'たらす', - 'たりきほんがん', - 'たりょう', - 'たりる', - 'たると', - 'たれる', - 'たれんと', - 'たろっと', - 'たわむれる', - 'だんあつ', - 'たんい', - 'たんおん', - 'たんか', - 'たんき', - 'たんけん', - 'たんご', - 'たんさん', - 'たんじょうび', - 'だんせい', - 'たんそく', - 'たんたい', - 'だんち', - 'たんてい', - 'たんとう', - 'だんな', - 'たんにん', - 'だんねつ', - 'たんのう', - 'たんぴん', - 'だんぼう', - 'たんまつ', - 'たんめい', - 'だんれつ', - 'だんろ', - 'だんわ', - 'ちあい', - 'ちあん', - 'ちいき', - 'ちいさい', - 'ちえん', - 'ちかい', - 'ちから', - 'ちきゅう', - 'ちきん', - 'ちけいず', - 'ちけん', - 'ちこく', - 'ちさい', - 'ちしき', - 'ちしりょう', - 'ちせい', - 'ちそう', - 'ちたい', - 'ちたん', - 'ちちおや', - 'ちつじょ', - 'ちてき', - 'ちてん', - 'ちぬき', - 'ちぬり', - 'ちのう', - 'ちひょう', - 'ちへいせん', - 'ちほう', - 'ちまた', - 'ちみつ', - 'ちみどろ', - 'ちめいど', - 'ちゃんこなべ', - 'ちゅうい', - 'ちゆりょく', - 'ちょうし', - 'ちょさくけん', - 'ちらし', - 'ちらみ', - 'ちりがみ', - 'ちりょう', - 'ちるど', - 'ちわわ', - 'ちんたい', - 'ちんもく', - 'ついか', - 'ついたち', - 'つうか', - 'つうじょう', - 'つうはん', - 'つうわ', - 'つかう', - 'つかれる', - 'つくね', - 'つくる', - 'つけね', - 'つける', - 'つごう', - 'つたえる', - 'つづく', - 'つつじ', - 'つつむ', - 'つとめる', - 'つながる', - 'つなみ', - 'つねづね', - 'つのる', - 'つぶす', - 'つまらない', - 'つまる', - 'つみき', - 'つめたい', - 'つもり', - 'つもる', - 'つよい', - 'つるぼ', - 'つるみく', - 'つわもの', - 'つわり', - 'てあし', - 'てあて', - 'てあみ', - 'ていおん', - 'ていか', - 'ていき', - 'ていけい', - 'ていこく', - 'ていさつ', - 'ていし', - 'ていせい', - 'ていたい', - 'ていど', - 'ていねい', - 'ていひょう', - 'ていへん', - 'ていぼう', - 'てうち', - 'ておくれ', - 'てきとう', - 'てくび', - 'でこぼこ', - 'てさぎょう', - 'てさげ', - 'てすり', - 'てそう', - 'てちがい', - 'てちょう', - 'てつがく', - 'てつづき', - 'でっぱ', - 'てつぼう', - 'てつや', - 'でぬかえ', - 'てぬき', - 'てぬぐい', - 'てのひら', - 'てはい', - 'てぶくろ', - 'てふだ', - 'てほどき', - 'てほん', - 'てまえ', - 'てまきずし', - 'てみじか', - 'てみやげ', - 'てらす', - 'てれび', - 'てわけ', - 'てわたし', - 'でんあつ', - 'てんいん', - 'てんかい', - 'てんき', - 'てんぐ', - 'てんけん', - 'てんごく', - 'てんさい', - 'てんし', - 'てんすう', - 'でんち', - 'てんてき', - 'てんとう', - 'てんない', - 'てんぷら', - 'てんぼうだい', - 'てんめつ', - 'てんらんかい', - 'でんりょく', - 'でんわ', - 'どあい', - 'といれ', - 'どうかん', - 'とうきゅう', - 'どうぐ', - 'とうし', - 'とうむぎ', - 'とおい', - 'とおか', - 'とおく', - 'とおす', - 'とおる', - 'とかい', - 'とかす', - 'ときおり', - 'ときどき', - 'とくい', - 'とくしゅう', - 'とくてん', - 'とくに', - 'とくべつ', - 'とけい', - 'とける', - 'とこや', - 'とさか', - 'としょかん', - 'とそう', - 'とたん', - 'とちゅう', - 'とっきゅう', - 'とっくん', - 'とつぜん', - 'とつにゅう', - 'とどける', - 'ととのえる', - 'とない', - 'となえる', - 'となり', - 'とのさま', - 'とばす', - 'どぶがわ', - 'とほう', - 'とまる', - 'とめる', - 'ともだち', - 'ともる', - 'どようび', - 'とらえる', - 'とんかつ', - 'どんぶり', - 'ないかく', - 'ないこう', - 'ないしょ', - 'ないす', - 'ないせん', - 'ないそう', - 'なおす', - 'ながい', - 'なくす', - 'なげる', - 'なこうど', - 'なさけ', - 'なたでここ', - 'なっとう', - 'なつやすみ', - 'ななおし', - 'なにごと', - 'なにもの', - 'なにわ', - 'なのか', - 'なふだ', - 'なまいき', - 'なまえ', - 'なまみ', - 'なみだ', - 'なめらか', - 'なめる', - 'なやむ', - 'ならう', - 'ならび', - 'ならぶ', - 'なれる', - 'なわとび', - 'なわばり', - 'にあう', - 'にいがた', - 'にうけ', - 'におい', - 'にかい', - 'にがて', - 'にきび', - 'にくしみ', - 'にくまん', - 'にげる', - 'にさんかたんそ', - 'にしき', - 'にせもの', - 'にちじょう', - 'にちようび', - 'にっか', - 'にっき', - 'にっけい', - 'にっこう', - 'にっさん', - 'にっしょく', - 'にっすう', - 'にっせき', - 'にってい', - 'になう', - 'にほん', - 'にまめ', - 'にもつ', - 'にやり', - 'にゅういん', - 'にりんしゃ', - 'にわとり', - 'にんい', - 'にんか', - 'にんき', - 'にんげん', - 'にんしき', - 'にんずう', - 'にんそう', - 'にんたい', - 'にんち', - 'にんてい', - 'にんにく', - 'にんぷ', - 'にんまり', - 'にんむ', - 'にんめい', - 'にんよう', - 'ぬいくぎ', - 'ぬかす', - 'ぬぐいとる', - 'ぬぐう', - 'ぬくもり', - 'ぬすむ', - 'ぬまえび', - 'ぬめり', - 'ぬらす', - 'ぬんちゃく', - 'ねあげ', - 'ねいき', - 'ねいる', - 'ねいろ', - 'ねぐせ', - 'ねくたい', - 'ねくら', - 'ねこぜ', - 'ねこむ', - 'ねさげ', - 'ねすごす', - 'ねそべる', - 'ねだん', - 'ねつい', - 'ねっしん', - 'ねつぞう', - 'ねったいぎょ', - 'ねぶそく', - 'ねふだ', - 'ねぼう', - 'ねほりはほり', - 'ねまき', - 'ねまわし', - 'ねみみ', - 'ねむい', - 'ねむたい', - 'ねもと', - 'ねらう', - 'ねわざ', - 'ねんいり', - 'ねんおし', - 'ねんかん', - 'ねんきん', - 'ねんぐ', - 'ねんざ', - 'ねんし', - 'ねんちゃく', - 'ねんど', - 'ねんぴ', - 'ねんぶつ', - 'ねんまつ', - 'ねんりょう', - 'ねんれい', - 'のいず', - 'のおづま', - 'のがす', - 'のきなみ', - 'のこぎり', - 'のこす', - 'のこる', - 'のせる', - 'のぞく', - 'のぞむ', - 'のたまう', - 'のちほど', - 'のっく', - 'のばす', - 'のはら', - 'のべる', - 'のぼる', - 'のみもの', - 'のやま', - 'のらいぬ', - 'のらねこ', - 'のりもの', - 'のりゆき', - 'のれん', - 'のんき', - 'ばあい', - 'はあく', - 'ばあさん', - 'ばいか', - 'ばいく', - 'はいけん', - 'はいご', - 'はいしん', - 'はいすい', - 'はいせん', - 'はいそう', - 'はいち', - 'ばいばい', - 'はいれつ', - 'はえる', - 'はおる', - 'はかい', - 'ばかり', - 'はかる', - 'はくしゅ', - 'はけん', - 'はこぶ', - 'はさみ', - 'はさん', - 'はしご', - 'ばしょ', - 'はしる', - 'はせる', - 'ぱそこん', - 'はそん', - 'はたん', - 'はちみつ', - 'はつおん', - 'はっかく', - 'はづき', - 'はっきり', - 'はっくつ', - 'はっけん', - 'はっこう', - 'はっさん', - 'はっしん', - 'はったつ', - 'はっちゅう', - 'はってん', - 'はっぴょう', - 'はっぽう', - 'はなす', - 'はなび', - 'はにかむ', - 'はぶらし', - 'はみがき', - 'はむかう', - 'はめつ', - 'はやい', - 'はやし', - 'はらう', - 'はろうぃん', - 'はわい', - 'はんい', - 'はんえい', - 'はんおん', - 'はんかく', - 'はんきょう', - 'ばんぐみ', - 'はんこ', - 'はんしゃ', - 'はんすう', - 'はんだん', - 'ぱんち', - 'ぱんつ', - 'はんてい', - 'はんとし', - 'はんのう', - 'はんぱ', - 'はんぶん', - 'はんぺん', - 'はんぼうき', - 'はんめい', - 'はんらん', - 'はんろん', - 'ひいき', - 'ひうん', - 'ひえる', - 'ひかく', - 'ひかり', - 'ひかる', - 'ひかん', - 'ひくい', - 'ひけつ', - 'ひこうき', - 'ひこく', - 'ひさい', - 'ひさしぶり', - 'ひさん', - 'びじゅつかん', - 'ひしょ', - 'ひそか', - 'ひそむ', - 'ひたむき', - 'ひだり', - 'ひたる', - 'ひつぎ', - 'ひっこし', - 'ひっし', - 'ひつじゅひん', - 'ひっす', - 'ひつぜん', - 'ぴったり', - 'ぴっちり', - 'ひつよう', - 'ひてい', - 'ひとごみ', - 'ひなまつり', - 'ひなん', - 'ひねる', - 'ひはん', - 'ひびく', - 'ひひょう', - 'ひほう', - 'ひまわり', - 'ひまん', - 'ひみつ', - 'ひめい', - 'ひめじし', - 'ひやけ', - 'ひやす', - 'ひよう', - 'びょうき', - 'ひらがな', - 'ひらく', - 'ひりつ', - 'ひりょう', - 'ひるま', - 'ひるやすみ', - 'ひれい', - 'ひろい', - 'ひろう', - 'ひろき', - 'ひろゆき', - 'ひんかく', - 'ひんけつ', - 'ひんこん', - 'ひんしゅ', - 'ひんそう', - 'ぴんち', - 'ひんぱん', - 'びんぼう', - 'ふあん', - 'ふいうち', - 'ふうけい', - 'ふうせん', - 'ぷうたろう', - 'ふうとう', - 'ふうふ', - 'ふえる', - 'ふおん', - 'ふかい', - 'ふきん', - 'ふくざつ', - 'ふくぶくろ', - 'ふこう', - 'ふさい', - 'ふしぎ', - 'ふじみ', - 'ふすま', - 'ふせい', - 'ふせぐ', - 'ふそく', - 'ぶたにく', - 'ふたん', - 'ふちょう', - 'ふつう', - 'ふつか', - 'ふっかつ', - 'ふっき', - 'ふっこく', - 'ぶどう', - 'ふとる', - 'ふとん', - 'ふのう', - 'ふはい', - 'ふひょう', - 'ふへん', - 'ふまん', - 'ふみん', - 'ふめつ', - 'ふめん', - 'ふよう', - 'ふりこ', - 'ふりる', - 'ふるい', - 'ふんいき', - 'ぶんがく', - 'ぶんぐ', - 'ふんしつ', - 'ぶんせき', - 'ふんそう', - 'ぶんぽう', - 'へいあん', - 'へいおん', - 'へいがい', - 'へいき', - 'へいげん', - 'へいこう', - 'へいさ', - 'へいしゃ', - 'へいせつ', - 'へいそ', - 'へいたく', - 'へいてん', - 'へいねつ', - 'へいわ', - 'へきが', - 'へこむ', - 'べにいろ', - 'べにしょうが', - 'へらす', - 'へんかん', - 'べんきょう', - 'べんごし', - 'へんさい', - 'へんたい', - 'べんり', - 'ほあん', - 'ほいく', - 'ぼうぎょ', - 'ほうこく', - 'ほうそう', - 'ほうほう', - 'ほうもん', - 'ほうりつ', - 'ほえる', - 'ほおん', - 'ほかん', - 'ほきょう', - 'ぼきん', - 'ほくろ', - 'ほけつ', - 'ほけん', - 'ほこう', - 'ほこる', - 'ほしい', - 'ほしつ', - 'ほしゅ', - 'ほしょう', - 'ほせい', - 'ほそい', - 'ほそく', - 'ほたて', - 'ほたる', - 'ぽちぶくろ', - 'ほっきょく', - 'ほっさ', - 'ほったん', - 'ほとんど', - 'ほめる', - 'ほんい', - 'ほんき', - 'ほんけ', - 'ほんしつ', - 'ほんやく', - 'まいにち', - 'まかい', - 'まかせる', - 'まがる', - 'まける', - 'まこと', - 'まさつ', - 'まじめ', - 'ますく', - 'まぜる', - 'まつり', - 'まとめ', - 'まなぶ', - 'まぬけ', - 'まねく', - 'まほう', - 'まもる', - 'まゆげ', - 'まよう', - 'まろやか', - 'まわす', - 'まわり', - 'まわる', - 'まんが', - 'まんきつ', - 'まんぞく', - 'まんなか', - 'みいら', - 'みうち', - 'みえる', - 'みがく', - 'みかた', - 'みかん', - 'みけん', - 'みこん', - 'みじかい', - 'みすい', - 'みすえる', - 'みせる', - 'みっか', - 'みつかる', - 'みつける', - 'みてい', - 'みとめる', - 'みなと', - 'みなみかさい', - 'みねらる', - 'みのう', - 'みのがす', - 'みほん', - 'みもと', - 'みやげ', - 'みらい', - 'みりょく', - 'みわく', - 'みんか', - 'みんぞく', - 'むいか', - 'むえき', - 'むえん', - 'むかい', - 'むかう', - 'むかえ', - 'むかし', - 'むぎちゃ', - 'むける', - 'むげん', - 'むさぼる', - 'むしあつい', - 'むしば', - 'むじゅん', - 'むしろ', - 'むすう', - 'むすこ', - 'むすぶ', - 'むすめ', - 'むせる', - 'むせん', - 'むちゅう', - 'むなしい', - 'むのう', - 'むやみ', - 'むよう', - 'むらさき', - 'むりょう', - 'むろん', - 'めいあん', - 'めいうん', - 'めいえん', - 'めいかく', - 'めいきょく', - 'めいさい', - 'めいし', - 'めいそう', - 'めいぶつ', - 'めいれい', - 'めいわく', - 'めぐまれる', - 'めざす', - 'めした', - 'めずらしい', - 'めだつ', - 'めまい', - 'めやす', - 'めんきょ', - 'めんせき', - 'めんどう', - 'もうしあげる', - 'もうどうけん', - 'もえる', - 'もくし', - 'もくてき', - 'もくようび', - 'もちろん', - 'もどる', - 'もらう', - 'もんく', - 'もんだい', - 'やおや', - 'やける', - 'やさい', - 'やさしい', - 'やすい', - 'やすたろう', - 'やすみ', - 'やせる', - 'やそう', - 'やたい', - 'やちん', - 'やっと', - 'やっぱり', - 'やぶる', - 'やめる', - 'ややこしい', - 'やよい', - 'やわらかい', - 'ゆうき', - 'ゆうびんきょく', - 'ゆうべ', - 'ゆうめい', - 'ゆけつ', - 'ゆしゅつ', - 'ゆせん', - 'ゆそう', - 'ゆたか', - 'ゆちゃく', - 'ゆでる', - 'ゆにゅう', - 'ゆびわ', - 'ゆらい', - 'ゆれる', - 'ようい', - 'ようか', - 'ようきゅう', - 'ようじ', - 'ようす', - 'ようちえん', - 'よかぜ', - 'よかん', - 'よきん', - 'よくせい', - 'よくぼう', - 'よけい', - 'よごれる', - 'よさん', - 'よしゅう', - 'よそう', - 'よそく', - 'よっか', - 'よてい', - 'よどがわく', - 'よねつ', - 'よやく', - 'よゆう', - 'よろこぶ', - 'よろしい', - 'らいう', - 'らくがき', - 'らくご', - 'らくさつ', - 'らくだ', - 'らしんばん', - 'らせん', - 'らぞく', - 'らたい', - 'らっか', - 'られつ', - 'りえき', - 'りかい', - 'りきさく', - 'りきせつ', - 'りくぐん', - 'りくつ', - 'りけん', - 'りこう', - 'りせい', - 'りそう', - 'りそく', - 'りてん', - 'りねん', - 'りゆう', - 'りゅうがく', - 'りよう', - 'りょうり', - 'りょかん', - 'りょくちゃ', - 'りょこう', - 'りりく', - 'りれき', - 'りろん', - 'りんご', - 'るいけい', - 'るいさい', - 'るいじ', - 'るいせき', - 'るすばん', - 'るりがわら', - 'れいかん', - 'れいぎ', - 'れいせい', - 'れいぞうこ', - 'れいとう', - 'れいぼう', - 'れきし', - 'れきだい', - 'れんあい', - 'れんけい', - 'れんこん', - 'れんさい', - 'れんしゅう', - 'れんぞく', - 'れんらく', - 'ろうか', - 'ろうご', - 'ろうじん', - 'ろうそく', - 'ろくが', - 'ろこつ', - 'ろじうら', - 'ろしゅつ', - 'ろせん', - 'ろてん', - 'ろめん', - 'ろれつ', - 'ろんぎ', - 'ろんぱ', - 'ろんぶん', - 'ろんり', - 'わかす', - 'わかめ', - 'わかやま', - 'わかれる', - 'わしつ', - 'わじまし', - 'わすれもの', - 'わらう', - 'われる', -]; diff --git a/src/wordlists/korean.d.ts b/src/wordlists/korean.d.ts deleted file mode 100644 index d451d2b..0000000 --- a/src/wordlists/korean.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: string[]; -export default _default; diff --git a/src/wordlists/korean.js b/src/wordlists/korean.js deleted file mode 100644 index 96f0374..0000000 --- a/src/wordlists/korean.js +++ /dev/null @@ -1,2050 +0,0 @@ -export default [ - '가격', - '가끔', - '가난', - '가능', - '가득', - '가르침', - '가뭄', - '가방', - '가상', - '가슴', - '가운데', - '가을', - '가이드', - '가입', - '가장', - '가정', - '가족', - '가죽', - '각오', - '각자', - '간격', - '간부', - '간섭', - '간장', - '간접', - '간판', - '갈등', - '갈비', - '갈색', - '갈증', - '감각', - '감기', - '감소', - '감수성', - '감자', - '감정', - '갑자기', - '강남', - '강당', - '강도', - '강력히', - '강변', - '강북', - '강사', - '강수량', - '강아지', - '강원도', - '강의', - '강제', - '강조', - '같이', - '개구리', - '개나리', - '개방', - '개별', - '개선', - '개성', - '개인', - '객관적', - '거실', - '거액', - '거울', - '거짓', - '거품', - '걱정', - '건강', - '건물', - '건설', - '건조', - '건축', - '걸음', - '검사', - '검토', - '게시판', - '게임', - '겨울', - '견해', - '결과', - '결국', - '결론', - '결석', - '결승', - '결심', - '결정', - '결혼', - '경계', - '경고', - '경기', - '경력', - '경복궁', - '경비', - '경상도', - '경영', - '경우', - '경쟁', - '경제', - '경주', - '경찰', - '경치', - '경향', - '경험', - '계곡', - '계단', - '계란', - '계산', - '계속', - '계약', - '계절', - '계층', - '계획', - '고객', - '고구려', - '고궁', - '고급', - '고등학생', - '고무신', - '고민', - '고양이', - '고장', - '고전', - '고집', - '고춧가루', - '고통', - '고향', - '곡식', - '골목', - '골짜기', - '골프', - '공간', - '공개', - '공격', - '공군', - '공급', - '공기', - '공동', - '공무원', - '공부', - '공사', - '공식', - '공업', - '공연', - '공원', - '공장', - '공짜', - '공책', - '공통', - '공포', - '공항', - '공휴일', - '과목', - '과일', - '과장', - '과정', - '과학', - '관객', - '관계', - '관광', - '관념', - '관람', - '관련', - '관리', - '관습', - '관심', - '관점', - '관찰', - '광경', - '광고', - '광장', - '광주', - '괴로움', - '굉장히', - '교과서', - '교문', - '교복', - '교실', - '교양', - '교육', - '교장', - '교직', - '교통', - '교환', - '교훈', - '구경', - '구름', - '구멍', - '구별', - '구분', - '구석', - '구성', - '구속', - '구역', - '구입', - '구청', - '구체적', - '국가', - '국기', - '국내', - '국립', - '국물', - '국민', - '국수', - '국어', - '국왕', - '국적', - '국제', - '국회', - '군대', - '군사', - '군인', - '궁극적', - '권리', - '권위', - '권투', - '귀국', - '귀신', - '규정', - '규칙', - '균형', - '그날', - '그냥', - '그늘', - '그러나', - '그룹', - '그릇', - '그림', - '그제서야', - '그토록', - '극복', - '극히', - '근거', - '근교', - '근래', - '근로', - '근무', - '근본', - '근원', - '근육', - '근처', - '글씨', - '글자', - '금강산', - '금고', - '금년', - '금메달', - '금액', - '금연', - '금요일', - '금지', - '긍정적', - '기간', - '기관', - '기념', - '기능', - '기독교', - '기둥', - '기록', - '기름', - '기법', - '기본', - '기분', - '기쁨', - '기숙사', - '기술', - '기억', - '기업', - '기온', - '기운', - '기원', - '기적', - '기준', - '기침', - '기혼', - '기획', - '긴급', - '긴장', - '길이', - '김밥', - '김치', - '김포공항', - '깍두기', - '깜빡', - '깨달음', - '깨소금', - '껍질', - '꼭대기', - '꽃잎', - '나들이', - '나란히', - '나머지', - '나물', - '나침반', - '나흘', - '낙엽', - '난방', - '날개', - '날씨', - '날짜', - '남녀', - '남대문', - '남매', - '남산', - '남자', - '남편', - '남학생', - '낭비', - '낱말', - '내년', - '내용', - '내일', - '냄비', - '냄새', - '냇물', - '냉동', - '냉면', - '냉방', - '냉장고', - '넥타이', - '넷째', - '노동', - '노란색', - '노력', - '노인', - '녹음', - '녹차', - '녹화', - '논리', - '논문', - '논쟁', - '놀이', - '농구', - '농담', - '농민', - '농부', - '농업', - '농장', - '농촌', - '높이', - '눈동자', - '눈물', - '눈썹', - '뉴욕', - '느낌', - '늑대', - '능동적', - '능력', - '다방', - '다양성', - '다음', - '다이어트', - '다행', - '단계', - '단골', - '단독', - '단맛', - '단순', - '단어', - '단위', - '단점', - '단체', - '단추', - '단편', - '단풍', - '달걀', - '달러', - '달력', - '달리', - '닭고기', - '담당', - '담배', - '담요', - '담임', - '답변', - '답장', - '당근', - '당분간', - '당연히', - '당장', - '대규모', - '대낮', - '대단히', - '대답', - '대도시', - '대략', - '대량', - '대륙', - '대문', - '대부분', - '대신', - '대응', - '대장', - '대전', - '대접', - '대중', - '대책', - '대출', - '대충', - '대통령', - '대학', - '대한민국', - '대합실', - '대형', - '덩어리', - '데이트', - '도대체', - '도덕', - '도둑', - '도망', - '도서관', - '도심', - '도움', - '도입', - '도자기', - '도저히', - '도전', - '도중', - '도착', - '독감', - '독립', - '독서', - '독일', - '독창적', - '동화책', - '뒷모습', - '뒷산', - '딸아이', - '마누라', - '마늘', - '마당', - '마라톤', - '마련', - '마무리', - '마사지', - '마약', - '마요네즈', - '마을', - '마음', - '마이크', - '마중', - '마지막', - '마찬가지', - '마찰', - '마흔', - '막걸리', - '막내', - '막상', - '만남', - '만두', - '만세', - '만약', - '만일', - '만점', - '만족', - '만화', - '많이', - '말기', - '말씀', - '말투', - '맘대로', - '망원경', - '매년', - '매달', - '매력', - '매번', - '매스컴', - '매일', - '매장', - '맥주', - '먹이', - '먼저', - '먼지', - '멀리', - '메일', - '며느리', - '며칠', - '면담', - '멸치', - '명단', - '명령', - '명예', - '명의', - '명절', - '명칭', - '명함', - '모금', - '모니터', - '모델', - '모든', - '모범', - '모습', - '모양', - '모임', - '모조리', - '모집', - '모퉁이', - '목걸이', - '목록', - '목사', - '목소리', - '목숨', - '목적', - '목표', - '몰래', - '몸매', - '몸무게', - '몸살', - '몸속', - '몸짓', - '몸통', - '몹시', - '무관심', - '무궁화', - '무더위', - '무덤', - '무릎', - '무슨', - '무엇', - '무역', - '무용', - '무조건', - '무지개', - '무척', - '문구', - '문득', - '문법', - '문서', - '문제', - '문학', - '문화', - '물가', - '물건', - '물결', - '물고기', - '물론', - '물리학', - '물음', - '물질', - '물체', - '미국', - '미디어', - '미사일', - '미술', - '미역', - '미용실', - '미움', - '미인', - '미팅', - '미혼', - '민간', - '민족', - '민주', - '믿음', - '밀가루', - '밀리미터', - '밑바닥', - '바가지', - '바구니', - '바나나', - '바늘', - '바닥', - '바닷가', - '바람', - '바이러스', - '바탕', - '박물관', - '박사', - '박수', - '반대', - '반드시', - '반말', - '반발', - '반성', - '반응', - '반장', - '반죽', - '반지', - '반찬', - '받침', - '발가락', - '발걸음', - '발견', - '발달', - '발레', - '발목', - '발바닥', - '발생', - '발음', - '발자국', - '발전', - '발톱', - '발표', - '밤하늘', - '밥그릇', - '밥맛', - '밥상', - '밥솥', - '방금', - '방면', - '방문', - '방바닥', - '방법', - '방송', - '방식', - '방안', - '방울', - '방지', - '방학', - '방해', - '방향', - '배경', - '배꼽', - '배달', - '배드민턴', - '백두산', - '백색', - '백성', - '백인', - '백제', - '백화점', - '버릇', - '버섯', - '버튼', - '번개', - '번역', - '번지', - '번호', - '벌금', - '벌레', - '벌써', - '범위', - '범인', - '범죄', - '법률', - '법원', - '법적', - '법칙', - '베이징', - '벨트', - '변경', - '변동', - '변명', - '변신', - '변호사', - '변화', - '별도', - '별명', - '별일', - '병실', - '병아리', - '병원', - '보관', - '보너스', - '보라색', - '보람', - '보름', - '보상', - '보안', - '보자기', - '보장', - '보전', - '보존', - '보통', - '보편적', - '보험', - '복도', - '복사', - '복숭아', - '복습', - '볶음', - '본격적', - '본래', - '본부', - '본사', - '본성', - '본인', - '본질', - '볼펜', - '봉사', - '봉지', - '봉투', - '부근', - '부끄러움', - '부담', - '부동산', - '부문', - '부분', - '부산', - '부상', - '부엌', - '부인', - '부작용', - '부장', - '부정', - '부족', - '부지런히', - '부친', - '부탁', - '부품', - '부회장', - '북부', - '북한', - '분노', - '분량', - '분리', - '분명', - '분석', - '분야', - '분위기', - '분필', - '분홍색', - '불고기', - '불과', - '불교', - '불꽃', - '불만', - '불법', - '불빛', - '불안', - '불이익', - '불행', - '브랜드', - '비극', - '비난', - '비닐', - '비둘기', - '비디오', - '비로소', - '비만', - '비명', - '비밀', - '비바람', - '비빔밥', - '비상', - '비용', - '비율', - '비중', - '비타민', - '비판', - '빌딩', - '빗물', - '빗방울', - '빗줄기', - '빛깔', - '빨간색', - '빨래', - '빨리', - '사건', - '사계절', - '사나이', - '사냥', - '사람', - '사랑', - '사립', - '사모님', - '사물', - '사방', - '사상', - '사생활', - '사설', - '사슴', - '사실', - '사업', - '사용', - '사월', - '사장', - '사전', - '사진', - '사촌', - '사춘기', - '사탕', - '사투리', - '사흘', - '산길', - '산부인과', - '산업', - '산책', - '살림', - '살인', - '살짝', - '삼계탕', - '삼국', - '삼십', - '삼월', - '삼촌', - '상관', - '상금', - '상대', - '상류', - '상반기', - '상상', - '상식', - '상업', - '상인', - '상자', - '상점', - '상처', - '상추', - '상태', - '상표', - '상품', - '상황', - '새벽', - '색깔', - '색연필', - '생각', - '생명', - '생물', - '생방송', - '생산', - '생선', - '생신', - '생일', - '생활', - '서랍', - '서른', - '서명', - '서민', - '서비스', - '서양', - '서울', - '서적', - '서점', - '서쪽', - '서클', - '석사', - '석유', - '선거', - '선물', - '선배', - '선생', - '선수', - '선원', - '선장', - '선전', - '선택', - '선풍기', - '설거지', - '설날', - '설렁탕', - '설명', - '설문', - '설사', - '설악산', - '설치', - '설탕', - '섭씨', - '성공', - '성당', - '성명', - '성별', - '성인', - '성장', - '성적', - '성질', - '성함', - '세금', - '세미나', - '세상', - '세월', - '세종대왕', - '세탁', - '센터', - '센티미터', - '셋째', - '소규모', - '소극적', - '소금', - '소나기', - '소년', - '소득', - '소망', - '소문', - '소설', - '소속', - '소아과', - '소용', - '소원', - '소음', - '소중히', - '소지품', - '소질', - '소풍', - '소형', - '속담', - '속도', - '속옷', - '손가락', - '손길', - '손녀', - '손님', - '손등', - '손목', - '손뼉', - '손실', - '손질', - '손톱', - '손해', - '솔직히', - '솜씨', - '송아지', - '송이', - '송편', - '쇠고기', - '쇼핑', - '수건', - '수년', - '수단', - '수돗물', - '수동적', - '수면', - '수명', - '수박', - '수상', - '수석', - '수술', - '수시로', - '수업', - '수염', - '수영', - '수입', - '수준', - '수집', - '수출', - '수컷', - '수필', - '수학', - '수험생', - '수화기', - '숙녀', - '숙소', - '숙제', - '순간', - '순서', - '순수', - '순식간', - '순위', - '숟가락', - '술병', - '술집', - '숫자', - '스님', - '스물', - '스스로', - '스승', - '스웨터', - '스위치', - '스케이트', - '스튜디오', - '스트레스', - '스포츠', - '슬쩍', - '슬픔', - '습관', - '습기', - '승객', - '승리', - '승부', - '승용차', - '승진', - '시각', - '시간', - '시골', - '시금치', - '시나리오', - '시댁', - '시리즈', - '시멘트', - '시민', - '시부모', - '시선', - '시설', - '시스템', - '시아버지', - '시어머니', - '시월', - '시인', - '시일', - '시작', - '시장', - '시절', - '시점', - '시중', - '시즌', - '시집', - '시청', - '시합', - '시험', - '식구', - '식기', - '식당', - '식량', - '식료품', - '식물', - '식빵', - '식사', - '식생활', - '식초', - '식탁', - '식품', - '신고', - '신규', - '신념', - '신문', - '신발', - '신비', - '신사', - '신세', - '신용', - '신제품', - '신청', - '신체', - '신화', - '실감', - '실내', - '실력', - '실례', - '실망', - '실수', - '실습', - '실시', - '실장', - '실정', - '실질적', - '실천', - '실체', - '실컷', - '실태', - '실패', - '실험', - '실현', - '심리', - '심부름', - '심사', - '심장', - '심정', - '심판', - '쌍둥이', - '씨름', - '씨앗', - '아가씨', - '아나운서', - '아드님', - '아들', - '아쉬움', - '아스팔트', - '아시아', - '아울러', - '아저씨', - '아줌마', - '아직', - '아침', - '아파트', - '아프리카', - '아픔', - '아홉', - '아흔', - '악기', - '악몽', - '악수', - '안개', - '안경', - '안과', - '안내', - '안녕', - '안동', - '안방', - '안부', - '안주', - '알루미늄', - '알코올', - '암시', - '암컷', - '압력', - '앞날', - '앞문', - '애인', - '애정', - '액수', - '앨범', - '야간', - '야단', - '야옹', - '약간', - '약국', - '약속', - '약수', - '약점', - '약품', - '약혼녀', - '양념', - '양력', - '양말', - '양배추', - '양주', - '양파', - '어둠', - '어려움', - '어른', - '어젯밤', - '어쨌든', - '어쩌다가', - '어쩐지', - '언니', - '언덕', - '언론', - '언어', - '얼굴', - '얼른', - '얼음', - '얼핏', - '엄마', - '업무', - '업종', - '업체', - '엉덩이', - '엉망', - '엉터리', - '엊그제', - '에너지', - '에어컨', - '엔진', - '여건', - '여고생', - '여관', - '여군', - '여권', - '여대생', - '여덟', - '여동생', - '여든', - '여론', - '여름', - '여섯', - '여성', - '여왕', - '여인', - '여전히', - '여직원', - '여학생', - '여행', - '역사', - '역시', - '역할', - '연결', - '연구', - '연극', - '연기', - '연락', - '연설', - '연세', - '연속', - '연습', - '연애', - '연예인', - '연인', - '연장', - '연주', - '연출', - '연필', - '연합', - '연휴', - '열기', - '열매', - '열쇠', - '열심히', - '열정', - '열차', - '열흘', - '염려', - '엽서', - '영국', - '영남', - '영상', - '영양', - '영역', - '영웅', - '영원히', - '영하', - '영향', - '영혼', - '영화', - '옆구리', - '옆방', - '옆집', - '예감', - '예금', - '예방', - '예산', - '예상', - '예선', - '예술', - '예습', - '예식장', - '예약', - '예전', - '예절', - '예정', - '예컨대', - '옛날', - '오늘', - '오락', - '오랫동안', - '오렌지', - '오로지', - '오른발', - '오븐', - '오십', - '오염', - '오월', - '오전', - '오직', - '오징어', - '오페라', - '오피스텔', - '오히려', - '옥상', - '옥수수', - '온갖', - '온라인', - '온몸', - '온종일', - '온통', - '올가을', - '올림픽', - '올해', - '옷차림', - '와이셔츠', - '와인', - '완성', - '완전', - '왕비', - '왕자', - '왜냐하면', - '왠지', - '외갓집', - '외국', - '외로움', - '외삼촌', - '외출', - '외침', - '외할머니', - '왼발', - '왼손', - '왼쪽', - '요금', - '요일', - '요즘', - '요청', - '용기', - '용서', - '용어', - '우산', - '우선', - '우승', - '우연히', - '우정', - '우체국', - '우편', - '운동', - '운명', - '운반', - '운전', - '운행', - '울산', - '울음', - '움직임', - '웃어른', - '웃음', - '워낙', - '원고', - '원래', - '원서', - '원숭이', - '원인', - '원장', - '원피스', - '월급', - '월드컵', - '월세', - '월요일', - '웨이터', - '위반', - '위법', - '위성', - '위원', - '위험', - '위협', - '윗사람', - '유난히', - '유럽', - '유명', - '유물', - '유산', - '유적', - '유치원', - '유학', - '유행', - '유형', - '육군', - '육상', - '육십', - '육체', - '은행', - '음력', - '음료', - '음반', - '음성', - '음식', - '음악', - '음주', - '의견', - '의논', - '의문', - '의복', - '의식', - '의심', - '의외로', - '의욕', - '의원', - '의학', - '이것', - '이곳', - '이념', - '이놈', - '이달', - '이대로', - '이동', - '이렇게', - '이력서', - '이론적', - '이름', - '이민', - '이발소', - '이별', - '이불', - '이빨', - '이상', - '이성', - '이슬', - '이야기', - '이용', - '이웃', - '이월', - '이윽고', - '이익', - '이전', - '이중', - '이튿날', - '이틀', - '이혼', - '인간', - '인격', - '인공', - '인구', - '인근', - '인기', - '인도', - '인류', - '인물', - '인생', - '인쇄', - '인연', - '인원', - '인재', - '인종', - '인천', - '인체', - '인터넷', - '인하', - '인형', - '일곱', - '일기', - '일단', - '일대', - '일등', - '일반', - '일본', - '일부', - '일상', - '일생', - '일손', - '일요일', - '일월', - '일정', - '일종', - '일주일', - '일찍', - '일체', - '일치', - '일행', - '일회용', - '임금', - '임무', - '입대', - '입력', - '입맛', - '입사', - '입술', - '입시', - '입원', - '입장', - '입학', - '자가용', - '자격', - '자극', - '자동', - '자랑', - '자부심', - '자식', - '자신', - '자연', - '자원', - '자율', - '자전거', - '자정', - '자존심', - '자판', - '작가', - '작년', - '작성', - '작업', - '작용', - '작은딸', - '작품', - '잔디', - '잔뜩', - '잔치', - '잘못', - '잠깐', - '잠수함', - '잠시', - '잠옷', - '잠자리', - '잡지', - '장관', - '장군', - '장기간', - '장래', - '장례', - '장르', - '장마', - '장면', - '장모', - '장미', - '장비', - '장사', - '장소', - '장식', - '장애인', - '장인', - '장점', - '장차', - '장학금', - '재능', - '재빨리', - '재산', - '재생', - '재작년', - '재정', - '재채기', - '재판', - '재학', - '재활용', - '저것', - '저고리', - '저곳', - '저녁', - '저런', - '저렇게', - '저번', - '저울', - '저절로', - '저축', - '적극', - '적당히', - '적성', - '적용', - '적응', - '전개', - '전공', - '전기', - '전달', - '전라도', - '전망', - '전문', - '전반', - '전부', - '전세', - '전시', - '전용', - '전자', - '전쟁', - '전주', - '전철', - '전체', - '전통', - '전혀', - '전후', - '절대', - '절망', - '절반', - '절약', - '절차', - '점검', - '점수', - '점심', - '점원', - '점점', - '점차', - '접근', - '접시', - '접촉', - '젓가락', - '정거장', - '정도', - '정류장', - '정리', - '정말', - '정면', - '정문', - '정반대', - '정보', - '정부', - '정비', - '정상', - '정성', - '정오', - '정원', - '정장', - '정지', - '정치', - '정확히', - '제공', - '제과점', - '제대로', - '제목', - '제발', - '제법', - '제삿날', - '제안', - '제일', - '제작', - '제주도', - '제출', - '제품', - '제한', - '조각', - '조건', - '조금', - '조깅', - '조명', - '조미료', - '조상', - '조선', - '조용히', - '조절', - '조정', - '조직', - '존댓말', - '존재', - '졸업', - '졸음', - '종교', - '종로', - '종류', - '종소리', - '종업원', - '종종', - '종합', - '좌석', - '죄인', - '주관적', - '주름', - '주말', - '주머니', - '주먹', - '주문', - '주민', - '주방', - '주변', - '주식', - '주인', - '주일', - '주장', - '주전자', - '주택', - '준비', - '줄거리', - '줄기', - '줄무늬', - '중간', - '중계방송', - '중국', - '중년', - '중단', - '중독', - '중반', - '중부', - '중세', - '중소기업', - '중순', - '중앙', - '중요', - '중학교', - '즉석', - '즉시', - '즐거움', - '증가', - '증거', - '증권', - '증상', - '증세', - '지각', - '지갑', - '지경', - '지극히', - '지금', - '지급', - '지능', - '지름길', - '지리산', - '지방', - '지붕', - '지식', - '지역', - '지우개', - '지원', - '지적', - '지점', - '지진', - '지출', - '직선', - '직업', - '직원', - '직장', - '진급', - '진동', - '진로', - '진료', - '진리', - '진짜', - '진찰', - '진출', - '진통', - '진행', - '질문', - '질병', - '질서', - '짐작', - '집단', - '집안', - '집중', - '짜증', - '찌꺼기', - '차남', - '차라리', - '차량', - '차림', - '차별', - '차선', - '차츰', - '착각', - '찬물', - '찬성', - '참가', - '참기름', - '참새', - '참석', - '참여', - '참외', - '참조', - '찻잔', - '창가', - '창고', - '창구', - '창문', - '창밖', - '창작', - '창조', - '채널', - '채점', - '책가방', - '책방', - '책상', - '책임', - '챔피언', - '처벌', - '처음', - '천국', - '천둥', - '천장', - '천재', - '천천히', - '철도', - '철저히', - '철학', - '첫날', - '첫째', - '청년', - '청바지', - '청소', - '청춘', - '체계', - '체력', - '체온', - '체육', - '체중', - '체험', - '초등학생', - '초반', - '초밥', - '초상화', - '초순', - '초여름', - '초원', - '초저녁', - '초점', - '초청', - '초콜릿', - '촛불', - '총각', - '총리', - '총장', - '촬영', - '최근', - '최상', - '최선', - '최신', - '최악', - '최종', - '추석', - '추억', - '추진', - '추천', - '추측', - '축구', - '축소', - '축제', - '축하', - '출근', - '출발', - '출산', - '출신', - '출연', - '출입', - '출장', - '출판', - '충격', - '충고', - '충돌', - '충분히', - '충청도', - '취업', - '취직', - '취향', - '치약', - '친구', - '친척', - '칠십', - '칠월', - '칠판', - '침대', - '침묵', - '침실', - '칫솔', - '칭찬', - '카메라', - '카운터', - '칼국수', - '캐릭터', - '캠퍼스', - '캠페인', - '커튼', - '컨디션', - '컬러', - '컴퓨터', - '코끼리', - '코미디', - '콘서트', - '콜라', - '콤플렉스', - '콩나물', - '쾌감', - '쿠데타', - '크림', - '큰길', - '큰딸', - '큰소리', - '큰아들', - '큰어머니', - '큰일', - '큰절', - '클래식', - '클럽', - '킬로', - '타입', - '타자기', - '탁구', - '탁자', - '탄생', - '태권도', - '태양', - '태풍', - '택시', - '탤런트', - '터널', - '터미널', - '테니스', - '테스트', - '테이블', - '텔레비전', - '토론', - '토마토', - '토요일', - '통계', - '통과', - '통로', - '통신', - '통역', - '통일', - '통장', - '통제', - '통증', - '통합', - '통화', - '퇴근', - '퇴원', - '퇴직금', - '튀김', - '트럭', - '특급', - '특별', - '특성', - '특수', - '특징', - '특히', - '튼튼히', - '티셔츠', - '파란색', - '파일', - '파출소', - '판결', - '판단', - '판매', - '판사', - '팔십', - '팔월', - '팝송', - '패션', - '팩스', - '팩시밀리', - '팬티', - '퍼센트', - '페인트', - '편견', - '편의', - '편지', - '편히', - '평가', - '평균', - '평생', - '평소', - '평양', - '평일', - '평화', - '포스터', - '포인트', - '포장', - '포함', - '표면', - '표정', - '표준', - '표현', - '품목', - '품질', - '풍경', - '풍속', - '풍습', - '프랑스', - '프린터', - '플라스틱', - '피곤', - '피망', - '피아노', - '필름', - '필수', - '필요', - '필자', - '필통', - '핑계', - '하느님', - '하늘', - '하드웨어', - '하룻밤', - '하반기', - '하숙집', - '하순', - '하여튼', - '하지만', - '하천', - '하품', - '하필', - '학과', - '학교', - '학급', - '학기', - '학년', - '학력', - '학번', - '학부모', - '학비', - '학생', - '학술', - '학습', - '학용품', - '학원', - '학위', - '학자', - '학점', - '한계', - '한글', - '한꺼번에', - '한낮', - '한눈', - '한동안', - '한때', - '한라산', - '한마디', - '한문', - '한번', - '한복', - '한식', - '한여름', - '한쪽', - '할머니', - '할아버지', - '할인', - '함께', - '함부로', - '합격', - '합리적', - '항공', - '항구', - '항상', - '항의', - '해결', - '해군', - '해답', - '해당', - '해물', - '해석', - '해설', - '해수욕장', - '해안', - '핵심', - '핸드백', - '햄버거', - '햇볕', - '햇살', - '행동', - '행복', - '행사', - '행운', - '행위', - '향기', - '향상', - '향수', - '허락', - '허용', - '헬기', - '현관', - '현금', - '현대', - '현상', - '현실', - '현장', - '현재', - '현지', - '혈액', - '협력', - '형부', - '형사', - '형수', - '형식', - '형제', - '형태', - '형편', - '혜택', - '호기심', - '호남', - '호랑이', - '호박', - '호텔', - '호흡', - '혹시', - '홀로', - '홈페이지', - '홍보', - '홍수', - '홍차', - '화면', - '화분', - '화살', - '화요일', - '화장', - '화학', - '확보', - '확인', - '확장', - '확정', - '환갑', - '환경', - '환영', - '환율', - '환자', - '활기', - '활동', - '활발히', - '활용', - '활짝', - '회견', - '회관', - '회복', - '회색', - '회원', - '회장', - '회전', - '횟수', - '횡단보도', - '효율적', - '후반', - '후춧가루', - '훈련', - '훨씬', - '휴식', - '휴일', - '흉내', - '흐름', - '흑백', - '흑인', - '흔적', - '흔히', - '흥미', - '흥분', - '희곡', - '희망', - '희생', - '흰색', - '힘껏', -]; diff --git a/src/wordlists/portuguese.d.ts b/src/wordlists/portuguese.d.ts deleted file mode 100644 index d451d2b..0000000 --- a/src/wordlists/portuguese.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: string[]; -export default _default; diff --git a/src/wordlists/portuguese.js b/src/wordlists/portuguese.js deleted file mode 100644 index 71c3b85..0000000 --- a/src/wordlists/portuguese.js +++ /dev/null @@ -1,2050 +0,0 @@ -export default [ - 'abacate', - 'abaixo', - 'abalar', - 'abater', - 'abduzir', - 'abelha', - 'aberto', - 'abismo', - 'abotoar', - 'abranger', - 'abreviar', - 'abrigar', - 'abrupto', - 'absinto', - 'absoluto', - 'absurdo', - 'abutre', - 'acabado', - 'acalmar', - 'acampar', - 'acanhar', - 'acaso', - 'aceitar', - 'acelerar', - 'acenar', - 'acervo', - 'acessar', - 'acetona', - 'achatar', - 'acidez', - 'acima', - 'acionado', - 'acirrar', - 'aclamar', - 'aclive', - 'acolhida', - 'acomodar', - 'acoplar', - 'acordar', - 'acumular', - 'acusador', - 'adaptar', - 'adega', - 'adentro', - 'adepto', - 'adequar', - 'aderente', - 'adesivo', - 'adeus', - 'adiante', - 'aditivo', - 'adjetivo', - 'adjunto', - 'admirar', - 'adorar', - 'adquirir', - 'adubo', - 'adverso', - 'advogado', - 'aeronave', - 'afastar', - 'aferir', - 'afetivo', - 'afinador', - 'afivelar', - 'aflito', - 'afluente', - 'afrontar', - 'agachar', - 'agarrar', - 'agasalho', - 'agenciar', - 'agilizar', - 'agiota', - 'agitado', - 'agora', - 'agradar', - 'agreste', - 'agrupar', - 'aguardar', - 'agulha', - 'ajoelhar', - 'ajudar', - 'ajustar', - 'alameda', - 'alarme', - 'alastrar', - 'alavanca', - 'albergue', - 'albino', - 'alcatra', - 'aldeia', - 'alecrim', - 'alegria', - 'alertar', - 'alface', - 'alfinete', - 'algum', - 'alheio', - 'aliar', - 'alicate', - 'alienar', - 'alinhar', - 'aliviar', - 'almofada', - 'alocar', - 'alpiste', - 'alterar', - 'altitude', - 'alucinar', - 'alugar', - 'aluno', - 'alusivo', - 'alvo', - 'amaciar', - 'amador', - 'amarelo', - 'amassar', - 'ambas', - 'ambiente', - 'ameixa', - 'amenizar', - 'amido', - 'amistoso', - 'amizade', - 'amolador', - 'amontoar', - 'amoroso', - 'amostra', - 'amparar', - 'ampliar', - 'ampola', - 'anagrama', - 'analisar', - 'anarquia', - 'anatomia', - 'andaime', - 'anel', - 'anexo', - 'angular', - 'animar', - 'anjo', - 'anomalia', - 'anotado', - 'ansioso', - 'anterior', - 'anuidade', - 'anunciar', - 'anzol', - 'apagador', - 'apalpar', - 'apanhado', - 'apego', - 'apelido', - 'apertada', - 'apesar', - 'apetite', - 'apito', - 'aplauso', - 'aplicada', - 'apoio', - 'apontar', - 'aposta', - 'aprendiz', - 'aprovar', - 'aquecer', - 'arame', - 'aranha', - 'arara', - 'arcada', - 'ardente', - 'areia', - 'arejar', - 'arenito', - 'aresta', - 'argiloso', - 'argola', - 'arma', - 'arquivo', - 'arraial', - 'arrebate', - 'arriscar', - 'arroba', - 'arrumar', - 'arsenal', - 'arterial', - 'artigo', - 'arvoredo', - 'asfaltar', - 'asilado', - 'aspirar', - 'assador', - 'assinar', - 'assoalho', - 'assunto', - 'astral', - 'atacado', - 'atadura', - 'atalho', - 'atarefar', - 'atear', - 'atender', - 'aterro', - 'ateu', - 'atingir', - 'atirador', - 'ativo', - 'atoleiro', - 'atracar', - 'atrevido', - 'atriz', - 'atual', - 'atum', - 'auditor', - 'aumentar', - 'aura', - 'aurora', - 'autismo', - 'autoria', - 'autuar', - 'avaliar', - 'avante', - 'avaria', - 'avental', - 'avesso', - 'aviador', - 'avisar', - 'avulso', - 'axila', - 'azarar', - 'azedo', - 'azeite', - 'azulejo', - 'babar', - 'babosa', - 'bacalhau', - 'bacharel', - 'bacia', - 'bagagem', - 'baiano', - 'bailar', - 'baioneta', - 'bairro', - 'baixista', - 'bajular', - 'baleia', - 'baliza', - 'balsa', - 'banal', - 'bandeira', - 'banho', - 'banir', - 'banquete', - 'barato', - 'barbado', - 'baronesa', - 'barraca', - 'barulho', - 'baseado', - 'bastante', - 'batata', - 'batedor', - 'batida', - 'batom', - 'batucar', - 'baunilha', - 'beber', - 'beijo', - 'beirada', - 'beisebol', - 'beldade', - 'beleza', - 'belga', - 'beliscar', - 'bendito', - 'bengala', - 'benzer', - 'berimbau', - 'berlinda', - 'berro', - 'besouro', - 'bexiga', - 'bezerro', - 'bico', - 'bicudo', - 'bienal', - 'bifocal', - 'bifurcar', - 'bigorna', - 'bilhete', - 'bimestre', - 'bimotor', - 'biologia', - 'biombo', - 'biosfera', - 'bipolar', - 'birrento', - 'biscoito', - 'bisneto', - 'bispo', - 'bissexto', - 'bitola', - 'bizarro', - 'blindado', - 'bloco', - 'bloquear', - 'boato', - 'bobagem', - 'bocado', - 'bocejo', - 'bochecha', - 'boicotar', - 'bolada', - 'boletim', - 'bolha', - 'bolo', - 'bombeiro', - 'bonde', - 'boneco', - 'bonita', - 'borbulha', - 'borda', - 'boreal', - 'borracha', - 'bovino', - 'boxeador', - 'branco', - 'brasa', - 'braveza', - 'breu', - 'briga', - 'brilho', - 'brincar', - 'broa', - 'brochura', - 'bronzear', - 'broto', - 'bruxo', - 'bucha', - 'budismo', - 'bufar', - 'bule', - 'buraco', - 'busca', - 'busto', - 'buzina', - 'cabana', - 'cabelo', - 'cabide', - 'cabo', - 'cabrito', - 'cacau', - 'cacetada', - 'cachorro', - 'cacique', - 'cadastro', - 'cadeado', - 'cafezal', - 'caiaque', - 'caipira', - 'caixote', - 'cajado', - 'caju', - 'calafrio', - 'calcular', - 'caldeira', - 'calibrar', - 'calmante', - 'calota', - 'camada', - 'cambista', - 'camisa', - 'camomila', - 'campanha', - 'camuflar', - 'canavial', - 'cancelar', - 'caneta', - 'canguru', - 'canhoto', - 'canivete', - 'canoa', - 'cansado', - 'cantar', - 'canudo', - 'capacho', - 'capela', - 'capinar', - 'capotar', - 'capricho', - 'captador', - 'capuz', - 'caracol', - 'carbono', - 'cardeal', - 'careca', - 'carimbar', - 'carneiro', - 'carpete', - 'carreira', - 'cartaz', - 'carvalho', - 'casaco', - 'casca', - 'casebre', - 'castelo', - 'casulo', - 'catarata', - 'cativar', - 'caule', - 'causador', - 'cautelar', - 'cavalo', - 'caverna', - 'cebola', - 'cedilha', - 'cegonha', - 'celebrar', - 'celular', - 'cenoura', - 'censo', - 'centeio', - 'cercar', - 'cerrado', - 'certeiro', - 'cerveja', - 'cetim', - 'cevada', - 'chacota', - 'chaleira', - 'chamado', - 'chapada', - 'charme', - 'chatice', - 'chave', - 'chefe', - 'chegada', - 'cheiro', - 'cheque', - 'chicote', - 'chifre', - 'chinelo', - 'chocalho', - 'chover', - 'chumbo', - 'chutar', - 'chuva', - 'cicatriz', - 'ciclone', - 'cidade', - 'cidreira', - 'ciente', - 'cigana', - 'cimento', - 'cinto', - 'cinza', - 'ciranda', - 'circuito', - 'cirurgia', - 'citar', - 'clareza', - 'clero', - 'clicar', - 'clone', - 'clube', - 'coado', - 'coagir', - 'cobaia', - 'cobertor', - 'cobrar', - 'cocada', - 'coelho', - 'coentro', - 'coeso', - 'cogumelo', - 'coibir', - 'coifa', - 'coiote', - 'colar', - 'coleira', - 'colher', - 'colidir', - 'colmeia', - 'colono', - 'coluna', - 'comando', - 'combinar', - 'comentar', - 'comitiva', - 'comover', - 'complexo', - 'comum', - 'concha', - 'condor', - 'conectar', - 'confuso', - 'congelar', - 'conhecer', - 'conjugar', - 'consumir', - 'contrato', - 'convite', - 'cooperar', - 'copeiro', - 'copiador', - 'copo', - 'coquetel', - 'coragem', - 'cordial', - 'corneta', - 'coronha', - 'corporal', - 'correio', - 'cortejo', - 'coruja', - 'corvo', - 'cosseno', - 'costela', - 'cotonete', - 'couro', - 'couve', - 'covil', - 'cozinha', - 'cratera', - 'cravo', - 'creche', - 'credor', - 'creme', - 'crer', - 'crespo', - 'criada', - 'criminal', - 'crioulo', - 'crise', - 'criticar', - 'crosta', - 'crua', - 'cruzeiro', - 'cubano', - 'cueca', - 'cuidado', - 'cujo', - 'culatra', - 'culminar', - 'culpar', - 'cultura', - 'cumprir', - 'cunhado', - 'cupido', - 'curativo', - 'curral', - 'cursar', - 'curto', - 'cuspir', - 'custear', - 'cutelo', - 'damasco', - 'datar', - 'debater', - 'debitar', - 'deboche', - 'debulhar', - 'decalque', - 'decimal', - 'declive', - 'decote', - 'decretar', - 'dedal', - 'dedicado', - 'deduzir', - 'defesa', - 'defumar', - 'degelo', - 'degrau', - 'degustar', - 'deitado', - 'deixar', - 'delator', - 'delegado', - 'delinear', - 'delonga', - 'demanda', - 'demitir', - 'demolido', - 'dentista', - 'depenado', - 'depilar', - 'depois', - 'depressa', - 'depurar', - 'deriva', - 'derramar', - 'desafio', - 'desbotar', - 'descanso', - 'desenho', - 'desfiado', - 'desgaste', - 'desigual', - 'deslize', - 'desmamar', - 'desova', - 'despesa', - 'destaque', - 'desviar', - 'detalhar', - 'detentor', - 'detonar', - 'detrito', - 'deusa', - 'dever', - 'devido', - 'devotado', - 'dezena', - 'diagrama', - 'dialeto', - 'didata', - 'difuso', - 'digitar', - 'dilatado', - 'diluente', - 'diminuir', - 'dinastia', - 'dinheiro', - 'diocese', - 'direto', - 'discreta', - 'disfarce', - 'disparo', - 'disquete', - 'dissipar', - 'distante', - 'ditador', - 'diurno', - 'diverso', - 'divisor', - 'divulgar', - 'dizer', - 'dobrador', - 'dolorido', - 'domador', - 'dominado', - 'donativo', - 'donzela', - 'dormente', - 'dorsal', - 'dosagem', - 'dourado', - 'doutor', - 'drenagem', - 'drible', - 'drogaria', - 'duelar', - 'duende', - 'dueto', - 'duplo', - 'duquesa', - 'durante', - 'duvidoso', - 'eclodir', - 'ecoar', - 'ecologia', - 'edificar', - 'edital', - 'educado', - 'efeito', - 'efetivar', - 'ejetar', - 'elaborar', - 'eleger', - 'eleitor', - 'elenco', - 'elevador', - 'eliminar', - 'elogiar', - 'embargo', - 'embolado', - 'embrulho', - 'embutido', - 'emenda', - 'emergir', - 'emissor', - 'empatia', - 'empenho', - 'empinado', - 'empolgar', - 'emprego', - 'empurrar', - 'emulador', - 'encaixe', - 'encenado', - 'enchente', - 'encontro', - 'endeusar', - 'endossar', - 'enfaixar', - 'enfeite', - 'enfim', - 'engajado', - 'engenho', - 'englobar', - 'engomado', - 'engraxar', - 'enguia', - 'enjoar', - 'enlatar', - 'enquanto', - 'enraizar', - 'enrolado', - 'enrugar', - 'ensaio', - 'enseada', - 'ensino', - 'ensopado', - 'entanto', - 'enteado', - 'entidade', - 'entortar', - 'entrada', - 'entulho', - 'envergar', - 'enviado', - 'envolver', - 'enxame', - 'enxerto', - 'enxofre', - 'enxuto', - 'epiderme', - 'equipar', - 'ereto', - 'erguido', - 'errata', - 'erva', - 'ervilha', - 'esbanjar', - 'esbelto', - 'escama', - 'escola', - 'escrita', - 'escuta', - 'esfinge', - 'esfolar', - 'esfregar', - 'esfumado', - 'esgrima', - 'esmalte', - 'espanto', - 'espelho', - 'espiga', - 'esponja', - 'espreita', - 'espumar', - 'esquerda', - 'estaca', - 'esteira', - 'esticar', - 'estofado', - 'estrela', - 'estudo', - 'esvaziar', - 'etanol', - 'etiqueta', - 'euforia', - 'europeu', - 'evacuar', - 'evaporar', - 'evasivo', - 'eventual', - 'evidente', - 'evoluir', - 'exagero', - 'exalar', - 'examinar', - 'exato', - 'exausto', - 'excesso', - 'excitar', - 'exclamar', - 'executar', - 'exemplo', - 'exibir', - 'exigente', - 'exonerar', - 'expandir', - 'expelir', - 'expirar', - 'explanar', - 'exposto', - 'expresso', - 'expulsar', - 'externo', - 'extinto', - 'extrato', - 'fabricar', - 'fabuloso', - 'faceta', - 'facial', - 'fada', - 'fadiga', - 'faixa', - 'falar', - 'falta', - 'familiar', - 'fandango', - 'fanfarra', - 'fantoche', - 'fardado', - 'farelo', - 'farinha', - 'farofa', - 'farpa', - 'fartura', - 'fatia', - 'fator', - 'favorita', - 'faxina', - 'fazenda', - 'fechado', - 'feijoada', - 'feirante', - 'felino', - 'feminino', - 'fenda', - 'feno', - 'fera', - 'feriado', - 'ferrugem', - 'ferver', - 'festejar', - 'fetal', - 'feudal', - 'fiapo', - 'fibrose', - 'ficar', - 'ficheiro', - 'figurado', - 'fileira', - 'filho', - 'filme', - 'filtrar', - 'firmeza', - 'fisgada', - 'fissura', - 'fita', - 'fivela', - 'fixador', - 'fixo', - 'flacidez', - 'flamingo', - 'flanela', - 'flechada', - 'flora', - 'flutuar', - 'fluxo', - 'focal', - 'focinho', - 'fofocar', - 'fogo', - 'foguete', - 'foice', - 'folgado', - 'folheto', - 'forjar', - 'formiga', - 'forno', - 'forte', - 'fosco', - 'fossa', - 'fragata', - 'fralda', - 'frango', - 'frasco', - 'fraterno', - 'freira', - 'frente', - 'fretar', - 'frieza', - 'friso', - 'fritura', - 'fronha', - 'frustrar', - 'fruteira', - 'fugir', - 'fulano', - 'fuligem', - 'fundar', - 'fungo', - 'funil', - 'furador', - 'furioso', - 'futebol', - 'gabarito', - 'gabinete', - 'gado', - 'gaiato', - 'gaiola', - 'gaivota', - 'galega', - 'galho', - 'galinha', - 'galocha', - 'ganhar', - 'garagem', - 'garfo', - 'gargalo', - 'garimpo', - 'garoupa', - 'garrafa', - 'gasoduto', - 'gasto', - 'gata', - 'gatilho', - 'gaveta', - 'gazela', - 'gelado', - 'geleia', - 'gelo', - 'gemada', - 'gemer', - 'gemido', - 'generoso', - 'gengiva', - 'genial', - 'genoma', - 'genro', - 'geologia', - 'gerador', - 'germinar', - 'gesso', - 'gestor', - 'ginasta', - 'gincana', - 'gingado', - 'girafa', - 'girino', - 'glacial', - 'glicose', - 'global', - 'glorioso', - 'goela', - 'goiaba', - 'golfe', - 'golpear', - 'gordura', - 'gorjeta', - 'gorro', - 'gostoso', - 'goteira', - 'governar', - 'gracejo', - 'gradual', - 'grafite', - 'gralha', - 'grampo', - 'granada', - 'gratuito', - 'graveto', - 'graxa', - 'grego', - 'grelhar', - 'greve', - 'grilo', - 'grisalho', - 'gritaria', - 'grosso', - 'grotesco', - 'grudado', - 'grunhido', - 'gruta', - 'guache', - 'guarani', - 'guaxinim', - 'guerrear', - 'guiar', - 'guincho', - 'guisado', - 'gula', - 'guloso', - 'guru', - 'habitar', - 'harmonia', - 'haste', - 'haver', - 'hectare', - 'herdar', - 'heresia', - 'hesitar', - 'hiato', - 'hibernar', - 'hidratar', - 'hiena', - 'hino', - 'hipismo', - 'hipnose', - 'hipoteca', - 'hoje', - 'holofote', - 'homem', - 'honesto', - 'honrado', - 'hormonal', - 'hospedar', - 'humorado', - 'iate', - 'ideia', - 'idoso', - 'ignorado', - 'igreja', - 'iguana', - 'ileso', - 'ilha', - 'iludido', - 'iluminar', - 'ilustrar', - 'imagem', - 'imediato', - 'imenso', - 'imersivo', - 'iminente', - 'imitador', - 'imortal', - 'impacto', - 'impedir', - 'implante', - 'impor', - 'imprensa', - 'impune', - 'imunizar', - 'inalador', - 'inapto', - 'inativo', - 'incenso', - 'inchar', - 'incidir', - 'incluir', - 'incolor', - 'indeciso', - 'indireto', - 'indutor', - 'ineficaz', - 'inerente', - 'infantil', - 'infestar', - 'infinito', - 'inflamar', - 'informal', - 'infrator', - 'ingerir', - 'inibido', - 'inicial', - 'inimigo', - 'injetar', - 'inocente', - 'inodoro', - 'inovador', - 'inox', - 'inquieto', - 'inscrito', - 'inseto', - 'insistir', - 'inspetor', - 'instalar', - 'insulto', - 'intacto', - 'integral', - 'intimar', - 'intocado', - 'intriga', - 'invasor', - 'inverno', - 'invicto', - 'invocar', - 'iogurte', - 'iraniano', - 'ironizar', - 'irreal', - 'irritado', - 'isca', - 'isento', - 'isolado', - 'isqueiro', - 'italiano', - 'janeiro', - 'jangada', - 'janta', - 'jararaca', - 'jardim', - 'jarro', - 'jasmim', - 'jato', - 'javali', - 'jazida', - 'jejum', - 'joaninha', - 'joelhada', - 'jogador', - 'joia', - 'jornal', - 'jorrar', - 'jovem', - 'juba', - 'judeu', - 'judoca', - 'juiz', - 'julgador', - 'julho', - 'jurado', - 'jurista', - 'juro', - 'justa', - 'labareda', - 'laboral', - 'lacre', - 'lactante', - 'ladrilho', - 'lagarta', - 'lagoa', - 'laje', - 'lamber', - 'lamentar', - 'laminar', - 'lampejo', - 'lanche', - 'lapidar', - 'lapso', - 'laranja', - 'lareira', - 'largura', - 'lasanha', - 'lastro', - 'lateral', - 'latido', - 'lavanda', - 'lavoura', - 'lavrador', - 'laxante', - 'lazer', - 'lealdade', - 'lebre', - 'legado', - 'legendar', - 'legista', - 'leigo', - 'leiloar', - 'leitura', - 'lembrete', - 'leme', - 'lenhador', - 'lentilha', - 'leoa', - 'lesma', - 'leste', - 'letivo', - 'letreiro', - 'levar', - 'leveza', - 'levitar', - 'liberal', - 'libido', - 'liderar', - 'ligar', - 'ligeiro', - 'limitar', - 'limoeiro', - 'limpador', - 'linda', - 'linear', - 'linhagem', - 'liquidez', - 'listagem', - 'lisura', - 'litoral', - 'livro', - 'lixa', - 'lixeira', - 'locador', - 'locutor', - 'lojista', - 'lombo', - 'lona', - 'longe', - 'lontra', - 'lorde', - 'lotado', - 'loteria', - 'loucura', - 'lousa', - 'louvar', - 'luar', - 'lucidez', - 'lucro', - 'luneta', - 'lustre', - 'lutador', - 'luva', - 'macaco', - 'macete', - 'machado', - 'macio', - 'madeira', - 'madrinha', - 'magnata', - 'magreza', - 'maior', - 'mais', - 'malandro', - 'malha', - 'malote', - 'maluco', - 'mamilo', - 'mamoeiro', - 'mamute', - 'manada', - 'mancha', - 'mandato', - 'manequim', - 'manhoso', - 'manivela', - 'manobrar', - 'mansa', - 'manter', - 'manusear', - 'mapeado', - 'maquinar', - 'marcador', - 'maresia', - 'marfim', - 'margem', - 'marinho', - 'marmita', - 'maroto', - 'marquise', - 'marreco', - 'martelo', - 'marujo', - 'mascote', - 'masmorra', - 'massagem', - 'mastigar', - 'matagal', - 'materno', - 'matinal', - 'matutar', - 'maxilar', - 'medalha', - 'medida', - 'medusa', - 'megafone', - 'meiga', - 'melancia', - 'melhor', - 'membro', - 'memorial', - 'menino', - 'menos', - 'mensagem', - 'mental', - 'merecer', - 'mergulho', - 'mesada', - 'mesclar', - 'mesmo', - 'mesquita', - 'mestre', - 'metade', - 'meteoro', - 'metragem', - 'mexer', - 'mexicano', - 'micro', - 'migalha', - 'migrar', - 'milagre', - 'milenar', - 'milhar', - 'mimado', - 'minerar', - 'minhoca', - 'ministro', - 'minoria', - 'miolo', - 'mirante', - 'mirtilo', - 'misturar', - 'mocidade', - 'moderno', - 'modular', - 'moeda', - 'moer', - 'moinho', - 'moita', - 'moldura', - 'moleza', - 'molho', - 'molinete', - 'molusco', - 'montanha', - 'moqueca', - 'morango', - 'morcego', - 'mordomo', - 'morena', - 'mosaico', - 'mosquete', - 'mostarda', - 'motel', - 'motim', - 'moto', - 'motriz', - 'muda', - 'muito', - 'mulata', - 'mulher', - 'multar', - 'mundial', - 'munido', - 'muralha', - 'murcho', - 'muscular', - 'museu', - 'musical', - 'nacional', - 'nadador', - 'naja', - 'namoro', - 'narina', - 'narrado', - 'nascer', - 'nativa', - 'natureza', - 'navalha', - 'navegar', - 'navio', - 'neblina', - 'nebuloso', - 'negativa', - 'negociar', - 'negrito', - 'nervoso', - 'neta', - 'neural', - 'nevasca', - 'nevoeiro', - 'ninar', - 'ninho', - 'nitidez', - 'nivelar', - 'nobreza', - 'noite', - 'noiva', - 'nomear', - 'nominal', - 'nordeste', - 'nortear', - 'notar', - 'noticiar', - 'noturno', - 'novelo', - 'novilho', - 'novo', - 'nublado', - 'nudez', - 'numeral', - 'nupcial', - 'nutrir', - 'nuvem', - 'obcecado', - 'obedecer', - 'objetivo', - 'obrigado', - 'obscuro', - 'obstetra', - 'obter', - 'obturar', - 'ocidente', - 'ocioso', - 'ocorrer', - 'oculista', - 'ocupado', - 'ofegante', - 'ofensiva', - 'oferenda', - 'oficina', - 'ofuscado', - 'ogiva', - 'olaria', - 'oleoso', - 'olhar', - 'oliveira', - 'ombro', - 'omelete', - 'omisso', - 'omitir', - 'ondulado', - 'oneroso', - 'ontem', - 'opcional', - 'operador', - 'oponente', - 'oportuno', - 'oposto', - 'orar', - 'orbitar', - 'ordem', - 'ordinal', - 'orfanato', - 'orgasmo', - 'orgulho', - 'oriental', - 'origem', - 'oriundo', - 'orla', - 'ortodoxo', - 'orvalho', - 'oscilar', - 'ossada', - 'osso', - 'ostentar', - 'otimismo', - 'ousadia', - 'outono', - 'outubro', - 'ouvido', - 'ovelha', - 'ovular', - 'oxidar', - 'oxigenar', - 'pacato', - 'paciente', - 'pacote', - 'pactuar', - 'padaria', - 'padrinho', - 'pagar', - 'pagode', - 'painel', - 'pairar', - 'paisagem', - 'palavra', - 'palestra', - 'palheta', - 'palito', - 'palmada', - 'palpitar', - 'pancada', - 'panela', - 'panfleto', - 'panqueca', - 'pantanal', - 'papagaio', - 'papelada', - 'papiro', - 'parafina', - 'parcial', - 'pardal', - 'parede', - 'partida', - 'pasmo', - 'passado', - 'pastel', - 'patamar', - 'patente', - 'patinar', - 'patrono', - 'paulada', - 'pausar', - 'peculiar', - 'pedalar', - 'pedestre', - 'pediatra', - 'pedra', - 'pegada', - 'peitoral', - 'peixe', - 'pele', - 'pelicano', - 'penca', - 'pendurar', - 'peneira', - 'penhasco', - 'pensador', - 'pente', - 'perceber', - 'perfeito', - 'pergunta', - 'perito', - 'permitir', - 'perna', - 'perplexo', - 'persiana', - 'pertence', - 'peruca', - 'pescado', - 'pesquisa', - 'pessoa', - 'petiscar', - 'piada', - 'picado', - 'piedade', - 'pigmento', - 'pilastra', - 'pilhado', - 'pilotar', - 'pimenta', - 'pincel', - 'pinguim', - 'pinha', - 'pinote', - 'pintar', - 'pioneiro', - 'pipoca', - 'piquete', - 'piranha', - 'pires', - 'pirueta', - 'piscar', - 'pistola', - 'pitanga', - 'pivete', - 'planta', - 'plaqueta', - 'platina', - 'plebeu', - 'plumagem', - 'pluvial', - 'pneu', - 'poda', - 'poeira', - 'poetisa', - 'polegada', - 'policiar', - 'poluente', - 'polvilho', - 'pomar', - 'pomba', - 'ponderar', - 'pontaria', - 'populoso', - 'porta', - 'possuir', - 'postal', - 'pote', - 'poupar', - 'pouso', - 'povoar', - 'praia', - 'prancha', - 'prato', - 'praxe', - 'prece', - 'predador', - 'prefeito', - 'premiar', - 'prensar', - 'preparar', - 'presilha', - 'pretexto', - 'prevenir', - 'prezar', - 'primata', - 'princesa', - 'prisma', - 'privado', - 'processo', - 'produto', - 'profeta', - 'proibido', - 'projeto', - 'prometer', - 'propagar', - 'prosa', - 'protetor', - 'provador', - 'publicar', - 'pudim', - 'pular', - 'pulmonar', - 'pulseira', - 'punhal', - 'punir', - 'pupilo', - 'pureza', - 'puxador', - 'quadra', - 'quantia', - 'quarto', - 'quase', - 'quebrar', - 'queda', - 'queijo', - 'quente', - 'querido', - 'quimono', - 'quina', - 'quiosque', - 'rabanada', - 'rabisco', - 'rachar', - 'racionar', - 'radial', - 'raiar', - 'rainha', - 'raio', - 'raiva', - 'rajada', - 'ralado', - 'ramal', - 'ranger', - 'ranhura', - 'rapadura', - 'rapel', - 'rapidez', - 'raposa', - 'raquete', - 'raridade', - 'rasante', - 'rascunho', - 'rasgar', - 'raspador', - 'rasteira', - 'rasurar', - 'ratazana', - 'ratoeira', - 'realeza', - 'reanimar', - 'reaver', - 'rebaixar', - 'rebelde', - 'rebolar', - 'recado', - 'recente', - 'recheio', - 'recibo', - 'recordar', - 'recrutar', - 'recuar', - 'rede', - 'redimir', - 'redonda', - 'reduzida', - 'reenvio', - 'refinar', - 'refletir', - 'refogar', - 'refresco', - 'refugiar', - 'regalia', - 'regime', - 'regra', - 'reinado', - 'reitor', - 'rejeitar', - 'relativo', - 'remador', - 'remendo', - 'remorso', - 'renovado', - 'reparo', - 'repelir', - 'repleto', - 'repolho', - 'represa', - 'repudiar', - 'requerer', - 'resenha', - 'resfriar', - 'resgatar', - 'residir', - 'resolver', - 'respeito', - 'ressaca', - 'restante', - 'resumir', - 'retalho', - 'reter', - 'retirar', - 'retomada', - 'retratar', - 'revelar', - 'revisor', - 'revolta', - 'riacho', - 'rica', - 'rigidez', - 'rigoroso', - 'rimar', - 'ringue', - 'risada', - 'risco', - 'risonho', - 'robalo', - 'rochedo', - 'rodada', - 'rodeio', - 'rodovia', - 'roedor', - 'roleta', - 'romano', - 'roncar', - 'rosado', - 'roseira', - 'rosto', - 'rota', - 'roteiro', - 'rotina', - 'rotular', - 'rouco', - 'roupa', - 'roxo', - 'rubro', - 'rugido', - 'rugoso', - 'ruivo', - 'rumo', - 'rupestre', - 'russo', - 'sabor', - 'saciar', - 'sacola', - 'sacudir', - 'sadio', - 'safira', - 'saga', - 'sagrada', - 'saibro', - 'salada', - 'saleiro', - 'salgado', - 'saliva', - 'salpicar', - 'salsicha', - 'saltar', - 'salvador', - 'sambar', - 'samurai', - 'sanar', - 'sanfona', - 'sangue', - 'sanidade', - 'sapato', - 'sarda', - 'sargento', - 'sarjeta', - 'saturar', - 'saudade', - 'saxofone', - 'sazonal', - 'secar', - 'secular', - 'seda', - 'sedento', - 'sediado', - 'sedoso', - 'sedutor', - 'segmento', - 'segredo', - 'segundo', - 'seiva', - 'seleto', - 'selvagem', - 'semanal', - 'semente', - 'senador', - 'senhor', - 'sensual', - 'sentado', - 'separado', - 'sereia', - 'seringa', - 'serra', - 'servo', - 'setembro', - 'setor', - 'sigilo', - 'silhueta', - 'silicone', - 'simetria', - 'simpatia', - 'simular', - 'sinal', - 'sincero', - 'singular', - 'sinopse', - 'sintonia', - 'sirene', - 'siri', - 'situado', - 'soberano', - 'sobra', - 'socorro', - 'sogro', - 'soja', - 'solda', - 'soletrar', - 'solteiro', - 'sombrio', - 'sonata', - 'sondar', - 'sonegar', - 'sonhador', - 'sono', - 'soprano', - 'soquete', - 'sorrir', - 'sorteio', - 'sossego', - 'sotaque', - 'soterrar', - 'sovado', - 'sozinho', - 'suavizar', - 'subida', - 'submerso', - 'subsolo', - 'subtrair', - 'sucata', - 'sucesso', - 'suco', - 'sudeste', - 'sufixo', - 'sugador', - 'sugerir', - 'sujeito', - 'sulfato', - 'sumir', - 'suor', - 'superior', - 'suplicar', - 'suposto', - 'suprimir', - 'surdina', - 'surfista', - 'surpresa', - 'surreal', - 'surtir', - 'suspiro', - 'sustento', - 'tabela', - 'tablete', - 'tabuada', - 'tacho', - 'tagarela', - 'talher', - 'talo', - 'talvez', - 'tamanho', - 'tamborim', - 'tampa', - 'tangente', - 'tanto', - 'tapar', - 'tapioca', - 'tardio', - 'tarefa', - 'tarja', - 'tarraxa', - 'tatuagem', - 'taurino', - 'taxativo', - 'taxista', - 'teatral', - 'tecer', - 'tecido', - 'teclado', - 'tedioso', - 'teia', - 'teimar', - 'telefone', - 'telhado', - 'tempero', - 'tenente', - 'tensor', - 'tentar', - 'termal', - 'terno', - 'terreno', - 'tese', - 'tesoura', - 'testado', - 'teto', - 'textura', - 'texugo', - 'tiara', - 'tigela', - 'tijolo', - 'timbrar', - 'timidez', - 'tingido', - 'tinteiro', - 'tiragem', - 'titular', - 'toalha', - 'tocha', - 'tolerar', - 'tolice', - 'tomada', - 'tomilho', - 'tonel', - 'tontura', - 'topete', - 'tora', - 'torcido', - 'torneio', - 'torque', - 'torrada', - 'torto', - 'tostar', - 'touca', - 'toupeira', - 'toxina', - 'trabalho', - 'tracejar', - 'tradutor', - 'trafegar', - 'trajeto', - 'trama', - 'trancar', - 'trapo', - 'traseiro', - 'tratador', - 'travar', - 'treino', - 'tremer', - 'trepidar', - 'trevo', - 'triagem', - 'tribo', - 'triciclo', - 'tridente', - 'trilogia', - 'trindade', - 'triplo', - 'triturar', - 'triunfal', - 'trocar', - 'trombeta', - 'trova', - 'trunfo', - 'truque', - 'tubular', - 'tucano', - 'tudo', - 'tulipa', - 'tupi', - 'turbo', - 'turma', - 'turquesa', - 'tutelar', - 'tutorial', - 'uivar', - 'umbigo', - 'unha', - 'unidade', - 'uniforme', - 'urologia', - 'urso', - 'urtiga', - 'urubu', - 'usado', - 'usina', - 'usufruir', - 'vacina', - 'vadiar', - 'vagaroso', - 'vaidoso', - 'vala', - 'valente', - 'validade', - 'valores', - 'vantagem', - 'vaqueiro', - 'varanda', - 'vareta', - 'varrer', - 'vascular', - 'vasilha', - 'vassoura', - 'vazar', - 'vazio', - 'veado', - 'vedar', - 'vegetar', - 'veicular', - 'veleiro', - 'velhice', - 'veludo', - 'vencedor', - 'vendaval', - 'venerar', - 'ventre', - 'verbal', - 'verdade', - 'vereador', - 'vergonha', - 'vermelho', - 'verniz', - 'versar', - 'vertente', - 'vespa', - 'vestido', - 'vetorial', - 'viaduto', - 'viagem', - 'viajar', - 'viatura', - 'vibrador', - 'videira', - 'vidraria', - 'viela', - 'viga', - 'vigente', - 'vigiar', - 'vigorar', - 'vilarejo', - 'vinco', - 'vinheta', - 'vinil', - 'violeta', - 'virada', - 'virtude', - 'visitar', - 'visto', - 'vitral', - 'viveiro', - 'vizinho', - 'voador', - 'voar', - 'vogal', - 'volante', - 'voleibol', - 'voltagem', - 'volumoso', - 'vontade', - 'vulto', - 'vuvuzela', - 'xadrez', - 'xarope', - 'xeque', - 'xeretar', - 'xerife', - 'xingar', - 'zangado', - 'zarpar', - 'zebu', - 'zelador', - 'zombar', - 'zoologia', - 'zumbido', -]; diff --git a/src/wordlists/spanish.d.ts b/src/wordlists/spanish.d.ts deleted file mode 100644 index d451d2b..0000000 --- a/src/wordlists/spanish.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -declare const _default: string[]; -export default _default; diff --git a/src/wordlists/spanish.js b/src/wordlists/spanish.js deleted file mode 100644 index 3a6623a..0000000 --- a/src/wordlists/spanish.js +++ /dev/null @@ -1,2050 +0,0 @@ -export default [ - 'ábaco', - 'abdomen', - 'abeja', - 'abierto', - 'abogado', - 'abono', - 'aborto', - 'abrazo', - 'abrir', - 'abuelo', - 'abuso', - 'acabar', - 'academia', - 'acceso', - 'acción', - 'aceite', - 'acelga', - 'acento', - 'aceptar', - 'ácido', - 'aclarar', - 'acné', - 'acoger', - 'acoso', - 'activo', - 'acto', - 'actriz', - 'actuar', - 'acudir', - 'acuerdo', - 'acusar', - 'adicto', - 'admitir', - 'adoptar', - 'adorno', - 'aduana', - 'adulto', - 'aéreo', - 'afectar', - 'afición', - 'afinar', - 'afirmar', - 'ágil', - 'agitar', - 'agonía', - 'agosto', - 'agotar', - 'agregar', - 'agrio', - 'agua', - 'agudo', - 'águila', - 'aguja', - 'ahogo', - 'ahorro', - 'aire', - 'aislar', - 'ajedrez', - 'ajeno', - 'ajuste', - 'alacrán', - 'alambre', - 'alarma', - 'alba', - 'álbum', - 'alcalde', - 'aldea', - 'alegre', - 'alejar', - 'alerta', - 'aleta', - 'alfiler', - 'alga', - 'algodón', - 'aliado', - 'aliento', - 'alivio', - 'alma', - 'almeja', - 'almíbar', - 'altar', - 'alteza', - 'altivo', - 'alto', - 'altura', - 'alumno', - 'alzar', - 'amable', - 'amante', - 'amapola', - 'amargo', - 'amasar', - 'ámbar', - 'ámbito', - 'ameno', - 'amigo', - 'amistad', - 'amor', - 'amparo', - 'amplio', - 'ancho', - 'anciano', - 'ancla', - 'andar', - 'andén', - 'anemia', - 'ángulo', - 'anillo', - 'ánimo', - 'anís', - 'anotar', - 'antena', - 'antiguo', - 'antojo', - 'anual', - 'anular', - 'anuncio', - 'añadir', - 'añejo', - 'año', - 'apagar', - 'aparato', - 'apetito', - 'apio', - 'aplicar', - 'apodo', - 'aporte', - 'apoyo', - 'aprender', - 'aprobar', - 'apuesta', - 'apuro', - 'arado', - 'araña', - 'arar', - 'árbitro', - 'árbol', - 'arbusto', - 'archivo', - 'arco', - 'arder', - 'ardilla', - 'arduo', - 'área', - 'árido', - 'aries', - 'armonía', - 'arnés', - 'aroma', - 'arpa', - 'arpón', - 'arreglo', - 'arroz', - 'arruga', - 'arte', - 'artista', - 'asa', - 'asado', - 'asalto', - 'ascenso', - 'asegurar', - 'aseo', - 'asesor', - 'asiento', - 'asilo', - 'asistir', - 'asno', - 'asombro', - 'áspero', - 'astilla', - 'astro', - 'astuto', - 'asumir', - 'asunto', - 'atajo', - 'ataque', - 'atar', - 'atento', - 'ateo', - 'ático', - 'atleta', - 'átomo', - 'atraer', - 'atroz', - 'atún', - 'audaz', - 'audio', - 'auge', - 'aula', - 'aumento', - 'ausente', - 'autor', - 'aval', - 'avance', - 'avaro', - 'ave', - 'avellana', - 'avena', - 'avestruz', - 'avión', - 'aviso', - 'ayer', - 'ayuda', - 'ayuno', - 'azafrán', - 'azar', - 'azote', - 'azúcar', - 'azufre', - 'azul', - 'baba', - 'babor', - 'bache', - 'bahía', - 'baile', - 'bajar', - 'balanza', - 'balcón', - 'balde', - 'bambú', - 'banco', - 'banda', - 'baño', - 'barba', - 'barco', - 'barniz', - 'barro', - 'báscula', - 'bastón', - 'basura', - 'batalla', - 'batería', - 'batir', - 'batuta', - 'baúl', - 'bazar', - 'bebé', - 'bebida', - 'bello', - 'besar', - 'beso', - 'bestia', - 'bicho', - 'bien', - 'bingo', - 'blanco', - 'bloque', - 'blusa', - 'boa', - 'bobina', - 'bobo', - 'boca', - 'bocina', - 'boda', - 'bodega', - 'boina', - 'bola', - 'bolero', - 'bolsa', - 'bomba', - 'bondad', - 'bonito', - 'bono', - 'bonsái', - 'borde', - 'borrar', - 'bosque', - 'bote', - 'botín', - 'bóveda', - 'bozal', - 'bravo', - 'brazo', - 'brecha', - 'breve', - 'brillo', - 'brinco', - 'brisa', - 'broca', - 'broma', - 'bronce', - 'brote', - 'bruja', - 'brusco', - 'bruto', - 'buceo', - 'bucle', - 'bueno', - 'buey', - 'bufanda', - 'bufón', - 'búho', - 'buitre', - 'bulto', - 'burbuja', - 'burla', - 'burro', - 'buscar', - 'butaca', - 'buzón', - 'caballo', - 'cabeza', - 'cabina', - 'cabra', - 'cacao', - 'cadáver', - 'cadena', - 'caer', - 'café', - 'caída', - 'caimán', - 'caja', - 'cajón', - 'cal', - 'calamar', - 'calcio', - 'caldo', - 'calidad', - 'calle', - 'calma', - 'calor', - 'calvo', - 'cama', - 'cambio', - 'camello', - 'camino', - 'campo', - 'cáncer', - 'candil', - 'canela', - 'canguro', - 'canica', - 'canto', - 'caña', - 'cañón', - 'caoba', - 'caos', - 'capaz', - 'capitán', - 'capote', - 'captar', - 'capucha', - 'cara', - 'carbón', - 'cárcel', - 'careta', - 'carga', - 'cariño', - 'carne', - 'carpeta', - 'carro', - 'carta', - 'casa', - 'casco', - 'casero', - 'caspa', - 'castor', - 'catorce', - 'catre', - 'caudal', - 'causa', - 'cazo', - 'cebolla', - 'ceder', - 'cedro', - 'celda', - 'célebre', - 'celoso', - 'célula', - 'cemento', - 'ceniza', - 'centro', - 'cerca', - 'cerdo', - 'cereza', - 'cero', - 'cerrar', - 'certeza', - 'césped', - 'cetro', - 'chacal', - 'chaleco', - 'champú', - 'chancla', - 'chapa', - 'charla', - 'chico', - 'chiste', - 'chivo', - 'choque', - 'choza', - 'chuleta', - 'chupar', - 'ciclón', - 'ciego', - 'cielo', - 'cien', - 'cierto', - 'cifra', - 'cigarro', - 'cima', - 'cinco', - 'cine', - 'cinta', - 'ciprés', - 'circo', - 'ciruela', - 'cisne', - 'cita', - 'ciudad', - 'clamor', - 'clan', - 'claro', - 'clase', - 'clave', - 'cliente', - 'clima', - 'clínica', - 'cobre', - 'cocción', - 'cochino', - 'cocina', - 'coco', - 'código', - 'codo', - 'cofre', - 'coger', - 'cohete', - 'cojín', - 'cojo', - 'cola', - 'colcha', - 'colegio', - 'colgar', - 'colina', - 'collar', - 'colmo', - 'columna', - 'combate', - 'comer', - 'comida', - 'cómodo', - 'compra', - 'conde', - 'conejo', - 'conga', - 'conocer', - 'consejo', - 'contar', - 'copa', - 'copia', - 'corazón', - 'corbata', - 'corcho', - 'cordón', - 'corona', - 'correr', - 'coser', - 'cosmos', - 'costa', - 'cráneo', - 'cráter', - 'crear', - 'crecer', - 'creído', - 'crema', - 'cría', - 'crimen', - 'cripta', - 'crisis', - 'cromo', - 'crónica', - 'croqueta', - 'crudo', - 'cruz', - 'cuadro', - 'cuarto', - 'cuatro', - 'cubo', - 'cubrir', - 'cuchara', - 'cuello', - 'cuento', - 'cuerda', - 'cuesta', - 'cueva', - 'cuidar', - 'culebra', - 'culpa', - 'culto', - 'cumbre', - 'cumplir', - 'cuna', - 'cuneta', - 'cuota', - 'cupón', - 'cúpula', - 'curar', - 'curioso', - 'curso', - 'curva', - 'cutis', - 'dama', - 'danza', - 'dar', - 'dardo', - 'dátil', - 'deber', - 'débil', - 'década', - 'decir', - 'dedo', - 'defensa', - 'definir', - 'dejar', - 'delfín', - 'delgado', - 'delito', - 'demora', - 'denso', - 'dental', - 'deporte', - 'derecho', - 'derrota', - 'desayuno', - 'deseo', - 'desfile', - 'desnudo', - 'destino', - 'desvío', - 'detalle', - 'detener', - 'deuda', - 'día', - 'diablo', - 'diadema', - 'diamante', - 'diana', - 'diario', - 'dibujo', - 'dictar', - 'diente', - 'dieta', - 'diez', - 'difícil', - 'digno', - 'dilema', - 'diluir', - 'dinero', - 'directo', - 'dirigir', - 'disco', - 'diseño', - 'disfraz', - 'diva', - 'divino', - 'doble', - 'doce', - 'dolor', - 'domingo', - 'don', - 'donar', - 'dorado', - 'dormir', - 'dorso', - 'dos', - 'dosis', - 'dragón', - 'droga', - 'ducha', - 'duda', - 'duelo', - 'dueño', - 'dulce', - 'dúo', - 'duque', - 'durar', - 'dureza', - 'duro', - 'ébano', - 'ebrio', - 'echar', - 'eco', - 'ecuador', - 'edad', - 'edición', - 'edificio', - 'editor', - 'educar', - 'efecto', - 'eficaz', - 'eje', - 'ejemplo', - 'elefante', - 'elegir', - 'elemento', - 'elevar', - 'elipse', - 'élite', - 'elixir', - 'elogio', - 'eludir', - 'embudo', - 'emitir', - 'emoción', - 'empate', - 'empeño', - 'empleo', - 'empresa', - 'enano', - 'encargo', - 'enchufe', - 'encía', - 'enemigo', - 'enero', - 'enfado', - 'enfermo', - 'engaño', - 'enigma', - 'enlace', - 'enorme', - 'enredo', - 'ensayo', - 'enseñar', - 'entero', - 'entrar', - 'envase', - 'envío', - 'época', - 'equipo', - 'erizo', - 'escala', - 'escena', - 'escolar', - 'escribir', - 'escudo', - 'esencia', - 'esfera', - 'esfuerzo', - 'espada', - 'espejo', - 'espía', - 'esposa', - 'espuma', - 'esquí', - 'estar', - 'este', - 'estilo', - 'estufa', - 'etapa', - 'eterno', - 'ética', - 'etnia', - 'evadir', - 'evaluar', - 'evento', - 'evitar', - 'exacto', - 'examen', - 'exceso', - 'excusa', - 'exento', - 'exigir', - 'exilio', - 'existir', - 'éxito', - 'experto', - 'explicar', - 'exponer', - 'extremo', - 'fábrica', - 'fábula', - 'fachada', - 'fácil', - 'factor', - 'faena', - 'faja', - 'falda', - 'fallo', - 'falso', - 'faltar', - 'fama', - 'familia', - 'famoso', - 'faraón', - 'farmacia', - 'farol', - 'farsa', - 'fase', - 'fatiga', - 'fauna', - 'favor', - 'fax', - 'febrero', - 'fecha', - 'feliz', - 'feo', - 'feria', - 'feroz', - 'fértil', - 'fervor', - 'festín', - 'fiable', - 'fianza', - 'fiar', - 'fibra', - 'ficción', - 'ficha', - 'fideo', - 'fiebre', - 'fiel', - 'fiera', - 'fiesta', - 'figura', - 'fijar', - 'fijo', - 'fila', - 'filete', - 'filial', - 'filtro', - 'fin', - 'finca', - 'fingir', - 'finito', - 'firma', - 'flaco', - 'flauta', - 'flecha', - 'flor', - 'flota', - 'fluir', - 'flujo', - 'flúor', - 'fobia', - 'foca', - 'fogata', - 'fogón', - 'folio', - 'folleto', - 'fondo', - 'forma', - 'forro', - 'fortuna', - 'forzar', - 'fosa', - 'foto', - 'fracaso', - 'frágil', - 'franja', - 'frase', - 'fraude', - 'freír', - 'freno', - 'fresa', - 'frío', - 'frito', - 'fruta', - 'fuego', - 'fuente', - 'fuerza', - 'fuga', - 'fumar', - 'función', - 'funda', - 'furgón', - 'furia', - 'fusil', - 'fútbol', - 'futuro', - 'gacela', - 'gafas', - 'gaita', - 'gajo', - 'gala', - 'galería', - 'gallo', - 'gamba', - 'ganar', - 'gancho', - 'ganga', - 'ganso', - 'garaje', - 'garza', - 'gasolina', - 'gastar', - 'gato', - 'gavilán', - 'gemelo', - 'gemir', - 'gen', - 'género', - 'genio', - 'gente', - 'geranio', - 'gerente', - 'germen', - 'gesto', - 'gigante', - 'gimnasio', - 'girar', - 'giro', - 'glaciar', - 'globo', - 'gloria', - 'gol', - 'golfo', - 'goloso', - 'golpe', - 'goma', - 'gordo', - 'gorila', - 'gorra', - 'gota', - 'goteo', - 'gozar', - 'grada', - 'gráfico', - 'grano', - 'grasa', - 'gratis', - 'grave', - 'grieta', - 'grillo', - 'gripe', - 'gris', - 'grito', - 'grosor', - 'grúa', - 'grueso', - 'grumo', - 'grupo', - 'guante', - 'guapo', - 'guardia', - 'guerra', - 'guía', - 'guiño', - 'guion', - 'guiso', - 'guitarra', - 'gusano', - 'gustar', - 'haber', - 'hábil', - 'hablar', - 'hacer', - 'hacha', - 'hada', - 'hallar', - 'hamaca', - 'harina', - 'haz', - 'hazaña', - 'hebilla', - 'hebra', - 'hecho', - 'helado', - 'helio', - 'hembra', - 'herir', - 'hermano', - 'héroe', - 'hervir', - 'hielo', - 'hierro', - 'hígado', - 'higiene', - 'hijo', - 'himno', - 'historia', - 'hocico', - 'hogar', - 'hoguera', - 'hoja', - 'hombre', - 'hongo', - 'honor', - 'honra', - 'hora', - 'hormiga', - 'horno', - 'hostil', - 'hoyo', - 'hueco', - 'huelga', - 'huerta', - 'hueso', - 'huevo', - 'huida', - 'huir', - 'humano', - 'húmedo', - 'humilde', - 'humo', - 'hundir', - 'huracán', - 'hurto', - 'icono', - 'ideal', - 'idioma', - 'ídolo', - 'iglesia', - 'iglú', - 'igual', - 'ilegal', - 'ilusión', - 'imagen', - 'imán', - 'imitar', - 'impar', - 'imperio', - 'imponer', - 'impulso', - 'incapaz', - 'índice', - 'inerte', - 'infiel', - 'informe', - 'ingenio', - 'inicio', - 'inmenso', - 'inmune', - 'innato', - 'insecto', - 'instante', - 'interés', - 'íntimo', - 'intuir', - 'inútil', - 'invierno', - 'ira', - 'iris', - 'ironía', - 'isla', - 'islote', - 'jabalí', - 'jabón', - 'jamón', - 'jarabe', - 'jardín', - 'jarra', - 'jaula', - 'jazmín', - 'jefe', - 'jeringa', - 'jinete', - 'jornada', - 'joroba', - 'joven', - 'joya', - 'juerga', - 'jueves', - 'juez', - 'jugador', - 'jugo', - 'juguete', - 'juicio', - 'junco', - 'jungla', - 'junio', - 'juntar', - 'júpiter', - 'jurar', - 'justo', - 'juvenil', - 'juzgar', - 'kilo', - 'koala', - 'labio', - 'lacio', - 'lacra', - 'lado', - 'ladrón', - 'lagarto', - 'lágrima', - 'laguna', - 'laico', - 'lamer', - 'lámina', - 'lámpara', - 'lana', - 'lancha', - 'langosta', - 'lanza', - 'lápiz', - 'largo', - 'larva', - 'lástima', - 'lata', - 'látex', - 'latir', - 'laurel', - 'lavar', - 'lazo', - 'leal', - 'lección', - 'leche', - 'lector', - 'leer', - 'legión', - 'legumbre', - 'lejano', - 'lengua', - 'lento', - 'leña', - 'león', - 'leopardo', - 'lesión', - 'letal', - 'letra', - 'leve', - 'leyenda', - 'libertad', - 'libro', - 'licor', - 'líder', - 'lidiar', - 'lienzo', - 'liga', - 'ligero', - 'lima', - 'límite', - 'limón', - 'limpio', - 'lince', - 'lindo', - 'línea', - 'lingote', - 'lino', - 'linterna', - 'líquido', - 'liso', - 'lista', - 'litera', - 'litio', - 'litro', - 'llaga', - 'llama', - 'llanto', - 'llave', - 'llegar', - 'llenar', - 'llevar', - 'llorar', - 'llover', - 'lluvia', - 'lobo', - 'loción', - 'loco', - 'locura', - 'lógica', - 'logro', - 'lombriz', - 'lomo', - 'lonja', - 'lote', - 'lucha', - 'lucir', - 'lugar', - 'lujo', - 'luna', - 'lunes', - 'lupa', - 'lustro', - 'luto', - 'luz', - 'maceta', - 'macho', - 'madera', - 'madre', - 'maduro', - 'maestro', - 'mafia', - 'magia', - 'mago', - 'maíz', - 'maldad', - 'maleta', - 'malla', - 'malo', - 'mamá', - 'mambo', - 'mamut', - 'manco', - 'mando', - 'manejar', - 'manga', - 'maniquí', - 'manjar', - 'mano', - 'manso', - 'manta', - 'mañana', - 'mapa', - 'máquina', - 'mar', - 'marco', - 'marea', - 'marfil', - 'margen', - 'marido', - 'mármol', - 'marrón', - 'martes', - 'marzo', - 'masa', - 'máscara', - 'masivo', - 'matar', - 'materia', - 'matiz', - 'matriz', - 'máximo', - 'mayor', - 'mazorca', - 'mecha', - 'medalla', - 'medio', - 'médula', - 'mejilla', - 'mejor', - 'melena', - 'melón', - 'memoria', - 'menor', - 'mensaje', - 'mente', - 'menú', - 'mercado', - 'merengue', - 'mérito', - 'mes', - 'mesón', - 'meta', - 'meter', - 'método', - 'metro', - 'mezcla', - 'miedo', - 'miel', - 'miembro', - 'miga', - 'mil', - 'milagro', - 'militar', - 'millón', - 'mimo', - 'mina', - 'minero', - 'mínimo', - 'minuto', - 'miope', - 'mirar', - 'misa', - 'miseria', - 'misil', - 'mismo', - 'mitad', - 'mito', - 'mochila', - 'moción', - 'moda', - 'modelo', - 'moho', - 'mojar', - 'molde', - 'moler', - 'molino', - 'momento', - 'momia', - 'monarca', - 'moneda', - 'monja', - 'monto', - 'moño', - 'morada', - 'morder', - 'moreno', - 'morir', - 'morro', - 'morsa', - 'mortal', - 'mosca', - 'mostrar', - 'motivo', - 'mover', - 'móvil', - 'mozo', - 'mucho', - 'mudar', - 'mueble', - 'muela', - 'muerte', - 'muestra', - 'mugre', - 'mujer', - 'mula', - 'muleta', - 'multa', - 'mundo', - 'muñeca', - 'mural', - 'muro', - 'músculo', - 'museo', - 'musgo', - 'música', - 'muslo', - 'nácar', - 'nación', - 'nadar', - 'naipe', - 'naranja', - 'nariz', - 'narrar', - 'nasal', - 'natal', - 'nativo', - 'natural', - 'náusea', - 'naval', - 'nave', - 'navidad', - 'necio', - 'néctar', - 'negar', - 'negocio', - 'negro', - 'neón', - 'nervio', - 'neto', - 'neutro', - 'nevar', - 'nevera', - 'nicho', - 'nido', - 'niebla', - 'nieto', - 'niñez', - 'niño', - 'nítido', - 'nivel', - 'nobleza', - 'noche', - 'nómina', - 'noria', - 'norma', - 'norte', - 'nota', - 'noticia', - 'novato', - 'novela', - 'novio', - 'nube', - 'nuca', - 'núcleo', - 'nudillo', - 'nudo', - 'nuera', - 'nueve', - 'nuez', - 'nulo', - 'número', - 'nutria', - 'oasis', - 'obeso', - 'obispo', - 'objeto', - 'obra', - 'obrero', - 'observar', - 'obtener', - 'obvio', - 'oca', - 'ocaso', - 'océano', - 'ochenta', - 'ocho', - 'ocio', - 'ocre', - 'octavo', - 'octubre', - 'oculto', - 'ocupar', - 'ocurrir', - 'odiar', - 'odio', - 'odisea', - 'oeste', - 'ofensa', - 'oferta', - 'oficio', - 'ofrecer', - 'ogro', - 'oído', - 'oír', - 'ojo', - 'ola', - 'oleada', - 'olfato', - 'olivo', - 'olla', - 'olmo', - 'olor', - 'olvido', - 'ombligo', - 'onda', - 'onza', - 'opaco', - 'opción', - 'ópera', - 'opinar', - 'oponer', - 'optar', - 'óptica', - 'opuesto', - 'oración', - 'orador', - 'oral', - 'órbita', - 'orca', - 'orden', - 'oreja', - 'órgano', - 'orgía', - 'orgullo', - 'oriente', - 'origen', - 'orilla', - 'oro', - 'orquesta', - 'oruga', - 'osadía', - 'oscuro', - 'osezno', - 'oso', - 'ostra', - 'otoño', - 'otro', - 'oveja', - 'óvulo', - 'óxido', - 'oxígeno', - 'oyente', - 'ozono', - 'pacto', - 'padre', - 'paella', - 'página', - 'pago', - 'país', - 'pájaro', - 'palabra', - 'palco', - 'paleta', - 'pálido', - 'palma', - 'paloma', - 'palpar', - 'pan', - 'panal', - 'pánico', - 'pantera', - 'pañuelo', - 'papá', - 'papel', - 'papilla', - 'paquete', - 'parar', - 'parcela', - 'pared', - 'parir', - 'paro', - 'párpado', - 'parque', - 'párrafo', - 'parte', - 'pasar', - 'paseo', - 'pasión', - 'paso', - 'pasta', - 'pata', - 'patio', - 'patria', - 'pausa', - 'pauta', - 'pavo', - 'payaso', - 'peatón', - 'pecado', - 'pecera', - 'pecho', - 'pedal', - 'pedir', - 'pegar', - 'peine', - 'pelar', - 'peldaño', - 'pelea', - 'peligro', - 'pellejo', - 'pelo', - 'peluca', - 'pena', - 'pensar', - 'peñón', - 'peón', - 'peor', - 'pepino', - 'pequeño', - 'pera', - 'percha', - 'perder', - 'pereza', - 'perfil', - 'perico', - 'perla', - 'permiso', - 'perro', - 'persona', - 'pesa', - 'pesca', - 'pésimo', - 'pestaña', - 'pétalo', - 'petróleo', - 'pez', - 'pezuña', - 'picar', - 'pichón', - 'pie', - 'piedra', - 'pierna', - 'pieza', - 'pijama', - 'pilar', - 'piloto', - 'pimienta', - 'pino', - 'pintor', - 'pinza', - 'piña', - 'piojo', - 'pipa', - 'pirata', - 'pisar', - 'piscina', - 'piso', - 'pista', - 'pitón', - 'pizca', - 'placa', - 'plan', - 'plata', - 'playa', - 'plaza', - 'pleito', - 'pleno', - 'plomo', - 'pluma', - 'plural', - 'pobre', - 'poco', - 'poder', - 'podio', - 'poema', - 'poesía', - 'poeta', - 'polen', - 'policía', - 'pollo', - 'polvo', - 'pomada', - 'pomelo', - 'pomo', - 'pompa', - 'poner', - 'porción', - 'portal', - 'posada', - 'poseer', - 'posible', - 'poste', - 'potencia', - 'potro', - 'pozo', - 'prado', - 'precoz', - 'pregunta', - 'premio', - 'prensa', - 'preso', - 'previo', - 'primo', - 'príncipe', - 'prisión', - 'privar', - 'proa', - 'probar', - 'proceso', - 'producto', - 'proeza', - 'profesor', - 'programa', - 'prole', - 'promesa', - 'pronto', - 'propio', - 'próximo', - 'prueba', - 'público', - 'puchero', - 'pudor', - 'pueblo', - 'puerta', - 'puesto', - 'pulga', - 'pulir', - 'pulmón', - 'pulpo', - 'pulso', - 'puma', - 'punto', - 'puñal', - 'puño', - 'pupa', - 'pupila', - 'puré', - 'quedar', - 'queja', - 'quemar', - 'querer', - 'queso', - 'quieto', - 'química', - 'quince', - 'quitar', - 'rábano', - 'rabia', - 'rabo', - 'ración', - 'radical', - 'raíz', - 'rama', - 'rampa', - 'rancho', - 'rango', - 'rapaz', - 'rápido', - 'rapto', - 'rasgo', - 'raspa', - 'rato', - 'rayo', - 'raza', - 'razón', - 'reacción', - 'realidad', - 'rebaño', - 'rebote', - 'recaer', - 'receta', - 'rechazo', - 'recoger', - 'recreo', - 'recto', - 'recurso', - 'red', - 'redondo', - 'reducir', - 'reflejo', - 'reforma', - 'refrán', - 'refugio', - 'regalo', - 'regir', - 'regla', - 'regreso', - 'rehén', - 'reino', - 'reír', - 'reja', - 'relato', - 'relevo', - 'relieve', - 'relleno', - 'reloj', - 'remar', - 'remedio', - 'remo', - 'rencor', - 'rendir', - 'renta', - 'reparto', - 'repetir', - 'reposo', - 'reptil', - 'res', - 'rescate', - 'resina', - 'respeto', - 'resto', - 'resumen', - 'retiro', - 'retorno', - 'retrato', - 'reunir', - 'revés', - 'revista', - 'rey', - 'rezar', - 'rico', - 'riego', - 'rienda', - 'riesgo', - 'rifa', - 'rígido', - 'rigor', - 'rincón', - 'riñón', - 'río', - 'riqueza', - 'risa', - 'ritmo', - 'rito', - 'rizo', - 'roble', - 'roce', - 'rociar', - 'rodar', - 'rodeo', - 'rodilla', - 'roer', - 'rojizo', - 'rojo', - 'romero', - 'romper', - 'ron', - 'ronco', - 'ronda', - 'ropa', - 'ropero', - 'rosa', - 'rosca', - 'rostro', - 'rotar', - 'rubí', - 'rubor', - 'rudo', - 'rueda', - 'rugir', - 'ruido', - 'ruina', - 'ruleta', - 'rulo', - 'rumbo', - 'rumor', - 'ruptura', - 'ruta', - 'rutina', - 'sábado', - 'saber', - 'sabio', - 'sable', - 'sacar', - 'sagaz', - 'sagrado', - 'sala', - 'saldo', - 'salero', - 'salir', - 'salmón', - 'salón', - 'salsa', - 'salto', - 'salud', - 'salvar', - 'samba', - 'sanción', - 'sandía', - 'sanear', - 'sangre', - 'sanidad', - 'sano', - 'santo', - 'sapo', - 'saque', - 'sardina', - 'sartén', - 'sastre', - 'satán', - 'sauna', - 'saxofón', - 'sección', - 'seco', - 'secreto', - 'secta', - 'sed', - 'seguir', - 'seis', - 'sello', - 'selva', - 'semana', - 'semilla', - 'senda', - 'sensor', - 'señal', - 'señor', - 'separar', - 'sepia', - 'sequía', - 'ser', - 'serie', - 'sermón', - 'servir', - 'sesenta', - 'sesión', - 'seta', - 'setenta', - 'severo', - 'sexo', - 'sexto', - 'sidra', - 'siesta', - 'siete', - 'siglo', - 'signo', - 'sílaba', - 'silbar', - 'silencio', - 'silla', - 'símbolo', - 'simio', - 'sirena', - 'sistema', - 'sitio', - 'situar', - 'sobre', - 'socio', - 'sodio', - 'sol', - 'solapa', - 'soldado', - 'soledad', - 'sólido', - 'soltar', - 'solución', - 'sombra', - 'sondeo', - 'sonido', - 'sonoro', - 'sonrisa', - 'sopa', - 'soplar', - 'soporte', - 'sordo', - 'sorpresa', - 'sorteo', - 'sostén', - 'sótano', - 'suave', - 'subir', - 'suceso', - 'sudor', - 'suegra', - 'suelo', - 'sueño', - 'suerte', - 'sufrir', - 'sujeto', - 'sultán', - 'sumar', - 'superar', - 'suplir', - 'suponer', - 'supremo', - 'sur', - 'surco', - 'sureño', - 'surgir', - 'susto', - 'sutil', - 'tabaco', - 'tabique', - 'tabla', - 'tabú', - 'taco', - 'tacto', - 'tajo', - 'talar', - 'talco', - 'talento', - 'talla', - 'talón', - 'tamaño', - 'tambor', - 'tango', - 'tanque', - 'tapa', - 'tapete', - 'tapia', - 'tapón', - 'taquilla', - 'tarde', - 'tarea', - 'tarifa', - 'tarjeta', - 'tarot', - 'tarro', - 'tarta', - 'tatuaje', - 'tauro', - 'taza', - 'tazón', - 'teatro', - 'techo', - 'tecla', - 'técnica', - 'tejado', - 'tejer', - 'tejido', - 'tela', - 'teléfono', - 'tema', - 'temor', - 'templo', - 'tenaz', - 'tender', - 'tener', - 'tenis', - 'tenso', - 'teoría', - 'terapia', - 'terco', - 'término', - 'ternura', - 'terror', - 'tesis', - 'tesoro', - 'testigo', - 'tetera', - 'texto', - 'tez', - 'tibio', - 'tiburón', - 'tiempo', - 'tienda', - 'tierra', - 'tieso', - 'tigre', - 'tijera', - 'tilde', - 'timbre', - 'tímido', - 'timo', - 'tinta', - 'tío', - 'típico', - 'tipo', - 'tira', - 'tirón', - 'titán', - 'títere', - 'título', - 'tiza', - 'toalla', - 'tobillo', - 'tocar', - 'tocino', - 'todo', - 'toga', - 'toldo', - 'tomar', - 'tono', - 'tonto', - 'topar', - 'tope', - 'toque', - 'tórax', - 'torero', - 'tormenta', - 'torneo', - 'toro', - 'torpedo', - 'torre', - 'torso', - 'tortuga', - 'tos', - 'tosco', - 'toser', - 'tóxico', - 'trabajo', - 'tractor', - 'traer', - 'tráfico', - 'trago', - 'traje', - 'tramo', - 'trance', - 'trato', - 'trauma', - 'trazar', - 'trébol', - 'tregua', - 'treinta', - 'tren', - 'trepar', - 'tres', - 'tribu', - 'trigo', - 'tripa', - 'triste', - 'triunfo', - 'trofeo', - 'trompa', - 'tronco', - 'tropa', - 'trote', - 'trozo', - 'truco', - 'trueno', - 'trufa', - 'tubería', - 'tubo', - 'tuerto', - 'tumba', - 'tumor', - 'túnel', - 'túnica', - 'turbina', - 'turismo', - 'turno', - 'tutor', - 'ubicar', - 'úlcera', - 'umbral', - 'unidad', - 'unir', - 'universo', - 'uno', - 'untar', - 'uña', - 'urbano', - 'urbe', - 'urgente', - 'urna', - 'usar', - 'usuario', - 'útil', - 'utopía', - 'uva', - 'vaca', - 'vacío', - 'vacuna', - 'vagar', - 'vago', - 'vaina', - 'vajilla', - 'vale', - 'válido', - 'valle', - 'valor', - 'válvula', - 'vampiro', - 'vara', - 'variar', - 'varón', - 'vaso', - 'vecino', - 'vector', - 'vehículo', - 'veinte', - 'vejez', - 'vela', - 'velero', - 'veloz', - 'vena', - 'vencer', - 'venda', - 'veneno', - 'vengar', - 'venir', - 'venta', - 'venus', - 'ver', - 'verano', - 'verbo', - 'verde', - 'vereda', - 'verja', - 'verso', - 'verter', - 'vía', - 'viaje', - 'vibrar', - 'vicio', - 'víctima', - 'vida', - 'vídeo', - 'vidrio', - 'viejo', - 'viernes', - 'vigor', - 'vil', - 'villa', - 'vinagre', - 'vino', - 'viñedo', - 'violín', - 'viral', - 'virgo', - 'virtud', - 'visor', - 'víspera', - 'vista', - 'vitamina', - 'viudo', - 'vivaz', - 'vivero', - 'vivir', - 'vivo', - 'volcán', - 'volumen', - 'volver', - 'voraz', - 'votar', - 'voto', - 'voz', - 'vuelo', - 'vulgar', - 'yacer', - 'yate', - 'yegua', - 'yema', - 'yerno', - 'yeso', - 'yodo', - 'yoga', - 'yogur', - 'zafiro', - 'zanja', - 'zapato', - 'zarza', - 'zona', - 'zorro', - 'zumo', - 'zurdo', -]; diff --git a/test/index.js b/test/index.js index 6359c9a..ddd8c7b 100644 --- a/test/index.js +++ b/test/index.js @@ -1,17 +1,19 @@ -import * as bip39 from "../src/index.js"; +import * as bip39 from "../src/esm/index.js"; import { download } from "../util/wordlists.js"; - -import english from '../src/wordlists/english.js'; -import japanese from '../src/wordlists/japanese.js'; -import italian from "../src/wordlists/italian.js"; -import spanish from "../src/wordlists/spanish.js"; -import chinese_simplified from "../src/wordlists/chinese_simplified.js"; -import chinese_traditional from "../src/wordlists/chinese_traditional.js"; -import french from "../src/wordlists/french.js"; -import korean from "../src/wordlists/korean.js"; -import portuguese from "../src/wordlists/portuguese.js"; -import czech from "../src/wordlists/czech.js"; +import { + english, + japanese, + italian, + spanish, + chineseSimplified, + chineseTraditional, + french, + korean, + portuguese, + czech +} from "../src/esm/index.js"; import custom from './wordlist.json' assert {type: "json"}; +import * as tools from "uint8array-tools"; var WORDLISTS = { english, @@ -20,8 +22,8 @@ var WORDLISTS = { }; const exposedWordlists = { - chinese_simplified, - chinese_traditional, + chinese_simplified: chineseSimplified, + chinese_traditional: chineseTraditional, czech, english, french, @@ -46,9 +48,9 @@ function testVector (description, wordlist, password, v, i) { t.plan(6) t.equal(bip39.mnemonicToEntropy(vmnemonic, wordlist), ventropy, 'mnemonicToEntropy returns ' + ventropy.slice(0, 40) + '...') - t.equal(bip39.mnemonicToSeedSync(vmnemonic, password).toString('hex'), vseedHex, 'mnemonicToSeedSync returns ' + vseedHex.slice(0, 40) + '...') + t.equal(tools.toHex(bip39.mnemonicToSeedSync(vmnemonic, password)), vseedHex, 'mnemonicToSeedSync returns ' + vseedHex.slice(0, 40) + '...') bip39.mnemonicToSeed(vmnemonic, password).then(function (asyncSeed) { - t.equal(asyncSeed.toString('hex'), vseedHex, 'mnemonicToSeed returns ' + vseedHex.slice(0, 40) + '...') + t.equal(tools.toHex(asyncSeed), vseedHex, 'mnemonicToSeed returns ' + vseedHex.slice(0, 40) + '...') }) t.equal(bip39.entropyToMnemonic(ventropy, wordlist), vmnemonic, 'entropyToMnemonic returns ' + vmnemonic.slice(0, 40) + '...') @@ -128,8 +130,8 @@ test('UTF8 passwords', function (t) { var password = '㍍ガバヴァぱばぐゞちぢ十人十色' var normalizedPassword = 'メートルガバヴァぱばぐゞちぢ十人十色' - t.equal(bip39.mnemonicToSeedSync(vmnemonic, password).toString('hex'), vseedHex, 'mnemonicToSeedSync normalizes passwords') - t.equal(bip39.mnemonicToSeedSync(vmnemonic, normalizedPassword).toString('hex'), vseedHex, 'mnemonicToSeedSync leaves normalizes passwords as-is') + t.equal(tools.toHex(bip39.mnemonicToSeedSync(vmnemonic, password)), vseedHex, 'mnemonicToSeedSync normalizes passwords') + t.equal(tools.toHex(bip39.mnemonicToSeedSync(vmnemonic, normalizedPassword)), vseedHex, 'mnemonicToSeedSync leaves normalizes passwords as-is') }) }) diff --git a/ts_src/index.ts b/ts_src/index.ts index 8d968b4..c466f7a 100644 --- a/ts_src/index.ts +++ b/ts_src/index.ts @@ -1,7 +1,7 @@ import { sha256 } from '@noble/hashes/sha256'; import { sha512 } from '@noble/hashes/sha512'; import { pbkdf2, pbkdf2Async } from '@noble/hashes/pbkdf2'; -import { randomBytes } from '@noble/hashes/utils'; +import * as tools from 'uint8array-tools'; let DEFAULT_WORDLIST: string[] | undefined; @@ -31,10 +31,10 @@ function bytesToBinary(bytes: number[]): string { return bytes.map((x: number): string => lpad(x.toString(2), '0', 8)).join(''); } -function deriveChecksumBits(entropyBuffer: Buffer): string { +function deriveChecksumBits(entropyBuffer: Uint8Array): string { const ENT = entropyBuffer.length * 8; const CS = ENT / 32; - const hash = sha256(Uint8Array.from(entropyBuffer)); + const hash = sha256(entropyBuffer); return bytesToBinary(Array.from(hash)).slice(0, CS); } @@ -45,34 +45,26 @@ function salt(password?: string): string { export function mnemonicToSeedSync( mnemonic: string, password?: string, -): Buffer { - const mnemonicBuffer = Uint8Array.from( - Buffer.from(normalize(mnemonic), 'utf8'), - ); - const saltBuffer = Uint8Array.from( - Buffer.from(salt(normalize(password)), 'utf8'), - ); +): Uint8Array { + const mnemonicBuffer = tools.fromUtf8(normalize(mnemonic)); + const saltBuffer = tools.fromUtf8(salt(normalize(password))); const res = pbkdf2(sha512, mnemonicBuffer, saltBuffer, { c: 2048, dkLen: 64, }); - return Buffer.from(res); + return res; } export function mnemonicToSeed( mnemonic: string, password?: string, -): Promise { - const mnemonicBuffer = Uint8Array.from( - Buffer.from(normalize(mnemonic), 'utf8'), - ); - const saltBuffer = Uint8Array.from( - Buffer.from(salt(normalize(password)), 'utf8'), - ); +): Promise { + const mnemonicBuffer = tools.fromUtf8(normalize(mnemonic)); + const saltBuffer = tools.fromUtf8(salt(normalize(password))); return pbkdf2Async(sha512, mnemonicBuffer, saltBuffer, { c: 2048, dkLen: 64, - }).then((res: Uint8Array): Buffer => Buffer.from(res)); + }); } export function mnemonicToEntropy( @@ -120,21 +112,21 @@ export function mnemonicToEntropy( throw new Error(INVALID_ENTROPY); } - const entropy = Buffer.from(entropyBytes); + const entropy = Uint8Array.from(entropyBytes); const newChecksum = deriveChecksumBits(entropy); if (newChecksum !== checksumBits) { throw new Error(INVALID_CHECKSUM); } - return entropy.toString('hex'); + return tools.toHex(entropy); } export function entropyToMnemonic( - entropy: Buffer | string, + entropy: Uint8Array | string, wordlist?: string[], ): string { - if (!Buffer.isBuffer(entropy)) { - entropy = Buffer.from(entropy, 'hex'); + if (typeof entropy === 'string') { + entropy = tools.fromHex(entropy); } wordlist = wordlist || DEFAULT_WORDLIST; if (!wordlist) { @@ -171,14 +163,14 @@ export function entropyToMnemonic( export function generateMnemonic( strength?: number, - rng?: (size: number) => Buffer, + rng?: (size: number) => Uint8Array, wordlist?: string[], ): string { strength = strength || 128; if (strength % 32 !== 0) { throw new TypeError(INVALID_ENTROPY); } - rng = rng || ((size: number): Buffer => Buffer.from(randomBytes(size))); + rng = rng || ((size: number): Uint8Array => crypto.getRandomValues(new Uint8Array(size))); return entropyToMnemonic(rng(strength / 8), wordlist); } @@ -199,16 +191,16 @@ function validateWordlist(wordlist: string[]): boolean { if (!Array.isArray(wordlist)) { return false; } - + if (wordlist.length !== 2048) { return false; } - + const unique = new Set(wordlist); if (unique.size !== wordlist.length) { return false; } - + return true; } @@ -226,3 +218,16 @@ export function getDefaultWordlist(): string[] { return DEFAULT_WORDLIST; } + +export { + chineseSimplified, + chineseTraditional, + english, + japanese, + korean, + spanish, + italian, + czech, + french, + portuguese, +} from './wordlists/index.js'; diff --git a/ts_src/wordlists/chinese_simplified.ts b/ts_src/wordlists/chinese_simplified.ts index 3216591..5460305 100644 --- a/ts_src/wordlists/chinese_simplified.ts +++ b/ts_src/wordlists/chinese_simplified.ts @@ -1,4 +1,4 @@ -export default [ +export const chineseSimplified = [ '的', '一', '是', diff --git a/ts_src/wordlists/chinese_traditional.ts b/ts_src/wordlists/chinese_traditional.ts index 5d4074f..0b7c291 100644 --- a/ts_src/wordlists/chinese_traditional.ts +++ b/ts_src/wordlists/chinese_traditional.ts @@ -1,4 +1,4 @@ -export default [ +export const chineseTraditional = [ '的', '一', '是', diff --git a/ts_src/wordlists/czech.ts b/ts_src/wordlists/czech.ts index d17b76f..5496cd6 100644 --- a/ts_src/wordlists/czech.ts +++ b/ts_src/wordlists/czech.ts @@ -1,4 +1,4 @@ -export default [ +export const czech = [ 'abdikace', 'abeceda', 'adresa', diff --git a/ts_src/wordlists/english.ts b/ts_src/wordlists/english.ts index 51dbbdf..1c5aa55 100644 --- a/ts_src/wordlists/english.ts +++ b/ts_src/wordlists/english.ts @@ -1,4 +1,4 @@ -export default [ +export const english = [ 'abandon', 'ability', 'able', diff --git a/ts_src/wordlists/french.ts b/ts_src/wordlists/french.ts index 733c102..d96f214 100644 --- a/ts_src/wordlists/french.ts +++ b/ts_src/wordlists/french.ts @@ -1,4 +1,4 @@ -export default [ +export const french = [ 'abaisser', 'abandon', 'abdiquer', diff --git a/ts_src/wordlists/index.ts b/ts_src/wordlists/index.ts new file mode 100644 index 0000000..ae59ef7 --- /dev/null +++ b/ts_src/wordlists/index.ts @@ -0,0 +1,10 @@ +export { chineseSimplified } from './chinese_simplified.js'; +export { chineseTraditional } from './chinese_traditional.js'; +export { czech } from './czech.js'; +export { english } from './english.js'; +export { french } from './french.js'; +export { italian } from './italian.js'; +export { japanese } from './japanese.js'; +export { korean } from './korean.js'; +export { spanish } from './spanish.js'; +export { portuguese } from './portuguese.js'; diff --git a/ts_src/wordlists/italian.ts b/ts_src/wordlists/italian.ts index b2aafa8..3198e48 100644 --- a/ts_src/wordlists/italian.ts +++ b/ts_src/wordlists/italian.ts @@ -1,4 +1,4 @@ -export default [ +export const italian = [ 'abaco', 'abbaglio', 'abbinato', diff --git a/ts_src/wordlists/japanese.ts b/ts_src/wordlists/japanese.ts index dcb3d77..ff6add9 100644 --- a/ts_src/wordlists/japanese.ts +++ b/ts_src/wordlists/japanese.ts @@ -1,4 +1,4 @@ -export default [ +export const japanese = [ 'あいこくしん', 'あいさつ', 'あいだ', diff --git a/ts_src/wordlists/korean.ts b/ts_src/wordlists/korean.ts index a98831a..bc73eb7 100644 --- a/ts_src/wordlists/korean.ts +++ b/ts_src/wordlists/korean.ts @@ -1,4 +1,4 @@ -export default [ +export const korean = [ '가격', '가끔', '가난', diff --git a/ts_src/wordlists/portuguese.ts b/ts_src/wordlists/portuguese.ts index ab13c0d..96914f8 100644 --- a/ts_src/wordlists/portuguese.ts +++ b/ts_src/wordlists/portuguese.ts @@ -1,4 +1,4 @@ -export default [ +export const portuguese = [ 'abacate', 'abaixo', 'abalar', diff --git a/ts_src/wordlists/spanish.ts b/ts_src/wordlists/spanish.ts index bdd65f3..8d6ad61 100644 --- a/ts_src/wordlists/spanish.ts +++ b/ts_src/wordlists/spanish.ts @@ -1,4 +1,4 @@ -export default [ +export const spanish = [ 'ábaco', 'abdomen', 'abeja', diff --git a/tsconfig.json b/tsconfig.json index ae2add9..d512480 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,27 +1,31 @@ { "compilerOptions": { - "target": "es2017", - "outDir": "./src", + "module": "NodeNext", + "moduleResolution": "NodeNext", + "target": "ESNext", "rootDir": "./ts_src", + "outDir": "./src", + "sourceMap": true, "declaration": true, - "types": ["node"], - "allowJs": false, + "declarationMap": true, + "importHelpers": true, + "resolveJsonModule": true, + "isolatedModules": true, + "allowSyntheticDefaultImports": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "useDefineForClassFields": false, + "skipLibCheck": true, "strict": true, - "noImplicitAny": true, + "pretty": true, + "removeComments": true, "strictNullChecks": true, - "strictFunctionTypes": true, - "strictBindCallApply": true, - "strictPropertyInitialization": true, + "noImplicitAny": true, "noImplicitThis": true, - "alwaysStrict": true, + "noImplicitReturns": true, "noUnusedLocals": true, - "noUnusedParameters": true, - "moduleResolution": "Node", - "module": "ESNext", - "resolveJsonModule": true, - "allowSyntheticDefaultImports": true, - "esModuleInterop": true + "noUnusedParameters": true }, - "include": ["ts_src/**/*.ts", "ts_src/**/*.json"], - "exclude": ["**/*.spec.ts", "node_modules/**/*"] -} + "exclude": [ "node_modules", "test", "rollup.config.ts" ], + "include": ["ts_src/**/*.ts" ] +} \ No newline at end of file