@kingdomchain/wallet-client 0.1.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,9 +1,16 @@
1
- import { toHex, fromHex } from '@cosmjs/encoding';
1
+ import { toHex, fromHex, toBase64, fromBase64 } from '@cosmjs/encoding';
2
2
  import { sha256 } from '@noble/hashes/sha256';
3
3
  import * as ed from '@noble/ed25519';
4
- import { Registry } from '@cosmjs/proto-signing';
4
+ import { Registry, DirectSecp256k1Wallet, DirectSecp256k1HdWallet } from '@cosmjs/proto-signing';
5
5
  import { defaultRegistryTypes, SigningStargateClient } from '@cosmjs/stargate';
6
6
  import { BinaryWriter, BinaryReader } from '@bufbuild/protobuf/wire';
7
+ import SignClient from '@walletconnect/sign-client';
8
+ import { Bip39, EnglishMnemonic, Slip10, Slip10Curve, stringToPath } from '@cosmjs/crypto';
9
+ import { validateMnemonic, entropyToMnemonic, mnemonicToEntropy } from '@scure/bip39';
10
+ import { wordlist } from '@scure/bip39/wordlists/english';
11
+ import { ZxcvbnFactory } from '@zxcvbn-ts/core';
12
+ import * as zxcvbnCommon from '@zxcvbn-ts/language-common';
13
+ import * as zxcvbnEn from '@zxcvbn-ts/language-en';
7
14
 
8
15
  // src/attestation.ts
9
16
  var ATTESTATION_TYPE_CITIZENSHIP_APPLICATION = "citizenship_application";
