├── .eslintrc ├── .github └── workflows │ ├── codeql.yml │ └── publish.yml ├── .gitignore ├── .nvmrc ├── .nycrc.json ├── CHANGELOG.md ├── LICENSE ├── README.md ├── SECURITY.md ├── package-lock.json ├── package.json ├── src ├── data │ ├── adjectives.ts │ ├── index.ts │ └── nouns.ts └── index.ts ├── tests └── index.test.ts └── tsconfig.json /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | "parser": "@typescript-eslint/parser", 4 | "plugins": ["@typescript-eslint"], 5 | "env": { 6 | "es6": true, 7 | "node": true, 8 | "mocha": true 9 | }, 10 | "extends": [ 11 | "eslint:recommended", 12 | "plugin:@typescript-eslint/eslint-recommended", 13 | "plugin:@typescript-eslint/recommended" 14 | ], 15 | "parserOptions": { 16 | "ecmaVersion": 2018, 17 | "sourceType": "module" 18 | }, 19 | "rules": { 20 | "no-console": "off", 21 | "linebreak-style": "off", 22 | "quotes": [ 23 | "error", 24 | "double", 25 | { "allowTemplateLiterals": true } 26 | ], 27 | "keyword-spacing": ["error", { "before": true }], 28 | "space-before-blocks": ["error"] 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /.github/workflows/codeql.yml: -------------------------------------------------------------------------------- 1 | name: "CodeQL" 2 | 3 | on: 4 | push: 5 | branches: [ "main" ] 6 | pull_request: 7 | branches: [ "main" ] 8 | schedule: 9 | - cron: "35 6 * * 4" 10 | 11 | jobs: 12 | analyze: 13 | name: Analyze 14 | runs-on: ubuntu-latest 15 | permissions: 16 | actions: read 17 | contents: read 18 | security-events: write 19 | 20 | strategy: 21 | fail-fast: false 22 | matrix: 23 | language: [ javascript ] 24 | 25 | steps: 26 | - name: Checkout 27 | uses: actions/checkout@v3 28 | 29 | - name: Initialize CodeQL 30 | uses: github/codeql-action/init@v2 31 | with: 32 | languages: ${{ matrix.language }} 33 | queries: +security-and-quality 34 | 35 | - name: Autobuild 36 | uses: github/codeql-action/autobuild@v2 37 | 38 | - name: Perform CodeQL Analysis 39 | uses: github/codeql-action/analyze@v2 40 | with: 41 | category: "/language:${{ matrix.language }}" 42 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node 2 | # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-nodejs 3 | 4 | name: Node.js CI 5 | 6 | on: 7 | push: 8 | branches: [ "main" ] 9 | pull_request: 10 | branches: '*' 11 | 12 | jobs: 13 | quality: 14 | 15 | runs-on: ${{ matrix.os }} 16 | 17 | strategy: 18 | matrix: 19 | node-version: [18.x] 20 | os: [ubuntu-latest] 21 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 22 | 23 | steps: 24 | - uses: actions/checkout@v3 25 | - name: Use Node.js ${{ matrix.node-version }} 26 | uses: actions/setup-node@v3 27 | with: 28 | node-version: ${{ matrix.node-version }} 29 | cache: 'npm' 30 | - run: npm ci 31 | - run: npm run coverage 32 | - run: npm test 33 | - run: npm run lint 34 | 35 | publish: 36 | runs-on: ubuntu-latest 37 | if: ${{ github.ref == 'refs/heads/main' }} 38 | needs: [quality] 39 | steps: 40 | - uses: actions/checkout@v3 41 | - name: Use Node.js ${{ matrix.node-version }} 42 | uses: actions/setup-node@v3 43 | with: 44 | node-version: ${{ matrix.node-version }} 45 | cache: 'npm' 46 | - run: npm ci 47 | - run: npm run build --if-present 48 | - run: npm run semantic-release 49 | env: 50 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 51 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 52 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | 106 | .DS_Store -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v14.18.1 2 | -------------------------------------------------------------------------------- /.nycrc.json: -------------------------------------------------------------------------------- 1 | 2 | { 3 | "extends": "@istanbuljs/nyc-config-typescript", 4 | "cache": false, 5 | "check-coverage": true, 6 | "extension": [ 7 | ".ts" 8 | ], 9 | "include": [ 10 | "**/src/*.ts" 11 | ], 12 | "reporter": [ 13 | "cobertura", 14 | "text-summary" 15 | ], 16 | "statements": 45, 17 | "branches": 25, 18 | "functions": 28, 19 | "lines": 44 20 | } -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | ## [1.1.4] - 2023-07-31 4 | 5 | ### Changed 6 | 7 | - Updated crypto library usage: Replaced `window.crypto` with Node.js `crypto` module for server-side compatibility. 8 | 9 | ## [1.1.3] - 2022-11-06 10 | 11 | ### Fixed 12 | 13 | - Removal of some explicit words from the two dictionaries 14 | - Fixed a small spelling mistake Retrive -> Retrieve 15 | - Put adjective in first position before noun in generateUsername 16 | 17 | **Full Changelog**: https://github.com/subhamg/unique-username-generator/compare/v1.1.1...v1.1.3 18 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Subham Goyal 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![](https://img.shields.io/npm/v/unique-username-generator.svg)](https://npmjs.org/package/unique-username-generator) 2 | [![Total alerts](https://img.shields.io/lgtm/alerts/g/subhamg/unique-username-generator.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/subhamg/unique-username-generator/alerts/) 3 | [![Language grade: JavaScript](https://img.shields.io/lgtm/grade/javascript/g/subhamg/unique-username-generator.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/subhamg/unique-username-generator/context:javascript) 4 | ![npm](https://img.shields.io/npm/dt/unique-username-generator) 5 | ![NPM](https://img.shields.io/npm/l/unique-username-generator) 6 | 7 | [![visitors](https://api.visitorbadge.io/api/visitors?path=https%3A%2F%2Fgithub.com%2Fsubhamg%2Funique-username-generator&countColor=%232ccce4&style=flat)](https://visitorbadge.io/status?path=https%3A%2F%2Fgithub.com%2Fsubhamg%2Funique-username-generator) 8 | 9 | Buy Me A Coffee donate button 10 | 11 | 12 | # unique-username-generator 13 | 14 | A package to generate a unique username from email or randomly selected nouns and adjectives. User can add a separator between the username, define the maximum length of a username and adds up to six random digits. 15 | 16 | [![NPM](https://nodei.co/npm/unique-username-generator.png)](https://nodei.co/npm/unique-username-generator/) 17 | 18 | ## Installation 19 | 20 | ```javascript 21 | npm install unique-username-generator --save 22 | ``` 23 | 24 | - Importing 25 | 26 | ```javascript 27 | // Using Node.js `require()` 28 | const { generateFromEmail, generateUsername } = require("unique-username-generator"); 29 | // Using ES6 imports 30 | import { generateFromEmail, generateUsername } from "unique-username-generator"; 31 | ``` 32 | 33 | ## Usage 34 | 35 | ### Generate username from email 36 | 37 | It will generate username from email and add upto six random digits at the end of the name. 38 | 39 | ```javascript 40 | // add three random digits 41 | const username = generateFromEmail( 42 | "lakshmi.narayan@example.com", 43 | 3 44 | ); 45 | console.log(username); // lakshminarayan234 46 | 47 | // add four random digits 48 | const username = generateFromEmail( 49 | "lakshmi.narayan@example.com", 50 | 4 51 | ); 52 | console.log(username); // lakshminarayan2347 53 | ``` 54 | 55 | ### Randomly generate unique username. 56 | 57 | It will generate unique username from adjectives, nouns, random digits and separator. You can control these following parameters - separator, number of random digits and maximum length of a username. 58 | 59 | ```javascript 60 | // generaterUsername(separator, number of random digits, maximum length) 61 | 62 | // Without any parameter 63 | const username = generateUsername(); 64 | console.log(username); // blossomlogistical 65 | 66 | // With any separator like "-, _" 67 | const username = generateUsername("-"); 68 | console.log(username); // blossom-logistical 69 | 70 | // With random digits and no separator 71 | const username = generateUsername("", 3); 72 | console.log(username); // blossomlogistical732 73 | 74 | // With maximum length constraint and no separator, no random digits 75 | const username = generateUsername("", 0, 15); 76 | console.log(username); // blossomlogistic 77 | 78 | // With maximum length constraint and separator but no random digits 79 | const username = generateUsername("-", 0, 15); 80 | console.log(username); // blossom-logisti 81 | 82 | // With maximum length constraint and random digits but no separator 83 | const username = generateUsername("", 2, 19); 84 | console.log(username); // blossomlogistical73 85 | 86 | // With all parameters 87 | const username = generateUsername("-", 2, 20, 'unique username'); 88 | console.log(username); // unique-username-73 89 | ``` 90 | 91 | ### Default dictionaries 92 | 93 | By default, the unique username generator library comes with 2 dictionaries out of the box, so that you can use them straight away. 94 | 95 | The new syntax for using the default dictionaries is the following: 96 | 97 | ```javascript 98 | import { uniqueUsernameGenerator, Config, adjectives, nouns } from 'unique-username-generator'; 99 | 100 | const config: Config = { 101 | dictionaries: [adjectives, nouns] 102 | } 103 | 104 | const username: string = uniqueUsernameGenerator(config); // blossomlogistical 105 | ``` 106 | 107 | ### Custom dictionaries 108 | 109 | You might want to provide your custom dictionaries to use for generating your unique username, in order to meet your project requirements. You can easily do that using the dictionaries option. 110 | 111 | ```javascript 112 | import { uniqueUsernameGenerator } from 'unique-username-generator'; 113 | 114 | const marvelCharacters = [ 115 | 'Iron Man', 116 | 'Doctor Strange', 117 | 'Hulk', 118 | 'Captain America', 119 | 'Thanos' 120 | ]; 121 | 122 | const config: Config = { 123 | dictionaries: [marvelCharacters], 124 | separator: '', 125 | style: 'capital', 126 | randomDigits: 3 127 | } 128 | 129 | const username: string = uniqueUsernameGenerator(config); // Hulk123 130 | ``` 131 | 132 | ## API 133 | 134 | ### uniqueUsernameGenerator (options) 135 | Returns a `string` with a random generated username 136 | 137 | ### options 138 | 139 | Type: `Config` 140 | 141 | The `options` argument mostly corresponds to the properties defined for uniqueUsernameGenerator. Only `dictionaries` is required. 142 | 143 | 144 | | Option | Type | Description | Default value | Example value | 145 | |--------------|-------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| 146 | | dictionaries | `array` | This is an array of dictionaries. Each dictionary is an array of strings containing the words to use for generating the string.
The provided dictionaries can be imported from the library as a separate modules and provided in the desired order. | n/a |
```import { uniqueUsernameGenerator, adjectives, nouns } from 'unique-username-generator';```
```const username: string = uniqueUsernameGenerator({ dictionaries: [nouns, adjectives]}); // blossomlogistical``` | 147 | | separator | `string` | A string separator to be used for separate the words generated. The default separator is set to be empty string. | "" | `-` | 148 | | randomDigits | `number` | A number of random digits to add at the end of a username. | 0 | `3` | 149 | | length | `number` | A maximum length of a username | 15 | `12` | 150 | | style | `lowerCase \| upperCase \| capital` | The default value is set to `lowerCase` and it will return a lower case username.
By setting the value to `upperCase`, the words, will be returned with all the letters in upper case format.
The `capital` option will capitalize each word of the unique username generated | lowerCase | `lowerCase` | 151 | 152 | ## License 153 | 154 | The MIT License. 155 | 156 | ## Thank you 157 | If you'd like to say thanks, I'd really appreciate a coffee :) 158 | 159 | Buy Me A Coffee -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported Versions 4 | 5 | Use this section to tell people about which versions of your project are 6 | currently being supported with security updates. 7 | 8 | | Version | Supported | 9 | | ------- | ------------------ | 10 | | 5.1.x | :white_check_mark: | 11 | | 5.0.x | :x: | 12 | | 4.0.x | :white_check_mark: | 13 | | < 4.0 | :x: | 14 | 15 | ## Reporting a Vulnerability 16 | 17 | Use this section to tell people how to report a vulnerability. 18 | 19 | Tell them where to go, how often they can expect to get an update on a 20 | reported vulnerability, what to expect if the vulnerability is accepted or 21 | declined, etc. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "unique-username-generator", 3 | "version": "1.1.3", 4 | "description": "A package to generate a unique username from email or randomly selected nouns and adjectives. User can add a separator between the username, define the maximum length of a username and adds up to six random digits.", 5 | "main": "./dist/index.js", 6 | "scripts": { 7 | "build": "tsc", 8 | "test": "ts-mocha tests/**/*.test.ts", 9 | "coverage": "nyc npm test && npm run cover:report", 10 | "cover:report": "nyc report --reporter=lcov --reporter=text", 11 | "lint": "eslint '*/**/*.ts'", 12 | "prepare": "npm run build", 13 | "semantic-release": "semantic-release --branches main" 14 | }, 15 | "files": [ 16 | "dist", 17 | "LICENSE", 18 | "README.md" 19 | ], 20 | "repository": { 21 | "type": "git", 22 | "url": "https://github.com/subhamg/unique-username-generator.git" 23 | }, 24 | "keywords": [ 25 | "generate", 26 | "username", 27 | "username-from-email", 28 | "email", 29 | "generate username", 30 | "generate-username-from-email", 31 | "generate unique username", 32 | "generate-unique-username", 33 | "generate-unique-name", 34 | "unique-username-generator", 35 | "unique-name-generator", 36 | "unique", 37 | "random", 38 | "user", 39 | "generator", 40 | "node" 41 | ], 42 | "author": "Subham Goyal", 43 | "license": "MIT", 44 | "bugs": { 45 | "url": "https://github.com/subhamg/unique-username-generator/issues" 46 | }, 47 | "homepage": "https://github.com/subhamg/unique-username-generator#readme", 48 | "devDependencies": { 49 | "@istanbuljs/nyc-config-typescript": "^1.0.2", 50 | "@types/chai": "^4.3.1", 51 | "@types/mocha": "^9.1.1", 52 | "@types/node": "^17.0.33", 53 | "@typescript-eslint/eslint-plugin": "^5.23.0", 54 | "@typescript-eslint/parser": "^5.23.0", 55 | "chai": "^4.3.6", 56 | "cz-conventional-changelog": "^3.3.0", 57 | "eslint": "^8.15.0", 58 | "mocha": "^10.0.0", 59 | "nyc": "^15.1.0", 60 | "semantic-release": "^19.0.5", 61 | "source-map-support": "^0.5.21", 62 | "ts-mocha": "^10.0.0", 63 | "ts-node": "^10.9.1", 64 | "typescript": "^4.6.4" 65 | }, 66 | "config": { 67 | "commitizen": { 68 | "path": "./node_modules/cz-conventional-changelog" 69 | } 70 | } 71 | } 72 | -------------------------------------------------------------------------------- /src/data/adjectives.ts: -------------------------------------------------------------------------------- 1 | export default [ 2 | "other", 3 | "new", 4 | "good", 5 | "old", 6 | "little", 7 | "great", 8 | "small", 9 | "young", 10 | "long", 11 | "black", 12 | "high", 13 | "only", 14 | "big", 15 | "white", 16 | "political", 17 | "right", 18 | "large", 19 | "real", 20 | "sure", 21 | "different", 22 | "important", 23 | "public", 24 | "possible", 25 | "full", 26 | "whole", 27 | "certain", 28 | "human", 29 | "major", 30 | "military", 31 | "bad", 32 | "social", 33 | "dead", 34 | "true", 35 | "economic", 36 | "open", 37 | "early", 38 | "free", 39 | "national", 40 | "strong", 41 | "hard", 42 | "special", 43 | "clear", 44 | "local", 45 | "private", 46 | "wrong", 47 | "late", 48 | "short", 49 | "poor", 50 | "recent", 51 | "dark", 52 | "fine", 53 | "foreign", 54 | "ready", 55 | "red", 56 | "cold", 57 | "low", 58 | "heavy", 59 | "serious", 60 | "single", 61 | "personal", 62 | "difficult", 63 | "left", 64 | "blue", 65 | "federal", 66 | "necessary", 67 | "general", 68 | "easy", 69 | "likely", 70 | "beautiful", 71 | "happy", 72 | "past", 73 | "hot", 74 | "close", 75 | "common", 76 | "afraid", 77 | "simple", 78 | "natural", 79 | "main", 80 | "various", 81 | "available", 82 | "nice", 83 | "present", 84 | "final", 85 | "sorry", 86 | "entire", 87 | "current", 88 | "similar", 89 | "deep", 90 | "huge", 91 | "rich", 92 | "nuclear", 93 | "empty", 94 | "strange", 95 | "quiet", 96 | "front", 97 | "wide", 98 | "modern", 99 | "concerned", 100 | "green", 101 | "very", 102 | "alone", 103 | "particular", 104 | "bright", 105 | "supposed", 106 | "basic", 107 | "medical", 108 | "aware", 109 | "total", 110 | "financial", 111 | "legal", 112 | "original", 113 | "international", 114 | "soft", 115 | "alive", 116 | "interested", 117 | "tall", 118 | "warm", 119 | "popular", 120 | "tiny", 121 | "top", 122 | "normal", 123 | "powerful", 124 | "silent", 125 | "religious", 126 | "impossible", 127 | "quick", 128 | "safe", 129 | "thin", 130 | "familiar", 131 | "gray", 132 | "fresh", 133 | "physical", 134 | "individual", 135 | "willing", 136 | "crazy", 137 | "sick", 138 | "angry", 139 | "perfect", 140 | "tired", 141 | "wild", 142 | "moral", 143 | "brown", 144 | "dangerous", 145 | "famous", 146 | "married", 147 | "terrible", 148 | "successful", 149 | "fair", 150 | "professional", 151 | "official", 152 | "obvious", 153 | "glad", 154 | "central", 155 | "chief", 156 | "effective", 157 | "light", 158 | "complete", 159 | "interesting", 160 | "thick", 161 | "proper", 162 | "involved", 163 | "responsible", 164 | "narrow", 165 | "civil", 166 | "industrial", 167 | "dry", 168 | "yellow", 169 | "specific", 170 | "sharp", 171 | "sudden", 172 | "direct", 173 | "following", 174 | "growing", 175 | "significant", 176 | "traditional", 177 | "slow", 178 | "previous", 179 | "vast", 180 | "surprised", 181 | "busy", 182 | "usual", 183 | "clean", 184 | "funny", 185 | "regular", 186 | "scientific", 187 | "ordinary", 188 | "ancient", 189 | "senior", 190 | "sweet", 191 | "future", 192 | "annual", 193 | "secret", 194 | "equal", 195 | "independent", 196 | "wonderful", 197 | "tough", 198 | "broad", 199 | "additional", 200 | "careful", 201 | "domestic", 202 | "brief", 203 | "enormous", 204 | "commercial", 205 | "grand", 206 | "average", 207 | "sexual", 208 | "nervous", 209 | "pale", 210 | "immediate", 211 | "critical", 212 | "proud", 213 | "like", 214 | "complex", 215 | "separate", 216 | "considerable", 217 | "still", 218 | "extra", 219 | "expensive", 220 | "guilty", 221 | "active", 222 | "mad", 223 | "asleep", 224 | "wooden", 225 | "cool", 226 | "presidential", 227 | "apparent", 228 | "weak", 229 | "essential", 230 | "living", 231 | "pretty", 232 | "cultural", 233 | "useful", 234 | "actual", 235 | "unusual", 236 | "daily", 237 | "potential", 238 | "wet", 239 | "solid", 240 | "lovely", 241 | "comfortable", 242 | "formal", 243 | "outside", 244 | "massive", 245 | "sad", 246 | "corporate", 247 | "distant", 248 | "loose", 249 | "rare", 250 | "stupid", 251 | "visible", 252 | "liberal", 253 | "flat", 254 | "pleased", 255 | "pure", 256 | "curious", 257 | "practical", 258 | "upper", 259 | "technical", 260 | "male", 261 | "appropriate", 262 | "fat", 263 | "just", 264 | "due", 265 | "mere", 266 | "handsome", 267 | "mental", 268 | "conservative", 269 | "positive", 270 | "leading", 271 | "naked", 272 | "false", 273 | "drunk", 274 | "dirty", 275 | "friendly", 276 | "constant", 277 | "well", 278 | "used", 279 | "emotional", 280 | "internal", 281 | "odd", 282 | "historical", 283 | "female", 284 | "ill", 285 | "broken", 286 | "capable", 287 | "southern", 288 | "pleasant", 289 | "bare", 290 | "minor", 291 | "eager", 292 | "lucky", 293 | "urban", 294 | "steady", 295 | "fiscal", 296 | "rough", 297 | "primary", 298 | "reasonable", 299 | "typical", 300 | "inner", 301 | "favorite", 302 | "attractive", 303 | "slight", 304 | "innocent", 305 | "limited", 306 | "straight", 307 | "pink", 308 | "excellent", 309 | "double", 310 | "dramatic", 311 | "violent", 312 | "honest", 313 | "electric", 314 | "fellow", 315 | "substantial", 316 | "opposite", 317 | "awful", 318 | "severe", 319 | "joint", 320 | "armed", 321 | "hungry", 322 | "remarkable", 323 | "increased", 324 | "gentle", 325 | "illegal", 326 | "middle", 327 | "bitter", 328 | "mass", 329 | "permanent", 330 | "increasing", 331 | "damn", 332 | "golden", 333 | "correct", 334 | "intense", 335 | "round", 336 | "northern", 337 | "proposed", 338 | "so-called", 339 | "criminal", 340 | "healthy", 341 | "plain", 342 | "vital", 343 | "blind", 344 | "native", 345 | "intellectual", 346 | "unknown", 347 | "extreme", 348 | "existing", 349 | "raw", 350 | "prime", 351 | "brilliant", 352 | "sensitive", 353 | "extraordinary", 354 | "sufficient", 355 | "remaining", 356 | "ultimate", 357 | "unique", 358 | "royal", 359 | "initial", 360 | "negative", 361 | "fundamental", 362 | "nearby", 363 | "smart", 364 | "strategic", 365 | "educational", 366 | "unlikely", 367 | "smooth", 368 | "modest", 369 | "conventional", 370 | "giant", 371 | "scared", 372 | "cheap", 373 | "dear", 374 | "delicate", 375 | "anxious", 376 | "valuable", 377 | "standard", 378 | "desperate", 379 | "lonely", 380 | "diplomatic", 381 | "firm", 382 | "wise", 383 | "principal", 384 | "congressional", 385 | "occasional", 386 | "ugly", 387 | "vice", 388 | "radical", 389 | "faint", 390 | "working", 391 | "absolute", 392 | "intelligent", 393 | "racial", 394 | "mutual", 395 | "silly", 396 | "fast", 397 | "musical", 398 | "tight", 399 | "complicated", 400 | "numerous", 401 | "crucial", 402 | "square", 403 | "contemporary", 404 | "bloody", 405 | "western", 406 | "endless", 407 | "inevitable", 408 | "environmental", 409 | "constitutional", 410 | "rapid", 411 | "worried", 412 | "lost", 413 | "genuine", 414 | "temporary", 415 | "democratic", 416 | "rural", 417 | "regional", 418 | "given", 419 | "painful", 420 | "literary", 421 | "chemical", 422 | "sophisticated", 423 | "decent", 424 | "academic", 425 | "awake", 426 | "conscious", 427 | "revolutionary", 428 | "surprising", 429 | "elderly", 430 | "agricultural", 431 | "psychological", 432 | "pregnant", 433 | "live", 434 | "adequate", 435 | "superior", 436 | "grateful", 437 | "prominent", 438 | "frightened", 439 | "remote", 440 | "overall", 441 | "stiff", 442 | "harsh", 443 | "electronic", 444 | "spiritual", 445 | "okay", 446 | "closed", 447 | "excited", 448 | "convinced", 449 | "long-term", 450 | "unexpected", 451 | "dull", 452 | "evident", 453 | "civilian", 454 | "mysterious", 455 | "romantic", 456 | "impressive", 457 | "continuing", 458 | "exciting", 459 | "logical", 460 | "peculiar", 461 | "exact", 462 | "widespread", 463 | "foolish", 464 | "extensive", 465 | "evil", 466 | "continued", 467 | "confident", 468 | "generous", 469 | "legislative", 470 | "stable", 471 | "vulnerable", 472 | "elegant", 473 | "embarrassed", 474 | "hostile", 475 | "efficient", 476 | "blond", 477 | "dumb", 478 | "advanced", 479 | "defensive", 480 | "outer", 481 | "neat", 482 | "estimated", 483 | "wealthy", 484 | "dying", 485 | "loud", 486 | "creative", 487 | "acceptable", 488 | "unhappy", 489 | "sheer", 490 | "competitive", 491 | "concrete", 492 | "reluctant", 493 | "precious", 494 | "tremendous", 495 | "burning", 496 | "precise", 497 | "uncertain", 498 | "holy", 499 | "artificial", 500 | "vague", 501 | "ideal", 502 | "universal", 503 | "moderate", 504 | "subtle", 505 | "mild", 506 | "peaceful", 507 | "assistant", 508 | "invisible", 509 | "casual", 510 | "crowded", 511 | "crude", 512 | "running", 513 | "classic", 514 | "controversial", 515 | "ridiculous", 516 | "frequent", 517 | "grim", 518 | "accurate", 519 | "detailed", 520 | "goddamn", 521 | "fun", 522 | "fierce", 523 | "cruel", 524 | "incredible", 525 | "blank", 526 | "dim", 527 | "suitable", 528 | "classical", 529 | "elaborate", 530 | "collective", 531 | "eastern", 532 | "legitimate", 533 | "aggressive", 534 | "rear", 535 | "administrative", 536 | "automatic", 537 | "dependent", 538 | "ashamed", 539 | "distinct", 540 | "fit", 541 | "clever", 542 | "brave", 543 | "ethnic", 544 | "maximum", 545 | "relative", 546 | "primitive", 547 | "uncomfortable", 548 | "profound", 549 | "sacred", 550 | "biological", 551 | "identical", 552 | "furious", 553 | "loyal", 554 | "rational", 555 | "mechanical", 556 | "mean", 557 | "naval", 558 | "noble", 559 | "ambitious", 560 | "purple", 561 | "historic", 562 | "dominant", 563 | "suburban", 564 | "developing", 565 | "calm", 566 | "frozen", 567 | "subsequent", 568 | "charming", 569 | "damp", 570 | "fixed", 571 | "rigid", 572 | "offensive", 573 | "electrical", 574 | "shy", 575 | "continuous", 576 | "urgent", 577 | "weary", 578 | "immense", 579 | "splendid", 580 | "downtown", 581 | "uneasy", 582 | "disappointed", 583 | "helpless", 584 | "voluntary", 585 | "polite", 586 | "junior", 587 | "gross", 588 | "striking", 589 | "overwhelming", 590 | "unconscious", 591 | "steep", 592 | "outstanding", 593 | "tender", 594 | "tragic", 595 | "costly", 596 | "miserable", 597 | "near", 598 | "useless", 599 | "welcome", 600 | "external", 601 | "helpful", 602 | "weekly", 603 | "middle-aged", 604 | "suspicious", 605 | "old-fashioned", 606 | "technological", 607 | "damned", 608 | "awkward", 609 | "visual", 610 | "organized", 611 | "ideological", 612 | "orange", 613 | "horrible", 614 | "strict", 615 | "magnificent", 616 | "deadly", 617 | "dusty", 618 | "mighty", 619 | "puzzled", 620 | "bold", 621 | "global", 622 | "passing", 623 | "magic", 624 | "fond", 625 | "judicial", 626 | "missing", 627 | "definite", 628 | "changing", 629 | "rubber", 630 | "theoretical", 631 | "satisfied", 632 | "promising", 633 | "abstract", 634 | "excessive", 635 | "comparable", 636 | "fatal", 637 | "distinguished", 638 | "inadequate", 639 | "slender", 640 | "artistic", 641 | "known", 642 | "sympathetic", 643 | "favorable", 644 | "cheerful", 645 | "faithful", 646 | "delighted", 647 | "unnecessary", 648 | "sole", 649 | "cautious", 650 | "productive", 651 | "reliable", 652 | "patient", 653 | "sensible", 654 | "desirable", 655 | "depressed", 656 | "atomic", 657 | "able", 658 | "instant", 659 | "relevant", 660 | "alien", 661 | "spectacular", 662 | "lesser", 663 | "swift", 664 | "comic", 665 | "enthusiastic", 666 | "marvelous", 667 | "experimental", 668 | "weird", 669 | "retired", 670 | "fascinating", 671 | "content", 672 | "medieval", 673 | "inclined", 674 | "bored", 675 | "ruling", 676 | "flying", 677 | "consistent", 678 | "organic", 679 | "alleged", 680 | "grave", 681 | "smiling", 682 | "realistic", 683 | "amazing", 684 | "exotic", 685 | "symbolic", 686 | "confused", 687 | "underground", 688 | "spare", 689 | "philosophical", 690 | "vigorous", 691 | "troubled", 692 | "shallow", 693 | "amused", 694 | "lively", 695 | "genetic", 696 | "impatient", 697 | "brutal", 698 | "solar", 699 | "unfair", 700 | "formidable", 701 | "tense", 702 | "unfortunate", 703 | "minimum", 704 | "sleeping", 705 | "secondary", 706 | "shiny", 707 | "jealous", 708 | "insane", 709 | "gay", 710 | "vivid", 711 | "wounded", 712 | "hurt", 713 | "intimate", 714 | "monthly", 715 | "sour", 716 | "socialist", 717 | "worthy", 718 | "preliminary", 719 | "colonial", 720 | "middle-class", 721 | "alternative", 722 | "influential", 723 | "unpleasant", 724 | "comprehensive", 725 | "devoted", 726 | "upset", 727 | "secure", 728 | "absurd", 729 | "neutral", 730 | "frightening", 731 | "profitable", 732 | "fragile", 733 | "civilized", 734 | "slim", 735 | "partial", 736 | "added", 737 | "fearful", 738 | "optimistic", 739 | "isolated", 740 | "eternal", 741 | "vocal", 742 | "beloved", 743 | "alert", 744 | "verbal", 745 | "rising", 746 | "skilled", 747 | "antique", 748 | "municipal", 749 | "written", 750 | "restless", 751 | "outdoor", 752 | "governmental", 753 | "driving", 754 | "sore", 755 | "informal", 756 | "loving", 757 | "retail", 758 | "hidden", 759 | "determined", 760 | "monetary", 761 | "convenient", 762 | "thoughtful", 763 | "colored", 764 | "progressive", 765 | "bizarre", 766 | "sweeping", 767 | "fancy", 768 | "expected", 769 | "fantastic", 770 | "editorial", 771 | "intact", 772 | "bottom", 773 | "multiple", 774 | "well-known", 775 | "nasty", 776 | "protective", 777 | "acute", 778 | "combined", 779 | "related", 780 | "fortunate", 781 | "earnest", 782 | "divine", 783 | "passionate", 784 | "icy", 785 | "noisy", 786 | "vicious", 787 | "dreadful", 788 | "apt", 789 | "boring", 790 | "unprecedented", 791 | "decisive", 792 | "sunny", 793 | "marked", 794 | "experienced", 795 | "disturbing", 796 | "satisfactory", 797 | "sober", 798 | "random", 799 | "electoral", 800 | "shocked", 801 | "deliberate", 802 | "coming", 803 | "orderly", 804 | "surrounding", 805 | "unwilling", 806 | "inherent", 807 | "mixed", 808 | "naive", 809 | "dense", 810 | "hopeless", 811 | "aesthetic", 812 | "supreme", 813 | "encouraging", 814 | "institutional", 815 | "solemn", 816 | "stubborn", 817 | "required", 818 | "relaxed", 819 | "bald", 820 | "frantic", 821 | "exclusive", 822 | "rotten", 823 | "filthy", 824 | "flexible", 825 | "explicit", 826 | "glorious", 827 | "lean", 828 | "ignorant", 829 | "extended", 830 | "embarrassing", 831 | "architectural", 832 | "mortal", 833 | "corrupt", 834 | "hopeful", 835 | "regulatory", 836 | "valid", 837 | "characteristic", 838 | "tribal", 839 | "capitalist", 840 | "diverse", 841 | "functional", 842 | "improved", 843 | "ironic", 844 | "graceful", 845 | "unaware", 846 | "respectable", 847 | "eligible", 848 | "lousy", 849 | "established", 850 | "postwar", 851 | "objective", 852 | "wary", 853 | "elementary", 854 | "moving", 855 | "superb", 856 | "cute", 857 | "minimal", 858 | "meaningful", 859 | "notable", 860 | "structural", 861 | "developed", 862 | "rolling", 863 | "fashionable", 864 | "persistent", 865 | "distinctive", 866 | "terrific", 867 | "thorough", 868 | "skeptical", 869 | "secular", 870 | "chronic", 871 | "level", 872 | "everyday", 873 | "visiting", 874 | "infinite", 875 | "short-term", 876 | "terrorist", 877 | "youthful", 878 | "unemployed", 879 | "forced", 880 | "liquid", 881 | "explosive", 882 | "rude", 883 | "colorful", 884 | "renewed", 885 | "semantic", 886 | "astonishing", 887 | "passive", 888 | "heroic", 889 | "gleaming", 890 | "indifferent", 891 | "vertical", 892 | "prior", 893 | "anonymous", 894 | "absent", 895 | "customary", 896 | "mobile", 897 | "uniform", 898 | "solitary", 899 | "probable", 900 | "amazed", 901 | "petty", 902 | "bleak", 903 | "athletic", 904 | "tentative", 905 | "harmless", 906 | "ample", 907 | "right-wing", 908 | "polished", 909 | "obscure", 910 | "sincere", 911 | "dried", 912 | "intensive", 913 | "equivalent", 914 | "convincing", 915 | "idle", 916 | "vacant", 917 | "mature", 918 | "amusing", 919 | "competent", 920 | "ominous", 921 | "savage", 922 | "motionless", 923 | "tropical", 924 | "blunt", 925 | "drunken", 926 | "delicious", 927 | "lazy", 928 | "ragged", 929 | "longtime", 930 | "nationwide", 931 | "startling", 932 | "civic", 933 | "freezing", 934 | "muscular", 935 | "circular", 936 | "imperial", 937 | "irrelevant", 938 | "countless", 939 | "gloomy", 940 | "startled", 941 | "disastrous", 942 | "skinny", 943 | "hollow", 944 | "upward", 945 | "ethical", 946 | "underlying", 947 | "careless", 948 | "wholesale", 949 | "abandoned", 950 | "unfamiliar", 951 | "mandatory", 952 | "imaginary", 953 | "bewildered", 954 | "annoyed", 955 | "magnetic", 956 | "dazzling", 957 | "lengthy", 958 | "stern", 959 | "surgical", 960 | "clinical", 961 | "full-time", 962 | "metropolitan", 963 | "moist", 964 | "unlike", 965 | "doubtful", 966 | "prosperous", 967 | "keen", 968 | "awesome", 969 | "humble", 970 | "interior", 971 | "psychiatric", 972 | "clumsy", 973 | "outraged", 974 | "theatrical", 975 | "educated", 976 | "gigantic", 977 | "scattered", 978 | "privileged", 979 | "sleepy", 980 | "battered", 981 | "meaningless", 982 | "predictable", 983 | "gradual", 984 | "miniature", 985 | "radioactive", 986 | "prospective", 987 | "aging", 988 | "destructive", 989 | "authentic", 990 | "portable", 991 | "bearded", 992 | "balanced", 993 | "shining", 994 | "spontaneous", 995 | "bureaucratic", 996 | "inferior", 997 | "sturdy", 998 | "cynical", 999 | "exquisite", 1000 | "talented", 1001 | "immune", 1002 | "imaginative", 1003 | "ripe", 1004 | "shared", 1005 | "kind", 1006 | "parliamentary", 1007 | "glowing", 1008 | "frail", 1009 | "astonished", 1010 | "forward", 1011 | "inside", 1012 | "operational", 1013 | "faded", 1014 | "closing", 1015 | "pro", 1016 | "coastal", 1017 | "shrewd", 1018 | "preoccupied", 1019 | "celebrated", 1020 | "wicked", 1021 | "bourgeois", 1022 | "marginal", 1023 | "transparent", 1024 | "dynamic", 1025 | "psychic", 1026 | "plump", 1027 | "coarse", 1028 | "bleeding", 1029 | "striped", 1030 | "eventual", 1031 | "residential", 1032 | "hysterical", 1033 | "pathetic", 1034 | "planned", 1035 | "fake", 1036 | "imminent", 1037 | "sentimental", 1038 | "stunning", 1039 | "worldwide", 1040 | "militant", 1041 | "sizable", 1042 | "representative", 1043 | "incapable", 1044 | "provincial", 1045 | "poetic", 1046 | "injured", 1047 | "tactical", 1048 | "selfish", 1049 | "winning", 1050 | "foul", 1051 | "repeated", 1052 | "novel", 1053 | "dubious", 1054 | "part-time", 1055 | "abrupt", 1056 | "lone", 1057 | "overseas", 1058 | "grey", 1059 | "varied", 1060 | "cooperative", 1061 | "muddy", 1062 | "scheduled", 1063 | "legendary", 1064 | "arrogant", 1065 | "conspicuous", 1066 | "varying", 1067 | "devastating", 1068 | "vulgar", 1069 | "martial", 1070 | "amateur", 1071 | "mathematical", 1072 | "deaf", 1073 | "scarce", 1074 | "specialized", 1075 | "honorable", 1076 | "outrageous", 1077 | "confidential", 1078 | "fallen", 1079 | "goddamned", 1080 | "five-year", 1081 | "feminine", 1082 | "monstrous", 1083 | "brisk", 1084 | "systematic", 1085 | "exhausted", 1086 | "frank", 1087 | "lunar", 1088 | "daring", 1089 | "shadowy", 1090 | "respected", 1091 | "stark", 1092 | "accepted", 1093 | "successive", 1094 | "pending", 1095 | "prolonged", 1096 | "unseen", 1097 | "uniformed", 1098 | "wretched", 1099 | "sullen", 1100 | "arbitrary", 1101 | "drastic", 1102 | "crooked", 1103 | "resulting", 1104 | "intricate", 1105 | "unpredictable", 1106 | "printed", 1107 | "utter", 1108 | "satisfying", 1109 | "delightful", 1110 | "linguistic", 1111 | "shabby", 1112 | "statistical", 1113 | "accessible", 1114 | "prestigious", 1115 | "trivial", 1116 | "waiting", 1117 | "futile", 1118 | "prepared", 1119 | "aged", 1120 | "misleading", 1121 | "cognitive", 1122 | "shocking", 1123 | "childish", 1124 | "elected", 1125 | "magical", 1126 | "forthcoming", 1127 | "exceptional", 1128 | "gifted", 1129 | "stricken", 1130 | "fiery", 1131 | "cardboard", 1132 | "shaky", 1133 | "conflicting", 1134 | "commanding", 1135 | "starving", 1136 | "accustomed", 1137 | "rocky", 1138 | "long-range", 1139 | "floating", 1140 | "sinister", 1141 | "potent", 1142 | "phony", 1143 | "lasting", 1144 | "understandable", 1145 | "curved", 1146 | "barren", 1147 | "lethal", 1148 | "toxic", 1149 | "deserted", 1150 | "ambiguous", 1151 | "notorious", 1152 | "synthetic", 1153 | "worthwhile", 1154 | "imported", 1155 | "intent", 1156 | "reduced", 1157 | "painted", 1158 | "taut", 1159 | "sociological", 1160 | "questionable", 1161 | "crisp", 1162 | "pointed", 1163 | "harmful", 1164 | "horizontal", 1165 | "rival", 1166 | "somber", 1167 | "benign", 1168 | "prevailing", 1169 | "selected", 1170 | "organizational", 1171 | "excess", 1172 | "dedicated", 1173 | "veteran", 1174 | "implicit", 1175 | "prudent", 1176 | "plausible", 1177 | "confusing", 1178 | "smoking", 1179 | "large-scale", 1180 | "subdued", 1181 | "constructive", 1182 | "marital", 1183 | "scarlet", 1184 | "rugged", 1185 | "darkened", 1186 | "untouched", 1187 | "above", 1188 | "matching", 1189 | "covert", 1190 | "communal", 1191 | "sticky", 1192 | "affluent", 1193 | "energetic", 1194 | "stale", 1195 | "controlled", 1196 | "qualified", 1197 | "reminiscent", 1198 | "shut", 1199 | "blonde", 1200 | "handy", 1201 | "ritual", 1202 | "straightforward", 1203 | "terminal", 1204 | "dizzy", 1205 | "sane", 1206 | "twisted", 1207 | "occupied", 1208 | "finished", 1209 | "opposing", 1210 | "sly", 1211 | "depressing", 1212 | "irregular", 1213 | "marine", 1214 | "communist", 1215 | "obscene", 1216 | "wrinkled", 1217 | "unsuccessful", 1218 | "gracious", 1219 | "static", 1220 | "consecutive", 1221 | "reserve", 1222 | "exposed", 1223 | "scholarly", 1224 | "sleek", 1225 | "reckless", 1226 | "oral", 1227 | "comforting", 1228 | "pressing", 1229 | "swollen", 1230 | "viable", 1231 | "carved", 1232 | "obsessed", 1233 | "projected", 1234 | "hideous", 1235 | "unthinkable", 1236 | "mock", 1237 | "susceptible", 1238 | "respective", 1239 | "goddam", 1240 | "downward", 1241 | "memorable", 1242 | "worn", 1243 | "raised", 1244 | "glittering", 1245 | "beneficial", 1246 | "lingering", 1247 | "patriotic", 1248 | "stunned", 1249 | "hairy", 1250 | "worrying", 1251 | "lighted", 1252 | "sexy", 1253 | "abundant", 1254 | "tangled", 1255 | "perpetual", 1256 | "irresistible", 1257 | "terrified", 1258 | "compelling", 1259 | "unmistakable", 1260 | "feeble", 1261 | "uneven", 1262 | "trained", 1263 | "folded", 1264 | "relentless", 1265 | "killed", 1266 | "gorgeous", 1267 | "conservation", 1268 | "serene", 1269 | "eerie", 1270 | "premature", 1271 | "dismal", 1272 | "competing", 1273 | "risky", 1274 | "unacceptable", 1275 | "indirect", 1276 | "witty", 1277 | "muffled", 1278 | "feasible", 1279 | "interstate", 1280 | "heated", 1281 | "uncommon", 1282 | "accidental", 1283 | "queer", 1284 | "innovative", 1285 | "parallel", 1286 | "fried", 1287 | "unnatural", 1288 | "cracked", 1289 | "persuasive", 1290 | "integrated", 1291 | "ongoing", 1292 | "homosexual", 1293 | "sound", 1294 | "fertile", 1295 | "canned", 1296 | "preceding", 1297 | "worldly", 1298 | "onstage", 1299 | "declining", 1300 | "advisory", 1301 | "juvenile", 1302 | "slippery", 1303 | "numb", 1304 | "postal", 1305 | "olive", 1306 | "eccentric", 1307 | "lay", 1308 | "chilly", 1309 | "shrill", 1310 | "ceremonial", 1311 | "registered", 1312 | "boiling", 1313 | "contradictory", 1314 | "irresponsible", 1315 | "then", 1316 | "industrialized", 1317 | "obsolete", 1318 | "rusty", 1319 | "inflationary", 1320 | "split", 1321 | "discreet", 1322 | "intolerable", 1323 | "barefoot", 1324 | "territorial", 1325 | "outspoken", 1326 | "audible", 1327 | "adverse", 1328 | "associate", 1329 | "impending", 1330 | "decorative", 1331 | "luminous", 1332 | "two-year", 1333 | "expanding", 1334 | "unchanged", 1335 | "outstretched", 1336 | "momentary", 1337 | "good-looking", 1338 | "cunning", 1339 | "overnight", 1340 | "sprawling", 1341 | "unbelievable", 1342 | "bland", 1343 | "liable", 1344 | "terrifying", 1345 | "televised", 1346 | "appealing", 1347 | "breathless", 1348 | "alarming", 1349 | "supporting", 1350 | "greasy", 1351 | "affirmative", 1352 | "guiding", 1353 | "homeless", 1354 | "triumphant", 1355 | "rainy", 1356 | "stolen", 1357 | "empirical", 1358 | "timid", 1359 | "provocative", 1360 | "knowledgeable", 1361 | "pragmatic", 1362 | "touching", 1363 | "desired", 1364 | "amiable", 1365 | "attempted", 1366 | "humane", 1367 | "adjacent", 1368 | "superficial", 1369 | "greedy", 1370 | "assorted", 1371 | "elusive", 1372 | "ruthless", 1373 | "lush", 1374 | "soothing", 1375 | "imposing", 1376 | "preferred", 1377 | "lavish", 1378 | "pervasive", 1379 | "managing", 1380 | "sandy", 1381 | "inappropriate", 1382 | "desolate", 1383 | "nude", 1384 | "reassuring", 1385 | "shimmering", 1386 | "first-class", 1387 | "unfinished", 1388 | "insistent", 1389 | "comparative", 1390 | "conceivable", 1391 | "admirable", 1392 | "courageous", 1393 | "aristocratic", 1394 | "meager", 1395 | "subjective", 1396 | "vain", 1397 | "disgusted", 1398 | "dual", 1399 | "towering", 1400 | "responsive", 1401 | "ailing", 1402 | "compact", 1403 | "torn", 1404 | "sortal", 1405 | "entertaining", 1406 | "dreary", 1407 | "metallic", 1408 | "tedious", 1409 | "irrational", 1410 | "immoral", 1411 | "teen-age", 1412 | "interim", 1413 | "jagged", 1414 | "selective", 1415 | "volatile", 1416 | "cozy", 1417 | "unanimous", 1418 | "unlimited", 1419 | "hired", 1420 | "cosmic", 1421 | "indoor", 1422 | "retarded", 1423 | "gold", 1424 | "fabulous", 1425 | "dignified", 1426 | "long-distance", 1427 | "high-school", 1428 | "classified", 1429 | "luxurious", 1430 | "insufficient", 1431 | "pious", 1432 | "incomplete", 1433 | "oblivious", 1434 | "imperialist", 1435 | "stately", 1436 | "lifelong", 1437 | "subordinate", 1438 | "extravagant", 1439 | "intrinsic", 1440 | "unpopular", 1441 | "scant", 1442 | "surplus", 1443 | "radiant", 1444 | "ruined", 1445 | "grotesque", 1446 | "hazardous", 1447 | "disabled", 1448 | "intriguing", 1449 | "worthless", 1450 | "reported", 1451 | "hoarse", 1452 | "utmost", 1453 | "muted", 1454 | "bony", 1455 | "disgusting", 1456 | "monumental", 1457 | "pleasing", 1458 | "sterile", 1459 | "agreeable", 1460 | "three-year", 1461 | "tricky", 1462 | "lucrative", 1463 | "respectful", 1464 | "inexpensive", 1465 | "bulky", 1466 | "troublesome", 1467 | "affectionate", 1468 | "coherent", 1469 | "unreasonable", 1470 | "nineteenth-century", 1471 | "curly", 1472 | "indispensable", 1473 | "nursing", 1474 | "incompetent", 1475 | "governing", 1476 | "alternate", 1477 | "suspected", 1478 | "left-wing", 1479 | "refined", 1480 | "overt", 1481 | "chilling", 1482 | "virtual", 1483 | "devoid", 1484 | "perverse", 1485 | "enduring", 1486 | "outright", 1487 | "overhead", 1488 | "unnoticed", 1489 | "nonprofit", 1490 | "pointless", 1491 | "appalling", 1492 | "dental", 1493 | "chosen", 1494 | "enlightened", 1495 | "robust", 1496 | "commonplace", 1497 | "damaging", 1498 | "conscientious", 1499 | "eloquent", 1500 | "erratic", 1501 | "applied", 1502 | "merry", 1503 | "ardent", 1504 | "flowing", 1505 | "incoming", 1506 | "chaotic", 1507 | "noticeable", 1508 | "pitiful", 1509 | "locked", 1510 | "swelling", 1511 | "definitive", 1512 | "homemade", 1513 | "super", 1514 | "pronounced", 1515 | "kindly", 1516 | "prone", 1517 | "attentive", 1518 | "unstable", 1519 | "unrelated", 1520 | "charitable", 1521 | "armored", 1522 | "unclear", 1523 | "tangible", 1524 | "medium", 1525 | "winding", 1526 | "slick", 1527 | "credible", 1528 | "frustrating", 1529 | "shifting", 1530 | "spacious", 1531 | "day-to-day", 1532 | "surviving", 1533 | "expanded", 1534 | "arid", 1535 | "unwanted", 1536 | "unbearable", 1537 | "hesitant", 1538 | "recognizable", 1539 | "multinational", 1540 | "abdominal", 1541 | "murderous", 1542 | "glossy", 1543 | "mute", 1544 | "working-class", 1545 | "insignificant", 1546 | "ingenious", 1547 | "masculine", 1548 | "blessed", 1549 | "gaunt", 1550 | "miraculous", 1551 | "unconstitutional", 1552 | "parental", 1553 | "rigorous", 1554 | "bodily", 1555 | "impersonal", 1556 | "backward", 1557 | "computerized", 1558 | "four-year", 1559 | "unmarried", 1560 | "wry", 1561 | "resident", 1562 | "luxury", 1563 | "high-level", 1564 | "partisan", 1565 | "powerless", 1566 | "seasonal", 1567 | "self-conscious", 1568 | "triple", 1569 | "onetime", 1570 | "ecological", 1571 | "periodic", 1572 | "racist", 1573 | "exaggerated", 1574 | "facial", 1575 | "erotic", 1576 | "unreal", 1577 | "durable", 1578 | "manual", 1579 | "rounded", 1580 | "concentrated", 1581 | "literal", 1582 | "mystical", 1583 | "stimulating", 1584 | "staggering", 1585 | "tempting", 1586 | "last-minute", 1587 | "erect", 1588 | "feudal", 1589 | "head", 1590 | "emerging", 1591 | "hind", 1592 | "brooding", 1593 | "candid", 1594 | "paranoid", 1595 | "defective", 1596 | "linear", 1597 | "immortal", 1598 | "shattered", 1599 | "unsure", 1600 | "swinging", 1601 | "compatible", 1602 | "ghastly", 1603 | "investigative", 1604 | "rosy", 1605 | "convicted", 1606 | "sensational", 1607 | "committed", 1608 | "makeshift", 1609 | "tolerant", 1610 | "forceful", 1611 | "supernatural", 1612 | "joyous", 1613 | "limp", 1614 | "improper", 1615 | "hanging", 1616 | "sliding", 1617 | "renowned", 1618 | "tattered", 1619 | "nonexistent", 1620 | "supportive", 1621 | "frustrated", 1622 | "undercover", 1623 | "handicapped", 1624 | "apprehensive", 1625 | "plentiful", 1626 | "authoritative", 1627 | "sustained", 1628 | "disappointing", 1629 | "hereditary", 1630 | "photographic", 1631 | "impoverished", 1632 | "ornate", 1633 | "respiratory", 1634 | "substantive", 1635 | "acting", 1636 | "nutritional", 1637 | "unofficial", 1638 | "innumerable", 1639 | "prevalent", 1640 | "dire", 1641 | "menacing", 1642 | "outward", 1643 | "brittle", 1644 | "hasty", 1645 | "sparkling", 1646 | "sled", 1647 | "geographical", 1648 | "therapeutic", 1649 | "melancholy", 1650 | "adolescent", 1651 | "hearty", 1652 | "disturbed", 1653 | "sweaty", 1654 | "poisonous", 1655 | "paid", 1656 | "ineffective", 1657 | "humorous", 1658 | "burly", 1659 | "rebellious", 1660 | "reddish", 1661 | "stout", 1662 | "teenage", 1663 | "eminent", 1664 | "rhythmic", 1665 | "physiological", 1666 | "guaranteed", 1667 | "opaque", 1668 | "folding", 1669 | "fleeting", 1670 | "full-scale", 1671 | "low-income", 1672 | "infectious", 1673 | "stringent", 1674 | "stained", 1675 | "beige", 1676 | "stirring", 1677 | "soaring", 1678 | "glamorous", 1679 | "airborne", 1680 | "improbable", 1681 | "austere", 1682 | "anticipated", 1683 | "designated", 1684 | "oval", 1685 | "restrictive", 1686 | "yearly", 1687 | "precarious", 1688 | "relieved", 1689 | "said", 1690 | "feverish", 1691 | "occupational", 1692 | "holding", 1693 | "speculative", 1694 | "abnormal", 1695 | "challenging", 1696 | "healing", 1697 | "boyish", 1698 | "forbidding", 1699 | "divorced", 1700 | "famed", 1701 | "sluggish", 1702 | "struggling", 1703 | "united", 1704 | "undesirable", 1705 | "steaming", 1706 | "consulting", 1707 | "answering", 1708 | "recreational", 1709 | "accompanying", 1710 | "cramped", 1711 | "journalistic", 1712 | "neighboring", 1713 | "fictional", 1714 | "chopped", 1715 | "phenomenal", 1716 | "bankrupt", 1717 | "illicit", 1718 | "advancing", 1719 | "upcoming", 1720 | "racing", 1721 | "protected", 1722 | "padded", 1723 | "venerable", 1724 | "fuzzy", 1725 | "behavioral", 1726 | "roast", 1727 | "mocking", 1728 | "reactionary", 1729 | "inefficient", 1730 | "packed", 1731 | "sloppy", 1732 | "sparse", 1733 | "foster", 1734 | "revealing", 1735 | "reverse", 1736 | "gaping", 1737 | "blue-collar", 1738 | "thankful", 1739 | "down", 1740 | "unimportant", 1741 | "traveling", 1742 | "corresponding", 1743 | "maternal", 1744 | "autonomous", 1745 | "conceptual", 1746 | "smoky", 1747 | "baked", 1748 | "stuffed", 1749 | "murky", 1750 | "totalitarian", 1751 | "ghostly", 1752 | "seeming", 1753 | "flickering", 1754 | "sensual", 1755 | "clenched", 1756 | "offshore", 1757 | "stinging", 1758 | "oppressive", 1759 | "strained", 1760 | "messy", 1761 | "executive", 1762 | "evolutionary", 1763 | "theological", 1764 | "damaged", 1765 | "unrealistic", 1766 | "rectangular", 1767 | "off", 1768 | "mainstream", 1769 | "benevolent", 1770 | "thirsty", 1771 | "blinding", 1772 | "loaded", 1773 | "applicable", 1774 | "unused", 1775 | "crushed", 1776 | "tan", 1777 | "factual", 1778 | "involuntary", 1779 | "brand-new", 1780 | "akin", 1781 | "scary", 1782 | "modified", 1783 | "mindless", 1784 | "born", 1785 | "feminist", 1786 | "integral", 1787 | "uncanny", 1788 | "aloof", 1789 | "spreading", 1790 | "watery", 1791 | "playful", 1792 | "stocky", 1793 | "wasted", 1794 | "compulsory", 1795 | "indignant", 1796 | "pertinent", 1797 | "incredulous", 1798 | "simultaneous", 1799 | "turbulent", 1800 | "framed", 1801 | "aching", 1802 | "falling", 1803 | "cardiac", 1804 | "trim", 1805 | "silvery", 1806 | "accused", 1807 | "pastoral", 1808 | "barbed", 1809 | "adjoining", 1810 | "inspired", 1811 | "courteous", 1812 | "skillful", 1813 | "majestic", 1814 | "gilded", 1815 | "published", 1816 | "perennial", 1817 | "upright", 1818 | "seasoned", 1819 | "continual", 1820 | "papal", 1821 | "victorious", 1822 | "optical", 1823 | "ecstatic", 1824 | "agonizing", 1825 | "shameful", 1826 | "expressive", 1827 | "inconsistent", 1828 | "insulting", 1829 | "cloudy", 1830 | "defiant", 1831 | "restricted", 1832 | "approaching", 1833 | "aggregate", 1834 | "orthodox", 1835 | "unified", 1836 | "all-out", 1837 | "wooded", 1838 | "nationalist", 1839 | "favored", 1840 | "lofty", 1841 | "assured", 1842 | "smug", 1843 | "earthly", 1844 | "improving", 1845 | "instrumental", 1846 | "stray", 1847 | "clandestine", 1848 | "managerial", 1849 | "animated", 1850 | "intended", 1851 | "flawed", 1852 | "bent", 1853 | "clerical", 1854 | "outgoing", 1855 | "righteous", 1856 | "unspoken", 1857 | "poignant", 1858 | "faulty", 1859 | "defeated", 1860 | "authoritarian", 1861 | "treacherous", 1862 | "catastrophic", 1863 | "refreshing", 1864 | "unidentified", 1865 | "suicidal", 1866 | "sickly", 1867 | "disciplined", 1868 | "meticulous", 1869 | "preferable", 1870 | "trusted", 1871 | "hectic", 1872 | "husky", 1873 | "distraught", 1874 | "select", 1875 | "snowy", 1876 | "ferocious", 1877 | "crumpled", 1878 | "humiliating", 1879 | "divided", 1880 | "crippled", 1881 | "infamous", 1882 | "chic", 1883 | "broke", 1884 | "sovereign", 1885 | "continental", 1886 | "idealistic", 1887 | "first-rate", 1888 | "guarded", 1889 | "learned", 1890 | "nameless", 1891 | "runaway", 1892 | "metaphysical", 1893 | "senseless", 1894 | "boiled", 1895 | "needy", 1896 | "silver", 1897 | "recorded", 1898 | "polar", 1899 | "real-estate", 1900 | "stormy", 1901 | "incomprehensible", 1902 | "wiry", 1903 | "raging", 1904 | "composite", 1905 | "flamboyant", 1906 | "crimson", 1907 | "reproductive", 1908 | "intermediate", 1909 | "ubiquitous", 1910 | "repressive", 1911 | "hefty", 1912 | "listening", 1913 | "good-natured", 1914 | "parochial", 1915 | "stylish", 1916 | "high-tech", 1917 | "flaming", 1918 | "coronary", 1919 | "overweight", 1920 | "bathing", 1921 | "three-day", 1922 | "tidy", 1923 | "beleaguered", 1924 | "manifest", 1925 | "ludicrous", 1926 | "indigenous", 1927 | "adamant", 1928 | "placid", 1929 | "inept", 1930 | "exuberant", 1931 | "stony", 1932 | "salty", 1933 | "seductive", 1934 | "accomplished", 1935 | "impassive", 1936 | "grazing", 1937 | "congenial", 1938 | "misguided", 1939 | "wide-eyed", 1940 | "revised", 1941 | "bass", 1942 | "sonic", 1943 | "budgetary", 1944 | "halfway", 1945 | "ensuing", 1946 | "admiring", 1947 | "palpable", 1948 | "nightly", 1949 | "hooded", 1950 | "best-known", 1951 | "eighteenth-century", 1952 | "dissident", 1953 | "morbid", 1954 | "incumbent", 1955 | "demanding", 1956 | "inexperienced", 1957 | "hazy", 1958 | "revolving", 1959 | "rented", 1960 | "disadvantaged", 1961 | "innate", 1962 | "dietary", 1963 | "minute", 1964 | "cultivated", 1965 | "sealed", 1966 | "contemptuous", 1967 | "rhetorical", 1968 | "conciliatory", 1969 | "articulate", 1970 | "jobless", 1971 | "macho", 1972 | "forgotten", 1973 | "lifeless", 1974 | "proven", 1975 | "latent", 1976 | "secretive", 1977 | "perilous", 1978 | "token", 1979 | "graphic", 1980 | "alcoholic", 1981 | "overdue", 1982 | "permissible", 1983 | "shattering", 1984 | "preventive", 1985 | "illiterate", 1986 | "back", 1987 | "atmospheric", 1988 | "thermal", 1989 | "quaint", 1990 | "negotiated", 1991 | "preposterous", 1992 | "temporal", 1993 | "restrained", 1994 | "triangular", 1995 | "mayoral", 1996 | "spatial", 1997 | "heady", 1998 | "biblical", 1999 | "fitting", 2000 | "pessimistic", 2001 | "mammoth", 2002 | "allied", 2003 | "failed", 2004 | "intuitive", 2005 | "nagging", 2006 | "tidal", 2007 | "angular", 2008 | "speechless", 2009 | "finishing", 2010 | "protracted", 2011 | "watchful", 2012 | "businesslike", 2013 | "automated", 2014 | "versatile", 2015 | "booming", 2016 | "pouring", 2017 | "misty", 2018 | "deceptive", 2019 | "sunken", 2020 | "singular", 2021 | "suspended", 2022 | "unworthy", 2023 | "immigrant", 2024 | "expressionless", 2025 | "airy", 2026 | "mournful", 2027 | "neurotic", 2028 | "cubic", 2029 | "unauthorized", 2030 | "economical", 2031 | "fund-raising", 2032 | "captive", 2033 | "blatant", 2034 | "far-reaching", 2035 | "subversive", 2036 | "imperfect", 2037 | "jolly", 2038 | "inaccurate", 2039 | "resentful", 2040 | "strenuous", 2041 | "suffering", 2042 | "hardened", 2043 | "malicious", 2044 | "unjust", 2045 | "perceptive", 2046 | "newborn", 2047 | "promised", 2048 | "differing", 2049 | "virgin", 2050 | "alarmed", 2051 | "grassy", 2052 | "frivolous", 2053 | "apologetic", 2054 | "wasteful", 2055 | "endangered", 2056 | "unarmed", 2057 | "adept", 2058 | "unavoidable", 2059 | "approved", 2060 | "trembling", 2061 | "stuck", 2062 | "high-ranking", 2063 | "crushing", 2064 | "prescribed", 2065 | "dependable", 2066 | "fragrant", 2067 | "expansive", 2068 | "unfriendly", 2069 | "covered", 2070 | "bemused", 2071 | "digital", 2072 | "probing", 2073 | "sloping", 2074 | "man-made", 2075 | "festive", 2076 | "unilateral", 2077 | "unmarked", 2078 | "bipartisan", 2079 | "statewide", 2080 | "burgeoning", 2081 | "devout", 2082 | "sickening", 2083 | "mediocre", 2084 | "adventurous", 2085 | "elevated", 2086 | "suggestive", 2087 | "accountable", 2088 | "virtuous", 2089 | "lame", 2090 | "heavenly", 2091 | "bruised", 2092 | "unbroken", 2093 | "irritable", 2094 | "affected", 2095 | "inconceivable", 2096 | "sometime", 2097 | "vile", 2098 | "baggy", 2099 | "timely", 2100 | "glistening", 2101 | "imagined", 2102 | "unprepared", 2103 | "unresolved", 2104 | "windy", 2105 | "humanitarian", 2106 | "overriding", 2107 | "detached", 2108 | "annoying", 2109 | "narrative", 2110 | "interminable", 2111 | "appalled", 2112 | "penal", 2113 | "unsatisfactory", 2114 | "instinctive", 2115 | "variable", 2116 | "cumulative", 2117 | "obedient", 2118 | "deficient", 2119 | "colossal", 2120 | "unaffected", 2121 | "extinct", 2122 | "routine", 2123 | "microscopic", 2124 | "compassionate", 2125 | "nominal", 2126 | "forlorn", 2127 | "distorted", 2128 | "mistaken", 2129 | "enclosed", 2130 | "infected", 2131 | "fervent", 2132 | "analogous", 2133 | "frigid", 2134 | "instructive", 2135 | "appointed", 2136 | "one-way", 2137 | "gnarled", 2138 | "problematic", 2139 | "sardonic", 2140 | "two-hour", 2141 | "hypothetical", 2142 | "prompt", 2143 | "anguished", 2144 | "electromagnetic", 2145 | "sensuous", 2146 | "homely", 2147 | "beaten", 2148 | "malignant", 2149 | "rotting", 2150 | "concealed", 2151 | "peripheral", 2152 | "creaking", 2153 | "impeccable", 2154 | "khaki", 2155 | "grinning", 2156 | "irreversible", 2157 | "rampant", 2158 | "wondrous", 2159 | "inward", 2160 | "manufactured", 2161 | "grisly", 2162 | "cooked", 2163 | "discriminatory", 2164 | "cerebral", 2165 | "knowing", 2166 | "auxiliary", 2167 | "operative", 2168 | "losing", 2169 | "genial", 2170 | "phonetic", 2171 | "ecclesiastical", 2172 | "sarcastic", 2173 | "incorrect", 2174 | "ruddy", 2175 | "well-to-do", 2176 | "inexplicable", 2177 | "unreliable", 2178 | "developmental", 2179 | "woolen", 2180 | "agitated", 2181 | "lyrical", 2182 | "consequent", 2183 | "calculated", 2184 | "molecular", 2185 | "pompous", 2186 | "present-day", 2187 | "shaggy", 2188 | "even", 2189 | "inhuman", 2190 | "sublime", 2191 | "diagnostic", 2192 | "manly", 2193 | "raucous", 2194 | "balding", 2195 | "after", 2196 | "bilateral", 2197 | "mounted", 2198 | "blackened", 2199 | "assembled", 2200 | "separated", 2201 | "gaudy", 2202 | "evangelical", 2203 | "darling", 2204 | "juicy", 2205 | "impotent", 2206 | "receptive", 2207 | "irritating", 2208 | "pulmonary", 2209 | "dazed", 2210 | "cross-country", 2211 | "unavailable", 2212 | "parked", 2213 | "habitual", 2214 | "lexical", 2215 | "lowered", 2216 | "unwise", 2217 | "planetary", 2218 | "throbbing", 2219 | "enigmatic", 2220 | "superstitious", 2221 | "threatening", 2222 | "manned", 2223 | "childlike", 2224 | "sporting", 2225 | "right-hand", 2226 | "adult", 2227 | "reflective", 2228 | "white-haired", 2229 | "discernible", 2230 | "celestial", 2231 | "prodigious", 2232 | "translucent", 2233 | "equitable", 2234 | "epic", 2235 | "frayed", 2236 | "arduous", 2237 | "flimsy", 2238 | "penetrating", 2239 | "howling", 2240 | "disparate", 2241 | "alike", 2242 | "all-time", 2243 | "deformed", 2244 | "comical", 2245 | "inert", 2246 | "procedural", 2247 | "resistant", 2248 | "vibrant", 2249 | "geographic", 2250 | "wistful", 2251 | "specified", 2252 | "rightful", 2253 | "spirited", 2254 | "unborn", 2255 | "enjoyable", 2256 | "regal", 2257 | "cumbersome", 2258 | "burned", 2259 | "frenzied", 2260 | "gubernatorial", 2261 | "deteriorating", 2262 | "haunted", 2263 | "evasive", 2264 | "neglected", 2265 | "anthropological", 2266 | "inescapable", 2267 | "clear-cut", 2268 | "visionary", 2269 | "bloated", 2270 | "accumulated", 2271 | "agrarian", 2272 | "pained", 2273 | "dwindling", 2274 | "heightened", 2275 | "gray-haired", 2276 | "distressing", 2277 | "grinding", 2278 | "insecure", 2279 | "archaic", 2280 | "piercing", 2281 | "fluent", 2282 | "leisurely", 2283 | "giddy", 2284 | "slimy", 2285 | "oncoming", 2286 | "short-lived", 2287 | "spinal", 2288 | "wholesome", 2289 | "unanswered", 2290 | "illegitimate", 2291 | "staunch", 2292 | "two-day", 2293 | "rumpled", 2294 | "speedy", 2295 | "soaked", 2296 | "rocking", 2297 | "invaluable", 2298 | "gallant", 2299 | "tacit", 2300 | "finite", 2301 | "inviting", 2302 | "sporadic", 2303 | "powdered", 2304 | "cheery", 2305 | "volcanic", 2306 | "optional", 2307 | "mischievous", 2308 | "flowered", 2309 | "contagious", 2310 | "automotive", 2311 | "inflated", 2312 | "mythic", 2313 | "analytical", 2314 | "infrared", 2315 | "two-week", 2316 | "binding", 2317 | "ancestral", 2318 | "dissatisfied", 2319 | "upstate", 2320 | "veritable", 2321 | "unaccustomed", 2322 | "oily", 2323 | "monotonous", 2324 | "seated", 2325 | "feeding", 2326 | "fluorescent", 2327 | "undue", 2328 | "impassioned", 2329 | "picturesque", 2330 | "vocational", 2331 | "tranquil", 2332 | "tumultuous", 2333 | "rustic", 2334 | "patterned", 2335 | "two-story", 2336 | "pagan", 2337 | "flash", 2338 | "playing", 2339 | "exhilarating", 2340 | "maiden", 2341 | "three-dimensional", 2342 | "mythical", 2343 | "thriving", 2344 | "drab", 2345 | "black-and-white", 2346 | "honorary", 2347 | "dingy", 2348 | "founding", 2349 | "imperative", 2350 | "indistinguishable", 2351 | "lightweight", 2352 | "avid", 2353 | "dreamy", 2354 | "everlasting", 2355 | "obsessive", 2356 | "tional", 2357 | "homogeneous", 2358 | "inner-city", 2359 | "changed", 2360 | "tame", 2361 | "colorless", 2362 | "haggard", 2363 | "implacable", 2364 | "altered", 2365 | "unequal", 2366 | "focal", 2367 | "perceptual", 2368 | "literate", 2369 | "priceless", 2370 | "diminishing", 2371 | "harmonious", 2372 | "dark-haired", 2373 | "fatty", 2374 | "squat", 2375 | "undecided", 2376 | "banal", 2377 | "fruitful", 2378 | "pioneering", 2379 | "innocuous", 2380 | "cordial", 2381 | "rewarding", 2382 | "unsafe", 2383 | "maritime", 2384 | "overcrowded", 2385 | "timeless", 2386 | "fledgling", 2387 | "nostalgic", 2388 | "abreast", 2389 | "one-time", 2390 | "humid", 2391 | "astronomical", 2392 | "one-man", 2393 | "deepening", 2394 | "blazing", 2395 | "fleshy", 2396 | "dishonest", 2397 | "succeeding", 2398 | "qualitative", 2399 | "needless", 2400 | "rickety", 2401 | "joyful", 2402 | "stated", 2403 | "ambivalent", 2404 | "hybrid", 2405 | "six-month", 2406 | "limiting", 2407 | "workable", 2408 | "sleepless", 2409 | "unpaid", 2410 | "mundane", 2411 | "flashy", 2412 | "stagnant", 2413 | "bumper", 2414 | "recurring", 2415 | "sinful", 2416 | "immaculate", 2417 | "synonymous", 2418 | "measured", 2419 | "thrilling", 2420 | "long-standing", 2421 | "unruly", 2422 | "bewildering", 2423 | "unfit", 2424 | "edgy", 2425 | "numerical", 2426 | "sumptuous", 2427 | "fragmented", 2428 | "puffy", 2429 | "elastic", 2430 | "high-pitched", 2431 | "momentous", 2432 | "woven", 2433 | "unsteady", 2434 | "unnamed", 2435 | "cosmetic", 2436 | "snap", 2437 | "impenetrable", 2438 | "floral", 2439 | "waving", 2440 | "promotional", 2441 | "tenuous", 2442 | "lonesome", 2443 | "embroidered", 2444 | "strident", 2445 | "cherished", 2446 | "aghast", 2447 | "fundamentalist", 2448 | "white-collar", 2449 | "afloat", 2450 | "disruptive", 2451 | "law-enforcement", 2452 | "gathered", 2453 | "indefinite", 2454 | "intervening", 2455 | "publicized", 2456 | "geometric", 2457 | "disciplinary", 2458 | "descriptive", 2459 | "wavy", 2460 | "edible", 2461 | "disgruntled", 2462 | "obligatory", 2463 | "untrue", 2464 | "amber", 2465 | "snug", 2466 | "resolute", 2467 | "awed", 2468 | "simplistic", 2469 | "grandiose", 2470 | "crippling", 2471 | "high-speed", 2472 | "mounting", 2473 | "glaring", 2474 | "small-town", 2475 | "cavernous", 2476 | "hushed", 2477 | "wage-price", 2478 | "demographic", 2479 | "diseased", 2480 | "unpublished", 2481 | "causal", 2482 | "defenseless", 2483 | "sheltered", 2484 | "dormant", 2485 | "compulsive", 2486 | "loved", 2487 | "willful", 2488 | "truthful", 2489 | "punitive", 2490 | "disposable", 2491 | "ajar", 2492 | "drowsy", 2493 | "statutory", 2494 | "tanned", 2495 | "proprietary", 2496 | "informed", 2497 | "unheard", 2498 | "decision-making", 2499 | "transient", 2500 | "unlawful", 2501 | "dour", 2502 | "negligible", 2503 | "underwater", 2504 | "optimum", 2505 | "illusory", 2506 | "imaginable", 2507 | "borrowed", 2508 | "divergent", 2509 | "looking", 2510 | "exempt", 2511 | "contentious", 2512 | "forbidden", 2513 | "cowardly", 2514 | "masked", 2515 | "crazed", 2516 | "silken", 2517 | "parched", 2518 | "furry", 2519 | "wandering", 2520 | "insensitive", 2521 | "over-all", 2522 | "elated", 2523 | "waxed", 2524 | "veiled", 2525 | "envious", 2526 | "insidious", 2527 | "scrawny", 2528 | "unwarranted", 2529 | "lithe", 2530 | "abrasive", 2531 | "pretentious", 2532 | "far-off", 2533 | "murdered", 2534 | "deft", 2535 | "prickly", 2536 | "musty", 2537 | "shapeless", 2538 | "incongruous", 2539 | "gruesome", 2540 | "honored", 2541 | "perceived", 2542 | "grieving", 2543 | "unspecified", 2544 | "dizzying", 2545 | "privy", 2546 | "noteworthy", 2547 | "charred", 2548 | "median", 2549 | "fearless", 2550 | "twisting", 2551 | "unattractive", 2552 | "flawless", 2553 | "welcoming", 2554 | "flushed", 2555 | "hardy", 2556 | "glum", 2557 | "scenic", 2558 | "devious", 2559 | "recurrent", 2560 | "distasteful", 2561 | "jubilant", 2562 | "ballistic", 2563 | "hilarious", 2564 | "naughty", 2565 | "bustling", 2566 | "discarded", 2567 | "pristine", 2568 | "exemplary", 2569 | "fading", 2570 | "complacent", 2571 | "incessant", 2572 | "engaging", 2573 | "twentieth-century", 2574 | "protectionist", 2575 | "rudimentary", 2576 | "traumatic", 2577 | "steamy", 2578 | "emphatic", 2579 | "hard-line", 2580 | "teeming", 2581 | "generating", 2582 | "stuffy", 2583 | "connecting", 2584 | "stationary", 2585 | "genteel", 2586 | "populist", 2587 | "supple", 2588 | "hateful", 2589 | "retrospective", 2590 | "glazed", 2591 | "lawful", 2592 | "arched", 2593 | "tiresome", 2594 | "lucid", 2595 | "reserved", 2596 | "pivotal", 2597 | "grimy", 2598 | "surly", 2599 | "anti-Soviet", 2600 | "contrary", 2601 | "quarterly", 2602 | "old-time", 2603 | "residual", 2604 | "spiral", 2605 | "decaying", 2606 | "threatened", 2607 | "docile", 2608 | "appreciative", 2609 | "jovial", 2610 | "fascist", 2611 | "worrisome", 2612 | "red-haired", 2613 | "undisturbed", 2614 | "creamy", 2615 | "well-dressed", 2616 | "serial", 2617 | "existential", 2618 | "mountainous", 2619 | "pastel", 2620 | "self-sufficient", 2621 | "spoken", 2622 | "express", 2623 | "tasty", 2624 | "maroon", 2625 | "infrequent", 2626 | "deceased", 2627 | "full-fledged", 2628 | "transitional", 2629 | "leafy", 2630 | "gravitational", 2631 | "furtive", 2632 | "prophetic", 2633 | "nasal", 2634 | "unwelcome", 2635 | "troubling", 2636 | "immobile", 2637 | "merciful", 2638 | "uncontrollable", 2639 | "impartial", 2640 | "unfavorable", 2641 | "attendant", 2642 | "associated", 2643 | "high-rise", 2644 | "vascular", 2645 | "fateful", 2646 | "concerted", 2647 | "rash", 2648 | "stubby", 2649 | "paramount", 2650 | "impulsive", 2651 | "fraudulent", 2652 | "drooping", 2653 | "reciprocal", 2654 | "usable", 2655 | "fast-food", 2656 | "touchy", 2657 | "astute", 2658 | "oversized", 2659 | "mottled", 2660 | "slack", 2661 | "fruitless", 2662 | "unhealthy", 2663 | "decorated", 2664 | "shady", 2665 | "shaped", 2666 | "fanciful", 2667 | "quivering", 2668 | "charismatic", 2669 | "sordid", 2670 | "oppressed", 2671 | "inaccessible", 2672 | "fastidious", 2673 | "brazen", 2674 | "gloved", 2675 | "crumbling", 2676 | "underdeveloped", 2677 | "scarred", 2678 | "rambling", 2679 | "incipient", 2680 | "remedial", 2681 | "derelict", 2682 | "incompatible", 2683 | "fanatical", 2684 | "smoked", 2685 | "secondhand", 2686 | "hypnotic", 2687 | "failing", 2688 | "marching", 2689 | "flattened", 2690 | "paradoxical", 2691 | "unskilled", 2692 | "esthetic", 2693 | "tolerable", 2694 | "pungent", 2695 | "substitute", 2696 | "soggy", 2697 | "terse", 2698 | "tiring", 2699 | "fictitious", 2700 | "manageable", 2701 | "inventive", 2702 | "haughty", 2703 | "normative", 2704 | "premier", 2705 | "grudging", 2706 | "vested", 2707 | "exhausting", 2708 | "cross-legged", 2709 | "self-evident", 2710 | "away", 2711 | "horrified", 2712 | "prolific", 2713 | "incoherent", 2714 | "quantitative", 2715 | "full-length", 2716 | "year-round", 2717 | "unkind", 2718 | "provisional", 2719 | "exterior", 2720 | "brash", 2721 | "inconclusive", 2722 | "landed", 2723 | "breathtaking", 2724 | "acrid", 2725 | "noted", 2726 | "resultant", 2727 | "long-time", 2728 | "resounding", 2729 | "lovable", 2730 | "hypocritical", 2731 | "plush", 2732 | "foggy", 2733 | "acknowledged", 2734 | "idiotic", 2735 | "tracking", 2736 | "ceramic", 2737 | "taxable", 2738 | "enterprising", 2739 | "flashing", 2740 | "wee", 2741 | "barbaric", 2742 | "deafening", 2743 | "orbital", 2744 | "lurid", 2745 | "dated", 2746 | "hated", 2747 | "buoyant", 2748 | "mating", 2749 | "pictorial", 2750 | "overlapping", 2751 | "lax", 2752 | "archetypal", 2753 | "manic", 2754 | "limitless", 2755 | "puzzling", 2756 | "condescending", 2757 | "hapless", 2758 | "meek", 2759 | "faceless", 2760 | "uncommitted", 2761 | "horrid", 2762 | "greenish", 2763 | "unorthodox", 2764 | "unending", 2765 | "accelerated", 2766 | "day-care", 2767 | "undeniable", 2768 | "bushy", 2769 | "searing", 2770 | "fearsome", 2771 | "unharmed", 2772 | "divisive", 2773 | "overpowering", 2774 | "diving", 2775 | "telling", 2776 | "determining", 2777 | "uptight", 2778 | "cast", 2779 | "enlarged", 2780 | "ebullient", 2781 | "disagreeable", 2782 | "insatiable", 2783 | "grown-up", 2784 | "demented", 2785 | "puffing", 2786 | "inconvenient", 2787 | "uncontrolled", 2788 | "inland", 2789 | "repulsive", 2790 | "unintelligible", 2791 | "blue-eyed", 2792 | "pallid", 2793 | "nonviolent", 2794 | "dilapidated", 2795 | "unyielding", 2796 | "astounded", 2797 | "marvellous", 2798 | "low-cost", 2799 | "purposeful", 2800 | "courtly", 2801 | "predominant", 2802 | "conversational", 2803 | "erroneous", 2804 | "resourceful", 2805 | "converted", 2806 | "disconcerting", 2807 | "oblique", 2808 | "dreaded", 2809 | "indicative", 2810 | "silky", 2811 | "six-year", 2812 | "front-page", 2813 | "biting", 2814 | "flowering", 2815 | "sunlit", 2816 | "licensed", 2817 | "unspeakable", 2818 | "adrift", 2819 | "awash", 2820 | "identifiable", 2821 | "girlish", 2822 | "zealous", 2823 | "spooky", 2824 | "uncompromising", 2825 | "deserving", 2826 | "driven", 2827 | "certified", 2828 | "unlucky", 2829 | "temperate", 2830 | "budding", 2831 | "impractical", 2832 | "public-relations", 2833 | "inflexible", 2834 | "sensory", 2835 | "pornographic", 2836 | "outlandish", 2837 | "resonant", 2838 | "belligerent", 2839 | "wan", 2840 | "leftover", 2841 | "spotted", 2842 | "soybean", 2843 | "easygoing", 2844 | "vengeful", 2845 | "proportional", 2846 | "inaugural", 2847 | "dank", 2848 | "screaming", 2849 | "heterosexual", 2850 | "sliced", 2851 | "year-old", 2852 | "considerate", 2853 | "thunderous", 2854 | "distressed", 2855 | "warring", 2856 | "assertive", 2857 | "foreseeable", 2858 | "psychotic", 2859 | "intermittent", 2860 | "anti-Communist", 2861 | "generalized", 2862 | "unable", 2863 | "molten", 2864 | "excruciating", 2865 | "illustrious", 2866 | "voluminous", 2867 | "offending", 2868 | "trustworthy", 2869 | "grating", 2870 | "laughing", 2871 | "one-year", 2872 | "industrious", 2873 | "uninterrupted", 2874 | "dashing", 2875 | "speaking", 2876 | "metabolic", 2877 | "flattering", 2878 | "one-sided", 2879 | "ineffectual", 2880 | "primal", 2881 | "digestive", 2882 | "taped", 2883 | "floppy", 2884 | "jaunty", 2885 | "practiced", 2886 | "walled", 2887 | "hospitable", 2888 | "dutiful", 2889 | "melodramatic", 2890 | "intestinal", 2891 | "cluttered", 2892 | "conclusive", 2893 | "complementary", 2894 | "unprotected", 2895 | "buzzing", 2896 | "attributable", 2897 | "tasteless", 2898 | "forthright", 2899 | "wily", 2900 | "hourly", 2901 | "delayed", 2902 | "sweating", 2903 | "affable", 2904 | "studied", 2905 | "chubby", 2906 | "thyroid", 2907 | "chilled", 2908 | "conducive", 2909 | "childless", 2910 | "faltering", 2911 | "authorized", 2912 | "buried", 2913 | "land-based", 2914 | "observable", 2915 | "hurried", 2916 | "curving", 2917 | "dismayed", 2918 | "pernicious", 2919 | "upturned", 2920 | "believable", 2921 | "questioning", 2922 | "syndicated", 2923 | "pharmaceutical", 2924 | "high-risk", 2925 | "resigned", 2926 | "discrete", 2927 | "likable", 2928 | "imprisoned", 2929 | "cocky", 2930 | "outdated", 2931 | "autocratic", 2932 | "ablaze", 2933 | "askew", 2934 | "grammatical", 2935 | "wintry", 2936 | "incidental", 2937 | "matter-of-fact", 2938 | "disputed", 2939 | "exorbitant", 2940 | "low-level", 2941 | "sodden", 2942 | "skeletal", 2943 | "disproportionate", 2944 | "soiled", 2945 | "cellular", 2946 | "ephemeral", 2947 | "perfunctory", 2948 | "inconsequential", 2949 | "flourishing", 2950 | "intentional", 2951 | "two-way", 2952 | "elemental", 2953 | "whispered", 2954 | "four-day", 2955 | "stinking", 2956 | "informative", 2957 | "tenacious", 2958 | "outlying", 2959 | "virulent", 2960 | "horrendous", 2961 | "horrifying", 2962 | "burnt", 2963 | "longstanding", 2964 | "senile", 2965 | "unmoving", 2966 | "deprived", 2967 | "interpersonal", 2968 | "intimidating", 2969 | "posh", 2970 | "dainty", 2971 | "portly", 2972 | "nondescript", 2973 | "inquisitive", 2974 | "exiled", 2975 | "capricious", 2976 | "scandalous", 2977 | "severed", 2978 | "debilitating", 2979 | "widowed", 2980 | "horny", 2981 | "sallow", 2982 | "up-to-date", 2983 | "self-contained", 2984 | "carefree", 2985 | "boisterous", 2986 | "coordinated", 2987 | "anti-Semitic", 2988 | "superfluous", 2989 | "metric", 2990 | "expressed", 2991 | "enchanting", 2992 | "disorderly", 2993 | "paternal", 2994 | "wanton", 2995 | "frightful", 2996 | "free-lance", 2997 | "extremist", 2998 | "lined", 2999 | "scornful", 3000 | "inseparable", 3001 | "obese", 3002 | "ponderous", 3003 | "imperious", 3004 | "indistinct", 3005 | "adrenal", 3006 | "belated", 3007 | "rippling", 3008 | "valiant", 3009 | "livid", 3010 | "mystic", 3011 | "cracking", 3012 | "subterranean", 3013 | "invading", 3014 | "rusted", 3015 | "esoteric", 3016 | "red-faced", 3017 | "segregated", 3018 | "lanky", 3019 | "departmental", 3020 | "allergic", 3021 | "predatory", 3022 | "enforced", 3023 | "anti-inflation", 3024 | "implied", 3025 | "flagrant", 3026 | "best-selling", 3027 | "haphazard", 3028 | "trailing", 3029 | "seedy", 3030 | "real-life", 3031 | "unannounced", 3032 | "utilitarian", 3033 | "roving", 3034 | "despairing", 3035 | "immature", 3036 | "simulated", 3037 | "embattled", 3038 | "poisoned", 3039 | "patronizing", 3040 | "baffled", 3041 | "centralized", 3042 | "weathered", 3043 | "weeping", 3044 | "mutilated", 3045 | "painstaking", 3046 | "tax-exempt", 3047 | "socioeconomic", 3048 | "tearful", 3049 | "stringy", 3050 | "projecting", 3051 | "low-key", 3052 | "single-minded", 3053 | "shadowed", 3054 | "vehement", 3055 | "darn", 3056 | "fluffy", 3057 | "apocalyptic", 3058 | "completed", 3059 | "intelligible", 3060 | "furnished", 3061 | "elongated", 3062 | "worsening", 3063 | "eclectic", 3064 | "bacterial", 3065 | "earthy", 3066 | "sagging", 3067 | "wide-ranging", 3068 | "face-to-face", 3069 | "settled", 3070 | "dogmatic", 3071 | "anti", 3072 | "secluded", 3073 | "baffling", 3074 | "coy", 3075 | "pathological", 3076 | "echoing", 3077 | "bridal", 3078 | "autobiographical", 3079 | "instantaneous", 3080 | "ornamental", 3081 | "satirical", 3082 | "voluptuous", 3083 | "movable", 3084 | "kinetic", 3085 | "merciless", 3086 | "tireless", 3087 | "three-month", 3088 | "unconcerned", 3089 | "impromptu", 3090 | "turning", 3091 | "follow-up", 3092 | "retaliatory", 3093 | "arcane", 3094 | "waterproof", 3095 | "justifiable", 3096 | "glassy", 3097 | "unearthly", 3098 | "shuttered", 3099 | "inverted", 3100 | "bogus", 3101 | "petrified", 3102 | "simmering", 3103 | "guided", 3104 | "gritty", 3105 | "widening", 3106 | "generic", 3107 | "pretrial", 3108 | "returning", 3109 | "boundless", 3110 | "swirling", 3111 | "northeastern", 3112 | "swell", 3113 | "tive", 3114 | "minuscule", 3115 | "estranged", 3116 | "upbeat", 3117 | "explanatory", 3118 | "repetitive", 3119 | "repressed", 3120 | "vindictive", 3121 | "shrinking", 3122 | "canny", 3123 | "little-known", 3124 | "hydraulic", 3125 | "unrelenting", 3126 | "looming", 3127 | "supersonic", 3128 | "justified", 3129 | "lukewarm", 3130 | "unmoved", 3131 | "blurred", 3132 | "double-breasted", 3133 | "sanitary", 3134 | "unforgettable", 3135 | "diligent", 3136 | "unconventional", 3137 | "ashen", 3138 | "wordless", 3139 | "stainless", 3140 | "inlaid", 3141 | "irritated", 3142 | "spotless", 3143 | "pudgy", 3144 | "yellowish", 3145 | "lateral", 3146 | "adopted", 3147 | "lowly", 3148 | "obnoxious", 3149 | "utopian", 3150 | "called", 3151 | "unimaginable", 3152 | "hairless", 3153 | "foregoing", 3154 | "opulent", 3155 | "garish", 3156 | "nocturnal", 3157 | "rousing", 3158 | "unexplained", 3159 | "cosmopolitan", 3160 | "milky", 3161 | "medium-sized", 3162 | "all-night", 3163 | "bloodshot", 3164 | "rueful", 3165 | "hard-working", 3166 | "crafty", 3167 | "familial", 3168 | "iced", 3169 | "violet", 3170 | "arctic", 3171 | "ceaseless", 3172 | "exasperated", 3173 | "warped", 3174 | "aquatic", 3175 | "gruff", 3176 | "terrestrial", 3177 | "contrasting", 3178 | "egalitarian", 3179 | "needful", 3180 | "spent", 3181 | "untrained", 3182 | "escalating", 3183 | "liberated", 3184 | "long-haired", 3185 | "abortive", 3186 | "syntactic", 3187 | "consummate", 3188 | "lumpy", 3189 | "spoiled", 3190 | "ten-year-old", 3191 | "talkative", 3192 | "whimsical", 3193 | "weighty", 3194 | "audio", 3195 | "inflammatory", 3196 | "deplorable", 3197 | "spicy", 3198 | "corrugated", 3199 | "morose", 3200 | "sobering", 3201 | "southwestern", 3202 | "three-year-old", 3203 | "methodical", 3204 | "prehistoric", 3205 | "carpeted", 3206 | "smelly", 3207 | "processed", 3208 | "overheated", 3209 | "interstellar", 3210 | "agile", 3211 | "approximate", 3212 | "sadistic", 3213 | "living-room", 3214 | "irate", 3215 | "smashed", 3216 | "frontal", 3217 | "venereal", 3218 | "indiscriminate", 3219 | "suggested", 3220 | "cultured", 3221 | "creeping", 3222 | "recognized", 3223 | "toothless", 3224 | "handmade", 3225 | "mellow", 3226 | "fetal", 3227 | "disinterested", 3228 | "gratifying", 3229 | "trusting", 3230 | "small-scale", 3231 | "intravenous", 3232 | "crashing", 3233 | "exhaustive", 3234 | "afire", 3235 | "clammy", 3236 | "sleazy", 3237 | "florid", 3238 | "heartless", 3239 | "transcendent", 3240 | "restored", 3241 | "demonic", 3242 | "abusive", 3243 | "avowed", 3244 | "shrunken", 3245 | "objectionable", 3246 | "tailored", 3247 | "arms-control", 3248 | "listless", 3249 | "polluted", 3250 | "palatable", 3251 | "funded", 3252 | "elective", 3253 | "entrenched", 3254 | "classy", 3255 | "operatic", 3256 | "daunting", 3257 | "roaring", 3258 | "preferential", 3259 | "languid", 3260 | "three-hour", 3261 | "virile", 3262 | "inspiring", 3263 | "enhanced", 3264 | "scrupulous", 3265 | "bottomless", 3266 | "ginger", 3267 | "wispy", 3268 | "advantageous", 3269 | "rapt", 3270 | "umbilical", 3271 | "uphill", 3272 | "ordered", 3273 | "enraged", 3274 | "detrimental", 3275 | "curt", 3276 | "exalted", 3277 | "hard-pressed", 3278 | "intangible", 3279 | "fussy", 3280 | "forgiving", 3281 | "facile", 3282 | "populous", 3283 | "condemned", 3284 | "mashed", 3285 | "hard-boiled", 3286 | "introductory", 3287 | "rowdy", 3288 | "switching", 3289 | "perplexing", 3290 | "spilled", 3291 | "southeastern", 3292 | "undulating", 3293 | "fractured", 3294 | "inherited", 3295 | "inscrutable", 3296 | "measurable", 3297 | "stunted", 3298 | "hormonal", 3299 | "stylized", 3300 | "hierarchical", 3301 | "air-conditioned", 3302 | "aimless", 3303 | "subsidized", 3304 | "paying", 3305 | "symmetrical", 3306 | "nomadic", 3307 | "cloudless", 3308 | "reigning", 3309 | "thatched", 3310 | "perceptible", 3311 | "anesthetic", 3312 | "anti-American", 3313 | "miscellaneous", 3314 | "homesick", 3315 | "preparatory", 3316 | "seven-year", 3317 | "big-city", 3318 | "decadent", 3319 | "searching", 3320 | "all-important", 3321 | "inanimate", 3322 | "senatorial", 3323 | "diminutive", 3324 | "soft-spoken", 3325 | "contingent", 3326 | "dusky", 3327 | "smashing", 3328 | "precipitous", 3329 | "bulging", 3330 | "standardized", 3331 | "biographical", 3332 | "restive", 3333 | "indecent", 3334 | "upper-class", 3335 | "ecumenical", 3336 | "interchangeable", 3337 | "lumbering", 3338 | "fascinated", 3339 | "untidy", 3340 | "indulgent", 3341 | "leaden", 3342 | "wanted", 3343 | "endemic", 3344 | "doomed", 3345 | "wanting", 3346 | "receiving", 3347 | "engaged", 3348 | "unparalleled", 3349 | "abbreviated", 3350 | "malevolent", 3351 | "wishful", 3352 | "carnival", 3353 | "world-wide", 3354 | "protruding", 3355 | "resplendent", 3356 | "stranded", 3357 | "structured", 3358 | "biased", 3359 | "frosty", 3360 | "northwestern", 3361 | "viral", 3362 | "mindful", 3363 | "paved", 3364 | "indeterminate", 3365 | "painless", 3366 | "second-floor", 3367 | "geological", 3368 | "permissive", 3369 | "downhill", 3370 | "unsuspecting", 3371 | "expectant", 3372 | "fabled", 3373 | "jittery", 3374 | "windowless", 3375 | "evocative", 3376 | "unsolved", 3377 | "disoriented", 3378 | "monastic", 3379 | "soluble", 3380 | "misshapen", 3381 | "antiquated", 3382 | "repugnant", 3383 | "non-Communist", 3384 | "retiring", 3385 | "shaded", 3386 | "combative", 3387 | "high-powered", 3388 | "resilient", 3389 | "antagonistic", 3390 | "starched", 3391 | "vice-presidential", 3392 | "speckled", 3393 | "lopsided", 3394 | "bluish", 3395 | "late-night", 3396 | "prim", 3397 | "unrestrained", 3398 | "almighty", 3399 | "tyrannical", 3400 | "unkempt", 3401 | "menstrual", 3402 | "bleached", 3403 | "overgrown", 3404 | "idiosyncratic", 3405 | "shoddy", 3406 | "hallowed", 3407 | "trying", 3408 | "halting", 3409 | "princely", 3410 | "drugged", 3411 | "gratuitous", 3412 | "descending", 3413 | "fatherly", 3414 | "avant-garde", 3415 | "laborious", 3416 | "pinched", 3417 | "disguised", 3418 | "caustic", 3419 | "bespectacled", 3420 | "handwritten", 3421 | "goodly", 3422 | "itinerant", 3423 | "cryptic", 3424 | "undisclosed", 3425 | "affordable", 3426 | "outmoded", 3427 | "expedient", 3428 | "moody", 3429 | "tepid", 3430 | "firsthand", 3431 | "digging", 3432 | "elitist", 3433 | "observed", 3434 | "chartered", 3435 | "slain", 3436 | "five-day", 3437 | "unimpressed", 3438 | "tactful", 3439 | "idyllic", 3440 | "prostrate", 3441 | "ramshackle", 3442 | "expert", 3443 | "deferred", 3444 | "undistinguished", 3445 | "prized", 3446 | "transatlantic", 3447 | "crystalline", 3448 | "tacky", 3449 | "haunting", 3450 | "nutritious", 3451 | "bereft", 3452 | "turquoise", 3453 | "time-consuming", 3454 | "sanguine", 3455 | "culinary", 3456 | "fraught", 3457 | "precocious", 3458 | "assigned", 3459 | "scrambled", 3460 | "advisable", 3461 | "nationalistic", 3462 | "long-awaited", 3463 | "unwrapped", 3464 | "unchallenged", 3465 | "circumstantial", 3466 | "pleasurable", 3467 | "compressed", 3468 | "humanistic", 3469 | "unforeseen", 3470 | "diversified", 3471 | "frenetic", 3472 | "disapproving", 3473 | "proletarian", 3474 | "conspiratorial", 3475 | "featureless", 3476 | "going", 3477 | "commendable", 3478 | "no-nonsense", 3479 | "chipped", 3480 | "surreal", 3481 | "salient", 3482 | "pissed", 3483 | "insurmountable", 3484 | "backstage", 3485 | "contented", 3486 | "indebted", 3487 | "adoring", 3488 | "one-room", 3489 | "prewar", 3490 | "potted", 3491 | "accelerating", 3492 | "thorny", 3493 | "possessive", 3494 | "abiding", 3495 | "ever-increasing", 3496 | "bloodless", 3497 | "high-technology", 3498 | "counterproductive", 3499 | "attracting", 3500 | "entrepreneurial", 3501 | "cooling", 3502 | "unoccupied", 3503 | "craggy", 3504 | "leathery", 3505 | "degenerate", 3506 | "additive", 3507 | "weakened", 3508 | "quilted", 3509 | "untold", 3510 | "incandescent", 3511 | "intractable", 3512 | "middle-income", 3513 | "abject", 3514 | "self-made", 3515 | "gaseous", 3516 | "anal", 3517 | "displaced", 3518 | "unabashed", 3519 | "immutable", 3520 | "fluttering", 3521 | "ten-year", 3522 | "bearable", 3523 | "stamped", 3524 | "darkening", 3525 | "beefy", 3526 | "petite", 3527 | "charging", 3528 | "high-quality", 3529 | "left-hand", 3530 | "age-old", 3531 | "checkered", 3532 | "stupendous", 3533 | "priestly", 3534 | "loath", 3535 | "endearing", 3536 | "exacting", 3537 | "correctional", 3538 | "freak", 3539 | "sneaky", 3540 | "disgraceful", 3541 | "unholy", 3542 | "oriental", 3543 | "wayward", 3544 | "societal", 3545 | "hard-core", 3546 | "bilingual", 3547 | "flipping", 3548 | "staid", 3549 | "paramilitary", 3550 | "heartfelt", 3551 | "shapely", 3552 | "kosher", 3553 | "heedless", 3554 | "incurable", 3555 | "controlling", 3556 | "in-house", 3557 | "choral", 3558 | "manicured", 3559 | "cardinal", 3560 | "inconspicuous", 3561 | "steely", 3562 | "vanishing", 3563 | "misplaced", 3564 | "centre-fire", 3565 | "enchanted", 3566 | "unfounded", 3567 | "wrecked", 3568 | "womanly", 3569 | "delirious", 3570 | "deposed", 3571 | "panicky", 3572 | "differential", 3573 | "tawny", 3574 | "articulated", 3575 | "coded", 3576 | "wide-open", 3577 | "unregulated", 3578 | "lenient", 3579 | "feathered", 3580 | "simplified", 3581 | "beguiling", 3582 | "sectarian", 3583 | "producing", 3584 | "tiled", 3585 | "inorganic", 3586 | "frosted", 3587 | "lusty", 3588 | "scented", 3589 | "rotating", 3590 | "grievous", 3591 | "dissimilar", 3592 | "salaried", 3593 | "unequivocal", 3594 | "strangled", 3595 | "grubby", 3596 | "alluring", 3597 | "downcast", 3598 | "restraining", 3599 | "unjustified", 3600 | "contaminated", 3601 | "lacy", 3602 | "cinematic", 3603 | "second-class", 3604 | "splintered", 3605 | "adorable", 3606 | "derisive", 3607 | "state-owned", 3608 | "requisite", 3609 | "fleeing", 3610 | "uncomplicated", 3611 | "motherly", 3612 | "inter", 3613 | "high-heeled", 3614 | "climatic", 3615 | "republican", 3616 | "unqualified", 3617 | "leveraged", 3618 | "intercontinental", 3619 | "uncharacteristic", 3620 | "compositional", 3621 | "unwritten", 3622 | "patriarchal", 3623 | "brusque", 3624 | "unresponsive", 3625 | "replete", 3626 | "corrective", 3627 | "reflected", 3628 | "scraping", 3629 | "doctoral", 3630 | "premium", 3631 | "deductible", 3632 | "alternating", 3633 | "amorous", 3634 | "overjoyed", 3635 | "recalcitrant", 3636 | "presumptuous", 3637 | "vaulted", 3638 | "declared", 3639 | "inexorable", 3640 | "groggy", 3641 | "diminished", 3642 | "restful", 3643 | "retroactive", 3644 | "presumed", 3645 | "monolithic", 3646 | "curtained", 3647 | "tortured", 3648 | "ground", 3649 | "trendy", 3650 | "brassy", 3651 | "prosaic", 3652 | "inactive", 3653 | "chaste", 3654 | "bumpy", 3655 | "aggrieved", 3656 | "corny", 3657 | "centrist", 3658 | "trapped", 3659 | "noxious", 3660 | "jerky", 3661 | "concomitant", 3662 | "withholding", 3663 | "poorly", 3664 | "stolid", 3665 | "unguarded", 3666 | "methodological", 3667 | "primordial", 3668 | "retreating", 3669 | "telescopic", 3670 | "sidelong", 3671 | "off-duty", 3672 | "pleated", 3673 | "dissenting", 3674 | "agreed", 3675 | "double-action", 3676 | "optimal", 3677 | "plaintive", 3678 | "banned", 3679 | "kindred", 3680 | "quintessential", 3681 | "impervious", 3682 | "jumping", 3683 | "disenchanted", 3684 | "observant", 3685 | "congested", 3686 | "second-rate", 3687 | "reasoned", 3688 | "extrinsic", 3689 | "infantile", 3690 | "transitory", 3691 | "coveted", 3692 | "small-time", 3693 | "doctrinal", 3694 | "incomparable", 3695 | "jaded", 3696 | "special-interest", 3697 | "sociable", 3698 | "shameless", 3699 | "coloured", 3700 | "ascending", 3701 | "fraternal", 3702 | "queasy", 3703 | "wont", 3704 | "exhilarated", 3705 | "salted", 3706 | "disquieting", 3707 | "listed", 3708 | "unchanging", 3709 | "nine-year-old", 3710 | "unrestricted", 3711 | "uppermost", 3712 | "reputable", 3713 | "dummy", 3714 | "skimpy", 3715 | "crusty", 3716 | "corrosive", 3717 | "bubbling", 3718 | "decrepit", 3719 | "unsuitable", 3720 | "snarling", 3721 | "destitute", 3722 | "illuminating", 3723 | "systemic", 3724 | "material", 3725 | "unwashed", 3726 | "rushing", 3727 | "dialectical", 3728 | "jeweled", 3729 | "attached", 3730 | "liberating", 3731 | "judicious", 3732 | "errant", 3733 | "vanished", 3734 | "worn-out", 3735 | "erstwhile", 3736 | "uninformed", 3737 | "twelve-year-old", 3738 | "longterm", 3739 | "petulant", 3740 | "twin", 3741 | "self-righteous", 3742 | "afflicted", 3743 | "snappy", 3744 | "tantamount", 3745 | "sworn", 3746 | "unethical", 3747 | "drained", 3748 | "hydroelectric", 3749 | "perplexed", 3750 | "logistical", 3751 | "concentric", 3752 | "unifying", 3753 | "lunatic", 3754 | "invincible", 3755 | "diffident", 3756 | "inexhaustible", 3757 | "discouraging", 3758 | "dreamlike", 3759 | "artful", 3760 | "rolled", 3761 | "suppressed", 3762 | "secretarial", 3763 | "smoldering", 3764 | "redundant", 3765 | "forensic", 3766 | "million-dollar", 3767 | "self-styled", 3768 | "earned", 3769 | "weightless", 3770 | "signed", 3771 | "compensatory", 3772 | "glacial", 3773 | "unmanned", 3774 | "stalwart", 3775 | "funky", 3776 | "intensified", 3777 | "uninterested", 3778 | "submerged", 3779 | "urbane", 3780 | "glib", 3781 | "ascetic", 3782 | "contractual", 3783 | "warlike", 3784 | "high-priced", 3785 | "diagonal", 3786 | "cylindrical", 3787 | "gargantuan", 3788 | "illuminated", 3789 | "unconditional", 3790 | "hulking", 3791 | "supplementary", 3792 | "dictatorial", 3793 | "puny", 3794 | "sedate", 3795 | "moonlit", 3796 | "eight-year-old", 3797 | "gullible", 3798 | "counterfeit", 3799 | "alienated", 3800 | "spinning", 3801 | "analytic", 3802 | "nimble", 3803 | "adaptive", 3804 | "individualistic", 3805 | "numbered", 3806 | "blissful", 3807 | "insolent", 3808 | "supplemental", 3809 | "delectable", 3810 | "inordinate", 3811 | "unbalanced", 3812 | "tormented", 3813 | "unchecked", 3814 | "aspiring", 3815 | "punishing", 3816 | "self-serving", 3817 | "crossed", 3818 | "discretionary", 3819 | "box-office", 3820 | "snow-covered", 3821 | "improvised", 3822 | "squalid", 3823 | "orphaned", 3824 | "grizzled", 3825 | "unsmiling", 3826 | "disappearing", 3827 | "affiliated", 3828 | "readable", 3829 | "blocking", 3830 | "bullish", 3831 | "contending", 3832 | "burned-out", 3833 | "bloodied", 3834 | "subsidiary", 3835 | "complimentary", 3836 | "unclean", 3837 | "scanty", 3838 | "uprooted", 3839 | "farfetched", 3840 | "solicitous", 3841 | "regulated", 3842 | "threadbare", 3843 | "choppy", 3844 | "ever-present", 3845 | "negligent", 3846 | "nonstop", 3847 | "one-day", 3848 | "wild-eyed", 3849 | "infuriating", 3850 | "vivacious", 3851 | "abominable", 3852 | "wrought", 3853 | "inaudible", 3854 | "braided", 3855 | "transcendental", 3856 | "desultory", 3857 | "climactic", 3858 | "appellate", 3859 | "interlocking", 3860 | "submissive", 3861 | "unmatched", 3862 | "dapper", 3863 | "demeaning", 3864 | "adaptable", 3865 | "well-meaning", 3866 | "lustrous", 3867 | "tax-free", 3868 | "ungrateful", 3869 | "gentlemanly", 3870 | "missed", 3871 | "loathsome", 3872 | "incalculable", 3873 | "blistering", 3874 | "amenable", 3875 | "tremulous", 3876 | "massed", 3877 | "nonpartisan", 3878 | "unsettled", 3879 | "three-story", 3880 | "succulent", 3881 | "trite", 3882 | "masterful", 3883 | "reticent", 3884 | "unsettling", 3885 | "proverbial", 3886 | "strapping", 3887 | "spurious", 3888 | "invulnerable", 3889 | "paltry", 3890 | "embryonic", 3891 | "repeating", 3892 | "neural", 3893 | "sultry", 3894 | "metaphorical", 3895 | "foreign-policy", 3896 | "linked", 3897 | "pubic", 3898 | "beaming", 3899 | "ministerial", 3900 | "phantom", 3901 | "quizzical", 3902 | "hilly", 3903 | "cold-blooded", 3904 | "gregarious", 3905 | "three-piece", 3906 | "untroubled", 3907 | "bisexual", 3908 | "pensive", 3909 | "unpretentious", 3910 | "exploratory", 3911 | "unscathed", 3912 | "irrepressible", 3913 | "pelvic", 3914 | "newfound", 3915 | "starry", 3916 | "corned", 3917 | "overworked", 3918 | "illogical", 3919 | "unfaithful", 3920 | "interrelated", 3921 | "saintly", 3922 | "overcast", 3923 | "connected", 3924 | "ungainly", 3925 | "organizing", 3926 | "carnal", 3927 | "philosophic", 3928 | "nationalized", 3929 | "fickle", 3930 | "ultraviolet", 3931 | "crass", 3932 | "undeveloped", 3933 | "unprofitable", 3934 | "sheepish", 3935 | "archaeological", 3936 | "out-of-town", 3937 | "balmy", 3938 | "spongy", 3939 | "infallible", 3940 | "callous", 3941 | "scathing", 3942 | "rheumatic", 3943 | "audacious", 3944 | "participating", 3945 | "swarthy", 3946 | "hand-held", 3947 | "comatose", 3948 | "modernist", 3949 | "stellar", 3950 | "antinuclear", 3951 | "delinquent", 3952 | "time-honored", 3953 | "presiding", 3954 | "relaxing", 3955 | "high-pressure", 3956 | "impetuous", 3957 | "hypodermic", 3958 | "fringed", 3959 | "favourite", 3960 | "unscrupulous", 3961 | "inspirational", 3962 | "mystified", 3963 | "wobbly", 3964 | "intrepid", 3965 | "deferential", 3966 | "burdensome", 3967 | "stored", 3968 | "supervisory", 3969 | "seventeenth-century", 3970 | "six-day", 3971 | "interdependent", 3972 | "updated", 3973 | "all-powerful", 3974 | "unitary", 3975 | "stand-up", 3976 | "laconic", 3977 | "penniless", 3978 | "steadfast", 3979 | "dogged", 3980 | "scholastic", 3981 | "convertible", 3982 | "mingled", 3983 | "sorrowful", 3984 | "symptomatic", 3985 | "stylistic", 3986 | "well-intentioned", 3987 | "consuming", 3988 | "sketchy", 3989 | "weakening", 3990 | "generative", 3991 | "atrocious", 3992 | "first-quarter", 3993 | "irrevocable", 3994 | "charged", 3995 | "stoned", 3996 | "dividing", 3997 | "apathetic", 3998 | "debatable", 3999 | "uncomprehending", 4000 | "overhanging", 4001 | "galloping", 4002 | "kinky", 4003 | "uncritical", 4004 | "suave", 4005 | "undisputed", 4006 | "spiky", 4007 | "inarticulate", 4008 | "extracurricular", 4009 | "guttural", 4010 | "impressed", 4011 | "departing", 4012 | "yellowed", 4013 | "discontented", 4014 | "adroit", 4015 | "high-fiber", 4016 | "second-hand", 4017 | "blinking", 4018 | "formless", 4019 | "unsavory", 4020 | "new-found", 4021 | "withered", 4022 | "collected", 4023 | "menial", 4024 | "unobserved", 4025 | "flabby", 4026 | "afterward", 4027 | "vanquished", 4028 | "stained-glass", 4029 | "hour-long", 4030 | "bittersweet", 4031 | "invalid", 4032 | "incriminating", 4033 | "commensurate", 4034 | "all-American", 4035 | "assumed", 4036 | "tried", 4037 | "cursory", 4038 | "absorbing", 4039 | "clearing", 4040 | "confirmed", 4041 | "stressful", 4042 | "depleted", 4043 | "eight-year", 4044 | "participatory", 4045 | "stripped", 4046 | "concave", 4047 | "regrettable", 4048 | "fortified", 4049 | "effortless", 4050 | "regressive", 4051 | "irreverent", 4052 | "collegiate", 4053 | "defunct", 4054 | "grainy", 4055 | "inhospitable", 4056 | "gripping", 4057 | "grizzly", 4058 | "restoring", 4059 | "arterial", 4060 | "busted", 4061 | "indomitable", 4062 | "demure", 4063 | "rabid", 4064 | "headlong", 4065 | "blue-green", 4066 | "bound", 4067 | "breezy", 4068 | "materialistic", 4069 | "uneducated", 4070 | "scruffy", 4071 | "cohesive", 4072 | "full-blown", 4073 | "cranky", 4074 | "motivated", 4075 | "mauve", 4076 | "hardworking", 4077 | "melodic", 4078 | "genital", 4079 | "decorous", 4080 | "comely", 4081 | "rife", 4082 | "purported", 4083 | "hurtful", 4084 | "six-foot", 4085 | "macabre", 4086 | "odious", 4087 | "convulsive", 4088 | "well-trained", 4089 | "heterogeneous", 4090 | "curled", 4091 | "pearly", 4092 | "spindly", 4093 | "latter-day", 4094 | "innermost", 4095 | "clipped", 4096 | "checked", 4097 | "masterly", 4098 | "laughable", 4099 | "naturalistic", 4100 | "tinkling", 4101 | "impudent", 4102 | "fitful", 4103 | "illustrated", 4104 | "speeding", 4105 | "roasted", 4106 | "in-depth", 4107 | "helluva", 4108 | "vigilant", 4109 | "empty-handed", 4110 | "forged", 4111 | "wrought-iron", 4112 | "disgraced", 4113 | "agonized", 4114 | "infirm", 4115 | "preserving", 4116 | "tasteful", 4117 | "onerous", 4118 | "shredded", 4119 | "impregnable", 4120 | "slanted", 4121 | "tainted", 4122 | "opened", 4123 | "first-time", 4124 | "machine-gun", 4125 | "bottled", 4126 | "seismic", 4127 | "fetid", 4128 | "saturated", 4129 | "insubstantial", 4130 | "full-page", 4131 | "aromatic", 4132 | "stingy", 4133 | "promiscuous", 4134 | "unlit", 4135 | "regimental", 4136 | "spellbound", 4137 | "streamlined", 4138 | "bereaved", 4139 | "ruffled", 4140 | "creepy", 4141 | "treasured", 4142 | "ensconced", 4143 | "one-party", 4144 | "well-educated", 4145 | "pert", 4146 | "mercantile", 4147 | "all-purpose", 4148 | "voracious", 4149 | "tortuous", 4150 | "despised", 4151 | "unadorned", 4152 | "offhand", 4153 | "qualifying", 4154 | "manipulative", 4155 | "indelible", 4156 | "well-established", 4157 | "revolting", 4158 | "ethereal", 4159 | "roasting", 4160 | "prohibitive", 4161 | "domed", 4162 | "whipped", 4163 | "overstuffed", 4164 | "garrulous", 4165 | "skittish", 4166 | "revived", 4167 | "heartening", 4168 | "jumpy", 4169 | "grilled", 4170 | "melted", 4171 | "unfocused", 4172 | "spectral", 4173 | "unproductive", 4174 | "top-level", 4175 | "life-size", 4176 | "three-way", 4177 | "negotiable", 4178 | "disloyal", 4179 | "turn-of-the-century", 4180 | "four-hour", 4181 | "unopened", 4182 | "devilish", 4183 | "amorphous", 4184 | "antiseptic", 4185 | "sharpened", 4186 | "primeval", 4187 | "unrecognizable", 4188 | "ineligible", 4189 | "expendable", 4190 | "deathly", 4191 | "auspicious", 4192 | "insoluble", 4193 | "inimical", 4194 | "unquestioned", 4195 | "far-flung", 4196 | "medicinal", 4197 | "deep-seated", 4198 | "formative", 4199 | "iridescent", 4200 | "fragmentary", 4201 | "distinguishable", 4202 | "auburn", 4203 | "closed-circuit", 4204 | "emeritus", 4205 | "third-floor", 4206 | "hazel", 4207 | "tumbling", 4208 | "departed", 4209 | "obstinate", 4210 | "portentous", 4211 | "quixotic", 4212 | "scorched", 4213 | "adjustable", 4214 | "winged", 4215 | "intrusive", 4216 | "taxing", 4217 | "high-ceilinged", 4218 | "barbarous", 4219 | "decreasing", 4220 | "sleeveless", 4221 | "unattended", 4222 | "tight-lipped", 4223 | "concluding", 4224 | "unobtrusive", 4225 | "starved", 4226 | "quirky", 4227 | "big-time", 4228 | "sooty", 4229 | "copious", 4230 | "stalled", 4231 | "scriptural", 4232 | "unconvincing", 4233 | "earthen", 4234 | "throaty", 4235 | "august", 4236 | "extant", 4237 | "sexist", 4238 | "exultant", 4239 | "cancerous", 4240 | "psychedelic", 4241 | "yielding", 4242 | "matched", 4243 | "chunky", 4244 | "unfathomable", 4245 | "concise", 4246 | "admitting", 4247 | "knitted", 4248 | "projective", 4249 | "euphoric", 4250 | "garbled", 4251 | "divisional", 4252 | "despondent", 4253 | "recommended", 4254 | "passable", 4255 | "vegetarian", 4256 | "indefatigable", 4257 | "irreparable", 4258 | "feisty", 4259 | "untenable", 4260 | "contrite", 4261 | "angelic", 4262 | "reputed", 4263 | "untimely", 4264 | "dejected", 4265 | "appreciable", 4266 | "remembered", 4267 | "hellish", 4268 | "rear-view", 4269 | "open-air", 4270 | "ill-fated", 4271 | "nonpolitical", 4272 | "factional", 4273 | "separatist", 4274 | "contributing", 4275 | "post-war", 4276 | "uneventful", 4277 | "metaphoric", 4278 | "unsound", 4279 | "unwitting", 4280 | "venomous", 4281 | "harried", 4282 | "engraved", 4283 | "collapsing", 4284 | "reformist", 4285 | "thematic", 4286 | "inclusive", 4287 | "cheering", 4288 | "springy", 4289 | "obliging", 4290 | "contemplative", 4291 | "unbridled", 4292 | "state-run", 4293 | "reflex", 4294 | "allegorical", 4295 | "geopolitical", 4296 | "disembodied", 4297 | "issuing", 4298 | "bountiful", 4299 | "alright", 4300 | "overbearing", 4301 | "muddled", 4302 | "congenital", 4303 | "distinguishing", 4304 | "absorbed", 4305 | "tart", 4306 | "french", 4307 | "autumnal", 4308 | "verifiable", 4309 | "grueling", 4310 | "crackling", 4311 | "aft", 4312 | "punishable", 4313 | "freckled", 4314 | "indestructible", 4315 | "imprecise", 4316 | "hard-nosed", 4317 | "thoughtless", 4318 | "through", 4319 | "proficient", 4320 | "pent-up", 4321 | "never-ending", 4322 | "hunted", 4323 | "defensible", 4324 | "arresting", 4325 | "across-the-board", 4326 | "spotty", 4327 | "orchestral", 4328 | "undefined", 4329 | "stacked", 4330 | "implausible", 4331 | "antitank", 4332 | "unwary", 4333 | "inflamed", 4334 | "sacrificial", 4335 | "oil-producing", 4336 | "leaky", 4337 | "mint", 4338 | "chronological", 4339 | "conquering", 4340 | "jumbo", 4341 | "three-week", 4342 | "addictive", 4343 | "uninhibited", 4344 | "substandard", 4345 | "contracting", 4346 | "degenerative", 4347 | "triumphal", 4348 | "flowery", 4349 | "cardiovascular", 4350 | "shaken", 4351 | "undefeated", 4352 | "unassuming", 4353 | "luscious", 4354 | "unperturbed", 4355 | "gleeful", 4356 | "sentencing", 4357 | "brawny", 4358 | "perfumed", 4359 | "mild-mannered", 4360 | "healthful", 4361 | "left-handed", 4362 | "rancid", 4363 | "well-defined", 4364 | "unmanageable", 4365 | "drowning", 4366 | "clinging", 4367 | "anachronistic", 4368 | "revered", 4369 | "enriched", 4370 | "capitalistic", 4371 | "good-by", 4372 | "invigorating", 4373 | "practicing", 4374 | "unsold", 4375 | "long-legged", 4376 | "unruffled", 4377 | "aboriginal", 4378 | "inane", 4379 | "bedraggled", 4380 | "early-morning", 4381 | "run-down", 4382 | "straight-backed", 4383 | "reverent", 4384 | "acquired", 4385 | "bestselling", 4386 | "top-secret", 4387 | "woolly", 4388 | "foolhardy", 4389 | "sticking", 4390 | "blue-black", 4391 | "impassable", 4392 | "overcome", 4393 | "coiled", 4394 | "front-line", 4395 | "tinted", 4396 | "acquisitive", 4397 | "slatted", 4398 | "octagonal", 4399 | "receding", 4400 | "investing", 4401 | "doctrinaire", 4402 | "all-white", 4403 | "caring", 4404 | "prejudiced", 4405 | "slow-moving", 4406 | "circulating", 4407 | "science-fiction", 4408 | "shortsighted", 4409 | "disaffected", 4410 | "lawless", 4411 | "chastened", 4412 | "lewd", 4413 | "rubbery", 4414 | "foaming", 4415 | "unsympathetic", 4416 | "ladylike", 4417 | "betrayed", 4418 | "neurological", 4419 | "shouting", 4420 | "good-sized", 4421 | "electrostatic", 4422 | "untoward", 4423 | "flabbergasted", 4424 | "citywide", 4425 | "unanticipated", 4426 | "knotted", 4427 | "whitewashed", 4428 | "year-end", 4429 | "enticing", 4430 | "migratory", 4431 | "multicolored", 4432 | "hashish", 4433 | "ascorbic", 4434 | "topless", 4435 | "heathen", 4436 | "spherical", 4437 | "filmy", 4438 | "deviant", 4439 | "centennial", 4440 | "proportionate", 4441 | "instructional", 4442 | "contrived", 4443 | "savvy", 4444 | "over-the-counter", 4445 | "fast-moving", 4446 | "measuring", 4447 | "uptown", 4448 | "compliant", 4449 | "favourable", 4450 | "unforgivable", 4451 | "undamaged", 4452 | "psychoanalytic", 4453 | "gebling", 4454 | "bubbly", 4455 | "ready-made", 4456 | "caged", 4457 | "ostentatious", 4458 | "superhuman", 4459 | "busing", 4460 | "cream-colored", 4461 | "self-destructive", 4462 | "ostensible", 4463 | "cobbled", 4464 | "whirling", 4465 | "released", 4466 | "showy", 4467 | "baleful", 4468 | "red-hot", 4469 | "named", 4470 | "monogamous", 4471 | "fallow", 4472 | "disdainful", 4473 | "cyclical", 4474 | "long-running", 4475 | "pitiless", 4476 | "diffuse", 4477 | "omnipresent", 4478 | "mossy", 4479 | "cutting", 4480 | "astounding", 4481 | "lyric", 4482 | "dark-blue", 4483 | "unsophisticated", 4484 | "indigent", 4485 | "coincidental", 4486 | "imperceptible", 4487 | "veterinary", 4488 | "coercive", 4489 | "multilateral", 4490 | "ageless", 4491 | "law-abiding", 4492 | "functioning", 4493 | "beneficent", 4494 | "crawling", 4495 | "overturned", 4496 | "steamed", 4497 | "comprehensible", 4498 | "oil-rich", 4499 | "undetected", 4500 | "ribbed", 4501 | "nautical", 4502 | "textured", 4503 | "fast-growing", 4504 | "nauseous", 4505 | "vaunted", 4506 | "paralyzed", 4507 | "maimed", 4508 | "short-range", 4509 | "impure", 4510 | "unintended", 4511 | "practicable", 4512 | "intermediate-range", 4513 | "unfulfilled", 4514 | "behind-the-scenes", 4515 | "backhand", 4516 | "voluble", 4517 | "goofy", 4518 | "apolitical", 4519 | "contraceptive", 4520 | "waning", 4521 | "blasted", 4522 | "sundry", 4523 | "profane", 4524 | "binary", 4525 | "rock-and-roll", 4526 | "ruinous", 4527 | "open-ended", 4528 | "next-door", 4529 | "withering", 4530 | "conical", 4531 | "flustered", 4532 | "decided", 4533 | "able-bodied", 4534 | "round-trip", 4535 | "decreased", 4536 | "half-empty", 4537 | "sponsored", 4538 | "riotous", 4539 | "stereotyped", 4540 | "five-minute", 4541 | "irreplaceable", 4542 | "harrowing", 4543 | "uninteresting", 4544 | "salutary", 4545 | "frugal", 4546 | "disjointed", 4547 | "cupped", 4548 | "freshwater", 4549 | "shaven", 4550 | "ravenous", 4551 | "bulbous", 4552 | "stepped-up", 4553 | "swaying", 4554 | "two-room", 4555 | "valued", 4556 | "planted", 4557 | "bright-eyed", 4558 | "unreadable", 4559 | "trucking", 4560 | "infatuated", 4561 | "dysfunctional", 4562 | "pinkish", 4563 | "futuristic", 4564 | "airtight", 4565 | "unseemly", 4566 | "sizzling", 4567 | "mercurial", 4568 | "conic", 4569 | "unfettered", 4570 | "undisciplined", 4571 | "unrecognized", 4572 | "well-publicized", 4573 | "income-tax", 4574 | "self-appointed", 4575 | "ice-cold", 4576 | "biochemical", 4577 | "contemptible", 4578 | "barefooted", 4579 | "droll", 4580 | "mythological", 4581 | "tree-lined", 4582 | "rearing", 4583 | "luxuriant", 4584 | "heartbreaking", 4585 | "tufted", 4586 | "well-organized", 4587 | "selfless", 4588 | "world-class", 4589 | "unwieldy", 4590 | "contested", 4591 | "rasping", 4592 | "downright", 4593 | "ingratiating", 4594 | "self-proclaimed", 4595 | "parasitic", 4596 | "graying", 4597 | "reformed", 4598 | "cautionary", 4599 | "untested", 4600 | "beaded", 4601 | "maniacal", 4602 | "eucalyptus", 4603 | "pliable", 4604 | "air-conditioning", 4605 | "moot", 4606 | "traceable", 4607 | "anti-abortion", 4608 | "antisocial", 4609 | "reprehensible", 4610 | "self-imposed", 4611 | "yellowing", 4612 | "teasing", 4613 | "porous", 4614 | "ersatz", 4615 | "unwavering", 4616 | "untouchable", 4617 | "underprivileged", 4618 | "auditory", 4619 | "escaping", 4620 | "subservient", 4621 | "unspoiled", 4622 | "anterior", 4623 | "fatuous", 4624 | "lordly", 4625 | "infernal", 4626 | "bouncing", 4627 | "taboo", 4628 | "orthopedic", 4629 | "spiteful", 4630 | "surging", 4631 | "nuts", 4632 | "esteemed", 4633 | "outlawed", 4634 | "pushy", 4635 | "displeased", 4636 | "self-confident", 4637 | "attainable", 4638 | "bowed", 4639 | "cast-iron", 4640 | "despicable", 4641 | "unconvinced", 4642 | "famished", 4643 | "coed", 4644 | "bygone", 4645 | "nonaligned", 4646 | "sectional", 4647 | "typed", 4648 | "squeaky", 4649 | "disparaging", 4650 | "cut-rate", 4651 | "heart-shaped", 4652 | "offbeat", 4653 | "velvety", 4654 | "well-worn", 4655 | "upsetting", 4656 | "leery", 4657 | "long-lost", 4658 | "horse-drawn", 4659 | "puritanical", 4660 | "payable", 4661 | "fertilized", 4662 | "predicted", 4663 | "allowable", 4664 | "peaceable", 4665 | "soundless", 4666 | "marshy", 4667 | "discordant", 4668 | "intoxicating", 4669 | "concurrent", 4670 | "uncut", 4671 | "tantalizing", 4672 | "pedagogical", 4673 | "accursed", 4674 | "two-man", 4675 | "connective", 4676 | "hawkish", 4677 | "ripped", 4678 | "cleared", 4679 | "double-digit", 4680 | "unencumbered", 4681 | "yawning", 4682 | "manifold", 4683 | "stopped", 4684 | "untreated", 4685 | "subliminal", 4686 | "grayish", 4687 | "gory", 4688 | "upper-middle-class", 4689 | "avenging", 4690 | "self-fulfilling", 4691 | "equatorial", 4692 | "saucy", 4693 | "barred", 4694 | "arch", 4695 | "midwestern", 4696 | "blue-gray", 4697 | "tarnished", 4698 | "leafless", 4699 | "incisive", 4700 | "unearned", 4701 | "botanical", 4702 | "feline", 4703 | "extraneous", 4704 | "prep", 4705 | "intransigent", 4706 | "change-minimizing", 4707 | "insurgent", 4708 | "acrimonious", 4709 | "thermonuclear", 4710 | "blue-chip", 4711 | "crummy", 4712 | "acoustic", 4713 | "oversize", 4714 | "fated", 4715 | "galactic", 4716 | "cantankerous", 4717 | "ill-advised", 4718 | "detectable", 4719 | "lower-class", 4720 | "sacrosanct", 4721 | "palatial", 4722 | "conditional", 4723 | "insulated", 4724 | "step-by-step", 4725 | "nebulous", 4726 | "two-dimensional", 4727 | "well-heeled", 4728 | "bronchial", 4729 | "subatomic", 4730 | "semifinal", 4731 | "first-year", 4732 | "dark-eyed", 4733 | "tinny", 4734 | "attacking", 4735 | "indecisive", 4736 | "anatomical", 4737 | "brotherly", 4738 | "blooming", 4739 | "sinuous", 4740 | "meditative", 4741 | "socalled", 4742 | "rheumatoid", 4743 | "received", 4744 | "bleary", 4745 | "half-naked", 4746 | "leaded", 4747 | "woody", 4748 | "averse", 4749 | "shuddering", 4750 | "door-to-door", 4751 | "heretical", 4752 | "suspect", 4753 | "untapped", 4754 | "ravaged", 4755 | "decentralized", 4756 | "rutted", 4757 | "ineffable", 4758 | "intolerant", 4759 | "mechanized", 4760 | "fortuitous", 4761 | "equestrian", 4762 | "seven-year-old", 4763 | "darting", 4764 | "consoling", 4765 | "modern-day", 4766 | "ground-floor", 4767 | "emblematic", 4768 | "lurking", 4769 | "two-year-old", 4770 | "purplish", 4771 | "disorganized", 4772 | "vaudeville", 4773 | "circulatory", 4774 | "eight-hour", 4775 | "presentable", 4776 | "anarchic", 4777 | "unsatisfied", 4778 | "labored", 4779 | "maudlin", 4780 | "trampled", 4781 | "gibberish", 4782 | "unaccountable", 4783 | "sedentary", 4784 | "heavy-duty", 4785 | "thrilled", 4786 | "tutoring", 4787 | "self-centered", 4788 | "do-it-yourself", 4789 | "inquiring", 4790 | "uncaring", 4791 | "disillusioned", 4792 | "bloodstained", 4793 | "surface-to-air", 4794 | "consular", 4795 | "subconscious", 4796 | "four-year-old", 4797 | "collaborative", 4798 | "terraced", 4799 | "figurative", 4800 | "sinewy", 4801 | "horn-rimmed", 4802 | "impertinent", 4803 | "hit-and-run", 4804 | "standby", 4805 | "medium-size", 4806 | "peremptory", 4807 | "incremental", 4808 | "first-aid", 4809 | "dyed", 4810 | "centrifugal", 4811 | "omnipotent", 4812 | "lascivious", 4813 | "two-month", 4814 | "unionized", 4815 | "discredited", 4816 | "mass-produced", 4817 | "feathery", 4818 | "self-indulgent", 4819 | "liturgical", 4820 | "enviable", 4821 | "fifteen-year-old", 4822 | "buxom", 4823 | "abashed", 4824 | "urinary", 4825 | "newsworthy", 4826 | "flailing", 4827 | "beastly", 4828 | "undiscovered", 4829 | "strong-willed", 4830 | "prenatal", 4831 | "brownish", 4832 | "announced", 4833 | "flaky", 4834 | "washed", 4835 | "nightmarish", 4836 | "broad-shouldered", 4837 | "short-sleeved", 4838 | "two-bit", 4839 | "self-assured", 4840 | "whitish", 4841 | "suffocating", 4842 | "black-haired", 4843 | "full-size", 4844 | "self-help", 4845 | "created", 4846 | "uninhabited", 4847 | "smokeless", 4848 | "no-fault", 4849 | "unfashionable", 4850 | "mushy", 4851 | "forested", 4852 | "adhesive", 4853 | "creased", 4854 | "insufferable", 4855 | "down-to-earth", 4856 | "trifling", 4857 | "landless", 4858 | "disreputable", 4859 | "self-effacing", 4860 | "sporty", 4861 | "confined", 4862 | "adoptive", 4863 | "monogrammed", 4864 | "motley", 4865 | "duplicate", 4866 | "silver-haired", 4867 | "rejected", 4868 | "undifferentiated", 4869 | "blasphemous", 4870 | "institutionalized", 4871 | "blue-and-white", 4872 | "hip", 4873 | "winsome", 4874 | "button-down", 4875 | "discerning", 4876 | "abused", 4877 | "clean-cut", 4878 | "bracing", 4879 | "self-supporting", 4880 | "unsupported", 4881 | "premarital", 4882 | "flattered", 4883 | "studious", 4884 | "repetitious", 4885 | "marketable", 4886 | "anemic", 4887 | "meaty", 4888 | "airless", 4889 | "unhurried", 4890 | "galvanized", 4891 | "feal", 4892 | "peace-keeping", 4893 | "rapacious", 4894 | "bulletproof", 4895 | "well-placed", 4896 | "helmeted", 4897 | "packaged", 4898 | "court-ordered", 4899 | "aggravated", 4900 | "gastrointestinal", 4901 | "hand-to-hand", 4902 | "sixteen-year-old", 4903 | "fretful", 4904 | "fourth-quarter", 4905 | "conquered", 4906 | "satiric", 4907 | "nutty", 4908 | "befuddled", 4909 | "humorless", 4910 | "pitched", 4911 | "burnished", 4912 | "mirrored", 4913 | "fishy", 4914 | "fluted", 4915 | "conditioned", 4916 | "military-industrial", 4917 | "one-story", 4918 | "barbarian", 4919 | "branching", 4920 | "dynastic", 4921 | "unthinking", 4922 | "unconscionable", 4923 | "hunched", 4924 | "post-World", 4925 | "capital", 4926 | "putative", 4927 | "incendiary", 4928 | "shaving", 4929 | "topical", 4930 | "self-satisfied", 4931 | "farcical", 4932 | "narcissistic", 4933 | "kneeling", 4934 | "born-again", 4935 | "old-line", 4936 | "amateurish", 4937 | "ill-fitting", 4938 | "scaly", 4939 | "unpainted", 4940 | "eroding" 4941 | ] -------------------------------------------------------------------------------- /src/data/index.ts: -------------------------------------------------------------------------------- 1 | import adjectives from "./adjectives"; 2 | import nouns from "./nouns" 3 | 4 | export { adjectives, nouns }; -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { nouns, adjectives } from "./data"; 2 | 3 | type Style = "lowerCase" | "upperCase" | "capital"; 4 | 5 | export interface Config { 6 | dictionaries: string[][]; 7 | separator?: string; 8 | randomDigits?: number; 9 | length?: number; 10 | style?: Style; 11 | } 12 | 13 | // Function to generate a random number (unsigned 32-bit integers) within a given range 14 | // updated to only use edge runtime compatible apis 15 | const getRandomInt = (min = 0, max = 4294967295) => 16 | ((Math.random() * ((max | 0) - (min | 0) + 1.0)) + (min | 0)) | 0; 17 | 18 | const randomNumber = (maxNumber: number | undefined) => { 19 | let randomNumberString; 20 | switch (maxNumber) { 21 | case 1: 22 | randomNumberString = Math.floor(getRandomInt(1, 9)).toString(); 23 | break; 24 | case 2: 25 | randomNumberString = Math.floor(getRandomInt(10, 90)).toString(); 26 | break; 27 | case 3: 28 | randomNumberString = Math.floor(getRandomInt(100, 900)).toString(); 29 | break; 30 | case 4: 31 | randomNumberString = Math.floor(getRandomInt(1000, 9000)).toString(); 32 | break; 33 | case 5: 34 | randomNumberString = Math.floor(getRandomInt(10000, 90000)).toString(); 35 | break; 36 | case 6: 37 | randomNumberString = Math.floor(getRandomInt(100000, 900000)).toString(); 38 | break; 39 | default: 40 | randomNumberString = ""; 41 | break; 42 | } 43 | return randomNumberString; 44 | }; 45 | 46 | export function generateFromEmail( 47 | email: string, 48 | randomDigits?: number 49 | ): string { 50 | // Retrieve name from email address 51 | const nameParts = email.replace(/@.+/, ""); 52 | // Replace all special characters like "@ . _ "; 53 | const name = nameParts.replace(/[&/\\#,+()$~%._@'":*?<>{}]/g, ""); 54 | // Create and return unique username 55 | return name + randomNumber(randomDigits); 56 | } 57 | 58 | export function generateUsername( 59 | separator?: string, 60 | randomDigits?: number, 61 | length?: number, 62 | prefix?: string 63 | ): string { 64 | const noun = nouns[Math.floor(Math.random() * nouns.length)]; 65 | const adjective = prefix ? prefix.replace(/\s{2,}/g, " ").replace(/\s/g, separator ?? "").toLocaleLowerCase() : adjectives[Math.floor(Math.random() * adjectives.length)]; 66 | 67 | let username; 68 | // Create unique username 69 | if (separator) { 70 | username = adjective + separator + noun + randomNumber(randomDigits); 71 | } else { 72 | username = adjective + noun + randomNumber(randomDigits); 73 | } 74 | 75 | if (length) { 76 | return username.substring(0, length); 77 | } 78 | 79 | return username; 80 | } 81 | 82 | export function uniqueUsernameGenerator(config: Config): string { 83 | if (!config.dictionaries) { 84 | throw new Error( 85 | "Cannot find any dictionary. Please provide at least one, or leave " + 86 | "the 'dictionary' field empty in the config object", 87 | ); 88 | } else { 89 | const fromDictRander = (i: number) => config.dictionaries[i][getRandomInt(0, config.dictionaries[i].length - 1)]; 90 | const dictionariesLength = config.dictionaries.length; 91 | const separator = config.separator || ""; 92 | let name = ""; 93 | for (let i = 0; i < dictionariesLength; i++) { 94 | const next = fromDictRander(i); 95 | if (!name) { name = next; } 96 | else { name += separator + next; } 97 | } 98 | 99 | let username = name + randomNumber(config.randomDigits); 100 | 101 | username = username.toLowerCase(); 102 | 103 | if (config.style === "lowerCase") { 104 | username = username.toLowerCase(); 105 | } else if (config.style === "capital") { 106 | const [firstLetter, ...rest] = username.split(""); 107 | username = firstLetter.toUpperCase() + rest.join(""); 108 | } else if (config.style === "upperCase") { 109 | username = username.toUpperCase(); 110 | } 111 | 112 | if (config.length) { 113 | return username.substring(0, config.length); 114 | } else { 115 | return username.substring(0, 15); 116 | } 117 | 118 | } 119 | } 120 | 121 | export { adjectives, nouns } from "./data"; 122 | -------------------------------------------------------------------------------- /tests/index.test.ts: -------------------------------------------------------------------------------- 1 | import { adjectives, nouns, generateFromEmail, uniqueUsernameGenerator, generateUsername } from "../src/index"; 2 | import { expect } from "chai"; 3 | 4 | describe("generate-unique-username-from-email unit tests", (): void => { 5 | it("generating from email containing no special character in the name", (): void => { 6 | const actual: string = generateFromEmail("lakshminarayan@example.com"); 7 | expect(actual).is.equal("lakshminarayan"); 8 | }); 9 | it("generating from email with special character in the name", (): void => { 10 | const actual: string = generateFromEmail("lakshmi.narayan@example.com"); 11 | expect(actual).is.equal("lakshminarayan"); 12 | }); 13 | it("generating from email containing no special character in the name and adding one random digit", (): void => { 14 | const actual: string = generateFromEmail("lakshminarayan@example.com", 1); 15 | expect(actual.slice(0, -1)).is.equal("lakshminarayan"); 16 | }); 17 | it("generating from email with special character in the name and adding one random digit", (): void => { 18 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 1); 19 | expect(actual.slice(0, -1)).is.equal("lakshminarayan"); 20 | }); 21 | it("generating from email containing no special character in the name and adding two random digit", (): void => { 22 | const actual: string = generateFromEmail("lakshminarayan@example.com", 2); 23 | expect(actual.slice(0, -2)).is.equal("lakshminarayan"); 24 | }); 25 | it("generating from email with special character in the name and adding two random digit", (): void => { 26 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 2); 27 | expect(actual.slice(0, -2)).is.equal("lakshminarayan"); 28 | }); 29 | it("generating from email containing no special character in the name and adding three random digit", (): void => { 30 | const actual: string = generateFromEmail("lakshminarayan@example.com", 3); 31 | expect(actual.slice(0, -3)).is.equal("lakshminarayan"); 32 | }); 33 | it("generating from email with special character in the name and adding three random digit", (): void => { 34 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 3); 35 | expect(actual.slice(0, -3)).is.equal("lakshminarayan"); 36 | }); 37 | it("generating from email containing no special character in the name and adding four random digit", (): void => { 38 | const actual: string = generateFromEmail("lakshminarayan@example.com", 4); 39 | expect(actual.slice(0, -4)).is.equal("lakshminarayan"); 40 | }); 41 | it("generating from email with special character in the name and adding four random digit", (): void => { 42 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 4); 43 | expect(actual.slice(0, -4)).is.equal("lakshminarayan"); 44 | }); 45 | it("generating from email containing no special character in the name and adding five random digit", (): void => { 46 | const actual: string = generateFromEmail("lakshminarayan@example.com", 5); 47 | expect(actual.slice(0, -5)).is.equal("lakshminarayan"); 48 | }); 49 | it("generating from email with special character in the name and adding five random digit", (): void => { 50 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 5); 51 | expect(actual.slice(0, -5)).is.equal("lakshminarayan"); 52 | }); 53 | it("generating from email containing no special character in the name and adding six random digit", (): void => { 54 | const actual: string = generateFromEmail("lakshminarayan@example.com", 6); 55 | expect(actual.slice(0, -6)).is.equal("lakshminarayan"); 56 | }); 57 | it("generating from email with special character in the name and adding six random digit", (): void => { 58 | const actual: string = generateFromEmail("lakshmi.narayan@example.com", 6); 59 | expect(actual.slice(0, -6)).is.equal("lakshminarayan"); 60 | }); 61 | }); 62 | 63 | describe("generate-unique-username-uniqueUsernameGenerator unit tests", (): void => { 64 | it("uniqueUsernameGenerator uses all dicts w separator", (): void => { 65 | const actual: string = uniqueUsernameGenerator({ 66 | dictionaries: [["q"], ["a"]], 67 | separator: "-" 68 | }); 69 | expect(actual).is.equal("q-a"); 70 | }); 71 | 72 | it("uniqueUsernameGenerator uses all dicts wo separator", (): void => { 73 | const actual: string = uniqueUsernameGenerator({ 74 | dictionaries: [["q"], ["a"]] 75 | }); 76 | expect(actual).is.equal("qa"); 77 | }); 78 | it("uniqueUsernameGenerator style UPPERCASE", (): void => { 79 | const actual: string = uniqueUsernameGenerator({ 80 | dictionaries: [["q"], ["a"]], 81 | style: "upperCase" 82 | }); 83 | expect(actual).is.equal("QA"); 84 | }); 85 | it("uniqueUsernameGenerator style lowercase", (): void => { 86 | const actual: string = uniqueUsernameGenerator({ 87 | dictionaries: [["Q"], ["A"]], 88 | style: "lowerCase" 89 | }); 90 | expect(actual).is.equal("qa"); 91 | }); 92 | it("uniqueUsernameGenerator style capital", (): void => { 93 | const actual: string = uniqueUsernameGenerator({ 94 | dictionaries: [["q"], ["A"]], 95 | style: "capital" 96 | }); 97 | expect(actual).is.equal("Qa"); 98 | }); 99 | it("uniqueUsernameGenerator works w config w default dictionaries only", (): void => { 100 | const actual: string = uniqueUsernameGenerator({ dictionaries: [adjectives, nouns] }); 101 | expect(actual).not.contains("-"); 102 | }); 103 | }); 104 | 105 | describe("generate-unique-username unit tests", (): void => { 106 | it("generating unique username", (): void => { 107 | const actual: string = generateUsername(); 108 | expect(typeof actual).is.equal("string"); 109 | expect(actual).is.not.equal(""); 110 | }); 111 | 112 | it("generating unique username with separator", (): void => { 113 | const actual: string = generateUsername("-"); 114 | expect(actual).is.contains("-"); 115 | expect(actual.split("-").length).is.greaterThan(1); 116 | }); 117 | it("generating unique username with separator and no random number", (): void => { 118 | const actual: string = generateUsername("-", 0); 119 | expect(actual).to.not.match(/[0-9]/); 120 | }); 121 | it("generating unique username with max length", (): void => { 122 | const actual: string = generateUsername("-", 2, 5); 123 | expect(actual).to.lengthOf(5) 124 | }); 125 | it("generating unique username with max length and prefix", (): void => { 126 | const actual: string = generateUsername("-", undefined, undefined, "unique username"); 127 | expect(actual).to.contain(`unique-username`) 128 | }); 129 | }) -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es6", 4 | "module": "commonjs", 5 | "strict": true, 6 | "declaration": true, 7 | "outDir": "./dist", 8 | "resolveJsonModule": true 9 | }, 10 | "exclude": [ 11 | "tests", 12 | "dist", 13 | "node_modules" 14 | ] 15 | } --------------------------------------------------------------------------------