@@ -1590,6 +1597,16 @@ function isKeplrAvailable() {
1590
1597
  function isLeapAvailable() {
1591
1598
  return typeof window !== "undefined" && isWalletApiPresent(window.leap);
1592
1599
  }
1600
+ function getCosmostationKeplrApi() {
1601
+ if (typeof window === "undefined") {
1602
+ return void 0;
1603
+ }
1604
+ const api = window.cosmostation?.providers?.keplr;
1605
+ return isWalletApiPresent(api) ? api : void 0;
1606
+ }
1607
+ function isCosmostationAvailable() {
1608
+ return getCosmostationKeplrApi() != null;
1609
+ }
1593
1610
  function buildKingdomChainInfo(chainId, rpcUrl, restUrl, chainName = "Kingdom Chain") {
1594
1611
  validateChainConfig(chainId, rpcUrl, restUrl);
1595
1612
  const accPub = `${BECH32_PREFIX}pub`;
@@ -1665,6 +1682,10 @@ async function connectLeap(chainInfo) {
1665
1682
  const api = resolveWalletApi(() => window.leap, "Leap");
1666
1683
  return suggestAndConnect(api, chainInfo, "Leap");
1667
1684
  }
1685
+ async function connectCosmostation(chainInfo) {
1686
+ const api = resolveWalletApi(getCosmostationKeplrApi, "Cosmostation");
1687
+ return suggestAndConnect(api, chainInfo, "Cosmostation");
1688
+ }
1668
1689
  async function createBrowserSigningClient(rpcUrl, signer) {
1669
1690
  if (!rpcUrl.trim()) {
1670
1691
  throw new InvalidChainConfigError("rpcUrl is required");
@@ -1677,6 +1698,1318 @@ async function createBrowserSigningClient(rpcUrl, signer) {
1677
1698
  throw new RpcConnectionError(rpcUrl, err);
1678
1699
  }
1679
1700
  }
1701
+ var WALLETCONNECT_COSMOS_NAMESPACE = "cosmos";
1702
+ var WALLETCONNECT_COSMOS_METHODS = [
1703
+ "cosmos_getAccounts",
1704
+ "cosmos_signDirect",
1705
+ "cosmos_signAmino"
1706
+ ];
1707
+ var WalletConnectNotInitializedError = class extends Error {
1708
+ constructor() {
1709
+ super("WalletConnect Sign Client is not initialized.");
1710
+ this.name = "WalletConnectNotInitializedError";
1711
+ }
1712
+ };
1713
+ var WalletConnectSessionError = class extends Error {
1714
+ constructor(message, cause) {
1715
+ super(message, { cause });
1716
+ this.name = "WalletConnectSessionError";
1717
+ }
1718
+ };
1719
+ var WalletConnectSigningError = class extends Error {
1720
+ constructor(message, cause) {
1721
+ super(message, { cause });
1722
+ this.name = "WalletConnectSigningError";
1723
+ }
1724
+ };
1725
+ function toWalletConnectCosmosChainId(chainId) {
1726
+ return `${WALLETCONNECT_COSMOS_NAMESPACE}:${chainId}`;
1727
+ }
1728
+ function parseWalletConnectAccount(account) {
1729
+ const parts = account.split(":");
1730
+ if (parts.length !== 3) {
1731
+ throw new WalletConnectSessionError(`Invalid WalletConnect account id: ${account}`);
1732
+ }
1733
+ const [namespace, chainId, address] = parts;
1734
+ return { namespace, chainId, address };
1735
+ }
1736
+ function buildRequiredCosmosNamespaces(chainId) {
1737
+ const wcChainId = toWalletConnectCosmosChainId(chainId);
1738
+ return {
1739
+ [WALLETCONNECT_COSMOS_NAMESPACE]: {
1740
+ methods: [...WALLETCONNECT_COSMOS_METHODS],
1741
+ chains: [wcChainId],
1742
+ events: []
1743
+ }
1744
+ };
1745
+ }
1746
+ async function initWalletConnectClient(config) {
1747
+ if (!config.projectId.trim()) {
1748
+ throw new WalletConnectSessionError("WalletConnect projectId is required");
1749
+ }
1750
+ if (!config.chainId.trim()) {
1751
+ throw new WalletConnectSessionError("chainId is required");
1752
+ }
1753
+ return SignClient.init({
1754
+ projectId: config.projectId,
1755
+ metadata: config.metadata,
1756
+ relayUrl: config.relayUrl
1757
+ });
1758
+ }
1759
+ function createWalletConnectOfflineSigner(client, session, chainId) {
1760
+ const wcChainId = toWalletConnectCosmosChainId(chainId);
1761
+ const accounts = session.namespaces[WALLETCONNECT_COSMOS_NAMESPACE]?.accounts ?? [];
1762
+ const chainAccounts = accounts.map(parseWalletConnectAccount).filter((entry) => entry.chainId === chainId);
1763
+ if (chainAccounts.length === 0) {
1764
+ throw new WalletConnectSessionError(
1765
+ `WalletConnect session has no accounts for chain ${chainId}`
1766
+ );
1767
+ }
1768
+ const primaryAddress = chainAccounts[0].address;
1769
+ return {
1770
+ getAccounts: async () => {
1771
+ try {
1772
+ const response = await client.request({
1773
+ topic: session.topic,
1774
+ chainId: wcChainId,
1775
+ request: {
1776
+ method: "cosmos_getAccounts",
1777
+ params: {}
1778
+ }
1779
+ });
1780
+ if (Array.isArray(response) && response.length > 0) {
1781
+ return response.map((account) => ({
1782
+ address: account.address,
1783
+ algo: account.algo,
1784
+ pubkey: fromBase64(account.pubkey)
1785
+ }));
1786
+ }
1787
+ } catch {
1788
+ }
1789
+ return chainAccounts.map((account) => ({
1790
+ address: account.address,
1791
+ algo: "secp256k1",
1792
+ pubkey: new Uint8Array(0)
1793
+ }));
1794
+ },
1795
+ signDirect: async (signerAddress, signDoc) => {
1796
+ if (signerAddress !== primaryAddress) {
1797
+ throw new WalletConnectSigningError(
1798
+ `WalletConnect signer address mismatch: expected ${primaryAddress}, got ${signerAddress}`
1799
+ );
1800
+ }
1801
+ try {
1802
+ const result = await client.request({
1803
+ topic: session.topic,
1804
+ chainId: wcChainId,
1805
+ request: {
1806
+ method: "cosmos_signDirect",
1807
+ params: {
1808
+ signerAddress,
1809
+ signDoc: {
1810
+ chainId: signDoc.chainId,
1811
+ accountNumber: signDoc.accountNumber.toString(),
1812
+ authInfoBytes: toBase64(signDoc.authInfoBytes),
1813
+ bodyBytes: toBase64(signDoc.bodyBytes)
1814
+ }
1815
+ }
1816
+ }
1817
+ });
1818
+ return {
1819
+ signed: {
1820
+ chainId: result.signed?.chainId ?? signDoc.chainId,
1821
+ accountNumber: BigInt(result.signed?.accountNumber ?? signDoc.accountNumber),
1822
+ authInfoBytes: result.signed?.authInfoBytes ? fromBase64(result.signed.authInfoBytes) : signDoc.authInfoBytes,
1823
+ bodyBytes: result.signed?.bodyBytes ? fromBase64(result.signed.bodyBytes) : signDoc.bodyBytes
1824
+ },
1825
+ signature: {
1826
+ pub_key: {
1827
+ type: result.signature.pub_key.type,
1828
+ value: result.signature.pub_key.value
1829
+ },
1830
+ signature: result.signature.signature
1831
+ }
1832
+ };
1833
+ } catch (err) {
1834
+ throw new WalletConnectSigningError("WalletConnect cosmos_signDirect failed.", err);
1835
+ }
1836
+ }
1837
+ };
1838
+ }
1839
+ async function connectWalletConnect(client, chainId, options) {
1840
+ const { uri, approval } = await client.connect({
1841
+ pairingTopic: options?.pairingTopic,
1842
+ requiredNamespaces: buildRequiredCosmosNamespaces(chainId)
1843
+ });
1844
+ if (!uri) {
1845
+ throw new WalletConnectSessionError("WalletConnect did not return a pairing URI");
1846
+ }
1847
+ const session = await approval();
1848
+ const signer = createWalletConnectOfflineSigner(client, session, chainId);
1849
+ const accounts = await signer.getAccounts();
1850
+ if (accounts.length === 0 || !accounts[0]?.address?.trim()) {
1851
+ throw new WalletConnectSessionError("WalletConnect session returned no usable accounts");
1852
+ }
1853
+ return { uri, session, signer };
1854
+ }
1855
+ async function disconnectWalletConnect(client, session, reason = "User disconnected") {
1856
+ await client.disconnect({
1857
+ topic: session.topic,
1858
+ reason: { code: 6e3, message: reason }
1859
+ });
1860
+ }
1861
+ async function restoreWalletConnectSession(client, chainId) {
1862
+ const sessions = client.session.getAll();
1863
+ const wcChainId = toWalletConnectCosmosChainId(chainId);
1864
+ const active = sessions.find((session) => {
1865
+ const chains = session.namespaces[WALLETCONNECT_COSMOS_NAMESPACE]?.chains ?? [];
1866
+ return chains.includes(wcChainId);
1867
+ });
1868
+ if (!active) {
1869
+ return null;
1870
+ }
1871
+ const signer = createWalletConnectOfflineSigner(client, active, chainId);
1872
+ return { session: active, signer };
1873
+ }
1874
+
1875
+ // src/embeddedWallet/types.ts
1876
+ var EMBEDDED_WALLET_VAULT_VERSION = 1;
1877
+ var EMBEDDED_WALLET_KDF_PRF = "webauthn-prf";
1878
+ var EMBEDDED_WALLET_KDF_PBKDF2 = "pbkdf2-passkey";
1879
+ var EMBEDDED_WALLET_KDF_PIN = "pbkdf2-pin";
1880
+ var EMBEDDED_WALLET_KEY_HD_DERIVED = "hd-derived";
1881
+ var EMBEDDED_WALLET_KEY_DIRECT_ENTROPY = "direct-entropy";
1882
+ var EMBEDDED_WALLET_RECOVERY_PHRASE_GENERAL_WARNING = {
1883
+ id: "general",
1884
+ title: "Protect your recovery phrase",
1885
+ body: "Anyone with these words can access your funds. Never share them, never enter them on any other website, and Kingdom OS will never ask you for them."
1886
+ };
1887
+ var EMBEDDED_WALLET_RECOVERY_PHRASE_DIRECT_ENTROPY_WARNING = {
1888
+ id: "direct-entropy-portability",
1889
+ title: "Kingdom OS recovery phrase only",
1890
+ body: "This phrase restores this wallet in Kingdom OS only. It will not import into Keplr, Exodus, or other standard Cosmos wallets."
1891
+ };
1892
+ var EmbeddedWalletBackupRequiredError = class extends Error {
1893
+ constructor() {
1894
+ super(
1895
+ "Encrypted backup must be downloaded and acknowledged before the first transaction."
1896
+ );
1897
+ this.name = "EmbeddedWalletBackupRequiredError";
1898
+ }
1899
+ };
1900
+ var EmbeddedWalletVaultError = class extends Error {
1901
+ constructor(message, cause) {
1902
+ super(message, { cause });
1903
+ this.name = "EmbeddedWalletVaultError";
1904
+ }
1905
+ };
1906
+ var EmbeddedWalletLockoutError = class extends Error {
1907
+ retryAfterMs;
1908
+ constructor(retryAfterMs) {
1909
+ super(`Passcode unlock temporarily locked; retry in ${Math.ceil(retryAfterMs / 1e3)} seconds`);
1910
+ this.name = "EmbeddedWalletLockoutError";
1911
+ this.retryAfterMs = retryAfterMs;
1912
+ }
1913
+ };
1914
+ var EmbeddedWalletWeakPasscodeError = class extends Error {
1915
+ reason;
1916
+ constructor(reason) {
1917
+ const messages = {
1918
+ denylist: "Passcode is too common; choose something less predictable",
1919
+ too_weak: "Passcode is too weak; use a longer or more varied passcode",
1920
+ numeric_short: "Numeric-only passcodes must be at least 12 digits"
1921
+ };
1922
+ super(messages[reason]);
1923
+ this.name = "EmbeddedWalletWeakPasscodeError";
1924
+ this.reason = reason;
1925
+ }
1926
+ };
1927
+ var DEFAULT_HD_PATH = "m/44'/118'/0'/0/0";
1928
+ async function embeddedPlaintextToSigner(plaintext, prefix = BECH32_PREFIX) {
1929
+ if (plaintext.privateKey.length !== 32) {
1930
+ throw new EmbeddedWalletVaultError(
1931
+ `Invalid secp256k1 private key length: ${plaintext.privateKey.length}`
1932
+ );
1933
+ }
1934
+ return DirectSecp256k1Wallet.fromKey(plaintext.privateKey, prefix);
1935
+ }
1936
+ function defaultEmbeddedHdPath() {
1937
+ return DEFAULT_HD_PATH;
1938
+ }
1939
+
1940
+ // src/embeddedWallet/mnemonic.ts
1941
+ var MNEMONIC_WORD_COUNT = 24;
1942
+ function normalizeRecoveryMnemonic(mnemonic) {
1943
+ return mnemonic.trim().toLowerCase().replace(/\s+/g, " ");
1944
+ }
1945
+ function assertValidRecoveryMnemonic(mnemonic) {
1946
+ const normalized = normalizeRecoveryMnemonic(mnemonic);
1947
+ if (!validateMnemonic(normalized, wordlist)) {
1948
+ throw new EmbeddedWalletVaultError("Recovery phrase is not a valid BIP-39 mnemonic");
1949
+ }
1950
+ const words = normalized.split(" ");
1951
+ if (words.length !== MNEMONIC_WORD_COUNT) {
1952
+ throw new EmbeddedWalletVaultError(
1953
+ `Recovery phrase must be ${MNEMONIC_WORD_COUNT} words, got ${words.length}`
1954
+ );
1955
+ }
1956
+ }
1957
+ function resolvePlaintextKeyType(plaintext) {
1958
+ return plaintext.keyType ?? EMBEDDED_WALLET_KEY_DIRECT_ENTROPY;
1959
+ }
1960
+ function encodeDirectEntropyMnemonic(privateKey) {
1961
+ if (privateKey.length !== 32) {
1962
+ throw new EmbeddedWalletVaultError(
1963
+ `Direct-entropy mnemonic requires a 32-byte key, got ${privateKey.length}`
1964
+ );
1965
+ }
1966
+ return entropyToMnemonic(privateKey, wordlist);
1967
+ }
1968
+ function decodeDirectEntropyMnemonic(mnemonic) {
1969
+ assertValidRecoveryMnemonic(mnemonic);
1970
+ const entropy = mnemonicToEntropy(normalizeRecoveryMnemonic(mnemonic), wordlist);
1971
+ if (entropy.length !== 32) {
1972
+ throw new EmbeddedWalletVaultError(
1973
+ `Direct-entropy mnemonic must decode to 32 bytes, got ${entropy.length}`
1974
+ );
1975
+ }
1976
+ return entropy;
1977
+ }
1978
+ async function derivePrivateKeyFromHdMnemonic(mnemonic, hdPath = defaultEmbeddedHdPath()) {
1979
+ assertValidRecoveryMnemonic(mnemonic);
1980
+ const seed = await Bip39.mnemonicToSeed(new EnglishMnemonic(normalizeRecoveryMnemonic(mnemonic)));
1981
+ const { privkey } = Slip10.derivePath(Slip10Curve.Secp256k1, seed, stringToPath(hdPath));
1982
+ return privkey;
1983
+ }
1984
+ async function addressFromPrivateKey(privateKey, prefix = BECH32_PREFIX) {
1985
+ const wallet = await DirectSecp256k1Wallet.fromKey(privateKey, prefix);
1986
+ const [account] = await wallet.getAccounts();
1987
+ return account.address;
1988
+ }
1989
+ async function addressFromHdMnemonic(mnemonic, hdPath = defaultEmbeddedHdPath(), prefix = BECH32_PREFIX) {
1990
+ const wallet = await DirectSecp256k1HdWallet.fromMnemonic(normalizeRecoveryMnemonic(mnemonic), {
1991
+ prefix,
1992
+ hdPaths: [stringToPath(hdPath)]
1993
+ });
1994
+ const [account] = await wallet.getAccounts();
1995
+ return account.address;
1996
+ }
1997
+ async function createHdDerivedPlaintext(createdAt, hdPath = defaultEmbeddedHdPath()) {
1998
+ const hdWallet = await DirectSecp256k1HdWallet.generate(MNEMONIC_WORD_COUNT, {
1999
+ prefix: BECH32_PREFIX,
2000
+ hdPaths: [stringToPath(hdPath)]
2001
+ });
2002
+ const mnemonic = hdWallet.mnemonic;
2003
+ const privateKey = await derivePrivateKeyFromHdMnemonic(mnemonic, hdPath);
2004
+ return {
2005
+ privateKey,
2006
+ hdPath,
2007
+ createdAt,
2008
+ keyType: EMBEDDED_WALLET_KEY_HD_DERIVED,
2009
+ mnemonic
2010
+ };
2011
+ }
2012
+ async function plaintextFromRecoveryMnemonic(mnemonic, keyType, createdAt, hdPath = defaultEmbeddedHdPath()) {
2013
+ assertValidRecoveryMnemonic(mnemonic);
2014
+ const normalized = normalizeRecoveryMnemonic(mnemonic);
2015
+ if (keyType === EMBEDDED_WALLET_KEY_HD_DERIVED) {
2016
+ const privateKey2 = await derivePrivateKeyFromHdMnemonic(normalized, hdPath);
2017
+ return {
2018
+ privateKey: privateKey2,
2019
+ hdPath,
2020
+ createdAt,
2021
+ keyType: EMBEDDED_WALLET_KEY_HD_DERIVED,
2022
+ mnemonic: normalized
2023
+ };
2024
+ }
2025
+ const privateKey = decodeDirectEntropyMnemonic(normalized);
2026
+ return {
2027
+ privateKey,
2028
+ hdPath,
2029
+ createdAt,
2030
+ keyType: EMBEDDED_WALLET_KEY_DIRECT_ENTROPY
2031
+ };
2032
+ }
2033
+ async function detectRecoveryMnemonicKeyType(mnemonic, expectedAddress, hdPath = defaultEmbeddedHdPath(), prefix = BECH32_PREFIX) {
2034
+ assertValidRecoveryMnemonic(mnemonic);
2035
+ const normalized = normalizeRecoveryMnemonic(mnemonic);
2036
+ const hdAddress = await addressFromHdMnemonic(normalized, hdPath, prefix);
2037
+ if (hdAddress === expectedAddress) {
2038
+ return EMBEDDED_WALLET_KEY_HD_DERIVED;
2039
+ }
2040
+ const directKey = decodeDirectEntropyMnemonic(normalized);
2041
+ const directAddress = await addressFromPrivateKey(directKey, prefix);
2042
+ if (directAddress === expectedAddress) {
2043
+ return EMBEDDED_WALLET_KEY_DIRECT_ENTROPY;
2044
+ }
2045
+ throw new EmbeddedWalletVaultError(
2046
+ "Recovery phrase does not match the expected wallet address for either HD or direct-entropy decoding"
2047
+ );
2048
+ }
2049
+ async function recoveryMnemonicAddress(mnemonic, keyType, hdPath = defaultEmbeddedHdPath(), prefix = BECH32_PREFIX) {
2050
+ if (keyType === EMBEDDED_WALLET_KEY_HD_DERIVED) {
2051
+ return addressFromHdMnemonic(mnemonic, hdPath, prefix);
2052
+ }
2053
+ const privateKey = decodeDirectEntropyMnemonic(mnemonic);
2054
+ return addressFromPrivateKey(privateKey, prefix);
2055
+ }
2056
+ function recoveryMnemonicFromPlaintext(plaintext) {
2057
+ const keyType = resolvePlaintextKeyType(plaintext);
2058
+ if (keyType === EMBEDDED_WALLET_KEY_HD_DERIVED) {
2059
+ if (!plaintext.mnemonic) {
2060
+ throw new EmbeddedWalletVaultError(
2061
+ "HD-derived wallet is missing stored mnemonic; cannot reveal recovery phrase"
2062
+ );
2063
+ }
2064
+ return normalizeRecoveryMnemonic(plaintext.mnemonic);
2065
+ }
2066
+ return encodeDirectEntropyMnemonic(plaintext.privateKey);
2067
+ }
2068
+
2069
+ // src/embeddedWallet/crypto.ts
2070
+ var PBKDF2_ITERATIONS = 31e4;
2071
+ var AES_GCM_IV_BYTES = 12;
2072
+ function pbkdf2IterationsForKdf(kdf, override) {
2073
+ if (kdf === EMBEDDED_WALLET_KDF_PRF) {
2074
+ return 0;
2075
+ }
2076
+ if (override != null) {
2077
+ return override;
2078
+ }
2079
+ if (kdf === EMBEDDED_WALLET_KDF_PIN) {
2080
+ throw new EmbeddedWalletVaultError("PIN vault encryption requires explicit kdfIterations");
2081
+ }
2082
+ return PBKDF2_ITERATIONS;
2083
+ }
2084
+ function assertKekLength(kek) {
2085
+ if (kek.length !== 32) {
2086
+ throw new EmbeddedWalletVaultError(`KEK must be 32 bytes, got ${kek.length}`);
2087
+ }
2088
+ }
2089
+ function serializePlaintext(payload) {
2090
+ const keyType = resolvePlaintextKeyType(payload);
2091
+ const json = {
2092
+ privateKey: toBase64(payload.privateKey),
2093
+ hdPath: payload.hdPath,
2094
+ createdAt: payload.createdAt,
2095
+ keyType
2096
+ };
2097
+ if (payload.mnemonic) {
2098
+ json.mnemonic = payload.mnemonic;
2099
+ }
2100
+ return new TextEncoder().encode(JSON.stringify(json));
2101
+ }
2102
+ function deserializePlaintext(bytes) {
2103
+ let parsed;
2104
+ try {
2105
+ parsed = JSON.parse(new TextDecoder().decode(bytes));
2106
+ } catch (err) {
2107
+ throw new EmbeddedWalletVaultError("Failed to parse decrypted wallet payload", err);
2108
+ }
2109
+ if (typeof parsed !== "object" || parsed == null || typeof parsed.hdPath !== "string" || typeof parsed.createdAt !== "string" || typeof parsed.privateKey !== "string") {
2110
+ throw new EmbeddedWalletVaultError("Decrypted wallet payload has invalid shape");
2111
+ }
2112
+ const record = parsed;
2113
+ const plaintext = {
2114
+ privateKey: fromBase64(record.privateKey),
2115
+ hdPath: record.hdPath,
2116
+ createdAt: record.createdAt
2117
+ };
2118
+ if (record.keyType) {
2119
+ plaintext.keyType = record.keyType;
2120
+ } else {
2121
+ plaintext.keyType = EMBEDDED_WALLET_KEY_DIRECT_ENTROPY;
2122
+ }
2123
+ if (typeof record.mnemonic === "string" && record.mnemonic.length > 0) {
2124
+ plaintext.mnemonic = record.mnemonic;
2125
+ }
2126
+ return plaintext;
2127
+ }
2128
+ async function deriveKekFromPrf(prfOutput) {
2129
+ if (prfOutput.length < 32) {
2130
+ throw new EmbeddedWalletVaultError(`PRF output must be at least 32 bytes, got ${prfOutput.length}`);
2131
+ }
2132
+ return prfOutput.slice(0, 32);
2133
+ }
2134
+ async function deriveKekFromPbkdf2(passkeyMaterial, salt, iterations = PBKDF2_ITERATIONS) {
2135
+ if (salt.length < 16) {
2136
+ throw new EmbeddedWalletVaultError("PBKDF2 salt must be at least 16 bytes");
2137
+ }
2138
+ const keyMaterial = await crypto.subtle.importKey(
2139
+ "raw",
2140
+ new Uint8Array(passkeyMaterial),
2141
+ "PBKDF2",
2142
+ false,
2143
+ ["deriveBits"]
2144
+ );
2145
+ const derived = await crypto.subtle.deriveBits(
2146
+ { name: "PBKDF2", salt: new Uint8Array(salt), iterations, hash: "SHA-256" },
2147
+ keyMaterial,
2148
+ 256
2149
+ );
2150
+ return new Uint8Array(derived);
2151
+ }
2152
+ function createPbkdf2Salt() {
2153
+ const salt = new Uint8Array(32);
2154
+ crypto.getRandomValues(salt);
2155
+ return salt;
2156
+ }
2157
+ function createPasskeyMaterialFromAssertion(authenticatorData, clientDataJSON) {
2158
+ const combined = new Uint8Array(authenticatorData.length + clientDataJSON.length);
2159
+ combined.set(authenticatorData, 0);
2160
+ combined.set(clientDataJSON, authenticatorData.length);
2161
+ return combined;
2162
+ }
2163
+ async function importAesKey(kek) {
2164
+ assertKekLength(kek);
2165
+ const raw = new Uint8Array(kek);
2166
+ return crypto.subtle.importKey("raw", raw, "AES-GCM", false, ["encrypt", "decrypt"]);
2167
+ }
2168
+ async function encryptWalletPayload(payload, options) {
2169
+ const iv = crypto.getRandomValues(new Uint8Array(AES_GCM_IV_BYTES));
2170
+ const aesKey = await importAesKey(options.kek);
2171
+ const plaintext = serializePlaintext(payload);
2172
+ const ciphertext = await crypto.subtle.encrypt(
2173
+ { name: "AES-GCM", iv },
2174
+ aesKey,
2175
+ new Uint8Array(plaintext)
2176
+ );
2177
+ if ((options.kdf === EMBEDDED_WALLET_KDF_PBKDF2 || options.kdf === EMBEDDED_WALLET_KDF_PIN) && !options.kdfSalt) {
2178
+ throw new EmbeddedWalletVaultError("PBKDF2 encryption requires kdfSalt");
2179
+ }
2180
+ const iterations = pbkdf2IterationsForKdf(options.kdf, options.kdfIterations);
2181
+ return {
2182
+ version: EMBEDDED_WALLET_VAULT_VERSION,
2183
+ kdf: options.kdf,
2184
+ credentialId: toBase64(options.credentialId),
2185
+ publicAddress: options.publicAddress,
2186
+ iv: toBase64(iv),
2187
+ ciphertext: toBase64(new Uint8Array(ciphertext)),
2188
+ kdfSalt: options.kdfSalt ? toBase64(options.kdfSalt) : "",
2189
+ kdfIterations: iterations,
2190
+ prfSalt: options.prfSalt ? toBase64(options.prfSalt) : "",
2191
+ backupAcknowledged: options.backupAcknowledged ?? false,
2192
+ backupAcknowledgedAt: options.backupAcknowledged ? (/* @__PURE__ */ new Date()).toISOString() : void 0,
2193
+ createdAt: payload.createdAt
2194
+ };
2195
+ }
2196
+ async function decryptWalletPayload(vault, kek) {
2197
+ if (vault.version !== EMBEDDED_WALLET_VAULT_VERSION) {
2198
+ throw new EmbeddedWalletVaultError(`Unsupported vault version: ${vault.version}`);
2199
+ }
2200
+ const aesKey = await importAesKey(kek);
2201
+ const iv = fromBase64(vault.iv);
2202
+ const ciphertext = fromBase64(vault.ciphertext);
2203
+ let plaintextBytes;
2204
+ try {
2205
+ plaintextBytes = await crypto.subtle.decrypt(
2206
+ { name: "AES-GCM", iv: new Uint8Array(iv) },
2207
+ aesKey,
2208
+ new Uint8Array(ciphertext)
2209
+ );
2210
+ } catch (err) {
2211
+ throw new EmbeddedWalletVaultError("Failed to decrypt wallet vault (wrong key or corrupted data)", err);
2212
+ }
2213
+ return deserializePlaintext(new Uint8Array(plaintextBytes));
2214
+ }
2215
+ function markVaultBackupAcknowledged(vault) {
2216
+ const now = (/* @__PURE__ */ new Date()).toISOString();
2217
+ return {
2218
+ ...vault,
2219
+ backupAcknowledged: true,
2220
+ backupAcknowledgedAt: now
2221
+ };
2222
+ }
2223
+ function assertVaultPermitsTransaction(vault) {
2224
+ if (!vault.backupAcknowledged) {
2225
+ throw new EmbeddedWalletBackupRequiredError();
2226
+ }
2227
+ }
2228
+
2229
+ // src/embeddedWallet/prf.ts
2230
+ function detectWebAuthnPrfCapabilities() {
2231
+ if (typeof globalThis.PublicKeyCredential === "undefined") {
2232
+ return {
2233
+ webAuthnAvailable: false,
2234
+ prfLikelySupported: false,
2235
+ prfFallbackReason: "WebAuthn is not available in this environment"
2236
+ };
2237
+ }
2238
+ const ua = typeof navigator !== "undefined" ? navigator.userAgent : "";
2239
+ const isSafari = /Safari/i.test(ua) && !/Chrome|Chromium|CriOS|FxiOS/i.test(ua);
2240
+ if (isSafari) {
2241
+ return {
2242
+ webAuthnAvailable: true,
2243
+ prfLikelySupported: false,
2244
+ prfFallbackReason: "Safari does not support WebAuthn PRF for cross-device QR flows; use PBKDF2 fallback"
2245
+ };
2246
+ }
2247
+ const getCaps = PublicKeyCredential.getClientCapabilities;
2248
+ if (typeof getCaps !== "function") {
2249
+ return {
2250
+ webAuthnAvailable: true,
2251
+ prfLikelySupported: true
2252
+ };
2253
+ }
2254
+ return {
2255
+ webAuthnAvailable: true,
2256
+ prfLikelySupported: true,
2257
+ prfFallbackReason: void 0
2258
+ };
2259
+ }
2260
+ function readPrfOutput(clientExtensionResults) {
2261
+ const prf = clientExtensionResults?.prf;
2262
+ const first = prf?.results?.first ?? (prf?.results ? Object.values(prf.results)[0] : void 0);
2263
+ if (!first || first.byteLength < 32) {
2264
+ return null;
2265
+ }
2266
+ return new Uint8Array(first).slice(0, 32);
2267
+ }
2268
+ function selectEmbeddedWalletKdf(caps, prfOutput) {
2269
+ if (caps.prfLikelySupported && prfOutput && prfOutput.length >= 32) {
2270
+ return "webauthn-prf";
2271
+ }
2272
+ return "pbkdf2-passkey";
2273
+ }
2274
+
2275
+ // src/embeddedWallet/backup.ts
2276
+ function exportEncryptedBackup(vault) {
2277
+ return {
2278
+ format: "kingdom-os-embedded-wallet-backup",
2279
+ version: EMBEDDED_WALLET_VAULT_VERSION,
2280
+ vault: structuredClone(vault),
2281
+ exportedAt: (/* @__PURE__ */ new Date()).toISOString()
2282
+ };
2283
+ }
2284
+ function parseEncryptedBackup(json) {
2285
+ let parsed;
2286
+ try {
2287
+ parsed = JSON.parse(json);
2288
+ } catch (err) {
2289
+ throw new Error("Backup file is not valid JSON", { cause: err });
2290
+ }
2291
+ if (typeof parsed !== "object" || parsed == null || parsed.format !== "kingdom-os-embedded-wallet-backup" || parsed.version !== EMBEDDED_WALLET_VAULT_VERSION || typeof parsed.vault !== "object") {
2292
+ throw new Error("Unrecognized embedded wallet backup format");
2293
+ }
2294
+ return parsed;
2295
+ }
2296
+ function serializeBackupFile(backup) {
2297
+ return JSON.stringify(backup, null, 2);
2298
+ }
2299
+ var WEBAUTHN_RP_NAME = "Kingdom OS";
2300
+ var WebAuthnUnavailableError = class extends Error {
2301
+ constructor(message = "WebAuthn is not available in this browser") {
2302
+ super(message);
2303
+ this.name = "WebAuthnUnavailableError";
2304
+ }
2305
+ };
2306
+ var WebAuthnUserCancelledError = class extends Error {
2307
+ constructor(message = "Passkey request was cancelled") {
2308
+ super(message);
2309
+ this.name = "WebAuthnUserCancelledError";
2310
+ }
2311
+ };
2312
+ function randomChallenge() {
2313
+ return toBufferSource(crypto.getRandomValues(new Uint8Array(32)));
2314
+ }
2315
+ function toBufferSource(bytes) {
2316
+ return Uint8Array.from(bytes);
2317
+ }
2318
+ function resolveRpId(explicit) {
2319
+ if (explicit?.trim()) {
2320
+ return explicit.trim();
2321
+ }
2322
+ if (typeof window !== "undefined" && window.location.hostname) {
2323
+ return window.location.hostname;
2324
+ }
2325
+ throw new EmbeddedWalletVaultError("rpId is required when window.location is unavailable");
2326
+ }
2327
+ function mapWebAuthnError(err) {
2328
+ if (err instanceof DOMException) {
2329
+ if (err.name === "NotAllowedError") {
2330
+ return new WebAuthnUserCancelledError();
2331
+ }
2332
+ return new EmbeddedWalletVaultError(`WebAuthn failed: ${err.name}`, err);
2333
+ }
2334
+ return err instanceof Error ? err : new EmbeddedWalletVaultError(String(err));
2335
+ }
2336
+ async function registerPasskey(options) {
2337
+ if (typeof navigator === "undefined" || !navigator.credentials?.create) {
2338
+ throw new WebAuthnUnavailableError();
2339
+ }
2340
+ const rpId = resolveRpId(options.rpId);
2341
+ const prfSalt = options.prfSalt ?? crypto.getRandomValues(new Uint8Array(32));
2342
+ try {
2343
+ const credential = await navigator.credentials.create({
2344
+ publicKey: {
2345
+ challenge: randomChallenge(),
2346
+ rp: { name: WEBAUTHN_RP_NAME, id: rpId },
2347
+ user: {
2348
+ id: toBufferSource(options.userId),
2349
+ name: options.userName,
2350
+ displayName: options.displayName
2351
+ },
2352
+ pubKeyCredParams: [{ alg: -7, type: "public-key" }],
2353
+ authenticatorSelection: {
2354
+ residentKey: "preferred",
2355
+ userVerification: "required"
2356
+ },
2357
+ extensions: {
2358
+ prf: { eval: { first: toBufferSource(prfSalt) } }
2359
+ }
2360
+ }
2361
+ });
2362
+ if (!credential || !(credential.response instanceof AuthenticatorAttestationResponse)) {
2363
+ throw new EmbeddedWalletVaultError("Passkey registration returned no credential");
2364
+ }
2365
+ const prfOutput = readPrfFromExtensions(credential.getClientExtensionResults());
2366
+ return {
2367
+ credentialId: new Uint8Array(credential.rawId),
2368
+ authenticatorData: new Uint8Array(credential.response.getAuthenticatorData()),
2369
+ clientDataJSON: new Uint8Array(credential.response.clientDataJSON),
2370
+ prfOutput,
2371
+ prfSalt
2372
+ };
2373
+ } catch (err) {
2374
+ throw mapWebAuthnError(err);
2375
+ }
2376
+ }
2377
+ async function assertPasskey(options) {
2378
+ if (typeof navigator === "undefined" || !navigator.credentials?.get) {
2379
+ throw new WebAuthnUnavailableError();
2380
+ }
2381
+ const rpId = resolveRpId(options.rpId);
2382
+ const extensions = {};
2383
+ if (options.prfSalt) {
2384
+ extensions.prf = { eval: { first: toBufferSource(options.prfSalt) } };
2385
+ }
2386
+ try {
2387
+ const assertion = await navigator.credentials.get({
2388
+ publicKey: {
2389
+ challenge: randomChallenge(),
2390
+ rpId,
2391
+ allowCredentials: [{ id: toBufferSource(options.credentialId), type: "public-key" }],
2392
+ userVerification: "required",
2393
+ extensions
2394
+ }
2395
+ });
2396
+ if (!assertion || !(assertion.response instanceof AuthenticatorAssertionResponse)) {
2397
+ throw new EmbeddedWalletVaultError("Passkey assertion returned no credential");
2398
+ }
2399
+ return {
2400
+ credentialId: new Uint8Array(assertion.rawId),
2401
+ authenticatorData: new Uint8Array(assertion.response.authenticatorData),
2402
+ clientDataJSON: new Uint8Array(assertion.response.clientDataJSON),
2403
+ prfOutput: readPrfFromExtensions(assertion.getClientExtensionResults())
2404
+ };
2405
+ } catch (err) {
2406
+ throw mapWebAuthnError(err);
2407
+ }
2408
+ }
2409
+ function readPrfFromExtensions(results) {
2410
+ const prf = results?.prf;
2411
+ const first = prf?.results?.first;
2412
+ if (!first || first.byteLength < 32) {
2413
+ return null;
2414
+ }
2415
+ return new Uint8Array(first).slice(0, 32);
2416
+ }
2417
+ function encodeCredentialId(id) {
2418
+ return toBase64(id);
2419
+ }
2420
+ function decodeCredentialId(encoded) {
2421
+ return fromBase64(encoded);
2422
+ }
2423
+
2424
+ // src/embeddedWallet/storage.ts
2425
+ var DB_NAME = "kingdom-os-wallet";
2426
+ var DB_VERSION = 2;
2427
+ var VAULT_STORE_NAME = "vault";
2428
+ var LOCKOUT_STORE_NAME = "passcode-lockout";
2429
+ var VAULT_PRIMARY_KEY = "primary";
2430
+ function openDb() {
2431
+ return new Promise((resolve, reject) => {
2432
+ const request = indexedDB.open(DB_NAME, DB_VERSION);
2433
+ request.onerror = () => reject(request.error ?? new Error("IndexedDB open failed"));
2434
+ request.onupgradeneeded = () => {
2435
+ const db = request.result;
2436
+ if (!db.objectStoreNames.contains(VAULT_STORE_NAME)) {
2437
+ db.createObjectStore(VAULT_STORE_NAME);
2438
+ }
2439
+ if (!db.objectStoreNames.contains(LOCKOUT_STORE_NAME)) {
2440
+ db.createObjectStore(LOCKOUT_STORE_NAME);
2441
+ }
2442
+ };
2443
+ request.onsuccess = () => resolve(request.result);
2444
+ });
2445
+ }
2446
+ async function saveVaultToIndexedDb(vault) {
2447
+ const db = await openDb();
2448
+ await new Promise((resolve, reject) => {
2449
+ const tx = db.transaction(VAULT_STORE_NAME, "readwrite");
2450
+ tx.objectStore(VAULT_STORE_NAME).put(vault, VAULT_PRIMARY_KEY);
2451
+ tx.oncomplete = () => resolve();
2452
+ tx.onerror = () => reject(tx.error ?? new Error("IndexedDB write failed"));
2453
+ });
2454
+ db.close();
2455
+ }
2456
+ async function loadVaultFromIndexedDb() {
2457
+ const db = await openDb();
2458
+ const vault = await new Promise((resolve, reject) => {
2459
+ const tx = db.transaction(VAULT_STORE_NAME, "readonly");
2460
+ const request = tx.objectStore(VAULT_STORE_NAME).get(VAULT_PRIMARY_KEY);
2461
+ request.onsuccess = () => resolve(request.result ?? null);
2462
+ request.onerror = () => reject(request.error ?? new Error("IndexedDB read failed"));
2463
+ });
2464
+ db.close();
2465
+ return vault;
2466
+ }
2467
+ async function clearVaultFromIndexedDb() {
2468
+ const vault = await loadVaultFromIndexedDb();
2469
+ const db = await openDb();
2470
+ await new Promise((resolve, reject) => {
2471
+ const storeNames = vault ? [VAULT_STORE_NAME, LOCKOUT_STORE_NAME] : [VAULT_STORE_NAME];
2472
+ const tx = db.transaction(storeNames, "readwrite");
2473
+ tx.objectStore(VAULT_STORE_NAME).delete(VAULT_PRIMARY_KEY);
2474
+ if (vault) {
2475
+ tx.objectStore(LOCKOUT_STORE_NAME).delete(vault.publicAddress);
2476
+ }
2477
+ tx.oncomplete = () => resolve();
2478
+ tx.onerror = () => reject(tx.error ?? new Error("IndexedDB delete failed"));
2479
+ });
2480
+ db.close();
2481
+ }
2482
+ async function loadPasscodeLockoutRecord(publicAddress) {
2483
+ const db = await openDb();
2484
+ const record = await new Promise((resolve, reject) => {
2485
+ const tx = db.transaction(LOCKOUT_STORE_NAME, "readonly");
2486
+ const request = tx.objectStore(LOCKOUT_STORE_NAME).get(publicAddress);
2487
+ request.onsuccess = () => resolve(request.result ?? null);
2488
+ request.onerror = () => reject(request.error ?? new Error("IndexedDB read failed"));
2489
+ });
2490
+ db.close();
2491
+ return record;
2492
+ }
2493
+ async function savePasscodeLockoutRecord(publicAddress, record) {
2494
+ const db = await openDb();
2495
+ await new Promise((resolve, reject) => {
2496
+ const tx = db.transaction(LOCKOUT_STORE_NAME, "readwrite");
2497
+ tx.objectStore(LOCKOUT_STORE_NAME).put(record, publicAddress);
2498
+ tx.oncomplete = () => resolve();
2499
+ tx.onerror = () => reject(tx.error ?? new Error("IndexedDB write failed"));
2500
+ });
2501
+ db.close();
2502
+ }
2503
+ async function clearPasscodeLockoutRecord(publicAddress) {
2504
+ const db = await openDb();
2505
+ await new Promise((resolve, reject) => {
2506
+ const tx = db.transaction(LOCKOUT_STORE_NAME, "readwrite");
2507
+ tx.objectStore(LOCKOUT_STORE_NAME).delete(publicAddress);
2508
+ tx.oncomplete = () => resolve();
2509
+ tx.onerror = () => reject(tx.error ?? new Error("IndexedDB delete failed"));
2510
+ });
2511
+ db.close();
2512
+ }
2513
+
2514
+ // src/embeddedWallet/lockout.ts
2515
+ var PASSCODE_LOCKOUT_FAILURE_THRESHOLD = 5;
2516
+ var PASSCODE_LOCKOUT_INITIAL_MS = 3e4;
2517
+ var PASSCODE_LOCKOUT_MAX_MS = 9e5;
2518
+ function lockoutDurationMs(tier) {
2519
+ const duration = PASSCODE_LOCKOUT_INITIAL_MS * 2 ** tier;
2520
+ return Math.min(duration, PASSCODE_LOCKOUT_MAX_MS);
2521
+ }
2522
+ function emptyRecord() {
2523
+ return {
2524
+ failedAttempts: 0,
2525
+ lockoutTier: 0,
2526
+ lockedUntil: null
2527
+ };
2528
+ }
2529
+ function computeRetryAfterMs(lockedUntil) {
2530
+ if (!lockedUntil) {
2531
+ return 0;
2532
+ }
2533
+ const until = Date.parse(lockedUntil);
2534
+ if (Number.isNaN(until)) {
2535
+ return 0;
2536
+ }
2537
+ return Math.max(0, until - Date.now());
2538
+ }
2539
+ async function assertPasscodeUnlockAllowed(publicAddress) {
2540
+ const record = await loadPasscodeLockoutRecord(publicAddress) ?? emptyRecord();
2541
+ const retryAfterMs = computeRetryAfterMs(record.lockedUntil);
2542
+ if (retryAfterMs > 0) {
2543
+ throw new EmbeddedWalletLockoutError(retryAfterMs);
2544
+ }
2545
+ }
2546
+ async function recordPasscodeUnlockFailure(publicAddress) {
2547
+ const existing = await loadPasscodeLockoutRecord(publicAddress) ?? emptyRecord();
2548
+ const retryAfterMs = computeRetryAfterMs(existing.lockedUntil);
2549
+ if (retryAfterMs > 0) {
2550
+ return;
2551
+ }
2552
+ const failedAttempts = existing.failedAttempts + 1;
2553
+ if (failedAttempts < PASSCODE_LOCKOUT_FAILURE_THRESHOLD) {
2554
+ await savePasscodeLockoutRecord(publicAddress, {
2555
+ ...existing,
2556
+ failedAttempts
2557
+ });
2558
+ return;
2559
+ }
2560
+ const durationMs = lockoutDurationMs(existing.lockoutTier);
2561
+ const lockedUntil = new Date(Date.now() + durationMs).toISOString();
2562
+ await savePasscodeLockoutRecord(publicAddress, {
2563
+ failedAttempts: 0,
2564
+ lockoutTier: existing.lockoutTier + 1,
2565
+ lockedUntil
2566
+ });
2567
+ }
2568
+ async function recordPasscodeUnlockSuccess(publicAddress) {
2569
+ await clearPasscodeLockoutRecord(publicAddress);
2570
+ }
2571
+ async function getPasscodeLockoutState(publicAddress) {
2572
+ const record = await loadPasscodeLockoutRecord(publicAddress) ?? emptyRecord();
2573
+ return {
2574
+ ...record,
2575
+ retryAfterMs: computeRetryAfterMs(record.lockedUntil)
2576
+ };
2577
+ }
2578
+ async function clearPasscodeLockoutForTests(publicAddress) {
2579
+ await clearPasscodeLockoutRecord(publicAddress);
2580
+ }
2581
+
2582
+ // src/embeddedWallet/pin.ts
2583
+ var EMBEDDED_WALLET_PASSCODE_MIN_LENGTH = 8;
2584
+ var EMBEDDED_WALLET_PASSCODE_MAX_LENGTH = 128;
2585
+ var EMBEDDED_WALLET_PIN_PBKDF2_ITERATIONS = 6e5;
2586
+ var EMBEDDED_WALLET_PASSKEY_PBKDF2_ITERATIONS = 31e4;
2587
+ function normalizePasscode(passcode) {
2588
+ return passcode.normalize("NFKC");
2589
+ }
2590
+ function assertValidPasscode(passcode) {
2591
+ const normalized = normalizePasscode(passcode);
2592
+ if (normalized.length < EMBEDDED_WALLET_PASSCODE_MIN_LENGTH) {
2593
+ throw new EmbeddedWalletVaultError(
2594
+ `Passcode must be at least ${EMBEDDED_WALLET_PASSCODE_MIN_LENGTH} characters`
2595
+ );
2596
+ }
2597
+ if (normalized.length > EMBEDDED_WALLET_PASSCODE_MAX_LENGTH) {
2598
+ throw new EmbeddedWalletVaultError(
2599
+ `Passcode must be at most ${EMBEDDED_WALLET_PASSCODE_MAX_LENGTH} characters`
2600
+ );
2601
+ }
2602
+ }
2603
+ async function deriveKekFromPasscode(passcode, salt, iterations = EMBEDDED_WALLET_PIN_PBKDF2_ITERATIONS) {
2604
+ assertValidPasscode(passcode);
2605
+ const material = new TextEncoder().encode(normalizePasscode(passcode));
2606
+ return deriveKekFromPbkdf2(material, salt, iterations);
2607
+ }
2608
+
2609
+ // src/embeddedWallet/passcode-denylist.json
2610
+ var passcode_denylist_default = ["password", "123456", "12345678", "1234", "qwerty", "12345", "dragon", "pussy", "baseball", "football", "letmein", "monkey", "696969", "abc123", "mustang", "michael", "shadow", "master", "jennifer", "111111", "2000", "jordan", "superman", "harley", "1234567", "fuckme", "hunter", "fuckyou", "trustno1", "ranger", "buster", "thomas", "tigger", "robert", "soccer", "fuck", "batman", "test", "pass", "killer", "hockey", "george", "charlie", "andrew", "michelle", "love", "sunshine", "jessica", "asshole", "6969", "pepper", "daniel", "access", "123456789", "654321", "joshua", "maggie", "starwars", "silver", "william", "dallas", "yankees", "123123", "ashley", "666666", "hello", "amanda", "orange", "biteme", "freedom", "computer", "sexy", "thunder", "nicole", "ginger", "heather", "hammer", "summer", "corvette", "taylor", "fucker", "austin", "1111", "merlin", "matthew", "121212", "golfer", "cheese", "princess", "martin", "chelsea", "patrick", "richard", "diamond", "yellow", "bigdog", "secret", "asdfgh", "sparky", "cowboy", "camaro", "anthony", "matrix", "falcon", "iloveyou", "bailey", "guitar", "jackson", "purple", "scooter", "phoenix", "aaaaaa", "morgan", "tigers", "porsche", "mickey", "maverick", "cookie", "nascar", "peanut", "justin", "131313", "money", "horny", "samantha", "panties", "steelers", "joseph", "snoopy", "boomer", "whatever", "iceman", "smokey", "gateway", "dakota", "cowboys", "eagles", "chicken", "dick", "black", "zxcvbn", "please", "andrea", "ferrari", "knight", "hardcore", "melissa", "compaq", "coffee", "booboo", "bitch", "johnny", "bulldog", "xxxxxx", "welcome", "james", "player", "ncc1701", "wizard", "scooby", "charles", "junior", "internet", "bigdick", "mike", "brandy", "tennis", "blowjob", "banana", "monster", "spider", "lakers", "miller", "rabbit", "enter", "mercedes", "brandon", "steven", "fender", "john", "yamaha", "diablo", "chris", "boston", "tiger", "marine", "chicago", "rangers", "gandalf", "winter", "bigtits", "barney", "edward", "raiders", "porn", "badboy", "blowme", "spanky", "bigdaddy", "johnson", "chester", "london", "midnight", "blue", "fishing", "000000", "hannah", "slayer", "11111111", "rachel", "sexsex", "redsox", "thx1138", "asdf", "marlboro", "panther", "zxcvbnm", "arsenal", "oliver", "qazwsx", "mother", "victoria", "7777777", "jasper", "angel", "david", "winner", "crystal", "golden", "butthead", "viking", "jack", "iwantu", "shannon", "murphy", "angels", "prince", "cameron", "girls", "madison", "wilson", "carlos", "hooters", "willie", "startrek", "captain", "maddog", "jasmine", "butter", "booger", "angela", "golf", "lauren", "rocket", "tiffany", "theman", "dennis", "liverpoo", "flower", "forever", "green", "jackie", "muffin", "turtle", "sophie", "danielle", "redskins", "toyota", "jason", "sierra", "winston", "debbie", "giants", "packers", "newyork", "jeremy", "casper", "bubba", "112233", "sandra", "lovers", "mountain", "united", "cooper", "driver", "tucker", "helpme", "fucking", "pookie", "lucky", "maxwell", "8675309", "bear", "suckit", "gators", "5150", "222222", "shithead", "fuckoff", "jaguar", "monica", "fred", "happy", "hotdog", "tits", "gemini", "lover", "xxxxxxxx", "777777", "canada", "nathan", "victor", "florida", "88888888", "nicholas", "rosebud", "metallic", "doctor", "trouble", "success", "stupid", "tomcat", "warrior", "peaches", "apples", "fish", "qwertyui", "magic", "buddy", "dolphins", "rainbow", "gunner", "987654", "freddy", "alexis", "braves", "cock", "2112", "1212", "cocacola", "xavier", "dolphin", "testing", "bond007", "member", "calvin", "voodoo", "7777", "samson", "alex", "apollo", "fire", "tester", "walter", "beavis", "voyager", "peter", "porno", "bonnie", "rush2112", "beer", "apple", "scorpio", "jonathan", "skippy", "sydney", "scott", "red123", "power", "gordon", "travis", "beaver", "star", "jackass", "flyers", "boobs", "232323", "zzzzzz", "steve", "rebecca", "scorpion", "doggie", "legend", "ou812", "yankee", "blazer", "bill", "runner", "birdie", "bitches", "555555", "parker", "topgun", "asdfasdf", "heaven", "viper", "animal", "2222", "bigboy", "4444", "arthur", "baby", "private", "godzilla", "donald", "williams", "lifehack", "phantom", "dave", "rock", "august", "sammy", "cool", "brian", "platinum", "jake", "bronco", "paul", "mark", "frank", "heka6w2", "copper", "billy", "cumshot", "garfield", "willow", "cunt", "little", "carter", "slut", "albert", "69696969", "kitten", "super", "jordan23", "eagle1", "shelby", "america", "11111", "jessie", "house", "free", "123321", "chevy", "bullshit", "white", "broncos", "horney", "surfer", "nissan", "999999", "saturn", "airborne", "elephant", "marvin", "shit", "action", "adidas", "qwert", "kevin", "1313", "explorer", "walker", "police", "christin", "december", "benjamin", "wolf", "sweet", "therock", "king", "online", "dickhead", "brooklyn", "teresa", "cricket", "sharon", "dexter", "racing", "penis", "gregory", "0000", "teens", "redwings", "dreams", "michigan", "hentai", "magnum", "87654321", "nothing", "donkey", "trinity", "digital", "333333", "stella", "cartman", "guinness", "123abc", "speedy", "buffalo", "kitty", "pimpin", "eagle", "einstein", "kelly", "nelson", "nirvana", "vampire", "xxxx", "playboy", "louise", "pumpkin", "snowball", "test123", "girl", "sucker", "mexico", "beatles", "fantasy", "ford", "gibson", "celtic", "marcus", "cherry", "cassie", "888888", "natasha", "sniper", "chance", "genesis", "hotrod", "reddog", "alexande", "college", "jester", "passw0rd", "bigcock", "smith", "lasvegas", "carmen", "slipknot", "3333", "death", "kimberly", "1q2w3e", "eclipse", "1q2w3e4r", "stanley", "samuel", "drummer", "homer", "montana", "music", "aaaa", "spencer", "jimmy", "carolina", "colorado", "creative", "hello1", "rocky", "goober", "friday", "bollocks", "scotty", "abcdef", "bubbles", "hawaii", "fluffy", "mine", "stephen", "horses", "thumper", "5555", "pussies", "darkness", "asdfghjk", "pamela", "boobies", "buddha", "vanessa", "sandman", "naughty", "douglas", "honda", "matt", "azerty", "6666", "shorty", "money1", "beach", "loveme", "4321", "simple", "poohbear", "444444", "badass", "destiny", "sarah", "denise", "vikings", "lizard", "melanie", "assman", "sabrina", "nintendo", "water", "good", "howard", "time", "123qwe", "november", "xxxxx", "october", "leather", "bastard", "young", "101010", "extreme", "hard", "password1", "vincent", "pussy1", "lacrosse", "hotmail", "spooky", "amateur", "alaska", "badger", "paradise", "maryjane", "poop", "crazy", "mozart", "video", "russell", "vagina", "spitfire", "anderson", "norman", "eric", "cherokee", "cougar", "barbara", "long", "420420", "family", "horse", "enigma", "allison", "raider", "brazil", "blonde", "jones", "55555", "dude", "drowssap", "jeff", "school", "marshall", "lovely", "1qaz2wsx", "jeffrey", "caroline", "franklin", "booty", "molly", "snickers", "leslie", "nipples", "courtney", "diesel", "rocks", "eminem", "westside", "suzuki", "daddy", "passion", "hummer", "ladies", "zachary", "frankie", "elvis", "reggie", "alpha", "suckme", "simpson", "patricia", "147147", "pirate", "tommy", "semperfi", "jupiter", "redrum", "freeuser", "wanker", "stinky", "ducati", "paris", "natalie", "babygirl", "bishop", "windows", "spirit", "pantera", "monday", "patches", "brutus", "houston", "smooth", "penguin", "marley", "forest", "cream", "212121", "flash", "maximus", "nipple", "bobby", "bradley", "vision", "pokemon", "champion", "fireman", "indian", "softball", "picard", "system", "clinton", "cobra", "enjoy", "lucky1", "claire", "claudia", "boogie", "timothy", "marines", "security", "dirty", "admin", "wildcats", "pimp", "dancer", "hardon", "veronica", "fucked", "abcd1234", "abcdefg", "ironman", "wolverin", "remember", "great", "freepass", "bigred", "squirt", "justice", "francis", "hobbes", "kermit", "pearljam", "mercury", "domino", "9999", "denver", "brooke", "rascal", "hitman", "mistress", "simon", "tony", "bbbbbb", "friend", "peekaboo", "naked", "budlight", "electric", "sluts", "stargate", "saints", "bondage", "brittany", "bigman", "zombie", "swimming", "duke", "qwerty1", "babes", "scotland", "disney", "rooster", "brenda", "mookie", "swordfis", "candy", "duncan", "olivia", "hunting", "blink182", "alicia", "8888", "samsung", "bubba1", "whore", "virginia", "general", "passport", "aaaaaaaa", "erotic", "liberty", "arizona", "jesus", "abcd", "newport", "skipper", "rolltide", "balls", "happy1", "galore", "christ", "weasel", "242424", "wombat", "digger", "classic", "bulldogs", "poopoo", "accord", "popcorn", "turkey", "jenny", "amber", "bunny", "mouse", "007007", "titanic", "liverpool", "dreamer", "everton", "friends", "chevelle", "carrie", "gabriel", "psycho", "nemesis", "burton", "pontiac", "connor", "eatme", "lickme", "roland", "cumming", "mitchell", "ireland", "lincoln", "arnold", "spiderma", "patriots", "goblue", "devils", "eugene", "empire", "asdfg", "cardinal", "brown", "shaggy", "froggy", "qwer", "kawasaki", "kodiak", "people", "phpbb", "light", "54321", "kramer", "chopper", "hooker", "honey", "whynot", "lesbian", "lisa", "baxter", "adam", "snake", "teen", "ncc1701d", "qqqqqq", "airplane", "britney", "avalon", "sandy", "sugar", "sublime", "stewart", "wildcat", "raven", "scarface", "elizabet", "123654", "trucks", "wolfpack", "pervert", "lawrence", "raymond", "redhead", "american", "alyssa", "bambam", "movie", "woody", "shaved", "snowman", "tiger1", "chicks", "raptor", "1969", "stingray", "shooter", "france", "stars", "madmax", "kristen", "sports", "jerry", "789456", "garcia", "simpsons", "lights", "ryan", "looking", "chronic", "alison", "hahaha", "packard", "hendrix", "perfect", "service", "spring", "srinivas", "spike", "katie", "252525", "oscar", "brother", "bigmac", "suck", "single", "cannon", "georgia", "popeye", "tattoo", "texas", "party", "bullet", "taurus", "sailor", "wolves", "panthers", "japan", "strike", "flowers", "pussycat", "chris1", "loverboy", "berlin", "sticky", "marina", "tarheels", "fisher", "russia", "connie", "wolfgang", "testtest", "mature", "bass", "catch22", "juice", "michael1", "nigger", "159753", "women", "alpha1", "trooper", "hawkeye", "head", "freaky", "dodgers", "pakistan", "machine", "pyramid", "vegeta", "katana", "moose", "tinker", "coyote", "infinity", "inside", "pepsi", "letmein1", "bang", "control", "hercules", "morris", "james1", "tickle", "outlaw", "browns", "billybob", "pickle", "test1", "michele", "antonio", "sucks", "pavilion", "changeme", "caesar", "prelude", "tanner", "adrian", "darkside", "bowling", "wutang", "sunset", "robbie", "alabama", "danger", "zeppelin", "juan", "rusty", "pppppp", "nick", "2001", "ping", "darkstar", "madonna", "qwe123", "bigone", "casino", "cheryl", "charlie1", "mmmmmm", "integra", "wrangler", "apache", "tweety", "qwerty12", "bobafett", "simone", "none", "business", "sterling", "trevor", "transam", "dustin", "harvey", "england", "2323", "seattle", "ssssss", "rose", "harry", "openup", "pandora", "pussys", "trucker", "wallace", "indigo", "storm", "malibu", "weed", "review", "babydoll", "doggy", "dilbert", "pegasus", "joker", "catfish", "flipper", "valerie", "herman", "fuckit", "detroit", "kenneth", "cheyenne", "bruins", "stacey", "smoke", "joey", "seven", "marino", "fetish", "xfiles", "wonder", "stinger", "pizza", "babe", "pretty", "stealth", "manutd", "gracie", "gundam", "cessna", "longhorn", "presario", "mnbvcxz", "wicked", "mustang1", "victory", "21122112", "shelly", "awesome", "athena", "q1w2e3r4", "help", "holiday", "knicks", "street", "redneck", "12341234", "casey", "gizmo", "scully", "dragon1", "devildog", "triumph", "eddie", "bluebird", "shotgun", "peewee", "ronnie", "angel1", "daisy", "special", "metallica", "madman", "country", "impala", "lennon", "roscoe", "omega", "access14", "enterpri", "miranda", "search", "smitty", "blizzard", "unicorn", "tight", "rick", "ronald", "asdf1234", "harrison", "trigger", "truck", "danny", "home", "winnie", "beauty", "thailand", "1234567890", "cadillac", "castle", "tyler", "bobcat", "buddy1", "sunny", "stones", "asian", "freddie", "chuck", "butt", "loveyou", "norton", "hellfire", "hotsex", "indiana", "short", "panzer", "lonewolf", "trumpet", "colors", "blaster", "12121212", "fireball", "logan", "precious", "aaron", "elaine", "jungle", "atlanta", "gold", "corona", "curtis", "nikki", "polaris", "timber", "theone", "baller", "chipper", "orlando", "island", "skyline", "dragons", "dogs", "benson", "licker", "goldie", "engineer", "kong", "pencil", "basketba", "open", "hornet", "world", "linda", "barbie", "chan", "farmer", "valentin", "wetpussy", "indians", "larry", "redman", "foobar", "travel", "morpheus", "bernie", "target", "141414", "hotstuff", "photos", "laura", "savage", "holly", "rocky1", "fuck_inside", "dollar", "turbo", "design", "newton", "hottie", "moon", "202020", "blondes", "4128", "lestat", "avatar", "future", "goforit", "random", "abgrtyu", "jjjjjj", "cancer", "q1w2e3", "smiley", "goldberg", "express", "virgin", "zipper", "wrinkle1", "stone", "andy", "babylon", "dong", "powers", "consumer", "dudley", "monkey1", "serenity", "samurai", "99999999", "bigboobs", "skeeter", "lindsay", "joejoe", "master1", "aaaaa", "chocolat", "christia", "birthday", "stephani", "tang", "1234qwer", "alfred", "ball", "98765432", "maria", "sexual", "maxima", "77777777", "sampson", "buckeye", "highland", "kristin", "seminole", "reaper", "bassman", "nugget", "lucifer", "airforce", "nasty", "watson", "warlock", "2121", "philip", "always", "dodge", "chrissy", "burger", "bird", "snatch", "missy", "pink", "gang", "maddie", "holmes", "huskers", "piglet", "photo", "joanne", "hamilton", "dodger", "paladin", "christy", "chubby", "buckeyes", "hamlet", "abcdefgh", "bigfoot", "sunday", "manson", "goldfish", "garden", "deftones", "icecream", "blondie", "spartan", "julie", "harold", "charger", "brandi", "stormy", "sherry", "pleasure", "juventus", "rodney", "galaxy", "holland", "escort", "zxcvb", "planet", "jerome", "wesley", "blues", "song", "peace", "david1", "ncc1701e", "1966", "51505150", "cavalier", "gambit", "karen", "sidney", "ripper", "oicu812", "jamie", "sister", "marie", "martha", "nylons", "aardvark", "nadine", "minnie", "whiskey", "bing", "plastic", "anal", "babylon5", "chang", "savannah", "loser", "racecar", "insane", "yankees1", "mememe", "hansolo", "chiefs", "fredfred", "freak", "frog", "salmon", "concrete", "yvonne", "zxcv", "shamrock", "atlantis", "warren", "wordpass", "julian", "mariah", "rommel", "1010", "harris", "predator", "sylvia", "massive", "cats", "sammy1", "mister", "stud", "marathon", "rubber", "ding", "trunks", "desire", "montreal", "justme", "faster", "kathleen", "irish", "1999", "bertha", "jessica1", "alpine", "sammie", "diamonds", "tristan", "00000", "swinger", "shan", "stallion", "pitbull", "letmein2", "roberto", "ready", "april", "palmer", "ming", "shadow1", "audrey", "chong", "clitoris", "wang", "shirley", "fuckers", "jackoff", "bluesky", "sundance", "renegade", "hollywoo", "151515", "bernard", "wolfman", "soldier", "picture", "pierre", "ling", "goddess", "manager", "nikita", "sweety", "titans", "hang", "fang", "ficken", "niners", "bottom", "bubble", "hello123", "ibanez", "webster", "sweetpea", "stocking", "323232", "tornado", "lindsey", "content", "bruce", "buck", "aragorn", "griffin", "chen", "campbell", "trojan", "christop", "newman", "wayne", "tina", "rockstar", "father", "geronimo", "pascal", "crimson", "brooks", "hector", "penny", "anna", "google", "camera", "chandler", "fatcat", "lovelove", "cody", "cunts", "waters", "stimpy", "finger", "cindy", "wheels", "viper1", "latin", "robin", "greenday", "987654321", "creampie", "brendan", "hiphop", "willy", "snapper", "funtime", "duck", "trombone", "adult", "cotton", "cookies", "kaiser", "mulder", "westham", "latino", "jeep", "ravens", "aurora", "drizzt", "madness", "energy", "kinky", "314159", "sophia", "stefan", "slick", "rocker", "55555555", "freeman", "french", "mongoose", "speed", "dddddd", "hong", "henry", "hungry", "yang", "catdog", "cheng", "ghost", "gogogo", "randy", "tottenha", "curious", "butterfl", "mission", "january", "singer", "sherman", "shark", "techno", "lancer", "lalala", "autumn", "chichi", "orion", "trixie", "clifford", "delta", "bobbob", "bomber", "holden", "kang", "kiss", "1968", "spunky", "liquid", "mary", "beagle", "granny", "network", "bond", "kkkkkk", "millie", "1973", "biggie", "beetle", "teacher", "susan", "toronto", "anakin", "genius", "dream", "cocks", "dang", "bush", "karate", "snakes", "bangkok", "callie", "fuckyou2", "pacific", "daytona", "kelsey", "infantry", "skywalke", "foster", "felix", "sailing", "raistlin", "vanhalen", "huang", "herbert", "jacob", "blackie", "tarzan", "strider", "sherlock", "lang", "gong", "sang", "dietcoke", "ultimate", "tree", "shai", "sprite", "ting", "artist", "chai", "chao", "devil", "python", "ninja", "misty", "ytrewq", "sweetie", "superfly", "456789", "tian", "jing", "jesus1", "freedom1", "dian", "drpepper", "potter", "chou", "darren", "hobbit", "violet", "yong", "shen", "phillip", "maurice", "gloria", "nolimit", "mylove", "biscuit", "yahoo", "shasta", "sex4me", "smoker", "smile", "pebbles", "pics", "philly", "tong", "tintin", "lesbians", "marlin", "cactus", "frank1", "tttttt", "chun", "danni", "emerald", "showme", "pirates", "lian", "dogg", "colleen", "xiao", "xian", "tazman", "tanker", "patton", "toshiba", "richie", "alberto", "gotcha", "graham", "dillon", "rang", "emily", "keng", "jazz", "bigguy", "yuan", "woman", "tomtom", "marion", "greg", "chaos", "fossil", "flight", "racerx", "tuan", "creamy", "boss", "bobo", "musicman", "warcraft", "window", "blade", "shuang", "sheila", "shun", "lick", "jian", "microsoft", "rong", "allen", "feng", "getsome", "sally", "quality", "kennedy", "morrison", "1977", "beng", "wwwwww", "yoyoyo", "zhang", "seng", "teddy", "joanna", "andreas", "harder", "luke", "qazxsw", "qian", "cong", "chuan", "deng", "nang", "boeing", "keeper", "western", "isabelle", "1963", "subaru", "sheng", "thuglife", "teng", "jiong", "miao", "martina", "mang", "maniac", "pussie", "tracey", "a1b2c3", "clayton", "zhou", "zhuang", "xing", "stonecol", "snow", "spyder", "liang", "jiang", "memphis", "regina", "ceng", "magic1", "logitech", "chuang", "dark", "million", "blow", "sesame", "shao", "poison", "titty", "terry", "kuan", "kuai", "kyle", "mian", "guan", "hamster", "guai", "ferret", "florence", "geng", "duan", "pang", "maiden", "quan", "velvet", "nong", "neng", "nookie", "buttons", "bian", "bingo", "biao", "zhong", "zeng", "xiong", "zhun", "ying", "zong", "xuan", "zang", "0.0.000", "suan", "shei", "shui", "sharks", "shang", "shua", "small", "peng", "pian", "piao", "liao", "meng", "miami", "reng", "guang", "cang", "change", "ruan", "diao", "luan", "lucas", "qing", "chui", "chuo", "cuan", "nuan", "ning", "heng", "huan", "kansas", "muscle", "monroe", "weng", "whitney", "1passwor", "bluemoon", "zhui", "zhua", "xiang", "zheng", "zhen", "zhei", "zhao", "zhan", "yomama", "zhai", "zhuo", "zuan", "tarheel", "shou", "shuo", "tiao", "lady", "leonard", "leng", "kuang", "jiao", "13579", "basket", "qiao", "qiong", "qiang", "chuai", "nian", "niao", "niang", "huai", "22222222", "bianca", "zhuan", "zhuai", "shuan", "shuai", "stardust", "jumper", "margaret", "archie", "66666666", "charlott", "forget", "qwertz", "bones", "history", "milton", "waterloo", "2002", "stuff", "11223344", "office", "oldman", "preston", "trains", "murray", "vertigo", "246810", "black1", "swallow", "smiles", "standard", "alexandr", "parrot", "luther", "user", "nicolas", "1976", "surfing", "pioneer", "pete", "masters", "apple1", "asdasd", "auburn", "hannibal", "frontier", "panama", "lucy", "buffy", "brianna", "welcome1", "vette", "blue22", "shemale", "111222", "baggins", "groovy", "global", "turner", "181818", "1979", "blades", "spanking", "life", "byteme", "lobster", "collins", "dawg", "hilton", "japanese", "1970", "1964", "2424", "polo", "markus", "coco", "deedee", "mikey", "1972", "171717", "1701", "strip", "jersey", "green1", "capital", "sasha", "sadie", "putter", "vader", "seven7", "lester", "marcel", "banshee", "grendel", "gilbert", "dicks", "dead", "hidden", "iloveu", "1980", "sound", "ledzep", "michel", "147258", "female", "bugger", "buffett", "bryan", "hell", "kristina", "molson", "2020", "wookie", "sprint", "thanks", "jericho", "102030", "grace", "fuckin", "mandy", "ranger1", "trebor", "deepthroat", "bonehead", "molly1", "mirage", "models", "1984", "2468", "stuart", "showtime", "squirrel", "pentium", "mario", "anime", "gator", "powder", "twister", "connect", "neptune", "bruno", "butts", "engine", "eatshit", "mustangs", "woody1", "shogun", "septembe", "pooh", "jimbo", "roger", "annie", "bacon", "center", "russian", "sabine", "damien", "mollie", "voyeur", "2525", "363636", "leonardo", "camel", "chair", "germany", "giant", "qqqq", "nudist", "bone", "sleepy", "tequila", "megan", "fighter", "garrett", "dominic", "obiwan", "makaveli", "vacation", "walnut", "1974", "ladybug", "cantona", "ccbill", "satan", "rusty1", "passwor1", "columbia", "napoleon", "dusty", "kissme", "motorola", "william1", "1967", "zzzz", "skater", "smut", "play", "matthew1", "robinson", "valley", "coolio", "dagger", "boner", "bull", "horndog", "jason1", "blake", "penguins", "rescue", "griffey", "8j4ye3uz", "californ", "champs", "qwertyuiop", "portland", "queen", "colt45", "boat", "xxxxxxx", "xanadu", "tacoma", "mason", "carpet", "gggggg", "safety", "palace", "italia", "stevie", "picturs", "picasso", "thongs", "tempest", "ricardo", "roberts", "asd123", "hairy", "foxtrot", "gary", "nimrod", "hotboy", "343434", "1111111", "asdfghjkl", "goose", "overlord", "blood", "wood", "stranger", "454545", "shaolin", "sooners", "socrates", "spiderman", "peanuts", "maxine", "rogers", "13131313", "andrew1", "filthy", "donnie", "ohyeah", "africa", "national", "kenny", "keith", "monique", "intrepid", "jasmin", "pickles", "assass", "fright", "potato", "darwin", "hhhhhh", "kingdom", "weezer", "424242", "pepsi1", "throat", "romeo", "gerard", "looker", "puppy", "butch", "monika", "suzanne", "sweets", "temple", "laurie", "josh", "megadeth", "analsex", "nymets", "ddddddd", "bigballs", "support", "stick", "today", "down", "oakland", "oooooo", "qweasd", "chucky", "bridge", "carrot", "chargers", "discover", "dookie", "condor", "night", "butler", "hoover", "horny1", "isabella", "sunrise", "sinner", "jojo", "megapass", "martini", "assfuck", "grateful", "ffffff", "abigail", "esther", "mushroom", "janice", "jamaica", "wright", "sims", "space", "there", "timmy", "7654321", "77777", "cccccc", "gizmodo", "roxanne", "ralph", "tractor", "cristina", "dance", "mypass", "hongkong", "helena", "1975", "blue123", "pissing", "thomas1", "redred", "rich", "basketball", "attack", "cash", "satan666", "drunk", "dixie", "dublin", "bollox", "kingkong", "katrina", "miles", "1971", "22222", "272727", "sexx", "penelope", "thompson", "anything", "bbbb", "battle", "grizzly", "passat", "porter", "tracy", "defiant", "bowler", "knickers", "monitor", "wisdom", "wild", "slappy", "thor", "letsgo", "robert1", "feet", "rush", "brownie", "hudson", "098765", "playing", "playtime", "lightnin", "melvin", "atomic", "bart", "hawk", "goku", "glory", "llllll", "qwaszx", "cosmos", "bosco", "knights", "bentley", "beast", "slapshot", "lewis", "assword", "frosty", "gillian", "sara", "dumbass", "mallard", "dddd", "deanna", "elwood", "wally", "159357", "titleist", "angelo", "aussie", "guest", "golfing", "doobie", "loveit", "chloe", "elliott", "werewolf", "vipers", "janine", "1965", "blabla", "surf", "sucking", "tardis", "serena", "shelley", "thegame", "legion", "rebels", "fernando", "fast", "gerald", "sarah1", "double", "onelove", "loulou", "toto", "crash", "blackcat", "0007", "tacobell", "soccer1", "jedi", "manuel", "method", "river", "chase", "ludwig", "poopie", "derrick", "boob", "breast", "kittycat", "isabel", "belly", "pikachu", "thunder1", "thankyou", "jose", "celeste", "celtics", "frances", "frogger", "scoobydo", "sabbath", "coltrane", "budman", "willis", "jackal", "bigger", "zzzzz", "silvia", "sooner", "licking", "gopher", "geheim", "lonestar", "primus", "pooper", "newpass", "brasil", "heather1", "husker", "element", "moomoo", "beefcake", "zzzzzzzz", "tammy", "shitty", "smokin", "personal", "jjjj", "anthony1", "anubis", "backup", "gorilla", "fuckface", "painter", "lowrider", "punkrock", "traffic", "claude", "daniela", "dale", "delta1", "nancy", "boys", "easy", "kissing", "kelley", "wendy", "theresa", "amazon", "alan", "fatass", "dodgeram", "dingdong", "malcolm", "qqqqqqqq", "breasts", "boots", "honda1", "spidey", "poker", "temp", "johnjohn", "miguel", "147852", "archer", "asshole1", "dogdog", "tricky", "crusader", "weather", "syracuse", "spankme", "speaker", "meridian", "amadeus", "back", "harley1", "falcons", "dorothy", "turkey50", "kenwood", "keyboard", "ilovesex", "1978", "blackman", "shazam", "shalom", "lickit", "jimbob", "richmond", "roller", "carson", "check", "fatman", "funny", "garbage", "sandiego", "loving", "magnus", "cooldude", "clover", "mobile", "bell", "payton", "plumber", "texas1", "tool", "topper", "jenna", "mariners", "rebel", "harmony", "caliente", "celica", "fletcher", "german", "diana", "oxford", "osiris", "orgasm", "punkin", "porsche9", "tuesday", "close", "breeze", "bossman", "kangaroo", "billie", "latinas", "judith", "astros", "scruffy", "donna", "qwertyu", "davis", "hearts", "kathy", "jammer", "java", "springer", "rhonda", "ricky", "1122", "goodtime", "chelsea1", "freckles", "flyboy", "doodle", "city", "nebraska", "bootie", "kicker", "webmaster", "vulcan", "iverson", "191919", "blueeyes", "stoner", "321321", "farside", "rugby", "director", "pussy69", "power1", "bobbie", "hershey", "hermes", "monopoly", "west", "birdman", "blessed", "blackjac", "southern", "peterpan", "thumbs", "lawyer", "melinda", "fingers", "fuckyou1", "rrrrrr", "a1b2c3d4", "coke", "nicola", "bohica", "heart", "elvis1", "kids", "blacky", "stories", "sentinel", "snake1", "phoebe", "jesse", "richard1", "1234abcd", "guardian", "candyman", "fisting", "scarlet", "dildo", "pancho", "mandingo", "lucky7", "condom", "munchkin", "billyboy", "summer1", "student", "sword", "skiing", "sergio", "site", "sony", "thong", "rootbeer", "assassin", "cassidy", "frederic", "fffff", "fitness", "giovanni", "scarlett", "durango", "postal", "achilles", "dawn", "dylan", "kisses", "warriors", "imagine", "plymouth", "topdog", "asterix", "hallo", "cameltoe", "fuckfuck", "bridget", "eeeeee", "mouth", "weird", "will", "sithlord", "sommer", "toby", "theking", "juliet", "avenger", "backdoor", "goodbye", "chevrole", "faith", "lorraine", "trance", "cosworth", "brad", "houses", "homers", "eternity", "kingpin", "verbatim", "incubus", "1961", "blond", "zaphod", "shiloh", "spurs", "station", "jennie", "maynard", "mighty", "aliens", "hank", "charly", "running", "dogman", "omega1", "printer", "aggies", "chocolate", "deadhead", "hope", "javier", "bitch1", "stone55", "pineappl", "thekid", "lizzie", "rockets", "ashton", "camels", "formula", "forrest", "rosemary", "oracle", "rain", "pussey", "porkchop", "abcde", "clancy", "nellie", "mystic", "inferno", "blackdog", "steve1", "pauline", "alexander", "alice", "alfa", "grumpy", "flames", "scream", "lonely", "puffy", "proxy", "valhalla", "unreal", "cynthia", "herbie", "engage", "yyyyyy", "010101", "solomon", "pistol", "melody", "celeb", "flying", "gggg", "santiago", "scottie", "oakley", "portugal", "a12345", "newbie", "mmmm", "venus", "1qazxsw2", "beverly", "zorro", "work", "writer", "stripper", "sebastia", "spread", "phil", "tobias", "links", "members", "metal", "1221", "andre", "565656", "funfun", "trojans", "again", "cyber", "hurrican", "moneys", "1x2zkg8w", "zeus", "thing", "tomato", "lion", "atlantic", "celine", "usa123", "trans", "account", "aaaaaaa", "homerun", "hyperion", "kevin1", "blacks", "44444444", "skittles", "sean", "hastings", "fart", "gangbang", "fubar", "sailboat", "older", "oilers", "craig", "conrad", "church", "damian", "dean", "broken", "buster1", "hithere", "immortal", "sticks", "pilot", "peters", "lexmark", "jerkoff", "maryland", "anders", "cheers", "possum", "columbus", "cutter", "muppet", "beautiful", "stolen", "swordfish", "sport", "sonic", "peter1", "jethro", "rockon", "asdfghj", "pass123", "paper", "pornos", "ncc1701a", "bootys", "buttman", "bonjour", "escape", "1960", "becky", "bears", "362436", "spartans", "tinman", "threesom", "lemons", "maxmax", "1414", "bbbbb", "camelot", "chad", "chewie", "gogo", "fusion", "saint", "dilligaf", "nopass", "myself", "hustler", "hunter1", "whitey", "beast1", "yesyes", "spank", "smudge", "pinkfloy", "patriot", "lespaul", "annette", "hammers", "catalina", "finish", "formula1", "sausage", "scooter1", "orioles", "oscar1", "over", "colombia", "cramps", "natural", "eating", "exotic", "iguana", "bella", "suckers", "strong", "sheena", "start", "slave", "pearl", "topcat", "lancelot", "angelica", "magelan", "racer", "ramona", "crunch", "british", "button", "eileen", "steph", "456123", "skinny", "seeking", "rockhard", "chief", "filter", "first", "freaks", "sakura", "pacman", "poontang", "dalton", "newlife", "homer1", "klingon", "watcher", "walleye", "tasha", "tasty", "sinatra", "starship", "steel", "starbuck", "poncho", "amber1", "gonzo", "grover", "catherin", "carol", "candle", "firefly", "goblin", "scotch", "diver", "usmc", "huskies", "eleven", "kentucky", "kitkat", "israel", "beckham", "bicycle", "yourmom", "studio", "tara", "33333333", "shane", "splash", "jimmy1", "reality", "12344321", "caitlin", "focus", "sapphire", "mailman", "raiders1", "clark", "ddddd", "hopper", "excalibu", "more", "wilbur", "illini", "imperial", "phillips", "lansing", "maxx", "gothic", "golfball", "carlton", "camille", "facial", "front242", "macdaddy", "qwer1234", "vectra", "cowboys1", "crazy1", "dannyboy", "jane", "betty", "benny", "bennett", "leader", "martinez", "aquarius", "barkley", "hayden", "caught", "franky", "ffff", "floyd", "sassy", "pppp", "pppppppp", "prodigy", "clarence", "noodle", "eatpussy", "vortex", "wanking", "beatrice", "billy1", "siemens", "pedro", "phillies", "research", "groups", "carolyn", "chevy1", "cccc", "fritz", "gggggggg", "doughboy", "dracula", "nurses", "loco", "madrid", "lollipop", "trout", "utopia", "chrono", "cooler", "conner", "nevada", "wibble", "werner", "summit", "marco", "marilyn", "1225", "babies", "capone", "fugazi", "panda", "mama", "qazwsxed", "puppies", "triton", "9876", "command", "nnnnnn", "ernest", "momoney", "iforgot", "wolfie", "studly", "shawn", "renee", "alien", "hamburg", "81fukkc", "741852", "catman", "china", "forgot", "gagging", "scott1", "drew", "oregon", "qweqwe", "train", "crazybab", "daniel1", "cutlass", "brothers", "holes", "heidi", "mothers", "music1", "what", "walrus", "1957", "bigtime", "bike", "xtreme", "simba", "ssss", "rookie", "angie", "bathing", "fresh", "sanchez", "rotten", "maestro", "luis", "look", "turbo1", "99999", "butthole", "hhhh", "elijah", "monty", "bender", "yoda", "shania", "shock", "phish", "thecat", "rightnow", "reagan", "baddog", "asia", "greatone", "gateway1", "randall", "abstr", "napster", "brian1", "bogart", "high", "hitler", "emma", "kill", "weaver", "wildfire", "jackson1", "isaiah", "1981", "belinda", "beaner", "yoyo", "0.0.0.000", "super1", "select", "snuggles", "slutty", "some", "phoenix1", "technics", "toon", "raven1", "rayray", "123789", "1066", "albion", "greens", "fashion", "gesperrt", "santana", "paint", "powell", "credit", "darling", "mystery", "bowser", "bottle", "brucelee", "hehehe", "kelly1", "mojo", "1998", "bikini", "woofwoof", "yyyy", "strap", "sites", "spears", "theodore", "julius", "richards", "amelia", "central", "f**k", "nyjets", "punisher", "username", "vanilla", "twisted", "bryant", "brent", "bunghole", "here", "elizabeth", "erica", "kimber", "viagra", "veritas", "pony", "pool", "titts", "labtec", "lifetime", "jenny1", "masterbate", "mayhem", "redbull", "govols", "gremlin", "505050", "gmoney", "rupert", "rovers", "diamond1", "lorenzo", "trident", "abnormal", "davidson", "deskjet", "cuddles", "nice", "bristol", "karina", "milano", "vh5150", "jarhead", "1982", "bigbird", "bizkit", "sixers", "slider", "star69", "starfish", "penetration", "tommy1", "john316", "meghan", "michaela", "market", "grant", "caligula", "carl", "flicks", "films", "madden", "railroad", "cosmo", "cthulhu", "bradford", "br0d3r", "military", "bearbear", "swedish", "spawn", "patrick1", "polly", "these", "todd", "reds", "anarchy", "groove", "franco", "fuckher", "oooo", "tyrone", "vegas", "airbus", "cobra1", "christine", "clips", "delete", "duster", "kitty1", "mouse1", "monkeys", "jazzman", "1919", "262626", "swinging", "stroke", "stocks", "sting", "pippen", "labrador", "jordan1", "justdoit", "meatball", "females", "saturday", "park", "vector", "cooter", "defender", "desert", "demon", "nike", "bubbas", "bonkers", "english", "kahuna", "wildman", "4121", "sirius", "static", "piercing", "terror", "teenage", "leelee", "marissa", "microsof", "mechanic", "robotech", "rated", "hailey", "chaser", "sanders", "salsero", "nuts", "macross", "quantum", "rachael", "tsunami", "universe", "daddy1", "cruise", "nguyen", "newpass6", "nudes", "hellyeah", "vernon", "1959", "zaq12wsx", "striker", "sixty", "steele", "spice", "spectrum", "smegma", "thumb", "jjjjjjjj", "mellow", "astrid", "cancun", "cartoon", "sabres", "samiam", "pants", "oranges", "oklahoma", "lust", "coleman", "denali", "nude", "noodles", "buzz", "brest", "hooter", "mmmmmmmm", "warthog", "bloody", "blueblue", "zappa", "wolverine", "sniffing", "lance", "jean", "jjjjj", "harper", "calico", "freee", "rover", "door", "pooter", "closeup", "bonsai", "evelyn", "emily1", "kathryn", "keystone", "iiii", "1955", "yzerman", "theboss", "tolkien", "jill", "megaman", "rasta", "bbbbbbbb", "bean", "handsome", "hal9000", "goofy", "gringo", "gofish", "gizmo1", "samsam", "scuba", "onlyme", "tttttttt", "corrado", "clown", "clapton", "deborah", "boris", "bulls", "vivian", "jayhawk", "bethany", "wwww", "sharky", "seeker", "ssssssss", "somethin", "pillow", "thesims", "lighter", "lkjhgf", "melissa1", "marcius2", "barry", "guiness", "gymnast", "casey1", "goalie", "godsmack", "doug", "lolo", "rangers1", "poppy", "abby", "clemson", "clipper", "deeznuts", "nobody", "holly1", "elliot", "eeee", "kingston", "miriam", "belle", "yosemite", "sucked", "sex123", "sexy69", "pic\\'s", "tommyboy", "lamont", "meat", "masterbating", "marianne", "marc", "gretzky", "happyday", "frisco", "scratch", "orchid", "orange1", "manchest", "quincy", "unbelievable", "aberdeen", "dawson", "nathalie", "ne1469", "boxing", "hill", "korn", "intercourse", "161616", "1985", "ziggy", "supersta", "stoney", "senior", "amature", "barber", "babyboy", "bcfields", "goliath", "hack", "hardrock", "children", "frodo", "scout", "scrappy", "rosie", "qazqaz", "tracker", "active", "craving", "commando", "cohiba", "deep", "cyclone", "dana", "bubba69", "katie1", "mpegs", "vsegda", "jade", "irish1", "better", "sexy1", "sinclair", "smelly", "squerting", "lions", "jokers", "jeanette", "julia", "jojojo", "meathead", "ashley1", "groucho", "cheetah", "champ", "firefox", "gandalf1", "packer", "magnolia", "love69", "tyler1", "typhoon", "tundra", "bobby1", "kenworth", "village", "volley", "beth", "wolf359", "0420", "000007", "swimmer", "skydive", "smokes", "patty", "peugeot", "pompey", "legolas", "kristy", "redhot", "rodman", "redalert", "having", "grapes", "4runner", "carrera", "floppy", "dollars", "ou8122", "quattro", "adams", "cloud9", "davids", "nofear", "busty", "homemade", "mmmmm", "whisper", "vermont", "webmaste", "wives", "insertion", "jayjay", "philips", "phone", "topher", "tongue", "temptress", "midget", "ripken", "havefun", "gretchen", "canon", "celebrity", "five", "getting", "ghetto", "direct", "otto", "ragnarok", "trinidad", "usnavy", "conover", "cruiser", "dalshe", "nicole1", "buzzard", "hottest", "kingfish", "misfit", "moore", "milfnew", "warlord", "wassup", "bigsexy", "blackhaw", "zippy", "shearer", "tights", "thursday", "kungfu", "labia", "journey", "meatloaf", "marlene", "rider", "area51", "batman1", "bananas", "636363", "cancel", "ggggg", "paradox", "mack", "lynn", "queens", "adults", "aikido", "cigars", "nova", "hoosier", "eeyore", "moose1", "warez", "interacial", "streaming", "313131", "pertinant", "pool6123", "mayday", "rivers", "revenge", "animated", "banker", "baddest", "gordon24", "ccccc", "fortune", "fantasies", "touching", "aisan", "deadman", "homepage", "ejaculation", "whocares", "iscool", "jamesbon", "1956", "1pussy", "womam", "sweden", "skidoo", "spock", "sssss", "petra", "pepper1", "pinhead", "micron", "allsop", "amsterda", "army", "aside", "gunnar", "666999", "chip", "foot", "fowler", "february", "face", "fletch", "george1", "sapper", "science", "sasha1", "luckydog", "lover1", "magick", "popopo", "public", "ultima", "derek", "cypress", "booker", "businessbabe", "brandon1", "edwards", "experience", "vulva", "vvvv", "jabroni", "bigbear", "yummy", "010203", "searay", "secret1", "showing", "sinbad", "sexxxx", "soleil", "software", "piccolo", "thirteen", "leopard", "legacy", "jensen", "justine", "memorex", "marisa", "mathew", "redwing", "rasputin", "134679", "anfield", "greenbay", "gore", "catcat", "feather", "scanner", "pa55word", "contortionist", "danzig", "daisy1", "hores", "erik", "exodus", "vinnie", "iiiiii", "zero", "1001", "subway", "tank", "second", "snapple", "sneakers", "sonyfuck", "picks", "poodle", "test1234", "their", "llll", "junebug", "june", "marker", "mellon", "ronaldo", "roadkill", "amanda1", "asdfjkl", "beaches", "greene", "great1", "cheerleaers", "force", "doitnow", "ozzy", "madeline", "radio", "tyson", "christian", "daphne", "boxster", "brighton", "housewifes", "emmanuel", "emerson", "kkkk", "mnbvcx", "moocow", "vides", "wagner", "janet", "1717", "bigmoney", "blonds", "1000", "storys", "stereo", "4545", "420247", "seductive", "sexygirl", "lesbean", "live", "justin1", "124578", "animals", "balance", "hansen", "cabbage", "canadian", "gangbanged", "dodge1", "dimas", "lori", "loud", "malaka", "puss", "probes", "adriana", "coolman", "crawford", "dante", "nacked", "hotpussy", "erotica", "kool", "mirror", "wearing", "implants", "intruder", "bigass", "zenith", "woohoo", "womans", "tanya", "tango", "stacy", "pisces", "laguna", "krystal", "maxell", "andyod22", "barcelon", "chainsaw", "chickens", "flash1", "downtown", "orgasms", "magicman", "profit", "pusyy", "pothead", "coconut", "chuckie", "contact", "clevelan", "designer", "builder", "budweise", "hotshot", "horizon", "hole", "experienced", "mondeo", "wifes", "1962", "strange", "stumpy", "smiths", "sparks", "slacker", "piper", "pitchers", "passwords", "laptop", "jeremiah", "allmine", "alliance", "bbbbbbb", "asscock", "halflife", "grandma", "hayley", "88888", "cecilia", "chacha", "saratoga", "sandy1", "santos", "doogie", "number", "positive", "qwert40", "transexual", "crow", "close-up", "darrell", "bonita", "ib6ub9", "volvo", "jacob1", "iiiii", "beastie", "sunnyday", "stoned", "sonics", "starfire", "snapon", "pictuers", "pepe", "testing1", "tiberius", "lisalisa", "lesbain", "litle", "retard", "ripple", "austin1", "badgirl", "golfgolf", "flounder", "garage", "royals", "dragoon", "dickie", "passwor", "ocean", "majestic", "poppop", "trailers", "dammit", "nokia", "bobobo", "br549", "emmitt", "knock", "minime", "mikemike", "whitesox", "1954", "3232", "353535", "seamus", "solo", "sparkle", "sluttey", "pictere", "titten", "lback", "1024", "angelina", "goodluck", "charlton", "fingerig", "gallaries", "goat", "ruby", "passme", "oasis", "lockerroom", "logan1", "rainman", "twins", "treasure", "absolutely", "club", "custom", "cyclops", "nipper", "bucket", "homepage-", "hhhhh", "momsuck", "indain", "2345", "beerbeer", "bimmer", "susanne", "stunner", "stevens", "456456", "shell", "sheba", "tootsie", "tiny", "testerer", "reefer", "really", "1012", "harcore", "gollum", "545454", "chico", "caveman", "carole", "fordf150", "fishes", "gaymen", "saleen", "doodoo", "pa55w0rd", "looney", "presto", "qqqqq", "cigar", "bogey", "brewer", "helloo", "dutch", "kamikaze", "monte", "wasser", "vietnam", "visa", "japanees", "0123", "swords", "slapper", "peach", "jump", "marvel", "masterbaiting", "march", "redwood", "rolling", "1005", "ametuer", "chiks", "cathy", "callaway", "fucing", "sadie1", "panasoni", "mamas", "race", "rambo", "unknown", "absolut", "deacon", "dallas1", "housewife", "kristi", "keywest", "kirsten", "kipper", "morning", "wings", "idiot", "18436572", "1515", "beating", "zxczxc", "sullivan", "303030", "shaman", "sparrow", "terrapin", "jeffery", "masturbation", "mick", "redfish", "1492", "angus", "barrett", "goirish", "hardcock", "felicia", "forfun", "galary", "freeporn", "duchess", "olivier", "lotus", "pornographic", "ramses", "purdue", "traveler", "crave", "brando", "enter1", "killme", "moneyman", "welder", "windsor", "wifey", "indon", "yyyyy", "stretch", "taylor1", "4417", "shopping", "picher", "pickup", "thumbnils", "johnboy", "jets", "jess", "maureen", "anne", "ameteur", "amateurs", "apollo13", "hambone", "goldwing", "5050", "charley", "sally1", "doghouse", "padres", "pounding", "quest", "truelove", "underdog", "trader", "crack", "climber", "bolitas", "bravo", "hohoho", "model", "italian", "beanie", "beretta", "wrestlin", "stroker", "tabitha", "sherwood", "sexyman", "jewels", "johannes", "mets", "marcos", "rhino", "bdsm", "balloons", "goodman", "grils", "happy123", "flamingo", "games", "route66", "devo", "dino", "outkast", "paintbal", "magpie", "llllllll", "twilight", "critter", "christie", "cupcake", "nickel", "bullseye", "krista", "knickerless", "mimi", "murder", "videoes", "binladen", "xerxes", "slim", "slinky", "pinky", "peterson", "thanatos", "meister", "menace", "ripley", "retired", "albatros", "balloon", "bank", "goten", "5551212", "getsdown", "donuts", "divorce", "nwo4life", "lord", "lost", "underwear", "tttt", "comet", "deer", "damnit", "dddddddd", "deeznutz", "nasty1", "nonono", "nina", "enterprise", "eeeee", "misfit99", "milkman", "vvvvvv", "isaac", "1818", "blueboy", "beans", "bigbutt", "wyatt", "tech", "solution", "poetry", "toolman", "laurel", "juggalo", "jetski", "meredith", "barefoot", "50spanks", "gobears", "scandinavian", "original", "truman", "cubbies", "nitram", "briana", "ebony", "kings", "warner", "bilbo", "yumyum", "zzzzzzz", "stylus", "321654", "shannon1", "server", "secure", "silly", "squash", "starman", "steeler", "staples", "phrases", "techniques", "laser", "135790", "allan", "barker", "athens", "cbr600", "chemical", "fester", "gangsta", "fucku2", "freeze", "game", "salvador", "droopy", "objects", "passwd", "lllll", "loaded", "louis", "manchester", "losers", "vedder", "clit", "chunky", "darkman", "damage", "buckshot", "buddah", "boobed", "henti", "hillary", "webber", "winter1", "ingrid", "bigmike", "beta", "zidane", "talon", "slave1", "pissoff", "person", "thegreat", "living", "lexus", "matador", "readers", "riley", "roberta", "armani", "ashlee", "goldstar", "5656", "cards", "fmale", "ferris", "fuking", "gaston", "fucku", "ggggggg", "sauron", "diggler", "pacers", "looser", "pounded", "premier", "pulled", "town", "trisha", "triangle", "cornell", "collin", "cosmic", "deeper", "depeche", "norway", "bright", "helmet", "kristine", "kendall", "mustard", "misty1", "watch", "jagger", "bertie", "berger", "word", "3x7pxr", "silver1", "smoking", "snowboar", "sonny", "paula", "penetrating", "photoes", "lesbens", "lambert", "lindros", "lillian", "roadking", "rockford", "1357", "143143", "asasas", "goodboy", "898989", "chicago1", "card", "ferrari1", "galeries", "godfathe", "gawker", "gargoyle", "gangster", "rubble", "rrrr", "onetime", "pussyman", "pooppoop", "trapper", "twenty", "abraham", "cinder", "company", "newcastl", "boricua", "bunny1", "boxer", "hotred", "hockey1", "hooper", "edward1", "evan", "kris", "misery", "moscow", "milk", "mortgage", "bigtit", "show", "snoopdog", "three", "lionel", "leanne", "joshua1", "july", "1230", "assholes", "cedric", "fallen", "farley", "gene", "frisky", "sanity", "script", "divine", "dharma", "lucky13", "property", "tricia", "akira", "desiree", "broadway", "butterfly", "hunt", "hotbox", "hootie", "heat", "howdy", "earthlink", "karma", "kiteboy", "motley", "westwood", "1988", "bert", "blackbir", "biggles", "wrench", "working", "wrestle", "slippery", "pheonix", "penny1", "pianoman", "tomorrow", "thedude", "jenn", "jonjon", "jones1", "mattie", "memory", "micheal", "roadrunn", "arrow", "attitude", "azzer", "seahawks", "diehard", "dotcom", "lola", "tunafish", "chivas", "cinnamon", "clouds", "deluxe", "northern", "nuclear", "north", "boom", "boobie", "hurley", "krishna", "momomo", "modles", "volume", "23232323", "bluedog", "wwwwwww", "zerocool", "yousuck", "pluto", "limewire", "link", "joung", "marcia", "awnyce", "gonavy", "haha", "films+pic+galeries", "fabian", "francois", "girsl", "fuckthis", "girfriend", "rufus", "drive", "uncencored", "a123456", "airport", "clay", "chrisbln", "combat", "cygnus", "cupoi", "never", "netscape", "brett", "hhhhhhhh", "eagles1", "elite", "knockers", "kendra", "mommy", "1958", "tazmania", "shonuf", "piano", "pharmacy", "thedog", "lips", "jillian", "jenkins", "midway", "arsenal1", "anaconda", "australi", "gromit", "gotohell", "787878", "66666", "carmex2", "camber", "gator1", "ginger1", "fuzzy", "seadoo", "dorian", "lovesex", "rancid", "uuuuuu", "911911", "nature", "bulldog1", "helen", "health", "heater", "higgins", "kirk", "monalisa", "mmmmmmm", "whiteout", "virtual", "ventura", "jamie1", "japanes", "james007", "2727", "2469", "blam", "bitchass", "believe", "zephyr", "stiffy", "sweet1", "silent", "southpar", "spectre", "tigger1", "tekken", "lenny", "lakota", "lionking", "jjjjjjj", "medical", "megatron", "1369", "hawaiian", "gymnastic", "golfer1", "gunners", "7779311", "515151", "famous", "glass", "screen", "rudy", "royal", "sanfran", "drake", "optimus", "panther1", "love1", "mail", "maggie1", "pudding", "venice", "aaron1", "delphi", "niceass", "bounce", "busted", "house1", "killer1", "miracle", "momo", "musashi", "jammin", "2003", "234567", "wp2003wp", "submit", "silence", "sssssss", "state", "spikes", "sleeper", "passwort", "toledo", "kume", "media", "meme", "medusa", "mantis", "remote", "reading", "reebok", "1017", "artemis", "hampton", "harry1", "cafc91", "fettish", "friendly", "oceans", "oooooooo", "mango", "ppppp", "trainer", "troy", "uuuu", "909090", "cross", "death1", "news", "bullfrog", "hokies", "holyshit", "eeeeeee", "mitch", "jasmine1", "&amp", "&amp;", "sergeant", "spinner", "leon", "jockey", "records", "right", "babyblue", "hans", "gooner", "474747", "cheeks", "cars", "candice", "fight", "glow", "pass1234", "parola", "okokok", "pablo", "magical", "major", "ramsey", "poseidon", "989898", "confused", "circle", "crusher", "cubswin", "nnnn", "hollywood", "erin", "kotaku", "milo", "mittens", "whatsup", "vvvvv", "iomega", "insertions", "bengals", "bermuda", "biit", "yellow1", "012345", "spike1", "south", "sowhat", "pitures", "peacock", "pecker", "theend", "juliette", "jimmie", "romance", "augusta", "hayabusa", "hawkeyes", "castro", "florian", "geoffrey", "dolly", "lulu", "qaz123", "usarmy", "twinkle", "cloud", "chuckles", "cold", "hounddog", "hover", "hothot", "europa", "ernie", "kenshin", "kojak", "mikey1", "water1", "196969", "because", "wraith", "zebra", "wwwww", "33333", "simon1", "spider1", "snuffy", "philippe", "thunderb", "teddy1", "lesley", "marino13", "maria1", "redline", "renault", "aloha", "antoine", "handyman", "cerberus", "gamecock", "gobucks", "freesex", "duffman", "ooooo", "papa", "nuggets", "magician", "longbow", "preacher", "porno1", "county", "chrysler", "contains", "dalejr", "darius", "darlene", "dell", "navy", "buffy1", "hedgehog", "hoosiers", "honey1", "hott", "heyhey", "europe", "dutchess", "everest", "wareagle", "ihateyou", "sunflowe", "3434", "senators", "shag", "spoon", "sonoma", "stalker", "poochie", "terminal", "terefon", "laurence", "maradona", "maryann", "marty", "roman", "1007", "142536", "alibaba", "america1", "bartman", "astro", "goth", "century", "chicken1", "cheater", "four", "ghost1", "passpass", "oral", "r2d2c3po", "civic", "cicero", "myxworld", "kkkkk", "missouri", "wishbone", "infiniti", "jameson", "1a2b3c", "1qwerty", "wonderboy", "skip", "shojou", "stanford", "sparky1", "smeghead", "poiuy", "titanium", "torres", "lantern", "jelly", "jeanne", "meier", "1213", "bayern", "basset", "gsxr750", "cattle", "charlene", "fishing1", "fullmoon", "gilles", "dima", "obelix", "popo", "prissy", "ramrod", "unique", "absolute", "bummer", "hotone", "dynasty", "entry", "konyor", "missy1", "moses", "282828", "yeah", "xyz123", "stop", "426hemi", "404040", "seinfeld", "simmons", "pingpong", "lazarus", "matthews", "marine1", "manning", "recovery", "12345a", "beamer", "babyface", "greece", "gustav", "7007", "charity", "camilla", "ccccccc", "faggot", "foxy", "frozen", "gladiato", "duckie", "dogfood", "paranoid", "packers1", "longjohn", "radical", "tuna", "clarinet", "claudio", "circus", "danny1", "novell", "nights", "bonbon", "kashmir", "kiki", "mortimer", "modelsne", "moondog", "monaco", "vladimir", "insert", "1953", "zxc123", "supreme", "3131", "sexxx", "selena", "softail", "poipoi", "pong", "together", "mars", "martin1", "rogue", "alone", "avalanch", "audia4", "55bgates", "cccccccc", "chick", "came11", "figaro", "geneva", "dogboy", "dnsadm", "dipshit", "paradigm", "othello", "operator", "officer", "malone", "post", "rafael", "valencia", "tripod", "choice", "chopin", "coucou", "coach", "cocksuck", "common", "creature", "borussia", "book", "browning", "heritage", "hiziad", "homerj", "eight", "earth", "millions", "mullet", "whisky", "jacques", "store", "4242", "speedo", "starcraf", "skylar", "spaceman", "piggy", "pierce", "tiger2", "legos", "lala", "jezebel", "judy", "joker1", "mazda", "barton", "baker", "727272", "chester1", "fishman", "food", "rrrrrrrr", "sandwich", "dundee", "lumber", "magazine", "radar", "ppppppp", "tranny", "aaliyah", "admiral", "comics", "cleo", "delight", "buttfuck", "homeboy", "eternal", "kilroy", "kellie", "khan", "violin", "wingman", "walmart", "bigblue", "blaze", "beemer", "beowulf", "bigfish", "yyyyyyy", "woodie", "yeahbaby", "0123456", "tbone", "style", "syzygy", "starter", "lemon", "linda1", "merlot", "mexican", "11235813", "anita", "banner", "bangbang", "badman", "barfly", "grease", "carla", "charles1", "ffffffff", "screw", "doberman", "diane", "dogshit", "overkill", "counter", "coolguy", "claymore", "demons", "demo", "nomore", "normal", "brewster", "hhhhhhh", "hondas", "iamgod", "enterme", "everett", "electron", "eastside", "kayla", "minimoni", "mybaby", "wildbill", "wildcard", "ipswich", "200000", "bearcat", "zigzag", "yyyyyyyy", "xander", "sweetnes", "369369", "skyler", "skywalker", "pigeon", "peyton", "tipper", "lilly", "asdf123", "alphabet", "asdzxc", "babybaby", "banane", "barnes", "guyver", "graphics", "grand", "chinook", "florida1", "flexible", "fuckinside", "otis", "ursitesux", "tototo", "trust", "tower", "adam12", "christma", "corey", "chrome", "buddie", "bombers", "bunker", "hippie", "keegan", "misfits", "vickie", "292929", "woofer", "wwwwwwww", "stubby", "sheep", "secrets", "sparta", "stang", "spud", "sporty", "pinball", "jorge", "just4fun", "johanna", "maxxxx", "rebecca1", "gunther", "fatima", "fffffff", "freeway", "garion", "score", "rrrrr", "sancho", "outback", "maggot", "puddin", "trial", "adrienne", "987456", "colton", "clyde", "brain", "brains", "hoops", "eleanor", "dwayne", "kirby", "mydick", "villa", "19691969", "bigcat", "becker", "shiner", "silverad", "spanish", "templar", "lamer", "juicy", "marsha", "mike1", "maximum", "rhiannon", "real", "1223", "10101010", "arrows", "andres", "alucard", "baldwin", "baron", "avenue", "ashleigh", "haggis", "channel", "cheech", "safari", "ross", "dog123", "orion1", "paloma", "qwerasdf", "presiden", "vegitto", "trees", "969696", "adonis", "colonel", "cookie1", "newyork1", "brigitte", "buddyboy", "hellos", "heineken", "dwight", "eraser", "kerstin", "motion", "moritz", "millwall", "visual", "jaybird", "1983", "beautifu", "bitter", "yvette", "zodiac", "steven1", "sinister", "slammer", "smashing", "slick1", "sponge", "teddybea", "theater", "this", "ticklish", "lipstick", "jonny", "massage", "mann", "reynolds", "ring", "1211", "amazing", "aptiva", "applepie", "bailey1", "guitar1", "chanel", "canyon", "gagged", "fuckme1", "rough", "digital1", "dinosaur", "punk", "98765", "90210", "clowns", "cubs", "daniels", "deejay", "nigga", "naruto", "boxcar", "icehouse", "hotties", "electra", "kent", "widget", "india", "insanity", "1986", "2004", "best", "bluefish", "bingo1", "*****", "stratus", "strength", "sultan", "storm1", "44444", "4200", "sentnece", "season", "sexyboy", "sigma", "smokie", "spam", "point", "pippo", "ticket", "temppass", "joel", "manman", "medicine", "1022", "anton", "almond", "bacchus", "aztnm", "axio", "awful", "bamboo", "hakr", "gregor", "hahahaha", "5678", "casanova", "caprice", "camero1", "fellow", "fountain", "dupont", "dolphin1", "dianne", "paddle", "magnet", "qwert1", "pyon", "porsche1", "tripper", "vampires", "coming", "noway", "burrito", "bozo", "highheel", "hughes", "hookem", "eddie1", "ellie", "entropy", "kkkkkkkk", "kkkkkkk", "illinois", "jacobs", "1945", "1951", "24680", "21212121", "100000", "stonecold", "taco", "subzero", "sharp", "sexxxy", "skolko", "shanna", "skyhawk", "spurs1", "sputnik", "piazza", "testpass", "letter", "lane", "kurt", "jiggaman", "matilda", "1224", "harvard", "hannah1", "525252", "4ever", "carbon", "chef", "federico", "ghosts", "gina", "scorpio1", "rt6ytere", "madison1", "loki", "raquel", "promise", "coolness", "christina", "coldbeer", "citadel", "brittney", "highway", "evil", "monarch", "morgan1", "washingt", "1997", "bella1", "berry", "yaya", "yolanda", "superb", "taxman", "studman", "stephanie", "3636", "sherri", "sheriff", "shepherd", "poland", "pizzas", "tiffany1", "toilet", "latina", "lassie", "larry1", "joseph1", "mephisto", "meagan", "marian", "reptile", "rico", "razor", "1013", "barron", "hammer1", "gypsy", "grande", "carroll", "camper", "chippy", "cat123", "call", "chimera", "fiesta", "glock", "glenn", "domain", "dieter", "dragonba", "onetwo", "nygiants", "odessa", "password2", "louie", "quartz", "prowler", "prophet", "towers", "ultra", "cocker", "corleone", "dakota1", "cumm", "nnnnnnn", "natalia", "boxers", "hugo", "heynow", "hollow", "iceberg", "elvira", "kittykat", "kate", "kitchen", "wasabi", "vikings1", "impact", "beerman", "string", "sleep", "splinter", "snoopy1", "pipeline", "pocket", "legs", "maple", "mickey1", "manuela", "mermaid", "micro", "meowmeow", "redbird", "alisha", "baura", "battery", "grass", "chevys", "chestnut", "caravan", "carina", "charmed", "fraser", "frogman", "diving", "dogger", "draven", "drifter", "oatmeal", "paris1", "longdong", "quant4307s", "rachel1", "vegitta", "cole", "cobras", "corsair", "dadada", "noelle", "mylife", "nine", "bowwow", "body", "hotrats", "eastwood", "moonligh", "modena", "wave", "illusion", "iiiiiii", "jayhawks", "birgit", "zone", "sutton", "susana", "swingers", "shocker", "shrimp", "sexgod", "squall", "stefanie", "squeeze", "soul", "patrice", "poiu", "players", "tigers1", "toejam", "tickler", "line", "julie1", "jimbo1", "jefferso", "juanita", "michael2", "rodeo", "robot", "1023", "annie1", "bball", "guess", "happy2", "charter", "farm", "flasher", "falcon1", "fiction", "fastball", "gadget", "scrabble", "diaper", "dirtbike", "dinner", "oliver1", "partner", "paco", "lucille", "macman", "poopy", "popper", "postman", "ttttttt", "ursula", "acura", "cowboy1", "conan", "daewoo", "cyrus", "customer", "nation", "nemrac58", "nnnnn", "nextel", "bolton", "bobdylan", "hopeless", "eureka", "extra", "kimmie", "kcj9wx5n", "killbill", "musica", "volkswag", "wage", "windmill", "wert", "vintage", "iloveyou1", "itsme", "bessie", "zippo", "311311", "starligh", "smokey1", "spot", "snappy", "soulmate", "plasma", "thelma", "tonight", "krusty", "just4me", "mcdonald", "marius", "rochelle", "rebel1", "1123", "alfredo", "aubrey", "audi", "chantal", "fick", "goaway", "roses", "sales", "rusty2", "dirt", "dogbone", "doofus", "ooooooo", "oblivion", "mankind", "luck", "mahler", "lllllll", "pumper", "puck", "pulsar", "valkyrie", "tupac", "compass", "concorde", "costello", "cougars", "delaware", "niceguy", "nocturne", "bob123", "boating", "bronze", "hopkins", "herewego", "hewlett", "houhou", "hubert", "earnhard", "eeeeeeee", "keller", "mingus", "mobydick", "venture", "verizon", "imation", "1950", "1948", "1949", "223344", "bigbig", "blossom", "zack", "wowwow", "sissy", "skinner", "spiker", "square", "snooker", "sluggo", "player1", "junk", "jeannie", "jsbach", "jumbo", "jewel", "medic", "robins", "reddevil", "reckless", "123456a", "1125", "1031", "beacon", "astra", "gumby", "hammond", "hassan", "757575", "585858", "chillin", "fuck1", "sander", "lowell", "radiohea", "upyours", "trek", "courage", "coolcool", "classics", "choochoo", "darryl", "nikki1", "nitro", "bugs", "boytoy", "ellen", "excite", "kirsty", "kane", "wingnut", "wireless", "icu812", "1master", "beatle", "bigblock", "blanca", "wolfen", "summer99", "sugar1", "tartar", "sexysexy", "senna", "sexman", "sick", "someone", "soprano", "pippin", "platypus", "pixies", "telephon", "land", "laura1", "laurent", "rimmer", "road", "report", "1020", "12qwaszx", "arturo", "around", "hamish", "halifax", "fishhead", "forum", "dododo", "doit", "outside", "paramedi", "lonesome", "mandy1", "twist", "uuuuu", "uranus", "ttttt", "butcher", "bruce1", "helper", "hopeful", "eduard", "dusty1", "kathy1", "katherin", "moonbeam", "muscles", "monster1", "monkeybo", "morton", "windsurf", "vvvvvvv", "vivid", "install", "1947", "187187", "1941", "1952", "tatiana", "susan1", "31415926", "sinned", "sexxy", "senator", "sebastian", "shadows", "smoothie", "snowflak", "playstat", "playa", "playboy1", "toaster", "jerry1", "marie1", "mason1", "merlin1", "roger1", "roadster", "112358", "1121", "andrea1", "bacardi", "auto", "hardware", "hardy", "789789", "5555555", "captain1", "flores", "fergus", "sascha", "rrrrrrr", "dome", "onion", "nutter", "lololo", "qqqqqqq", "quick", "undertak", "uuuuuuuu", "uuuuuuu", "criminal", "cobain", "cindy1", "coors", "dani", "descent", "nimbus", "nomad", "nanook", "norwich", "bomb", "bombay", "broker", "hookup", "kiwi", "winners", "jackpot", "1a2b3c4d", "1776", "beardog", "bighead", "blast", "bird33", "0987", "stress", "shot", "spooge", "pelican", "peepee", "perry", "pointer", "titan", "thedoors", "jeremy1", "annabell", "altima", "baba", "hallie", "hate", "hardone", "5454", "candace", "catwoman", "flip", "faithful", "finance", "farmboy", "farscape", "genesis1", "salomon", "destroy", "papers", "option", "page", "loser1", "lopez", "r2d2", "pumpkins", "training", "chriss", "cumcum", "ninjas", "ninja1", "hung", "erika", "eduardo", "killers", "miller1", "islander", "jamesbond", "intel", "jarvis", "19841984", "2626", "bizzare", "blue12", "biker", "yoyoma", "sushi", "styles", "shitface", "series", "shanti", "spanker", "steffi", "smart", "sphinx", "please1", "paulie", "pistons", "tiburon", "limited", "maxwell1", "mdogg", "rockies", "armstron", "alexia", "arlene", "alejandr", "arctic", "banger", "audio", "asimov", "augustus", "grandpa", "753951", "4you", "chilly", "care1839", "chapman", "flyfish", "fantasia", "freefall", "santa", "sandrine", "oreo", "ohshit", "macbeth", "madcat", "loveya", "mallory", "rage", "quentin", "qwerqwer", "project", "ramirez", "colnago", "citizen", "chocha", "cobalt", "crystal1", "dabears", "nevets", "nineinch", "broncos1", "helene", "huge", "edgar", "epsilon", "easter", "kestrel", "moron", "virgil", "winston1", "warrior1", "iiiiiiii", "iloveyou2", "1616", "beat", "bettina", "woowoo", "zander", "straight", "shower", "sloppy", "specialk", "tinkerbe", "jellybea", "reader", "romero", "redsox1", "ride", "1215", "1112", "annika", "arcadia", "answer", "baggio", "base", "guido", "555666", "carmel", "cayman", "cbr900rr", "chips", "gabriell", "gertrude", "glennwei", "roxy", "sausages", "disco", "pass1", "luna", "lovebug", "macmac", "queenie", "puffin", "vanguard", "trip", "trinitro", "airwolf", "abbott", "aaa111", "cocaine", "cisco", "cottage", "dayton", "deadly", "datsun", "bricks", "bumper", "eldorado", "kidrock", "wizard1", "whiskers", "wind", "wildwood", "istheman", "interest", "italy", "25802580", "benoit", "bigones", "woodland", "wolfpac", "strawber", "suicide", "3030", "sheba1", "sixpack", "peace1", "physics", "pearson", "tigger2", "toad", "megan1", "meow", "ringo", "roll", "amsterdam", "717171", "686868", "5424", "catherine", "canuck", "football1", "footjob", "fulham", "seagull", "orgy", "lobo", "mancity", "truth", "trace", "vancouve", "vauxhall", "acidburn", "derf", "myspace1", "boozer", "buttercu", "howell", "hola", "easton", "minemine", "munch", "jared", "1dragon", "biology", "bestbuy", "bigpoppa", "blackout", "blowfish", "bmw325", "bigbob", "stream", "talisman", "tazz", "sundevil", "3333333", "skate", "shutup", "shanghai", "shop", "spencer1", "slowhand", "polish", "pinky1", "tootie", "thecrow", "leroy", "jonathon", "jubilee", "jingle", "martine", "matrix1", "manowar", "michaels", "messiah", "mclaren", "resident", "reilly", "redbaron", "rollins", "romans", "return", "rivera", "andromed", "athlon", "beach1", "badgers", "guitars", "harald", "harddick", "gotribe", "6996", "7grout", "5wr2i7h8", "635241", "chase1", "carver", "charlotte", "fallout", "fiddle", "fredrick", "fenris", "francesc", "fortuna", "ferguson", "fairlane", "felipe", "felix1", "forward", "gasman", "frost", "fucks", "sahara", "sassy1", "dogpound", "dogbert", "divx1", "manila", "loretta", "priest", "pornporn", "quasar", "venom", "987987", "access1", "clippers", "daylight", "decker", "daman", "data", "dentist", "crusty", "nathan1", "nnnnnnnn", "bruno1", "bucks", "brodie", "budapest", "kittens", "kerouac", "mother1", "waldo1", "wedding", "whistler", "whatwhat", "wanderer", "idontkno", "1942", "1946", "bigdawg", "bigpimp", "zaqwsx", "414141", "3000gt", "434343", "shoes", "serpent", "starr", "smurf", "pasword", "tommie", "thisisit", "lake", "john1", "robotics", "redeye", "rebelz", "1011", "alatam", "asses", "asians", "bama", "banzai", "harvest", "gonzalez", "hair", "hanson", "575757", "5329", "cascade", "chinese", "fatty", "fender1", "flower2", "funky", "sambo", "drummer1", "dogcat", "dottie", "oedipus", "osama", "macleod", "prozac", "private1", "rampage", "punch", "presley", "concord", "cook", "cinema", "cornwall", "cleaner", "christopher", "ciccio", "corinne", "clutch", "corvet07", "daemon", "bruiser", "boiler", "hjkl", "eyes", "egghead", "expert", "ethan", "kasper", "mordor", "wasted", "jamess", "iverson3", "bluesman", "zouzou", "090909", "1002", "switch", "stone1", "4040", "sisters", "sexo", "shawna", "smith1", "sperma", "sneaky", "polska", "thewho", "terminat", "krypton", "lawson", "library", "lekker", "jules", "johnson1", "johann", "justus", "rockie", "romano", "aspire", "bastards", "goodie", "cheese1", "fenway", "fishon", "fishin", "fuckoff1", "girls1", "sawyer", "dolores", "desmond", "duane", "doomsday", "pornking", "ramones", "rabbits", "transit", "aaaaa1", "clock", "delilah", "noel", "boyz", "bookworm", "bongo", "bunnies", "brady", "buceta", "highbury", "henry1", "heels", "eastern", "krissy", "mischief", "mopar", "ministry", "vienna", "weston", "wildone", "vodka", "jayson", "bigbooty", "beavis1", "betsy", "xxxxxx1", "yogibear", "000001", "0815", "zulu", "420000", "september", "sigmar", "sprout", "stalin", "peggy", "patch", "lkjhgfds", "lagnaf", "rolex", "redfox", "referee", "123123123", "1231", "angus1", "ariana", "ballin", "attila", "hall", "greedy", "grunt", "747474", "carpedie", "cecile", "caramel", "foxylady", "field", "gatorade", "gidget", "futbol", "frosch", "saiyan", "schmidt", "drums", "donner", "doggy1", "drum", "doudou", "pack", "pain", "nutmeg", "quebec", "valdepen", "trash", "triple", "tosser", "tuscl", "track", "comfort", "choke", "comein", "cola", "deputy", "deadpool", "bremen", "borders", "bronson", "break", "hotass", "hotmail1", "eskimo", "eggman", "koko", "kieran", "katrin", "kordell1", "komodo", "mone", "munich", "vvvvvvvv", "winger", "jaeger", "ivan", "jackson5", "2222222", "bergkamp", "bennie", "bigben", "zanzibar", "worm", "xxx123", "sunny1", "373737", "services", "sheridan", "slater", "slayer1", "snoop", "stacie", "peachy", "thecure", "times", "little1", "jennaj", "marquis", "middle", "rasta69", "1114", "aries", "havana", "gratis", "calgary", "checkers", "flanker", "salope", "dirty1", "draco", "dogface", "luv2epus", "rainbow6", "qwerty123", "umpire", "turnip", "vbnm", "tucson", "troll", "aileen", "codered", "commande", "damon", "nana", "neon", "nico", "nightwin", "neil", "boomer1", "bushido", "hotmail0", "horace", "enternow", "kaitlyn", "keepout", "karen1", "mindy", "mnbv", "viewsoni", "volcom", "wizards", "wine", "1995", "berkeley", "bite", "zach", "woodstoc", "tarpon", "shinobi", "starstar", "phat", "patience", "patrol", "toolbox", "julien", "johnny1", "joebob", "marble", "riders", "reflex", "120676", "1235", "angelus", "anthrax", "atlas", "hawks", "grandam", "harlem", "hawaii50", "gorgeous", "655321", "cabron", "challeng", "callisto", "firewall", "firefire", "fischer", "flyer", "flower1", "factory", "federal", "gambler", "frodo1", "funk", "sand", "sam123", "scania", "dingo", "papito", "passmast", "olive", "palermo", "ou8123", "lock", "ranch", "pride", "randy1", "twiggy", "travis1", "transfer", "treetop", "addict", "admin1", "963852", "aceace", "clarissa", "cliff", "cirrus", "clifton", "colin", "bobdole", "bonner", "bogus", "bonjovi", "bootsy", "boater", "elway7", "edison", "kelvin", "kenny1", "moonshin", "montag", "moreno", "wayne1", "white1", "jazzy", "jakejake", "1994", "1991", "2828", "blunt", "bluejays", "beau", "belmont", "worthy", "systems", "sensei", "southpark", "stan", "peeper", "pharao", "pigpen", "tomahawk", "teensex", "leedsutd", "larkin", "jermaine", "jeepster", "jimjim", "josephin", "melons", "marlon", "matthias", "marriage", "robocop", "1003", "1027", "antelope", "azsxdc", "gordo", "hazard", "granada", "8989", "7894", "ceasar", "cabernet", "cheshire", "california", "chelle", "candy1", "fergie", "fanny", "fidelio", "giorgio", "fuckhead", "ruth", "sanford", "diego", "dominion", "devon", "panic", "longer", "mackie", "qawsed", "trucking", "twelve", "chloe1", "coral", "daddyo", "nostromo", "boyboy", "booster", "bucky", "honolulu", "esquire", "dynamite", "motor", "mollydog", "wilder", "windows1", "waffle", "wallet", "warning", "virus", "washburn", "wealth", "vincent1", "jabber", "jaguars", "javelin", "irishman", "idefix", "bigdog1", "blue42", "blanked", "blue32", "biteme1", "bearcats", "blaine", "yessir", "sylveste", "team", "stephan", "sunfire", "tbird", "stryker", "3ip76k2", "sevens", "sheldon", "pilgrim", "tenchi", "titman", "leeds", "lithium", "lander", "linkin", "landon", "marijuan", "mariner", "markie", "midnite", "reddwarf", "1129", "123asd", "12312312", "allstar", "albany", "asdf12", "antonia", "aspen", "hardball", "goldfing", "7734", "49ers", "carlo", "chambers", "cable", "carnage", "callum", "carlos1", "fitter", "fandango", "festival", "flame", "gofast", "gamma", "fucmy69", "scrapper", "dogwood", "django", "magneto", "loose", "premium", "addison", "9999999", "abc1234", "cromwell", "newyear", "nichole", "bookie", "burns", "bounty", "brown1", "bologna", "earl", "entrance", "elway", "killjoy", "kerry", "keenan", "kick", "klondike", "mini", "mouser", "mohammed", "wayer", "impreza", "irene", "insomnia", "24682468", "2580", "24242424", "billbill", "bellaco", "blessing", "blues1", "bedford", "blanco", "blunts", "stinks", "teaser", "streets", "sf49ers", "shovel", "solitude", "spikey", "sonia", "pimpdadd", "timeout", "toffee", "lefty", "johndoe", "johndeer", "mega", "manolo", "mentor", "margie", "ratman", "ridge", "record", "rhodes", "robin1", "1124", "1210", "1028", "1226", "another", "babylove", "barbados", "harbor", "gramma", "646464", "carpente", "chaos1", "fishbone", "fireblad", "glasgow", "frogs", "scissors", "screamer", "salem", "scuba1", "ducks", "driven", "doggies", "dicky", "donovan", "obsidian", "rams", "progress", "tottenham", "aikman", "comanche", "corolla", "clarke", "conway", "cumslut", "cyborg", "dancing", "boston1", "bong", "houdini", "helmut", "elvisp", "edge", "keksa12", "misha", "monty1", "monsters", "wetter", "watford", "wiseguy", "veronika", "visitor", "janelle", "1989", "1987", "20202020", "biatch", "beezer", "bigguns", "blueball", "bitchy", "wyoming", "yankees2", "wrestler", "stupid1", "sealteam", "sidekick", "simple1", "smackdow", "sporting", "spiral", "smeller", "sperm", "plato", "tophat", "test2", "theatre", "thick", "toomuch", "leigh", "jello", "jewish", "junkie", "maxim", "maxime", "meadow", "remingto", "roofer", "124038", "1018", "1269", "1227", "123457", "arkansas", "alberta", "aramis", "andersen", "beaker", "barcelona", "baltimor", "googoo", "goochi", "852456", "4711", "catcher", "carman", "champ1", "chess", "fortress", "fishfish", "firefigh", "geezer", "rsalinas", "samuel1", "saigon", "scooby1", "doors", "dick1", "devin", "doom", "dirk", "doris", "dontknow", "load", "magpies", "manfred", "raleigh", "vader1", "universa", "tulips", "defense", "mygirl", "burn", "bowtie", "bowman", "holycow", "heinrich", "honeys", "enforcer", "katherine", "minerva", "wheeler", "witch", "waterboy", "jaime", "irving", "1992", "23skidoo", "bimbo", "blue11", "birddog", "woodman", "womble", "zildjian", "030303", "stinker", "stoppedby", "sexybabe", "speakers", "slugger", "spotty", "smoke1", "polopolo", "perfect1", "things", "torpedo", "tender", "thrasher", "lakeside", "lilith", "jimmys", "jerk", "junior1", "marsh", "masamune", "rice", "root", "1214", "april1", "allgood", "bambi", "grinch", "767676", "5252", "cherries", "chipmunk", "cezer121", "carnival", "capecod", "finder", "flint", "fearless", "goats", "funstuff", "gideon", "savior", "seabee", "sandro", "schalke", "salasana", "disney1", "duckman", "options", "pancake", "pantera1", "malice", "lookin", "love123", "lloyd", "qwert123", "puppet", "prayers", "union", "tracer", "crap", "creation", "cwoui", "nascar24", "hookers", "hollie", "hewitt", "estrella", "erection", "ernesto", "ericsson", "edthom", "kaylee", "kokoko", "kokomo", "kimball", "morales", "mooses", "monk", "walton", "weekend", "inter", "internal", "1michael", "1993", "19781978", "25252525", "worker", "summers", "surgery", "shibby", "shamus", "skibum", "sheepdog", "sex69", "spliff", "slipper", "spoons", "spanner", "snowbird", "slow", "toriamos", "temp123", "tennesse", "lakers1", "jomama", "julio", "mazdarx7", "rosario", "recon", "riddle", "room", "revolver", "1025", "1101", "barney1", "babycake", "baylor", "gotham", "gravity", "hallowee", "hancock", "616161", "515000", "caca", "cannabis", "castor", "chilli", "fdsa", "getout", "fuck69", "gators1", "sail", "sable", "rumble", "dolemite", "dork", "dickens", "duffer", "dodgers1", "painting", "onions", "logger", "lorena", "lookout", "magic32", "port", "poon", "prime", "twat", "coventry", "citroen", "christmas", "civicsi", "cocksucker", "coochie", "compaq1", "nancy1", "buzzer", "boulder", "butkus", "bungle", "hogtied", "honor", "hero", "hotgirls", "hilary", "heidi1", "eggplant", "mustang6", "mortal", "monkey12", "wapapapa", "wendy1", "volleyba", "vibrate", "vicky", "bledsoe", "blink", "birthday4", "woof", "xxxxx1", "talk", "stephen1", "suburban", "stock", "tabatha", "sheeba", "start1", "soccer10", "something", "starcraft", "soccer12", "peanut1", "plastics", "penthous", "peterbil", "tools", "tetsuo", "torino", "tennis1", "termite", "ladder", "last", "lemmein", "lakewood", "jughead", "melrose", "megane", "reginald", "redone", "request", "angela1", "alive", "alissa", "goodgirl", "gonzo1", "golden1", "gotyoass", "656565", "626262", "capricor", "chains", "calvin1", "foolish", "fallon", "getmoney", "godfather", "gabber", "gilligan", "runaway", "salami", "dummy", "dungeon", "dudedude", "dumb", "dope", "opus", "paragon", "oxygen", "panhead", "pasadena", "opendoor", "odyssey", "magellan", "lottie", "printing", "pressure", "prince1", "trustme", "christa", "court", "davies", "neville", "nono", "bread", "buffet", "hound", "kajak", "killkill", "mona", "moto", "mildred", "winner1", "vixen", "whiteboy", "versace", "winona", "voyager1", "instant", "indy", "jackjack", "bigal", "beech", "biggun", "blake1", "blue99", "big1", "woods", "synergy", "success1", "336699", "sixty9", "shark1", "skin", "simba1", "sharpe", "sebring", "spongebo", "spunk", "springs", "sliver", "phialpha", "password9", "pizza1", "plane", "perkins", "pookey", "tickling", "lexingky", "lawman", "joe123", "jolly", "mike123", "romeo1", "redheads", "reserve", "apple123", "alanis", "ariane", "antony", "backbone", "aviation", "band", "hand", "green123", "haley", "carlitos", "byebye", "cartman1", "camden", "chewy", "camaross", "favorite6", "forumwp", "franks", "ginscoot", "fruity", "sabrina1", "devil666", "doughnut", "pantie", "oldone", "paintball", "lumina", "rainbow1", "prosper", "total", "true", "umbrella", "ajax", "951753", "achtung", "abc12345", "compact", "color", "corn", "complete", "christi", "closer", "corndog", "deerhunt", "darklord", "dank", "nimitz", "brandy1", "bowl", "breanna", "holidays", "hetfield", "holein1", "hillbill", "hugetits", "east", "evolutio", "kenobi", "whiplash", "waldo", "wg8e3wjf", "wing", "istanbul", "invis", "1996", "benton", "bigjohn", "bluebell", "beef", "beater", "benji", "bluejay", "xyzzy", "wrestling", "storage", "superior", "suckdick", "taichi", "stellar", "stephane", "shaker", "skirt", "seymour", "semper", "splurge", "squeak", "pearls", "playball", "pitch", "phyllis", "pooky", "piss", "tomas", "titfuck", "joemama", "johnny5", "marcello", "marjorie", "married", "maxi", "rhubarb", "rockwell", "ratboy", "reload", "rooney", "redd", "1029", "1030", "1220", "anchor", "bbking", "baritone", "gryphon", "gone", "57chevy", "494949", "celeron", "fishy", "gladiator", "fucker1", "roswell", "dougie", "downer", "dicker", "diva", "domingo", "donjuan", "nympho", "omar", "praise", "racers", "trick", "trauma", "truck1", "trample", "acer", "corwin", "cricket1", "clemente", "climax", "denmark", "cuervo", "notnow", "nittany", "neutron", "native", "bosco1", "buffa", "breaker", "hello2", "hydro", "estelle", "exchange", "explore", "kisskiss", "kittys", "kristian", "montecar", "modem", "mississi", "mooney", "weiner", "washington", "20012001", "bigdick1", "bibi", "benfica", "yahoo1", "striper", "tabasco", "supra", "383838", "456654", "seneca", "serious", "shuttle", "socks", "stanton", "penguin1", "pathfind", "testibil", "thethe", "listen", "lightning", "lighting", "jeter2", "marma", "mark1", "metoo", "republic", "rollin", "redleg", "redbone", "redskin", "rocco", "1245", "armand", "anthony7", "altoids", "andrews", "barley", "away", "asswipe", "bauhaus", "bbbbbb1", "gohome", "harrier", "golfpro", "goldeney", "818181", "6666666", "5000", "5rxypn", "cameron1", "calling", "checker", "calibra", "fields", "freefree", "faith1", "fist", "fdm7ed", "finally", "giraffe", "glasses", "giggles", "fringe", "gate", "georgie", "scamper", "rrpass1", "screwyou", "duffy", "deville", "dimples", "pacino", "ontario", "passthie", "oberon", "quest1", "postov1000", "puppydog", "puffer", "raining", "protect", "qwerty7", "trey", "tribe", "ulysses", "tribal", "adam25", "a1234567", "compton", "collie", "cleopatr", "contract", "davide", "norris", "namaste", "myrtle", "buffalo1", "bonovox", "buckley", "bukkake", "burning", "burner", "bordeaux", "burly", "hun999", "emilie", "elmo", "enters", "enrique", "keisha", "mohawk", "willard", "vgirl", "whale", "vince", "jayden", "jarrett", "1812", "1943", "222333", "bigjim", "bigd", "zoom", "wordup", "ziggy1", "yahooo", "workout", "young1", "written", "xmas", "zzzzzz1", "surfer1", "strife", "sunlight", "tasha1", "skunk", "shauna", "seth", "soft", "sprinter", "peaches1", "planes", "pinetree", "plum", "pimping", "theforce", "thedon", "toocool", "leeann", "laddie", "list", "lkjh", "lara", "joke", "jupiter1", "mckenzie", "matty", "rene", "redrose", "1200", "102938", "annmarie", "alexa", "antares", "austin31", "ground", "goose1", "737373", "78945612", "789987", "6464", "calimero", "caster", "casper1", "cement", "chevrolet", "chessie", "caddy", "chill", "child", "canucks", "feeling", "favorite", "fellatio", "f00tball", "francine", "gateway2", "gigi", "gamecube", "giovanna", "rugby1", "scheisse", "dshade", "dudes", "dixie1", "owen", "offshore", "olympia", "lucas1", "macaroni", "manga", "pringles", "puff", "tribble", "trouble1", "ussy", "core", "clint", "coolhand", "colonial", "colt", "debra", "darthvad", "dealer", "cygnusx1", "natalie1", "newark", "husband", "hiking", "errors", "eighteen", "elcamino", "emmett", "emilia", "koolaid", "knight1", "murphy1", "volcano", "idunno", "2005", "2233", "block", "benito", "blueberr", "biguns", "yamahar1", "zapper", "zorro1", "0911", "3006", "sixsix", "shopper", "siobhan", "sextoy", "stafford", "snowboard", "speedway", "sounds", "pokey", "peabody", "playboy2", "titi", "think", "toast", "toonarmy", "lister", "lambda", "joecool", "jonas", "joyce", "juniper", "mercer", "max123", "manny", "massimo", "mariposa", "met2002", "reggae", "ricky1", "1236", "1228", "1016", "all4one", "arianna", "baberuth", "asgard", "gonzales", "484848", "5683", "6669", "catnip", "chiquita", "charisma", "capslock", "cashmone", "chat", "figure", "galant", "frenchy", "gizmodo1", "girlies", "gabby", "garner", "screwy", "doubled", "divers", "dte4uw", "done", "dragonfl", "maker", "locks", "rachelle", "treble", "twinkie", "trailer", "tropical", "acid", "crescent", "cooking", "cococo", "cory", "dabomb", "daffy", "dandfa", "cyrano", "nathanie", "briggs", "boners", "helium", "horton", "hoffman", "hellas", "espresso", "emperor", "killa", "kikimora", "wanda", "w4g8at", "verona", "ilikeit", "iforget", "1944", "20002000", "birthday1", "beatles1", "blue1", "bigdicks", "beethove", "blacklab", "blazers", "benny1", "woodwork", "0069", "0101", "taffy", "susie", "survivor", "swim", "stokes", "4567", "shodan", "spoiled", "steffen", "pissed", "pavlov", "pinnacle", "place", "petunia", "terrell", "thirty", "toni", "tito", "teenie", "lemonade", "lily", "lillie", "lalakers", "lebowski", "lalalala", "ladyboy", "jeeper", "joyjoy", "mercury1", "mantle", "mannn", "rocknrol", "riversid", "reeves", "123aaa", "11112222", "121314", "1021", "1004", "1120", "allen1", "ambers", "amstel", "ambrose", "alice1", "alleycat", "allegro", "ambrosia", "alley", "australia", "hatred", "gspot", "graves", "goodsex", "hattrick", "harpoon", "878787", "8inches", "4wwvte", "cassandr", "charlie123", "case", "chavez", "fighting", "gabriela", "gatsby", "fudge", "gerry", "generic", "gareth", "fuckme2", "samm", "sage", "seadog", "satchmo", "scxakv", "santafe", "dipper", "dingle", "dizzy", "outoutout", "madmad", "london1", "qbg26i", "pussy123", "randolph", "vaughn", "tzpvaw", "vamp", "comedy", "comp", "cowgirl", "coldplay", "dawgs", "delaney", "nt5d27", "novifarm", "needles", "notredam", "newness", "mykids", "bryan1", "bouncer", "hihihi", "honeybee", "iceman1", "herring", "horn", "hook", "hotlips", "dynamo", "klaus", "kittie", "kappa", "kahlua", "muffy", "mizzou", "mohamed", "musical", "wannabe", "wednesda", "whatup", "weller", "waterfal", "willy1", "invest", "blanche", "bear1", "billabon", "youknow", "zelda", "yyyyyy1", "zachary1", "01234567", "070462", "zurich", "superstar", "storms", "tail", "stiletto", "strat", "427900", "sigmachi", "shelter", "shells", "sexy123", "smile1", "sophie1", "stefano", "stayout", "somerset", "smithers", "playmate", "pinkfloyd", "phish1", "payday", "thebear", "telefon", "laetitia", "kswbdu", "larson", "jetta", "jerky", "melina", "metro", "revoluti", "retire", "respect", "1216", "1201", "1204", "1222", "1115", "archange", "barry1", "handball", "676767", "chandra", "chewbacc", "flesh", "furball", "gocubs", "fruit", "fullback", "gman", "gentle", "dunbar", "dewalt", "dominiqu", "diver1", "dhip6a", "olemiss", "ollie", "mandrake", "mangos", "pretzel", "pusssy", "tripleh", "valdez", "vagabond", "clean", "comment", "crew", "clovis", "deaths", "dandan", "csfbr5yy", "deadspin", "darrel", "ninguna", "noah", "ncc74656", "bootsie", "bp2002", "bourbon", "brennan", "bumble", "books", "hose", "heyyou", "houston1", "hemlock", "hippo", "hornets", "hurricane", "horseman", "hogan", "excess", "extensa", "muffin1", "virginie", "werdna", "idontknow", "info", "iron", "jack1", "1bitch", "151nxjmt", "bendover", "bmwbmw", "bills", "zaq123", "wxcvbn", "surprise", "supernov", "tahoe", "talbot", "simona", "shakur", "sexyone", "seviyi", "sonja", "smart1", "speed1", "pepito", "phantom1", "playoffs", "terry1", "terrier", "laser1", "lite", "lancia", "johngalt", "jenjen", "jolene", "midori", "message", "maserati", "matteo", "mental", "miami1", "riffraff", "ronald1", "reason", "rhythm", "1218", "1026", "123987", "1015", "1103", "armada", "architec", "austria", "gotmilk", "hawkins", "gray", "camila", "camp", "cambridg", "charge", "camero", "flex", "foreplay", "getoff", "glacier", "glotest", "froggie", "gerbil", "rugger", "sanity72", "salesman", "donna1", "dreaming", "deutsch", "orchard", "oyster", "palmtree", "ophelia", "pajero", "m5wkqf", "magenta", "luckyone", "treefrog", "vantage", "usmarine", "tyvugq", "uptown", "abacab", "aaaaaa1", "advance", "chuck1", "delmar", "darkange", "cyclones", "nate", "navajo", "nope", "border", "bubba123", "building", "iawgk2", "hrfzlz", "dylan1", "enrico", "encore", "emilio", "eclipse1", "killian", "kayleigh", "mutant", "mizuno", "mustang2", "video1", "viewer", "weed420", "whales", "jaguar1", "insight", "1990", "159159", "1love", "bliss", "bears1", "bigtruck", "binder", "bigboss", "blitz", "xqgann", "yeahyeah", "zeke", "zardoz", "stickman", "table", "3825", "signal", "sentra", "side", "shiva", "skipper1", "singapor", "southpaw", "sonora", "squid", "slamdunk", "slimjim", "placid", "photon", "placebo", "pearl1", "test12", "therock1", "tiger123", "leinad", "legman", "jeepers", "joeblow", "mccarthy", "mike23", "redcar", "rhinos", "rjw7x4", "1102", "13576479", "112211", "alcohol", "gwju3g", "greywolf", "7bgiqk", "7878", "535353", "4snz9g", "candyass", "cccccc1", "carola", "catfight", "cali", "fister", "fosters", "finland", "frankie1", "gizzmo", "fuller", "royalty", "rugrat", "sandie", "rudolf", "dooley", "dive", "doreen", "dodo", "drop", "oemdlg", "out3xf", "paddy", "opennow", "puppy1", "qazwsxedc", "pregnant", "quinn", "ramjet", "under", "uncle", "abraxas", "corner", "creed", "cocoa", "crown", "cows", "cn42qj", "dancer1", "death666", "damned", "nudity", "negative", "nimda2k", "buick", "bobb", "braves1", "brook", "henrik", "higher", "hooligan", "dust", "everlast", "karachi", "mortis", "mulligan", "monies", "motocros", "wally1", "weapon", "waterman", "view", "willie1", "vicki", "inspiron", "1test", "2929", "bigblack", "xytfu7", "yackwin", "zaq1xsw2", "yy5rbfsc", "100100", "0660", "tahiti", "takehana", "talks", "332211", "3535", "sedona", "seawolf", "skydiver", "shine", "spleen", "slash", "spjfet", "special1", "spooner", "slimshad", "sopranos", "spock1", "penis1", "patches1", "terri", "thierry", "thething", "toohot", "large", "limpone", "johnnie", "mash4077", "matchbox", "masterp", "maxdog", "ribbit", "reed", "rita", "rockin", "redhat", "rising", "1113", "14789632", "1331", "allday", "aladin", "andrey", "amethyst", "ariel", "anytime", "baseball1", "athome", "basil", "goofy1", "greenman", "gustavo", "goofball", "ha8fyp", "goodday", "778899", "charon", "chappy", "castillo", "caracas", "cardiff", "capitals", "canada1", "cajun", "catter", "freddy1", "favorite2", "frazier", "forme", "follow", "forsaken", "feelgood", "gavin", "gfxqx686", "garlic", "sarge", "saskia", "sanjose", "russ", "salsa", "dilbert1", "dukeduke", "downhill", "longhair", "loop", "locutus", "lockdown", "malachi", "mamacita", "lolipop", "rainyday", "pumpkin1", "punker", "prospect", "rambo1", "rainbows", "quake", "twin", "trinity1", "trooper1", "aimee", "citation", "coolcat", "crappy", "default", "dental", "deniro", "d9ungl", "daddys", "napoli", "nautica", "nermal", "bukowski", "brick", "bubbles1", "bogota", "board", "branch", "breath", "buds", "hulk", "humphrey", "hitachi", "evans", "ender", "export", "kikiki", "kcchiefs", "kram", "morticia", "montrose", "mongo", "waqw3p", "wizzard", "visited", "whdbtp", "whkzyc", "image", "154ugeiu", "1fuck", "binky", "blind", "bigred1", "blubber", "benz", "becky1", "year2005", "wonderfu", "wooden", "xrated", "0001", "tampabay", "survey", "tammy1", "stuffer", "3mpz4r", "3000", "3some", "selina", "sierra1", "shampoo", "silk", "shyshy", "slapnuts", "standby", "spartan1", "sprocket", "sometime", "stanley1", "poker1", "plus", "thought", "theshit", "torture", "thinking", "lavalamp", "light1", "laserjet", "jediknig", "jjjjj1", "jocelyn", "mazda626", "menthol", "maximo", "margaux", "medic1", "release", "richter", "rhino1", "roach", "renate", "repair", "reveal", "1209", "1234321", "amigos", "apricot", "alexandra", "asdfgh1", "hairball", "hatter", "graduate", "grimace", "7xm5rq", "6789", "cartoons", "capcom", "cheesy", "cashflow", "carrots", "camping", "fanatic", "fool", "format", "fleming", "girlie", "glover", "gilmore", "gardner", "safeway", "ruthie", "dogfart", "dondon", "diapers", "outsider", "odin", "opiate", "lollol", "love12", "loomis", "mallrats", "prague", "primetime21", "pugsley", "program", "r29hqq", "touch", "valleywa", "airman", "abcdefg1", "darkone", "cummer", "dempsey", "damn", "nadia", "natedogg", "nineball", "ndeyl5", "natchez", "newone", "normandy", "nicetits", "buddy123", "buddys", "homely", "husky", "iceland", "hr3ytm", "highlife", "holla", "earthlin", "exeter", "eatmenow", "kimkim", "karine", "k2trix", "kernel", "kirkland", "money123", "moonman", "miles1", "mufasa", "mousey", "wilma", "wilhelm", "whites", "warhamme", "instinct", "jackass1", "2277", "20spanks", "blobby", "blair", "blinky", "bikers", "blackjack", "becca", "blue23", "xman", "wyvern", "085tzzqi", "zxzxzx", "zsmj2v", "suede", "t26gn4", "sugars", "sylvie", "tantra", "swoosh", "swiss", "4226", "4271", "321123", "383pdjvl", "shoe", "shane1", "shelby1", "spades", "spain", "smother", "soup", "sparhawk", "pisser", "photo1", "pebble", "phones", "peavey", "picnic", "pavement", "terra", "thistle", "tokyo", "therapy", "lives", "linden", "kronos", "lilbit", "linux", "johnston", "material", "melanie1", "marbles", "redlight", "reno", "recall", "1208", "1138", "1008", "alchemy", "aolsucks", "alexalex", "atticus", "auditt", "ballet", "b929ezzh", "goodyear", "hanna", "griffith", "gubber", "863abgsg", "7474", "797979", "464646", "543210", "4zqauf", "4949", "ch5nmk", "carlito", "chewey", "carebear", "caleb", "checkmat", "cheddar", "chachi", "fever", "forgetit", "fine", "forlife", "giants1", "gates", "getit", "gamble", "gerhard", "galileo", "g3ujwg", "ganja", "rufus1", "rushmore", "scouts", "discus", "dudeman", "olympus", "oscars", "osprey", "madcow", "locust", "loyola", "mammoth", "proton", "rabbit1", "question", "ptfe3xxp", "pwxd5x", "purple1", "punkass", "prophecy", "uyxnyd", "tyson1", "aircraft", "access99", "abcabc", "cocktail", "colts", "civilwar", "cleveland", "claudia1", "contour", "clement", "dddddd1", "cypher", "denied", "dapzu455", "dagmar", "daisydog", "name", "noles", "butters", "buford", "hoochie", "hotel", "hoser", "eddy", "ellis", "eldiablo", "kingrich", "mudvayne", "motown", "mp8o6d", "wife", "vipergts", "italiano", "innocent", "2055", "2211", "beavers", "bloke", "blade1", "yamato", "zooropa", "yqlgr667", "050505", "zxcvbnm1", "zw6syj", "suckcock", "tango1", "swing", "stern", "stephens", "swampy", "susanna", "tammie", "445566", "333666", "380zliki", "sexpot", "sexylady", "sixtynin", "sickboy", "spiffy", "sleeping", "skylark", "sparkles", "slam", "pintail", "phreak", "places", "teller", "timtim", "tires", "thighs", "left", "latex", "llamas", "letsdoit", "lkjhg", "landmark", "letters", "lizzard", "marlins", "marauder", "metal1", "manu", "register", "righton", "1127", "alain", "alcat", "amigo", "basebal1", "azertyui", "attract", "azrael", "hamper", "gotenks", "golfgti", "gutter", "hawkwind", "h2slca", "harman", "grace1", "6chid8", "789654", "canine", "casio", "cazzo", "chamber", "cbr900", "cabrio", "calypso", "capetown", "feline", "flathead", "fisherma", "flipmode", "fungus", "goal", "g9zns4", "full", "giggle", "gabriel1", "fuck123", "saffron", "dogmeat", "dreamcas", "dirtydog", "dunlop", "douche", "dresden", "dickdick", "destiny1", "pappy", "oaktree", "lydia", "luft4", "puta", "prayer", "ramada", "trumpet1", "vcradq", "tulip", "tracy71", "tycoon", "aaaaaaa1", "conquest", "click", "chitown", "corps", "creepers", "constant", "couples", "code", "cornhole", "danman", "dada", "density", "d9ebk7", "cummins", "darth", "cute", "nash", "nirvana1", "nixon", "norbert", "nestle", "brenda1", "bonanza", "bundy", "buddies", "hotspur", "heavy", "horror", "hufmqw", "electro", "erasure", "enough", "elisabet", "etvww4", "ewyuza", "eric1", "kinder", "kenken", "kismet", "klaatu", "musician", "milamber", "willi", "waiting", "isacs155", "igor", "1million", "1letmein", "x35v8l", "yogi", "ywvxpz", "xngwoj", "zippy1", "020202", "****", "stonewal", "sweeney", "story", "sentry", "sexsexsex", "spence", "sonysony", "smirnoff", "star12", "solace", "sledge", "states", "snyder", "star1", "paxton", "pentagon", "pkxe62", "pilot1", "pommes", "paulpaul", "plants", "tical", "tictac", "toes", "lighthou", "lemans", "kubrick", "letmein22", "letmesee", "jys6wz", "jonesy", "jjjjjj1", "jigga", "joelle", "mate", "merchant", "redstorm", "riley1", "rosa", "relief", "14141414", "1126", "allison1", "badboy1", "asthma", "auggie", "basement", "hartley", "hartford", "hardwood", "gumbo", "616913", "57np39", "56qhxs", "4mnveh", "cake", "forbes", "fatluvr69", "fqkw5m", "fidelity", "feathers", "fresno", "godiva", "gecko", "gladys", "gibson1", "gogators", "fridge", "general1", "saxman", "rowing", "sammys", "scotts", "scout1", "sasasa", "samoht", "dragon69", "ducky", "dragonball", "driller", "p3wqaw", "nurse", "papillon", "oneone", "openit", "optimist", "longshot", "portia", "rapier", "pussy2", "ralphie", "tuxedo", "ulrike", "undertow", "trenton", "copenhag", "come", "delldell", "culinary", "deltas", "mytime", "nicky", "nickie", "noname", "noles1", "bucker", "bopper", "bullock", "burnout", "bryce", "hedges", "ibilltes", "hihje863", "hitter", "ekim", "espana", "eatme69", "elpaso", "envelope", "express1", "eeeeee1", "eatme1", "karaoke", "kara", "mustang5", "misses", "wellingt", "willem", "waterski", "webcam", "jasons", "infinite", "iloveyou!", "jakarta", "belair", "bigdad", "beerme", "yoshi", "yinyang", "zimmer", "x24ik3", "063dyjuy", "0000007", "ztmfcq", "stopit", "stooges", "survival", "stockton", "symow8", "strato", "2hot4u", "ship", "simons", "skins", "shakes", "sex1", "shield", "snacks", "softtail", "slimed123", "pizzaman", "pipe", "pitt", "pathetic", "pinto", "tigercat", "tonton", "lager", "lizzy", "juju", "john123", "jennings", "josiah", "jesse1", "jordon", "jingles", "martian", "mario1", "rootedit", "rochard", "redwine", "requiem", "riverrat", "rats", "1117", "1014", "1205", "althea", "allie", "amor", "amiga", "alpina", "alert", "atreides", "banana1", "bahamut", "hart", "golfman", "happines", "7uftyx", "5432", "5353", "5151", "4747", "byron", "chatham", "chadwick", "cherie", "foxfire", "ffvdj474", "freaked", "foreskin", "gayboy", "gggggg1", "glenda", "gameover", "glitter", "funny1", "scoobydoo", "scroll", "rudolph", "saddle", "saxophon", "dingbat", "digimon", "omicron", "parsons", "ohio", "panda1", "loloxx", "macintos", "lululu", "lollypop", "racer1", "queen1", "qwertzui", "prick", "upnfmc", "tyrant", "trout1", "9skw5g", "aceman", "adelaide", "acls2h", "aaabbb", "acapulco", "aggie", "comcast", "craft", "crissy", "cloudy", "cq2kph", "custer", "d6o8pm", "cybersex", "davecole", "darian", "crumbs", "daisey", "davedave", "dasani", "needle", "mzepab", "myporn", "narnia", "nineteen", "booger1", "bravo1", "budgie", "btnjey", "highlander", "hotel6", "humbug", "edwin", "ewtosi", "kristin1", "kobe", "knuckles", "keith1", "katarina", "muff", "muschi", "montana1", "wingchun", "wiggle", "whatthe", "walking", "watching", "vette1", "vols", "virago", "intj3a", "ishmael", "intern", "jachin", "illmatic", "199999", "2010", "beck", "blender", "bigpenis", "bengal", "blue1234", "your", "zaqxsw", "xray", "xxxxxxx1", "zebras", "yanks", "worlds", "tadpole", "stripes", "svetlana", "3737", "4343", "3728", "4444444", "368ejhih", "solar", "sonne", "smalls", "sniffer", "sonata", "squirts", "pitcher", "playstation", "pktmxr", "pescator", "points", "texaco", "lesbos", "lilian", "l8v53x", "jo9k2jw2", "jimbeam", "josie", "jimi", "jupiter2", "jurassic", "marines1", "maya", "rocket1", "ringer", "14725836", "12345679", "1219", "123098", "1233", "alessand", "althor", "angelika", "arch", "armando", "alpha123", "basher", "barefeet", "balboa", "bbbbb1", "banks", "badabing", "harriet", "gopack", "golfnut", "gsxr1000", "gregory1", "766rglqy", "8520", "753159", "8dihc6", "69camaro", "666777", "cheeba", "chino", "calendar", "cheeky", "camel1", "fishcake", "falling", "flubber", "giuseppe", "gianni", "gloves", "gnasher23", "frisbee", "fuzzy1", "fuzzball", "sauce", "save13tx", "schatz", "russell1", "sandra1", "scrotum", "scumbag", "sabre", "samdog", "dripping", "dragon12", "dragster", "paige", "orwell", "mainland", "lunatic", "lonnie", "lotion", "maine", "maddux", "qn632o", "poophead", "rapper", "porn4life", "producer", "rapunzel", "tracks", "velocity", "vanessa1", "ulrich", "trueblue", "vampire1", "abacus", "902100", "crispy", "corky", "crane", "chooch", "d6wnro", "cutie", "deal", "dabulls", "dehpye", "navyseal", "njqcw4", "nownow", "nigger1", "nightowl", "nonenone", "nightmar", "bustle", "buddy2", "boingo", "bugman", "bulletin", "bosshog", "bowie", "hybrid", "hillside", "hilltop", "hotlegs", "honesty", "hzze929b", "hhhhh1", "hellohel", "eloise", "evilone", "edgewise", "e5pftu", "eded", "embalmer", "excalibur", "elefant", "kenzie", "karl", "karin", "killah", "kleenex", "mouses", "mounta1n", "motors", "mutley", "muffdive", "vivitron", "winfield", "wednesday", "w00t88", "iloveit", "jarjar", "incest", "indycar", "17171717", "1664", "17011701", "222777", "2663", "beelch", "benben", "yitbos", "yyyyy1", "yasmin", "zapata", "zzzzz1", "stooge", "tangerin", "taztaz", "stewart1", "summer69", "sweetness", "system1", "surveyor", "stirling", "3qvqod", "3way", "456321", "sizzle", "simhrq", "shrink", "shawnee", "someday", "sparty", "ssptx452", "sphere", "spark", "slammed", "sober", "persian", "peppers", "ploppy", "pn5jvw", "poobear", "pianos", "plaster", "testme", "tiff", "thriller", "larissa", "lennox", "jewell", "master12", "messier", "rockey", "1229", "1217", "1478", "1009", "anastasi", "almighty", "amonra", "aragon", "argentin", "albino", "azazel", "grinder", "6uldv8", "83y6pv", "8888888", "4tlved", "515051", "carsten", "changes", "flanders", "flyers88", "ffffff1", "firehawk", "foreman", "firedog", "flashman", "ggggg1", "gerber", "godspeed", "galway", "giveitup", "funtimes", "gohan", "giveme", "geryfe", "frenchie", "sayang", "rudeboy", "savanna", "sandals", "devine", "dougal", "drag0n", "dga9la", "disaster", "desktop", "only", "onlyone", "otter", "pandas", "mafia", "lombard", "luckys", "lovejoy", "lovelife", "manders", "product", "qqh92r", "qcmfd454", "pork", "radar1", "punani", "ptbdhw", "turtles", "undertaker", "trs8f7", "tramp", "ugejvp", "abba", "911turbo", "acdc", "abcd123", "clever", "corina", "cristian", "create", "crash1", "colony", "crosby", "delboy", "daniele", "davinci", "daughter", "notebook", "niki", "nitrox", "borabora", "bonzai", "budd", "brisbane", "hotter", "heeled", "heroes", "hooyah", "hotgirl", "i62gbq", "horse1", "hills", "hpk2qc", "epvjb6", "echo", "korean", "kristie", "mnbvc", "mohammad", "mind", "mommy1", "munster", "wade", "wiccan", "wanted", "jacket", "2369", "bettyboo", "blondy", "bismark", "beanbag", "bjhgfi", "blackice", "yvtte545", "ynot", "yess", "zlzfrh", "wolvie", "007bond", "******", "tailgate", "tanya1", "sxhq65", "stinky1", "3234412", "3ki42x", "seville", "shimmer", "sheryl", "sienna", "shitshit", "skillet", "seaman", "sooners1", "solaris", "smartass", "pastor", "pasta", "pedros", "pennywis", "pfloyd", "tobydog", "thetruth", "lethal", "letme1n", "leland", "jenifer", "mario66", "micky", "rocky2", "rewq", "ripped", "reindeer", "1128", "1207", "1104", "1432", "aprilia", "allstate", "alyson", "bagels", "basic", "baggies", "barb", "barrage", "greatest", "gomez", "guru", "guard", "72d5tn", "606060", "4wcqjn", "caldwell", "chance1", "catalog", "faust", "film", "flange", "fran", "fartman", "geil", "gbhcf2", "fussball", "glen", "fuaqz4", "gameboy", "garnet", "geneviev", "rotary", "seahawk", "russel", "saab", "seal", "samadams", "devlt4", "ditto", "drevil", "drinker", "deuce", "dipstick", "donut", "octopus", "ottawa", "losangel", "loverman", "porky", "q9umoz", "rapture", "pump", "pussy4me", "university", "triplex", "ue8fpw", "trent", "trophy", "turbos", "troubles", "agent", "aaa340", "churchil", "crazyman", "consult", "creepy", "craven", "class", "cutiepie", "ddddd1", "dejavu", "cuxldv", "nettie", "nbvibt", "nikon", "niko", "norwood", "nascar1", "nolan", "bubba2", "boobear", "boogers", "buff", "bullwink", "bully", "bulldawg", "horsemen", "escalade", "editor", "eagle2", "dynamic", "ella", "efyreg", "edition", "kidney", "minnesot", "mogwai", "morrow", "msnxbi", "moonlight", "mwq6qlzo", "wars", "werder", "verygood", "voodoo1", "wheel", "iiiiii1", "159951", "1624", "1911a1", "2244", "bellagio", "bedlam", "belkin", "bill1", "woodrow", "xirt2k", "worship", "??????", "tanaka", "swift", "susieq", "sundown", "sukebe", "tales", "swifty", "2fast4u", "senate", "sexe", "sickness", "shroom", "shaun", "seaweed", "skeeter1", "status", "snicker", "sorrow", "spanky1", "spook", "patti", "phaedrus", "pilots", "pinch", "peddler", "theo", "thumper1", "tessie", "tiger7", "tmjxn151", "thematri", "l2g7k3", "letmeinn", "lazy", "jeffjeff", "joan", "johnmish", "mantra", "mariana", "mike69", "marshal", "mart", "mazda6", "riptide", "robots", "rental", "1107", "1130", "142857", "11001001", "1134", "armored", "alvin", "alec", "allnight", "alright", "amatuers", "bartok", "attorney", "astral", "baboon", "bahamas", "balls1", "bassoon", "hcleeb", "happyman", "granite", "graywolf", "golf1", "gomets", "8vjzus", "7890", "789123", "8uiazp", "5757", "474jdvff", "551scasi", "50cent", "camaro1", "cherry1", "chemist", "final", "firenze", "fishtank", "farrell", "freewill", "glendale", "frogfrog", "gerhardt", "ganesh", "same", "scirocco", "devilman", "doodles", "dinger", "okinawa", "olympic", "nursing", "orpheus", "ohmygod", "paisley", "pallmall", "null", "lounge", "lunchbox", "manhatta", "mahalo", "mandarin", "qwqwqw", "qguvyt", "pxx3eftp", "president", "rambler", "puzzle", "poppy1", "turk182", "trotter", "vdlxuc", "trish", "tugboat", "valiant", "tracie", "uwrl7c", "chris123", "coaster", "cmfnpu", "decimal", "debbie1", "dandy", "daedalus", "dede", "natasha1", "nissan1", "nancy123", "nevermin", "napalm", "newcastle", "boats", "branden", "britt", "bonghit", "hester", "ibxnsm", "hhhhhh1", "holger", "durham", "edmonton", "erwin", "equinox", "dvader", "kimmy", "knulla", "mustafa", "monsoon", "mistral", "morgana", "monica1", "mojave", "month", "monterey", "mrbill", "vkaxcs", "victor1", "wacker", "wendell", "violator", "vfdhif", "wilson1", "wavpzt", "verena", "wildstar", "winter99", "iqzzt580", "jarrod", "imback", "1914", "19741974", "1monkey", "1q2w3e4r5t", "2500", "2255", "blank", "bigshow", "bigbucks", "blackcoc", "zoomer", "wtcacq", "wobble", "xmen", "xjznq5", "yesterda", "yhwnqc", "zzzxxx", "streak", "393939", "2fchbg", "skinhead", "skilled", "shakira", "shaft", "shadow12", "seaside", "sigrid", "sinful", "silicon", "smk7366", "snapshot", "sniper1", "soccer11", "staff", "slap", "smutty", "peepers", "pleasant", "plokij", "pdiddy", "pimpdaddy", "thrust", "terran", "topaz", "today1", "lionhear", "littlema", "lauren1", "lincoln1", "lgnu9d", "laughing", "juneau", "methos", "medina", "merlyn", "rogue1", "romulus", "redshift", "1202", "1469", "12locked", "arizona1", "alfarome", "al9agd", "aol123", "altec", "apollo1", "arse", "baker1", "bbb747", "bach", "axeman", "astro1", "hawthorn", "goodfell", "hawks1", "gstring", "hannes", "8543852", "868686", "4ng62t", "554uzpad", "5401", "567890", "5232", "catfood", "frame", "flow", "fire1", "flipflop", "fffff1", "fozzie", "fluff", "garrison", "fzappa", "furious", "round", "rustydog", "sandberg", "scarab", "satin", "ruger", "samsung1", "destin", "diablo2", "dreamer1", "detectiv", "dominick", "doqvq3", "drywall", "paladin1", "papabear", "offroad", "panasonic", "nyyankee", "luetdi", "qcfmtz", "pyf8ah", "puddles", "privacy", "rainer", "pussyeat", "ralph1", "princeto", "trivia", "trewq", "tri5a3", "advent", "9898", "agyvorc", "clarkie", "coach1", "courier", "contest", "christo", "corinna", "chowder", "concept", "climbing", "cyzkhw", "davidb", "dad2ownu", "days", "daredevi", "de7mdf", "nose", "necklace", "nazgul", "booboo1", "broad", "bonzo", "brenna", "boot", "butch1", "huskers1", "hgfdsa", "hornyman", "elmer", "elektra", "england1", "elodie", "kermit1", "knife", "kaboom", "minute", "modern", "motherfucker", "morten", "mocha", "monday1", "morgoth", "ward", "weewee", "weenie", "walters", "vorlon", "website", "wahoo", "ilovegod", "insider", "jayman", "1911", "1dallas", "1900", "1ranger", "201jedlz", "2501", "1qaz", "bertram", "bignuts", "bigbad", "beebee", "billows", "belize", "bebe", "wvj5np", "wu4etd", "yamaha1", "wrinkle5", "zebra1", "yankee1", "zoomzoom", "09876543", "0311", "?????", "stjabn", "tainted", "3tmnej", "shoot", "skooter", "skelter", "sixteen", "starlite", "smack", "spice1", "stacey1", "smithy", "perrin", "pollux", "peternorth", "pixie", "paulina", "piston", "pick", "poets", "pine", "toons", "tooth", "topspin", "kugm7b", "legends", "jeepjeep", "juliana", "joystick", "junkmail", "jojojojo", "jonboy", "judge", "midland", "meteor", "mccabe", "matter", "mayfair", "meeting", "merrill", "raul", "riches", "reznor", "rockrock", "reboot", "reject", "robyn", "renee1", "roadway", "rasta220", "1411", "1478963", "1019", "archery", "allman", "andyandy", "barks", "bagpuss", "auckland", "gooseman", "hazmat", "gucci", "guns", "grammy", "happydog", "greek", "7kbe9d", "7676", "6bjvpe", "5lyedn", "5858", "5291", "charlie2", "chas", "c7lrwu", "candys", "chateau", "ccccc1", "cardinals", "fear", "fihdfv", "fortune12", "gocats", "gaelic", "fwsadn", "godboy", "gldmeo", "fx3tuo", "fubar1", "garland", "generals", "gforce", "rxmtkp", "rulz", "sairam", "dunhill", "division", "dogggg", "detect", "details", "doll", "drinks", "ozlq6qwm", "ov3ajy", "lockout", "makayla", "macgyver", "mallorca", "loves", "prima", "pvjegu", "qhxbij", "raphael", "prelude1", "totoro", "tusymo", "trousers", "tunnel", "valeria", "tulane", "turtle1", "tracy1", "aerosmit", "abbey1", "address", "clticic", "clueless", "cooper1", "comets", "collect", "corbin", "delpiero", "derick", "cyprus", "dante1", "dave1", "nounours", "neal", "nexus6", "nero", "nogard", "norfolk", "brent1", "booyah", "bootleg", "buckaroo", "bulls23", "bulls1", "booper", "heretic", "icecube", "hellno", "hounds", "honeydew", "hooters1", "hoes", "howie", "hevnm4", "hugohugo", "eighty", "epson", "evangeli", "eeeee1", "eyphed"];
2611
+
2612
+ // src/embeddedWallet/passcode-denylist.ts
2613
+ var DENYLIST = new Set(passcode_denylist_default);
2614
+ function isPasscodeDenylisted(passcode) {
2615
+ const normalized = passcode.normalize("NFKC").toLowerCase();
2616
+ return DENYLIST.has(normalized);
2617
+ }
2618
+
2619
+ // src/embeddedWallet/passcode-strength.ts
2620
+ var zxcvbnChecker = null;
2621
+ function getZxcvbnChecker() {
2622
+ if (!zxcvbnChecker) {
2623
+ zxcvbnChecker = new ZxcvbnFactory({
2624
+ translations: zxcvbnEn.translations,
2625
+ graphs: zxcvbnCommon.adjacencyGraphs,
2626
+ dictionary: {
2627
+ ...zxcvbnCommon.dictionary,
2628
+ ...zxcvbnEn.dictionary
2629
+ }
2630
+ });
2631
+ }
2632
+ return zxcvbnChecker;
2633
+ }
2634
+ function scoreToLabel(score) {
2635
+ if (score <= 0) {
2636
+ return "weak";
2637
+ }
2638
+ if (score === 1) {
2639
+ return "fair";
2640
+ }
2641
+ if (score === 2) {
2642
+ return "good";
2643
+ }
2644
+ return "strong";
2645
+ }
2646
+ function hasMixedCharacterClasses(passcode) {
2647
+ let classes = 0;
2648
+ if (/[a-z]/.test(passcode)) {
2649
+ classes++;
2650
+ }
2651
+ if (/[A-Z]/.test(passcode)) {
2652
+ classes++;
2653
+ }
2654
+ if (/[0-9]/.test(passcode)) {
2655
+ classes++;
2656
+ }
2657
+ if (/[^a-zA-Z0-9]/.test(passcode)) {
2658
+ classes++;
2659
+ }
2660
+ return classes >= 2;
2661
+ }
2662
+ function isAllDigits(passcode) {
2663
+ return /^[0-9]+$/.test(passcode);
2664
+ }
2665
+ function evaluatePasscodeStrength(passcode) {
2666
+ assertValidPasscode(passcode);
2667
+ const normalized = normalizePasscode(passcode);
2668
+ if (isPasscodeDenylisted(normalized)) {
2669
+ return {
2670
+ score: 0,
2671
+ label: "weak",
2672
+ blocked: true,
2673
+ blockReason: "denylist"
2674
+ };
2675
+ }
2676
+ if (isAllDigits(normalized) && normalized.length < 12) {
2677
+ return {
2678
+ score: 0,
2679
+ label: "weak",
2680
+ blocked: true,
2681
+ blockReason: "numeric_short"
2682
+ };
2683
+ }
2684
+ const result = getZxcvbnChecker().check(normalized);
2685
+ const score = result.score;
2686
+ const label = scoreToLabel(score);
2687
+ if (score === 0 && !(normalized.length >= 14 && hasMixedCharacterClasses(normalized))) {
2688
+ return {
2689
+ score,
2690
+ label,
2691
+ blocked: true,
2692
+ blockReason: "too_weak"
2693
+ };
2694
+ }
2695
+ return {
2696
+ score,
2697
+ label,
2698
+ blocked: false
2699
+ };
2700
+ }
2701
+ function assertPasscodeAllowedForCreation(passcode) {
2702
+ const strength = evaluatePasscodeStrength(passcode);
2703
+ if (strength.blocked) {
2704
+ throw new EmbeddedWalletWeakPasscodeError(strength.blockReason ?? "too_weak");
2705
+ }
2706
+ }
2707
+
2708
+ // src/embeddedWallet/wallet.ts
2709
+ var activeSession = null;
2710
+ function vaultUsesPasskeyUnlock(vault) {
2711
+ return vault.kdf === EMBEDDED_WALLET_KDF_PRF || vault.kdf === EMBEDDED_WALLET_KDF_PBKDF2;
2712
+ }
2713
+ function vaultUsesPasscodeUnlock(vault) {
2714
+ return vault.kdf === EMBEDDED_WALLET_KDF_PIN;
2715
+ }
2716
+ function isPasscodeDecryptFailure(err) {
2717
+ return err instanceof EmbeddedWalletVaultError && /decrypt/i.test(err.message);
2718
+ }
2719
+ async function decryptVaultWithPasscodeProtected(vault, passcode) {
2720
+ if (!vaultUsesPasscodeUnlock(vault)) {
2721
+ throw new EmbeddedWalletVaultError("Vault does not use passcode unlock");
2722
+ }
2723
+ if (!passcode) {
2724
+ throw new EmbeddedWalletVaultError("Passcode is required to unlock this wallet");
2725
+ }
2726
+ await assertPasscodeUnlockAllowed(vault.publicAddress);
2727
+ try {
2728
+ const plaintext = await decryptVaultWithUnlockMaterial(vault, passcode);
2729
+ await recordPasscodeUnlockSuccess(vault.publicAddress);
2730
+ return plaintext;
2731
+ } catch (err) {
2732
+ if (isPasscodeDecryptFailure(err)) {
2733
+ await recordPasscodeUnlockFailure(vault.publicAddress);
2734
+ }
2735
+ throw err;
2736
+ }
2737
+ }
2738
+ async function deriveKekFromPasskeyMaterial(vault, prfOutput, authenticatorData, clientDataJSON) {
2739
+ const caps = detectWebAuthnPrfCapabilities();
2740
+ const kdf = selectEmbeddedWalletKdf(caps, prfOutput);
2741
+ if (kdf === EMBEDDED_WALLET_KDF_PRF && prfOutput) {
2742
+ return deriveKekFromPrf(prfOutput);
2743
+ }
2744
+ if (vault.kdf !== EMBEDDED_WALLET_KDF_PBKDF2 || !vault.kdfSalt) {
2745
+ throw new EmbeddedWalletVaultError("Vault expects PBKDF2 but passkey material unavailable");
2746
+ }
2747
+ const salt = decodeCredentialId(vault.kdfSalt);
2748
+ const material = createPasskeyMaterialFromAssertion(authenticatorData, clientDataJSON);
2749
+ return deriveKekFromPbkdf2(material, salt, vault.kdfIterations || void 0);
2750
+ }
2751
+ async function deriveKekForVault(vault, passcode, passkeyMaterial) {
2752
+ if (vaultUsesPasscodeUnlock(vault)) {
2753
+ if (!passcode) {
2754
+ throw new EmbeddedWalletVaultError("Passcode is required to unlock this wallet");
2755
+ }
2756
+ if (!vault.kdfSalt) {
2757
+ throw new EmbeddedWalletVaultError("PIN vault is missing kdfSalt");
2758
+ }
2759
+ const salt = decodeCredentialId(vault.kdfSalt);
2760
+ return deriveKekFromPasscode(passcode, salt, vault.kdfIterations || void 0);
2761
+ }
2762
+ if (!passkeyMaterial) {
2763
+ throw new EmbeddedWalletVaultError("Passkey authentication is required to unlock this wallet");
2764
+ }
2765
+ return deriveKekFromPasskeyMaterial(
2766
+ vault,
2767
+ passkeyMaterial.prfOutput,
2768
+ passkeyMaterial.authenticatorData,
2769
+ passkeyMaterial.clientDataJSON
2770
+ );
2771
+ }
2772
+ async function decryptVaultWithUnlockMaterial(vault, passcode, passkeyMaterial) {
2773
+ const kek = await deriveKekForVault(vault, passcode, passkeyMaterial);
2774
+ return decryptWalletPayload(vault, kek);
2775
+ }
2776
+ async function encryptPlaintextWithPasscode(plaintext, passcode, backupAcknowledged = false) {
2777
+ assertPasscodeAllowedForCreation(passcode);
2778
+ const previewSigner = await embeddedPlaintextToSigner(plaintext);
2779
+ const [account] = await previewSigner.getAccounts();
2780
+ const salt = createPbkdf2Salt();
2781
+ const kek = await deriveKekFromPasscode(passcode, salt);
2782
+ const vault = await encryptWalletPayload(plaintext, {
2783
+ kdf: EMBEDDED_WALLET_KDF_PIN,
2784
+ credentialId: new Uint8Array(0),
2785
+ publicAddress: account.address,
2786
+ kek,
2787
+ kdfSalt: salt,
2788
+ kdfIterations: EMBEDDED_WALLET_PIN_PBKDF2_ITERATIONS,
2789
+ backupAcknowledged
2790
+ });
2791
+ return { address: account.address, vault };
2792
+ }
2793
+ async function encryptPlaintextWithPasskeyRegistration(plaintext, registration, backupAcknowledged = false) {
2794
+ const previewSigner = await embeddedPlaintextToSigner(plaintext);
2795
+ const [account] = await previewSigner.getAccounts();
2796
+ const caps = detectWebAuthnPrfCapabilities();
2797
+ const kdf = selectEmbeddedWalletKdf(caps, registration.prfOutput);
2798
+ let kek;
2799
+ let kdfSalt;
2800
+ let prfSalt;
2801
+ if (kdf === EMBEDDED_WALLET_KDF_PRF && registration.prfOutput) {
2802
+ kek = await deriveKekFromPrf(registration.prfOutput);
2803
+ prfSalt = registration.prfSalt;
2804
+ } else {
2805
+ kdfSalt = createPbkdf2Salt();
2806
+ const material = createPasskeyMaterialFromAssertion(
2807
+ registration.authenticatorData,
2808
+ registration.clientDataJSON
2809
+ );
2810
+ kek = await deriveKekFromPbkdf2(material, kdfSalt);
2811
+ }
2812
+ const vault = await encryptWalletPayload(plaintext, {
2813
+ kdf,
2814
+ credentialId: registration.credentialId,
2815
+ publicAddress: account.address,
2816
+ kek,
2817
+ kdfSalt,
2818
+ prfSalt,
2819
+ backupAcknowledged
2820
+ });
2821
+ return { address: account.address, vault };
2822
+ }
2823
+ async function unlockVaultToSession(vault, options = {}) {
2824
+ if (vaultUsesPasscodeUnlock(vault)) {
2825
+ const plaintext2 = await decryptVaultWithPasscodeProtected(vault, options.passcode);
2826
+ const signer2 = await embeddedPlaintextToSigner(plaintext2);
2827
+ const [account2] = await signer2.getAccounts();
2828
+ const session2 = { address: account2.address, vault, signer: signer2 };
2829
+ activeSession = session2;
2830
+ return session2;
2831
+ }
2832
+ const credentialId = decodeCredentialId(vault.credentialId);
2833
+ const prfSalt = vault.prfSalt ? decodeCredentialId(vault.prfSalt) : void 0;
2834
+ const assertion = await assertPasskey({ credentialId, rpId: void 0, prfSalt });
2835
+ const plaintext = await decryptVaultWithUnlockMaterial(vault, void 0, assertion);
2836
+ const signer = await embeddedPlaintextToSigner(plaintext);
2837
+ const [account] = await signer.getAccounts();
2838
+ const session = { address: account.address, vault, signer };
2839
+ activeSession = session;
2840
+ return session;
2841
+ }
2842
+ async function hasEmbeddedWallet() {
2843
+ const vault = await loadVaultFromIndexedDb();
2844
+ return vault != null;
2845
+ }
2846
+ async function createEmbeddedWallet(options) {
2847
+ const createdAt = (/* @__PURE__ */ new Date()).toISOString();
2848
+ const plaintext = await createHdDerivedPlaintext(createdAt);
2849
+ const { address, vault } = await encryptPlaintextWithPasscode(plaintext, options.passcode);
2850
+ await saveVaultToIndexedDb(vault);
2851
+ lockEmbeddedWallet();
2852
+ return { address, vault };
2853
+ }
2854
+ async function revealEmbeddedRecoveryPhrase(options = {}) {
2855
+ const vault = await loadVaultFromIndexedDb();
2856
+ if (!vault) {
2857
+ throw new EmbeddedWalletVaultError("No embedded wallet found on this device");
2858
+ }
2859
+ let plaintext;
2860
+ if (vaultUsesPasscodeUnlock(vault)) {
2861
+ plaintext = await decryptVaultWithPasscodeProtected(vault, options.passcode);
2862
+ } else {
2863
+ const credentialId = decodeCredentialId(vault.credentialId);
2864
+ const prfSalt = vault.prfSalt ? decodeCredentialId(vault.prfSalt) : void 0;
2865
+ const assertion = await assertPasskey({ credentialId, rpId: void 0, prfSalt });
2866
+ plaintext = await decryptVaultWithUnlockMaterial(vault, void 0, assertion);
2867
+ }
2868
+ const keyType = resolvePlaintextKeyType(plaintext);
2869
+ const mnemonic = recoveryMnemonicFromPlaintext(plaintext);
2870
+ const signer = await embeddedPlaintextToSigner(plaintext);
2871
+ const [account] = await signer.getAccounts();
2872
+ const warnings = [EMBEDDED_WALLET_RECOVERY_PHRASE_GENERAL_WARNING];
2873
+ if (keyType === EMBEDDED_WALLET_KEY_DIRECT_ENTROPY) {
2874
+ warnings.push(EMBEDDED_WALLET_RECOVERY_PHRASE_DIRECT_ENTROPY_WARNING);
2875
+ }
2876
+ return {
2877
+ mnemonic,
2878
+ keyType,
2879
+ address: account.address,
2880
+ warnings
2881
+ };
2882
+ }
2883
+ async function recoverEmbeddedWalletFromMnemonic(options) {
2884
+ const existing = await loadVaultFromIndexedDb();
2885
+ if (existing && !options.replaceExisting) {
2886
+ throw new EmbeddedWalletVaultError(
2887
+ "An embedded wallet already exists on this device; pass replaceExisting to recover over it"
2888
+ );
2889
+ }
2890
+ const hdPath = options.hdPath ?? defaultEmbeddedHdPath();
2891
+ let keyType = options.keyType;
2892
+ if (!keyType && options.expectedAddress) {
2893
+ keyType = await detectRecoveryMnemonicKeyType(
2894
+ options.mnemonic,
2895
+ options.expectedAddress,
2896
+ hdPath
2897
+ );
2898
+ }
2899
+ if (!keyType) {
2900
+ keyType = EMBEDDED_WALLET_KEY_HD_DERIVED;
2901
+ }
2902
+ const createdAt = (/* @__PURE__ */ new Date()).toISOString();
2903
+ const plaintext = await plaintextFromRecoveryMnemonic(
2904
+ options.mnemonic,
2905
+ keyType,
2906
+ createdAt,
2907
+ hdPath
2908
+ );
2909
+ const address = await recoveryMnemonicAddress(options.mnemonic, keyType, hdPath);
2910
+ if (options.expectedAddress && address !== options.expectedAddress) {
2911
+ throw new EmbeddedWalletVaultError(
2912
+ "Recovered wallet address does not match expectedAddress"
2913
+ );
2914
+ }
2915
+ const result = await encryptPlaintextWithPasscode(plaintext, options.passcode);
2916
+ if (result.address !== address) {
2917
+ throw new EmbeddedWalletVaultError("Internal error: recovered address mismatch");
2918
+ }
2919
+ await saveVaultToIndexedDb(result.vault);
2920
+ lockEmbeddedWallet();
2921
+ return { address: result.address, vault: result.vault, keyType };
2922
+ }
2923
+ async function enableEmbeddedPasskeyUnlock(options) {
2924
+ const vault = await loadVaultFromIndexedDb();
2925
+ if (!vault) {
2926
+ throw new EmbeddedWalletVaultError("No embedded wallet found on this device");
2927
+ }
2928
+ if (vaultUsesPasskeyUnlock(vault)) {
2929
+ throw new EmbeddedWalletVaultError("Passkey unlock is already enabled for this wallet");
2930
+ }
2931
+ if (!vaultUsesPasscodeUnlock(vault)) {
2932
+ throw new EmbeddedWalletVaultError("Unsupported vault unlock method for passkey upgrade");
2933
+ }
2934
+ const addressBefore = vault.publicAddress;
2935
+ const backupAcknowledged = vault.backupAcknowledged;
2936
+ const plaintext = await decryptVaultWithPasscodeProtected(vault, options.passcode);
2937
+ const registration = await registerPasskey({
2938
+ userId: options.userId,
2939
+ userName: options.userName,
2940
+ displayName: options.displayName,
2941
+ rpId: options.rpId
2942
+ });
2943
+ const result = await encryptPlaintextWithPasskeyRegistration(
2944
+ plaintext,
2945
+ registration,
2946
+ backupAcknowledged
2947
+ );
2948
+ if (result.address !== addressBefore) {
2949
+ throw new EmbeddedWalletVaultError("Passkey upgrade must not change wallet address");
2950
+ }
2951
+ await saveVaultToIndexedDb(result.vault);
2952
+ if (activeSession) {
2953
+ activeSession = { ...activeSession, vault: result.vault };
2954
+ }
2955
+ lockEmbeddedWallet();
2956
+ return result;
2957
+ }
2958
+ async function unlockEmbeddedWallet(options = {}) {
2959
+ const vault = await loadVaultFromIndexedDb();
2960
+ if (!vault) {
2961
+ throw new EmbeddedWalletVaultError("No embedded wallet found on this device");
2962
+ }
2963
+ return unlockVaultToSession(vault, options);
2964
+ }
2965
+ function lockEmbeddedWallet() {
2966
+ activeSession = null;
2967
+ }
2968
+ function getEmbeddedWalletSession() {
2969
+ return activeSession;
2970
+ }
2971
+ function getEmbeddedOfflineSigner() {
2972
+ if (!activeSession) {
2973
+ throw new EmbeddedWalletVaultError("Embedded wallet is locked");
2974
+ }
2975
+ assertVaultPermitsTransaction(activeSession.vault);
2976
+ const inner = activeSession.signer;
2977
+ return {
2978
+ getAccounts: () => inner.getAccounts(),
2979
+ signDirect: (signerAddress, signDoc) => inner.signDirect(signerAddress, signDoc)
2980
+ };
2981
+ }
2982
+ async function acknowledgeEmbeddedBackup() {
2983
+ const vault = await loadVaultFromIndexedDb();
2984
+ if (!vault) {
2985
+ throw new EmbeddedWalletVaultError("No embedded wallet found on this device");
2986
+ }
2987
+ const updated = markVaultBackupAcknowledged(vault);
2988
+ await saveVaultToIndexedDb(updated);
2989
+ if (activeSession) {
2990
+ activeSession = { ...activeSession, vault: updated };
2991
+ }
2992
+ return exportEncryptedBackup(updated);
2993
+ }
2994
+ function downloadEmbeddedBackupFile(backup, filename) {
2995
+ const blob = new Blob([serializeBackupFile(backup)], { type: "application/json" });
2996
+ const url = URL.createObjectURL(blob);
2997
+ const anchor = document.createElement("a");
2998
+ anchor.href = url;
2999
+ anchor.download = filename ?? `kingdom-os-wallet-backup-${backup.vault.publicAddress}.json`;
3000
+ anchor.click();
3001
+ URL.revokeObjectURL(url);
3002
+ }
3003
+ async function importEmbeddedBackup(json) {
3004
+ const backup = parseEncryptedBackup(json);
3005
+ await saveVaultToIndexedDb(backup.vault);
3006
+ lockEmbeddedWallet();
3007
+ return backup.vault;
3008
+ }
3009
+ async function clearEmbeddedWallet() {
3010
+ lockEmbeddedWallet();
3011
+ await clearVaultFromIndexedDb();
3012
+ }
1680
3013
 
1681
3014
  // src/submitApplication.ts
1682
3015
  function buildSubmitApplicationMsg(applicantWallet, applicationId, attestationInput, signature) {
@@ -1718,6 +3051,6 @@ async function signCitizenshipAttestation(params) {
1718
3051
  return { signature, input };
1719
3052
  }
1720
3053
 
1721
- export { ATTESTATION_TYPE_CITIZENSHIP_APPLICATION, ATTESTATION_TYPE_RECOVERY, ApplicationStatus, BECH32_PREFIX, CHAIN_COIN_TYPE, DEFAULT_CHAIN_ID, DEFAULT_REST_URL, DEFAULT_RPC_URL, InvalidChainConfigError, MsgSubmitApplication, MsgSubmitRecoveryAttestation, RecoveryAttestationStatus, RpcConnectionError, UKDR_DECIMALS, UKDR_DISPLAY_DENOM, UKDR_MINIMAL_DENOM, WalletAccountError, WalletConnectionError, WalletConnectionRejectedError, WalletNotInstalledError, attestationSignPayload, buildKingdomChainInfo, buildSubmitApplicationMsg, connectKeplr, connectLeap, createBrowserSigningClient, createKingdomChainRegistry, isKeplrAvailable, isLeapAvailable, providerSeedFromHex, publicKeyFromPrivateSeed, signAttestationPayload, signCitizenshipAttestation, suggestAndConnect, validateChainConfig };
3054
+ export { ATTESTATION_TYPE_CITIZENSHIP_APPLICATION, ATTESTATION_TYPE_RECOVERY, ApplicationStatus, BECH32_PREFIX, CHAIN_COIN_TYPE, DEFAULT_CHAIN_ID, DEFAULT_REST_URL, DEFAULT_RPC_URL, EMBEDDED_WALLET_KDF_PBKDF2, EMBEDDED_WALLET_KDF_PIN, EMBEDDED_WALLET_KDF_PRF, EMBEDDED_WALLET_KEY_DIRECT_ENTROPY, EMBEDDED_WALLET_KEY_HD_DERIVED, EMBEDDED_WALLET_PASSCODE_MAX_LENGTH, EMBEDDED_WALLET_PASSCODE_MIN_LENGTH, EMBEDDED_WALLET_PASSKEY_PBKDF2_ITERATIONS, EMBEDDED_WALLET_PIN_PBKDF2_ITERATIONS, EMBEDDED_WALLET_RECOVERY_PHRASE_DIRECT_ENTROPY_WARNING, EMBEDDED_WALLET_RECOVERY_PHRASE_GENERAL_WARNING, EMBEDDED_WALLET_VAULT_VERSION, EmbeddedWalletBackupRequiredError, EmbeddedWalletLockoutError, EmbeddedWalletVaultError, EmbeddedWalletWeakPasscodeError, InvalidChainConfigError, MsgSubmitApplication, MsgSubmitRecoveryAttestation, PASSCODE_LOCKOUT_FAILURE_THRESHOLD, PASSCODE_LOCKOUT_INITIAL_MS, PASSCODE_LOCKOUT_MAX_MS, RecoveryAttestationStatus, RpcConnectionError, UKDR_DECIMALS, UKDR_DISPLAY_DENOM, UKDR_MINIMAL_DENOM, WALLETCONNECT_COSMOS_METHODS, WALLETCONNECT_COSMOS_NAMESPACE, WEBAUTHN_RP_NAME, WalletAccountError, WalletConnectNotInitializedError, WalletConnectSessionError, WalletConnectSigningError, WalletConnectionError, WalletConnectionRejectedError, WalletNotInstalledError, WebAuthnUnavailableError, WebAuthnUserCancelledError, acknowledgeEmbeddedBackup, addressFromHdMnemonic, addressFromPrivateKey, assertPasscodeAllowedForCreation, assertPasscodeUnlockAllowed, assertPasskey, assertValidPasscode, assertValidRecoveryMnemonic, assertVaultPermitsTransaction, attestationSignPayload, buildKingdomChainInfo, buildRequiredCosmosNamespaces, buildSubmitApplicationMsg, clearEmbeddedWallet, clearPasscodeLockoutForTests, clearPasscodeLockoutRecord, clearVaultFromIndexedDb, connectCosmostation, connectKeplr, connectLeap, connectWalletConnect, createBrowserSigningClient, createEmbeddedWallet, createHdDerivedPlaintext, createKingdomChainRegistry, createPasskeyMaterialFromAssertion, createPbkdf2Salt, createWalletConnectOfflineSigner, decodeCredentialId, decodeDirectEntropyMnemonic, decryptWalletPayload, defaultEmbeddedHdPath, deriveKekFromPasscode, deriveKekFromPbkdf2, deriveKekFromPrf, derivePrivateKeyFromHdMnemonic, detectRecoveryMnemonicKeyType, detectWebAuthnPrfCapabilities, disconnectWalletConnect, downloadEmbeddedBackupFile, embeddedPlaintextToSigner, enableEmbeddedPasskeyUnlock, encodeCredentialId, encodeDirectEntropyMnemonic, encryptWalletPayload, evaluatePasscodeStrength, exportEncryptedBackup, getCosmostationKeplrApi, getEmbeddedOfflineSigner, getEmbeddedWalletSession, getPasscodeLockoutState, hasEmbeddedWallet, hasMixedCharacterClasses, importEmbeddedBackup, initWalletConnectClient, isCosmostationAvailable, isKeplrAvailable, isLeapAvailable, loadPasscodeLockoutRecord, loadVaultFromIndexedDb, lockEmbeddedWallet, markVaultBackupAcknowledged, normalizePasscode, normalizeRecoveryMnemonic, parseEncryptedBackup, parseWalletConnectAccount, plaintextFromRecoveryMnemonic, providerSeedFromHex, publicKeyFromPrivateSeed, readPrfOutput, recordPasscodeUnlockFailure, recordPasscodeUnlockSuccess, recoverEmbeddedWalletFromMnemonic, recoveryMnemonicAddress, recoveryMnemonicFromPlaintext, registerPasskey, resolvePlaintextKeyType, restoreWalletConnectSession, revealEmbeddedRecoveryPhrase, savePasscodeLockoutRecord, saveVaultToIndexedDb, selectEmbeddedWalletKdf, serializeBackupFile, signAttestationPayload, signCitizenshipAttestation, suggestAndConnect, toWalletConnectCosmosChainId, unlockEmbeddedWallet, validateChainConfig, vaultUsesPasscodeUnlock, vaultUsesPasskeyUnlock };
1722
3055
  //# sourceMappingURL=index.js.map
1723
3056
  //# sourceMappingURL=index.js.map