diff --git a/BitcoinKit.xcodeproj/project.pbxproj b/BitcoinKit.xcodeproj/project.pbxproj index 54e5ffb0..69b646d1 100644 --- a/BitcoinKit.xcodeproj/project.pbxproj +++ b/BitcoinKit.xcodeproj/project.pbxproj @@ -80,8 +80,6 @@ 147494EE201FADAC006D1CF8 /* MurmurHash.swift in Sources */ = {isa = PBXBuildFile; fileRef = 147494ED201FADAC006D1CF8 /* MurmurHash.swift */; }; 147494F0201FAE30006D1CF8 /* Serialization.swift in Sources */ = {isa = PBXBuildFile; fileRef = 147494EF201FAE30006D1CF8 /* Serialization.swift */; }; 147F9729201FC89E0071F49D /* BloomFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 147F9728201FC89E0071F49D /* BloomFilter.swift */; }; - 1482B5E22026B0680098B612 /* Mnemonic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1482B5E12026B0680098B612 /* Mnemonic.swift */; }; - 1482B5E42026F2590098B612 /* WordList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1482B5E32026F2580098B612 /* WordList.swift */; }; 1482B5E8202721FF0098B612 /* HDPrivateKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1482B5E7202721FF0098B612 /* HDPrivateKey.swift */; }; 1482B5EA20273B8A0098B612 /* HDPublicKey.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1482B5E920273B8A0098B612 /* HDPublicKey.swift */; }; 14839A7C202F79F900A6CB34 /* PaymentURI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14839A7B202F79F900A6CB34 /* PaymentURI.swift */; }; @@ -198,6 +196,21 @@ 29F5D1E02110495F007DA3BF /* OpCodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29F5D1DF2110495F007DA3BF /* OpCodeTests.swift */; }; 29F5D1E421106772007DA3BF /* BigNumberTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29F5D1E321106772007DA3BF /* BigNumberTests.swift */; }; 29F5D1E6211068E8007DA3BF /* BigNumber.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29F5D1E5211068E8007DA3BF /* BigNumber.swift */; }; + 481BDCA423320B7000FC79FC /* WordList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDC9823320B7000FC79FC /* WordList.swift */; }; + 481BDCA523320B7000FC79FC /* WordList+Japanese.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDC9923320B7000FC79FC /* WordList+Japanese.swift */; }; + 481BDCA623320B7000FC79FC /* WordList+English.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDC9A23320B7000FC79FC /* WordList+English.swift */; }; + 481BDCA723320B7000FC79FC /* WordList+French.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDC9B23320B7000FC79FC /* WordList+French.swift */; }; + 481BDCA823320B7000FC79FC /* WordList+Italian.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDC9C23320B7000FC79FC /* WordList+Italian.swift */; }; + 481BDCA923320B7000FC79FC /* WordList+Korean.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDC9D23320B7000FC79FC /* WordList+Korean.swift */; }; + 481BDCAA23320B7000FC79FC /* WordList+TraditionalChinese.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDC9E23320B7000FC79FC /* WordList+TraditionalChinese.swift */; }; + 481BDCAB23320B7000FC79FC /* WordList+Spanish.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDC9F23320B7000FC79FC /* WordList+Spanish.swift */; }; + 481BDCAC23320B7000FC79FC /* WordList+SimplifiedChinese.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDCA023320B7000FC79FC /* WordList+SimplifiedChinese.swift */; }; + 481BDCAD23320B7000FC79FC /* UInt11.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDCA123320B7000FC79FC /* UInt11.swift */; }; + 481BDCAE23320B7000FC79FC /* BitArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDCA223320B7000FC79FC /* BitArray.swift */; }; + 481BDCAF23320B7000FC79FC /* Mnemonic.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDCA323320B7000FC79FC /* Mnemonic.swift */; }; + 481BDCB523320C1B00FC79FC /* RangeReplaceableCollection_Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDCB223320C1A00FC79FC /* RangeReplaceableCollection_Extensions.swift */; }; + 481BDCB623320C1B00FC79FC /* FixedWidthInteger_Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDCB323320C1A00FC79FC /* FixedWidthInteger_Extensions.swift */; }; + 481BDCB723320C1B00FC79FC /* Data_Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 481BDCB423320C1A00FC79FC /* Data_Extensions.swift */; }; 6E20AEC72112C290008A9810 /* PrivateKeyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E20AEC62112C290008A9810 /* PrivateKeyTests.swift */; }; 6E20AEC92112C31A008A9810 /* LegacyAddressTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E20AEC82112C31A008A9810 /* LegacyAddressTests.swift */; }; 6E20AECB2112C434008A9810 /* HDPrivateKeyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E20AECA2112C434008A9810 /* HDPrivateKeyTests.swift */; }; @@ -326,8 +339,6 @@ 147494ED201FADAC006D1CF8 /* MurmurHash.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MurmurHash.swift; sourceTree = ""; }; 147494EF201FAE30006D1CF8 /* Serialization.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Serialization.swift; sourceTree = ""; }; 147F9728201FC89E0071F49D /* BloomFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BloomFilter.swift; sourceTree = ""; }; - 1482B5E12026B0680098B612 /* Mnemonic.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Mnemonic.swift; sourceTree = ""; }; - 1482B5E32026F2580098B612 /* WordList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WordList.swift; sourceTree = ""; }; 1482B5E7202721FF0098B612 /* HDPrivateKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HDPrivateKey.swift; sourceTree = ""; }; 1482B5E920273B8A0098B612 /* HDPublicKey.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HDPublicKey.swift; sourceTree = ""; }; 14839A7B202F79F900A6CB34 /* PaymentURI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaymentURI.swift; sourceTree = ""; }; @@ -444,6 +455,21 @@ 29F5D1DF2110495F007DA3BF /* OpCodeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpCodeTests.swift; sourceTree = ""; }; 29F5D1E321106772007DA3BF /* BigNumberTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BigNumberTests.swift; sourceTree = ""; }; 29F5D1E5211068E8007DA3BF /* BigNumber.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BigNumber.swift; sourceTree = ""; }; + 481BDC9823320B7000FC79FC /* WordList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WordList.swift; sourceTree = ""; }; + 481BDC9923320B7000FC79FC /* WordList+Japanese.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WordList+Japanese.swift"; sourceTree = ""; }; + 481BDC9A23320B7000FC79FC /* WordList+English.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WordList+English.swift"; sourceTree = ""; }; + 481BDC9B23320B7000FC79FC /* WordList+French.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WordList+French.swift"; sourceTree = ""; }; + 481BDC9C23320B7000FC79FC /* WordList+Italian.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WordList+Italian.swift"; sourceTree = ""; }; + 481BDC9D23320B7000FC79FC /* WordList+Korean.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WordList+Korean.swift"; sourceTree = ""; }; + 481BDC9E23320B7000FC79FC /* WordList+TraditionalChinese.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WordList+TraditionalChinese.swift"; sourceTree = ""; }; + 481BDC9F23320B7000FC79FC /* WordList+Spanish.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WordList+Spanish.swift"; sourceTree = ""; }; + 481BDCA023320B7000FC79FC /* WordList+SimplifiedChinese.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "WordList+SimplifiedChinese.swift"; sourceTree = ""; }; + 481BDCA123320B7000FC79FC /* UInt11.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UInt11.swift; sourceTree = ""; }; + 481BDCA223320B7000FC79FC /* BitArray.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BitArray.swift; sourceTree = ""; }; + 481BDCA323320B7000FC79FC /* Mnemonic.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Mnemonic.swift; sourceTree = ""; }; + 481BDCB223320C1A00FC79FC /* RangeReplaceableCollection_Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RangeReplaceableCollection_Extensions.swift; sourceTree = ""; }; + 481BDCB323320C1A00FC79FC /* FixedWidthInteger_Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FixedWidthInteger_Extensions.swift; sourceTree = ""; }; + 481BDCB423320C1A00FC79FC /* Data_Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Data_Extensions.swift; sourceTree = ""; }; 6E20AEC62112C290008A9810 /* PrivateKeyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrivateKeyTests.swift; sourceTree = ""; }; 6E20AEC82112C31A008A9810 /* LegacyAddressTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyAddressTests.swift; sourceTree = ""; }; 6E20AECA2112C434008A9810 /* HDPrivateKeyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HDPrivateKeyTests.swift; sourceTree = ""; }; @@ -571,6 +597,7 @@ 147494C9201F9A29006D1CF8 /* BitcoinKit */ = { isa = PBXGroup; children = ( + 481BDCB123320C1A00FC79FC /* Extensions */, 292AEA3C2112EB190012D7E5 /* Core */, 296ADC1E2112EBAD007EE5C7 /* Scripts */, 296ADC1F2112EBF4007EE5C7 /* Wallet */, @@ -591,40 +618,40 @@ 147494D4201F9A29006D1CF8 /* BitcoinKitTests */ = { isa = PBXGroup; children = ( - 147494D5201F9A29006D1CF8 /* BitcoinKitTests.swift */, - 297C408021100810003AF4EF /* MnemonicTests.swift */, - 0F59D2EA21370FD8008B9C0B /* BlockMessageTests.swift */, - 2949920320F22A1500D078B6 /* TestHelpers.swift */, - CF432AF120F0CF9100AD4020 /* Base58Tests.swift */, - CF432AF520F0ED4500AD4020 /* AddressTests.swift */, - CFA2906F2101CDCA001A1BAB /* ScriptTests.swift */, - CFA290732102B650001A1BAB /* ScriptMachineTests.swift */, + 147494D7201F9A29006D1CF8 /* Info.plist */, CF432AF920F222B400AD4020 /* AddressFactoryTests.swift */, + CF432AF520F0ED4500AD4020 /* AddressTests.swift */, + CF432AF120F0CF9100AD4020 /* Base58Tests.swift */, CF432AF320F0DFAC00AD4020 /* Bech32Tests.swift */, - CF432AFB20F25E0000AD4020 /* TestHelpersTests.swift */, - 29F5D1DF2110495F007DA3BF /* OpCodeTests.swift */, 29F5D1E321106772007DA3BF /* BigNumberTests.swift */, - 147494D7201F9A29006D1CF8 /* Info.plist */, + 147494D5201F9A29006D1CF8 /* BitcoinKitTests.swift */, + 0F59D2EA21370FD8008B9C0B /* BlockMessageTests.swift */, + 6E20AED42112C8F9008A9810 /* BloomFilterTests.swift */, + 6E20AECC2112C559008A9810 /* CashAddrTests.swift */, 6EE789DA2112C1E500EAB620 /* CryptoTests.swift */, - 6E20AEC62112C290008A9810 /* PrivateKeyTests.swift */, - E6C9FB9C2243FF7A000AAE12 /* PointMultiplicationTests.swift */, E6A6430F2244EA3B00CD4BFC /* DecodePointFromCompressedKeyTests.swift */, - 6E20AEC82112C31A008A9810 /* LegacyAddressTests.swift */, - 6E20AECA2112C434008A9810 /* HDPrivateKeyTests.swift */, - 6E20AECC2112C559008A9810 /* CashAddrTests.swift */, 6E20AECE2112C66C008A9810 /* HDKeyChainTests.swift */, - 6E20AED02112C6AA008A9810 /* PaymentURITests.swift */, - 6E20AED22112C7DA008A9810 /* TransactionTests.swift */, + 6E20AECA2112C434008A9810 /* HDPrivateKeyTests.swift */, + 6E20AEC82112C31A008A9810 /* LegacyAddressTests.swift */, 0C2375A32132501700DB2872 /* MessageSerializerTests.swift */, - 6E20AED42112C8F9008A9810 /* BloomFilterTests.swift */, + 29089F0D2122BE7200E0C305 /* MockHelperTests.swift */, 6E20AED62112D417008A9810 /* MurmurHashTests.swift */, 6E797C442116C8A5003BEDFD /* OpCodeFactoryTests.swift */, - 29089F0D2122BE7200E0C305 /* MockHelperTests.swift */, - A20B537E211C72F9009D147A /* UInt256Tests.swift */, - A2DAA5F6211F0579009DAB7B /* UInt32MathTests.swift */, + 29F5D1DF2110495F007DA3BF /* OpCodeTests.swift */, + 6E20AED02112C6AA008A9810 /* PaymentURITests.swift */, + E6C9FB9C2243FF7A000AAE12 /* PointMultiplicationTests.swift */, + 6E20AEC62112C290008A9810 /* PrivateKeyTests.swift */, + A2E11230212C400A00A0A40A /* ProofOfWorkTests.swift */, + CFA290732102B650001A1BAB /* ScriptMachineTests.swift */, + CFA2906F2101CDCA001A1BAB /* ScriptTests.swift */, A2DAA5F8211F2C93009DAB7B /* SerializationTests.swift */, + 2949920320F22A1500D078B6 /* TestHelpers.swift */, + 297C408021100810003AF4EF /* MnemonicTests.swift */, + CF432AFB20F25E0000AD4020 /* TestHelpersTests.swift */, + 6E20AED22112C7DA008A9810 /* TransactionTests.swift */, + A2DAA5F6211F0579009DAB7B /* UInt32MathTests.swift */, A2DE510F212AFCF200F54EA0 /* UInt256+BitcoinTests.swift */, - A2E11230212C400A00A0A40A /* ProofOfWorkTests.swift */, + A20B537E211C72F9009D147A /* UInt256Tests.swift */, ); name = BitcoinKitTests; path = Tests/BitcoinKitTests; @@ -671,14 +698,13 @@ 292AEA3C2112EB190012D7E5 /* Core */ = { isa = PBXGroup; children = ( + 481BDC9623320B7000FC79FC /* Mnemonic */, 29AC9962214E898800AE82FE /* Keys */, 147494EB201F9E4F006D1CF8 /* Network.swift */, 1463E6B52025E99C0033DAAE /* BlockChain.swift */, 1463E6B32025E9480033DAAE /* BlockStore.swift */, E6A64305224418EB00CD4BFC /* PointOnCurve.swift */, E6A643072244190400CD4BFC /* Scalar32Bytes.swift */, - 1482B5E12026B0680098B612 /* Mnemonic.swift */, - 1482B5E32026F2580098B612 /* WordList.swift */, 14839A7B202F79F900A6CB34 /* PaymentURI.swift */, 147494E3201F9B85006D1CF8 /* Crypto.swift */, 0C61BF50215B988A001415CA /* Encoding.swift */, @@ -943,6 +969,43 @@ path = Keys; sourceTree = ""; }; + 481BDC9623320B7000FC79FC /* Mnemonic */ = { + isa = PBXGroup; + children = ( + 481BDC9723320B7000FC79FC /* WordList */, + 481BDCA123320B7000FC79FC /* UInt11.swift */, + 481BDCA223320B7000FC79FC /* BitArray.swift */, + 481BDCA323320B7000FC79FC /* Mnemonic.swift */, + ); + path = Mnemonic; + sourceTree = ""; + }; + 481BDC9723320B7000FC79FC /* WordList */ = { + isa = PBXGroup; + children = ( + 481BDC9823320B7000FC79FC /* WordList.swift */, + 481BDC9923320B7000FC79FC /* WordList+Japanese.swift */, + 481BDC9A23320B7000FC79FC /* WordList+English.swift */, + 481BDC9B23320B7000FC79FC /* WordList+French.swift */, + 481BDC9C23320B7000FC79FC /* WordList+Italian.swift */, + 481BDC9D23320B7000FC79FC /* WordList+Korean.swift */, + 481BDC9E23320B7000FC79FC /* WordList+TraditionalChinese.swift */, + 481BDC9F23320B7000FC79FC /* WordList+Spanish.swift */, + 481BDCA023320B7000FC79FC /* WordList+SimplifiedChinese.swift */, + ); + path = WordList; + sourceTree = ""; + }; + 481BDCB123320C1A00FC79FC /* Extensions */ = { + isa = PBXGroup; + children = ( + 481BDCB223320C1A00FC79FC /* RangeReplaceableCollection_Extensions.swift */, + 481BDCB323320C1A00FC79FC /* FixedWidthInteger_Extensions.swift */, + 481BDCB423320C1A00FC79FC /* Data_Extensions.swift */, + ); + path = Extensions; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -1095,12 +1158,14 @@ 1482B5EA20273B8A0098B612 /* HDPublicKey.swift in Sources */, 2914BE5C211BD0DF00B349CB /* OP_CHECKSEQUENCEVERIFY.swift in Sources */, 29E1ED6F210EB4F8007F4627 /* OP_EXAMPLE.swift in Sources */, + 481BDCA823320B7000FC79FC /* WordList+Italian.swift in Sources */, 14F37A3A20209B5400D34748 /* Transaction.swift in Sources */, - 1482B5E42026F2590098B612 /* WordList.swift in Sources */, 14839A93202FE6AC00A6CB34 /* FilterLoadMessage.swift in Sources */, 14839A9D202FE72600A6CB34 /* TransactionOutPoint.swift in Sources */, + 481BDCB723320C1B00FC79FC /* Data_Extensions.swift in Sources */, E6A643082244190400CD4BFC /* Scalar32Bytes.swift in Sources */, 2933014D214FCE150028946B /* TransactionHistoryProvider.swift in Sources */, + 481BDCAB23320B7000FC79FC /* WordList+Spanish.swift in Sources */, 0C1DE155211D787100FE8E43 /* OP_TOTALSTACK.swift in Sources */, 2949920220F228B400D078B6 /* UnspentTransaction.swift in Sources */, 0C0900442116BA8F0077E9BC /* OP_RSHIFT.swift in Sources */, @@ -1112,6 +1177,7 @@ 297DB97320EB12E60077EEEE /* AddressType.swift in Sources */, 294DDE43211B31EA00B7F645 /* OP_VERIF.swift in Sources */, 14839A83202FE5F800A6CB34 /* AddressMessage.swift in Sources */, + 481BDCAA23320B7000FC79FC /* WordList+TraditionalChinese.swift in Sources */, 0C0900302116A3EB0077E9BC /* OP_2DIV.swift in Sources */, 0C1DE17A211E848600FE8E43 /* OP_CAT.swift in Sources */, 0C66CD092125427C0049DB89 /* OP_XOR.swift in Sources */, @@ -1120,6 +1186,7 @@ 2914BE60211C063300B349CB /* OP_PUBKEY.swift in Sources */, 294DDE3D211B31C100B7F645 /* OP_VER.swift in Sources */, 298FA5812126C77A009EFAC4 /* ScriptFactory.swift in Sources */, + 481BDCA423320B7000FC79FC /* WordList.swift in Sources */, 14839AA3202FE78600A6CB34 /* Message.swift in Sources */, 29290B95210AF86C00D2BE78 /* OP_N.swift in Sources */, 0C1DE171211E7DE300FE8E43 /* OP_2OVER.swift in Sources */, @@ -1143,6 +1210,7 @@ 0C1DE17C211E8A0100FE8E43 /* OP_SPLIT.swift in Sources */, 294DDE3B211B31B100B7F645 /* OP_NOP.swift in Sources */, 0C66CD07212542730049DB89 /* OP_OR.swift in Sources */, + 481BDCAF23320B7000FC79FC /* Mnemonic.swift in Sources */, 298E17C42150AD6900FF6C77 /* TransactionBuilder.swift in Sources */, 0C1DE15F211E6FA700FE8E43 /* OP_NIP.swift in Sources */, 29330152214FDC880028946B /* UserDefaults+BitcoinKitDataStoreProtocol.swift in Sources */, @@ -1151,12 +1219,14 @@ 2914BE41211BAAC900B349CB /* OP_RIPEMD160.swift in Sources */, 29E1ED75210EF071007F4627 /* OP_CHECKMULTISIGVERIFY.swift in Sources */, 294DDE3F211B31CB00B7F645 /* OP_IF.swift in Sources */, + 481BDCA523320B7000FC79FC /* WordList+Japanese.swift in Sources */, 29290B8D210AF59600D2BE78 /* OpCodeFactory.swift in Sources */, A246ED102118621B0000418D /* MerkleTree.swift in Sources */, 147F9729201FC89E0071F49D /* BloomFilter.swift in Sources */, 0C1DD40A211819CE004BA8A8 /* OP_GREATERTHAN.swift in Sources */, 2914BE49211BAB1900B349CB /* OP_CODESEPARATOR.swift in Sources */, 29F5D1E6211068E8007DA3BF /* BigNumber.swift in Sources */, + 481BDCB523320C1B00FC79FC /* RangeReplaceableCollection_Extensions.swift in Sources */, 0C1DE169211E7AB000FE8E43 /* OP_TUCK.swift in Sources */, 2914BE52211BCF9600B349CB /* OP_RESERVED2.swift in Sources */, 0C66CD05212542660049DB89 /* OP_AND.swift in Sources */, @@ -1165,14 +1235,17 @@ 14839AA9202FE7DD00A6CB34 /* VarString.swift in Sources */, E6A64306224418EB00CD4BFC /* PointOnCurve.swift in Sources */, 14F37A3E2020A02000D34748 /* SighashType.swift in Sources */, + 481BDCAE23320B7000FC79FC /* BitArray.swift in Sources */, A2F06FBA2126785200DFF652 /* UInt32+Utility.swift in Sources */, 14839A8F202FE68000A6CB34 /* PongMessage.swift in Sources */, 294DDE41211B31D600B7F645 /* OP_NOTIF.swift in Sources */, + 481BDCA923320B7000FC79FC /* WordList+Korean.swift in Sources */, 0C1DE161211E717500FE8E43 /* OP_OVER.swift in Sources */, 0C1DD42321182126004BA8A8 /* OP_MOD.swift in Sources */, A29721F8211B2497007228D5 /* Math.swift in Sources */, 29290B9B210AF88C00D2BE78 /* OP_HASH160.swift in Sources */, 14CDC3862021824200C01556 /* Wallet.swift in Sources */, + 481BDCAC23320B7000FC79FC /* WordList+SimplifiedChinese.swift in Sources */, 0C1DE165211E75A800FE8E43 /* OP_ROLL.swift in Sources */, 0C1DD41621181CC0004BA8A8 /* OP_GREATERTHANOREQUAL.swift in Sources */, 2914BE45211BAAF400B349CB /* OP_SHA1.swift in Sources */, @@ -1187,6 +1260,7 @@ 0C1DD41D21182043004BA8A8 /* OP_SUB.swift in Sources */, 29290B93210AF86400D2BE78 /* OP_0.swift in Sources */, 0C1DE163211E724E00FE8E43 /* OP_PICK.swift in Sources */, + 481BDCA623320B7000FC79FC /* WordList+English.swift in Sources */, 2914BE47211BAB0500B349CB /* OP_HASH256.swift in Sources */, 298E17BE2150983C00FF6C77 /* BitcoinComTransactionHistoryProvider.swift in Sources */, 2949920020F227EB00D078B6 /* VersionByte.swift in Sources */, @@ -1196,6 +1270,7 @@ 0C61BF51215B988A001415CA /* Encoding.swift in Sources */, 29E1ED73210ECD35007F4627 /* OP_CHECKMULTISIG.swift in Sources */, 29290B99210AF88400D2BE78 /* OP_EQUALVERIFY.swift in Sources */, + 481BDCB623320C1B00FC79FC /* FixedWidthInteger_Extensions.swift in Sources */, 294DDE47211B322000B7F645 /* OP_ELSE.swift in Sources */, 2914BE50211BCF8E00B349CB /* OP_RESERVED1.swift in Sources */, 0C1DE173211E7E7C00FE8E43 /* OP_2ROT.swift in Sources */, @@ -1204,6 +1279,7 @@ 14839A89202FE63400A6CB34 /* InventoryItem.swift in Sources */, 14CDC38C2021EF5000C01556 /* Helpers.swift in Sources */, 1419E83B202CDBE500FCB0BE /* BitcoinKitPrivate.m in Sources */, + 481BDCA723320B7000FC79FC /* WordList+French.swift in Sources */, 0C1DD40C21181A40004BA8A8 /* OP_LESSTHAN.swift in Sources */, 298E17C021509DC200FF6C77 /* BitcoinComTransactionBroadcaster.swift in Sources */, 147494F0201FAE30006D1CF8 /* Serialization.swift in Sources */, @@ -1228,6 +1304,7 @@ 2914BE5E211C062200B349CB /* OP_PUBKEYHASH.swift in Sources */, 0C1DE15B211D819A00FE8E43 /* OP_DEPTH.swift in Sources */, 29EA70362150EB76009B6485 /* AddressProvider.swift in Sources */, + 481BDCAD23320B7000FC79FC /* UInt11.swift in Sources */, 0C1DD41221181B41004BA8A8 /* OP_BOOLOR.swift in Sources */, 294DDE32211A05D200B7F645 /* OP_RETURN.swift in Sources */, 29089F102122D06300E0C305 /* MockKey.swift in Sources */, @@ -1247,7 +1324,6 @@ 0C1DE16F211E7D5800FE8E43 /* OP_3DUP.swift in Sources */, 14839A97202FE6D000A6CB34 /* BlockMessage.swift in Sources */, 0C1DE16D211E7CC300FE8E43 /* OP_2DUP.swift in Sources */, - 1482B5E22026B0680098B612 /* Mnemonic.swift in Sources */, 29330149214FC8E30028946B /* UtxoProvider.swift in Sources */, 2949920620F22DCA00D078B6 /* UnsignedTransaction.swift in Sources */, 14839A9B202FE71200A6CB34 /* TransactionInput.swift in Sources */, diff --git a/Sources/BitcoinKit/Core/Mnemonic.swift b/Sources/BitcoinKit/Core/Mnemonic.swift deleted file mode 100644 index b361c8c2..00000000 --- a/Sources/BitcoinKit/Core/Mnemonic.swift +++ /dev/null @@ -1,112 +0,0 @@ -// -// Mnemonic.swift -// -// Copyright © 2018 Kishikawa Katsumi -// Copyright © 2018 BitcoinKit developers -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Foundation -#if BitcoinKitXcode -import BitcoinKit.Private -#else -import BitcoinKitPrivate -#endif - -public struct Mnemonic { - public enum Strength: Int { - case `default` = 128 - case low = 160 - case medium = 192 - case high = 224 - case veryHigh = 256 - } - - public enum Language { - case english - case japanese - case korean - case spanish - case simplifiedChinese - case traditionalChinese - case french - case italian - } - - public static func generate(strength: Strength = .default, language: Language = .english) throws -> [String] { - let byteCount = strength.rawValue / 8 - var bytes = Data(count: byteCount) - let status = bytes.withUnsafeMutableBytes { SecRandomCopyBytes(kSecRandomDefault, byteCount, $0.baseAddress.unsafelyUnwrapped) } - guard status == errSecSuccess else { throw MnemonicError.randomBytesError } - return generate(entropy: bytes, language: language) - } - - internal static func generate(entropy: Data, language: Language = .english) -> [String] { - let list = wordList(for: language) - var bin = String(entropy.flatMap { ("00000000" + String($0, radix: 2)).suffix(8) }) - - let hash = Crypto.sha256(entropy) - let bits = entropy.count * 8 - let cs = bits / 32 - - let hashbits = String(hash.flatMap { ("00000000" + String($0, radix: 2)).suffix(8) }) - let checksum = String(hashbits.prefix(cs)) - bin += checksum - - var mnemonic = [String]() - for i in 0..<(bin.count / 11) { - let wi = Int(bin[bin.index(bin.startIndex, offsetBy: i * 11).. Data { - let mnemonic = m.joined(separator: " ").decomposedStringWithCompatibilityMapping.data(using: .utf8)! - let salt = ("mnemonic" + passphrase).decomposedStringWithCompatibilityMapping.data(using: .utf8)! - let seed = _Key.deriveKey(mnemonic, salt: salt, iterations: 2048, keyLength: 64) - return seed - } - - private static func wordList(for language: Language) -> [String.SubSequence] { - switch language { - case .english: - return WordList.english - case .japanese: - return WordList.japanese - case .korean: - return WordList.korean - case .spanish: - return WordList.spanish - case .simplifiedChinese: - return WordList.simplifiedChinese - case .traditionalChinese: - return WordList.traditionalChinese - case .french: - return WordList.french - case .italian: - return WordList.italian - } - } -} - -public enum MnemonicError: Error { - case randomBytesError -} diff --git a/Sources/BitcoinKit/Core/Mnemonic/BitArray.swift b/Sources/BitcoinKit/Core/Mnemonic/BitArray.swift new file mode 100644 index 00000000..f188c881 --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/BitArray.swift @@ -0,0 +1,376 @@ +// +// BitArray.swift +// +// Created by Mauricio Santos on 2/23/15. +// Modified by BitcoinKit developers +// +// Github: https://github.com/mauriciosantos/Buckets-Swift/blob/master/Source/BitArray.swift +// +// Copyright (c) 2015 Mauricio Santos +// +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +/// An array of boolean values stored +/// using individual bits, thus providing a +/// very small memory footprint. It has most of the features of a +/// standard array such as constant time random access and +/// amortized constant time insertion at the end of the array. +/// +/// Conforms to `MutableCollection`, `ExpressibleByArrayLiteral` +/// , `Equatable`, `Hashable`, `CustomStringConvertible` +public struct BitArray { + + // MARK: Creating a BitArray + + /// Constructs an empty bit array. + public init() {} + + /// Constructs a bit array from a `Bool` sequence, such as an array. + public init(_ elements: S) where S.Iterator.Element == Bool { + for value in elements { + append(value) + } + } + + public init(data: Data) { + guard let viaBitstring = BitArray(binaryString: data.binaryString) else { + fatalError("should always be able to init from data, incorrect implementation of either Data.binaryString or `Self.init(binaryString:)`") + } + + assert(viaBitstring.asData() == data, "assert correctness of conversion") + + self = viaBitstring + } + + /// A non-optimized initializer taking a binary String, if the string passed contains any other characters than '0' or '1' then the init will fail (return nil) + public init?(binaryString: S) where S: StringProtocol { + let mapped: [Bool] = binaryString.compactMap { + if $0 == "1" { + return true + } else if $0 == "0" { + return false + } else { + fatalError("bad char: \($0)") + } + } + self.init(mapped) + } + + /// A non-optimized initializer taking an array of `UInt11` + init(_ elements: S) where S: Sequence, S.Iterator.Element == UInt11 { + let binaryString: String = elements.map { $0.binaryString }.joined() + guard let bitArray = BitArray(binaryString: binaryString) else { fatalError("Should always be able to create BitArray from [UInt11] binaryString: '\(binaryString)'") } + self = bitArray + } + + /// Constructs a new bit array from an `Int` array representation. + /// All values different from 0 are considered `true`. + public init(intRepresentation: [Int]) { + bits.reserveCapacity((intRepresentation.count / Constants.IntSize) + 1) + for value in intRepresentation { + append(value != 0) + } + } + + /// Constructs a new bit array with `count` bits set to the specified value. + public init(repeating repeatedValue: Bool, count: Int) { + precondition(!isEmpty, "Can't construct BitArray with count < 0") + + let numberOfInts = (count / Constants.IntSize) + 1 + let intValue = repeatedValue ? ~0 : 0 + bits = [Int](repeating: intValue, count: numberOfInts) + self.count = count + + if repeatedValue { + bits[bits.count - 1] = 0 + let missingBits = count % Constants.IntSize + self.count = count - missingBits + for _ in 0..= bits.count { + bits.append(0) + } + setValue(bit, atIndex: count) + count += 1 + } + + /// Inserts a bit into the array at a given index. + /// Use this method to insert a new bit anywhere within the range + /// of existing bits, or as the last bit. The index must be less + /// than or equal to the number of bits in the bit array. If you + /// attempt to remove a bit at a greater index, you’ll trigger an error. + public mutating func insert(_ bit: Bool, at index: Int) { + checkIndex(index, lessThan: count + 1) + append(bit) + for i in stride(from: (count - 2), through: index, by: -1) { + let iBit = valueAtIndex(i) + setValue(iBit, atIndex: i + 1) + } + setValue(bit, atIndex: index) + + } + + /// Removes the last bit from the bit array and returns it. + /// + /// - returns: The last bit, or nil if the bit array is empty. + @discardableResult + public mutating func removeLast() -> Bool { + if let value = last { + setValue(false, atIndex: count - 1) + count -= 1 + return value + } + preconditionFailure("Array is empty") + } + + /// Removes the bit at the given index and returns it. + /// The index must be less than the number of bits in the + /// bit array. If you attempt to remove a bit at a + /// greater index, you’ll trigger an error. + @discardableResult + public mutating func remove(at index: Int) -> Bool { + checkIndex(index) + let bit = valueAtIndex(index) + + for i in (index + 1).. Bool { + let indexPath = realIndexPath(logicalIndex) + var mask = 1 << indexPath.bitIndex + mask = mask & bits[indexPath.arrayIndex] + return mask != 0 + } + + fileprivate mutating func setValue(_ newValue: Bool, atIndex logicalIndex: Int) { + let indexPath = realIndexPath(logicalIndex) + let mask = 1 << indexPath.bitIndex + let oldValue = mask & bits[indexPath.arrayIndex] != 0 + + switch (oldValue, newValue) { + case (false, true): + cardinality += 1 + case (true, false): + cardinality -= 1 + default: + break + } + + if newValue { + bits[indexPath.arrayIndex] |= mask + } else { + bits[indexPath.arrayIndex] &= ~mask + } + } + + fileprivate func realIndexPath(_ logicalIndex: Int) -> (arrayIndex: Int, bitIndex: Int) { + return (logicalIndex / Constants.IntSize, logicalIndex % Constants.IntSize) + } + + fileprivate func checkIndex(_ index: Int, lessThan: Int? = nil) { + let bound = lessThan == nil ? count : lessThan + precondition(!isEmpty && index < bound!, "Index out of range (\(index))") + } + + // MARK: Constants + + fileprivate struct Constants { + // Int size in bits + static let IntSize = MemoryLayout.size * 8 + } +} + +extension BitArray: MutableCollection { + + // MARK: MutableCollection Protocol Conformance + + /// Always zero, which is the index of the first bit when non-empty. + public var startIndex: Int { + return 0 + } + + /// Always `count`, which the successor of the last valid + /// subscript argument. + public var endIndex: Int { + return count + } + + /// Returns the position immediately after the given index. + /// + /// - Parameter i: A valid index of the collection. `i` must be less than + /// `endIndex`. + /// - Returns: The index value immediately after `i`. + public func index(after i: Int) -> Int { + return i + 1 + } + + /// Provides random access to individual bits using square bracket noation. + /// The index must be less than the number of items in the bit array. + /// If you attempt to get or set a bit at a greater + /// index, you’ll trigger an error. + public subscript(index: Int) -> Bool { + get { + checkIndex(index) + return valueAtIndex(index) + } + set { + checkIndex(index) + setValue(newValue, atIndex: index) + } + } +} + +extension BitArray: ExpressibleByArrayLiteral { + + // MARK: ExpressibleByArrayLiteral Protocol Conformance + + /// Constructs a bit array using a `Bool` array literal. + /// `let example: BitArray = [true, false, true]` + public init(arrayLiteral elements: Bool...) { + bits.reserveCapacity((elements.count / Constants.IntSize) + 1) + for element in elements { + append(element) + } + } +} + +extension BitArray: CustomStringConvertible { + + // MARK: CustomStringConvertible Protocol Conformance + + /// A string containing a suitable textual + /// representation of the bit array. + public var description: String { map { "\($0 == true ? 1 : 0)" }.joined() } +} + +extension BitArray: Equatable {} + +// MARK: BitArray Equatable Protocol Conformance + +/// Returns `true` if and only if the bit arrays contain the same bits in the same order. +public func == (lhs: BitArray, rhs: BitArray) -> Bool { + if lhs.count != rhs.count || lhs.cardinality != rhs.cardinality { + return false + } + return lhs.elementsEqual(rhs) +} + +// MARK: Hashable Protocol Conformance +extension BitArray: Hashable {} + +public extension BitArray { + + /// Equivalence to Python's operator on lists: `[:n]`, e.g. `x = [1, 2, 3, 4, 5]; x[:3] // equals: [1, 2, 3]` + func prefix(maxBitCount: Int) -> BitArray { + return BitArray(self.prefix(maxBitCount)) + } + + /// Equivalent to Python's `[-n]`, e.g.`"Hello"[-3] // equals: "llo"` + func suffix(maxBitCount: Int) -> BitArray { + return BitArray(self.suffix(maxBitCount)) + } + + /// Equivalence to Python's operator on string: `[:-n]`, e.g.`"Hello"[:-3] // equals: "He"` + func prefix(subtractFromCount n: Int) -> BitArray { + let bitCount = count - n + guard bitCount > 0 else { return [] } + return prefix(maxBitCount: bitCount) + } +} + +public extension BitArray { + func asBoolArray() -> [Bool] { + return self.map { $0 } + } + + // https://stackoverflow.com/a/28930093/1311272 + func asBytesArray() -> [UInt8] { + let numBits = self.count + let numBytes = (numBits + 7) / 8 + var bytes = [UInt8](repeating: 0, count: numBytes) + + for (index, bit) in self.enumerated() where bit == true { + bytes[index / 8] += UInt8(1 << (7 - index % 8)) + } + + return bytes + } + + func asData() -> Data { + return Data(self.asBytesArray()) + } +} + +extension BitArray: RangeReplaceableCollection { + +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/Mnemonic.swift b/Sources/BitcoinKit/Core/Mnemonic/Mnemonic.swift new file mode 100644 index 00000000..4b4bf9bf --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/Mnemonic.swift @@ -0,0 +1,256 @@ +// +// Mnemonic.swift +// +// Copyright © 2018 Kishikawa Katsumi +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation +#if BitcoinKitXcode +import BitcoinKit.Private +#else +import BitcoinKitPrivate +#endif + +private let bitsPerByte = 8 +private let wordListSizeLog2 = 11 // 2^11 => 2048 + +public struct Mnemonic { + + public enum Strength: Int, CaseIterable { + case `default` = 128 + case low = 160 + case medium = 192 + case high = 224 + case veryHigh = 256 + + init?(wordCount: Int) { + guard + let entropyInBitsFromWordCount = Strength.entropyInBitsFrom(wordCount: wordCount), + let strength = Strength(rawValue: entropyInBitsFromWordCount) + else { return nil } + self = strength + } + + fileprivate var wordCount: WordCount { + let wordCountInt = Strength.wordCountFrom(entropyInBits: rawValue) + guard let wordCount = WordCount(rawValue: wordCountInt) else { + fatalError("Missed to include word count: \(wordCountInt)") + } + return wordCount + } + + fileprivate static func wordCountFrom(entropyInBits: Int) -> Int { + return Int(ceil(Double(entropyInBits) / Double(wordListSizeLog2))) + } + + /// `wordCount` must be divisible by `3`, else `nil` is returned + fileprivate static func entropyInBitsFrom(wordCount: Int) -> Int? { + guard wordCount % Strength.checksumBitsPerWord == 0 else { return nil } + return (wordCount / Strength.checksumBitsPerWord) * 32 + } + + fileprivate static let checksumBitsPerWord = 3 + fileprivate var checksumLength: Int { + return wordCount.wordCount / Strength.checksumBitsPerWord + } + + // swiftlint:disable:next nesting + fileprivate enum WordCount: Int { + case wordCountOf12 = 12 + case wordCountOf15 = 15 + case wordCountOf18 = 18 + case wordCountOf21 = 21 + case wordCountOf24 = 24 + + public var wordCount: Int { + return rawValue + } + } + } + + public enum Language: String, CaseIterable { + case english + case japanese + case korean + case spanish + case simplifiedChinese + case traditionalChinese + case french + case italian + } + + public static func generate(strength: Strength = .default, language: Language = .english) throws -> [String] { + let byteCount = strength.rawValue / bitsPerByte + var bytes = Data(count: byteCount) + let status = bytes.withUnsafeMutableBytes { SecRandomCopyBytes(kSecRandomDefault, byteCount, $0) } + guard status == errSecSuccess else { throw MnemonicError.randomBytesError } + return try generate(entropy: bytes, language: language) + } + + public static func deriveLanguageFromMnemonic(words: [String]) -> Language? { + func tryLangauge( + _ language: Language + ) -> Language? { + let vocabulary = Set(wordList(for: language)) + let wordsLeftToCheck = Set(words) + + guard wordsLeftToCheck.intersection(vocabulary) == wordsLeftToCheck else { + return nil + } + + return language + } + + for langauge in Language.allCases { + guard let derived = tryLangauge(langauge) else { continue } + return derived + } + return nil + } + + @discardableResult + public static func validateChecksumDerivingLanguageOf(mnemonic mnemonicWords: [String]) throws -> Bool { + guard let derivedLanguage = deriveLanguageFromMnemonic(words: mnemonicWords) else { + throw MnemonicError.invalid(.unableToDeriveLanguageFrom(words: mnemonicWords)) + } + return try validateChecksumOf(mnemonic: mnemonicWords, language: derivedLanguage) + } + + // https://github.com/mcdallas/cryptotools/blob/master/btctools/HD/__init__.py#L27-L41 + // alternative in C: + // https://github.com/trezor/trezor-crypto/blob/0c622d62e1f1e052c2292d39093222ce358ca7b0/bip39.c#L161-L179 + @discardableResult + public static func validateChecksumOf(mnemonic mnemonicWords: [String], language: Language) throws -> Bool { + let vocabulary = wordList(for: language) + + let indices: [UInt11] = try mnemonicWords.map { word in + guard let indexInVocabulary = vocabulary.firstIndex(of: word) else { + throw MnemonicError.invalid(.wordNotInList(word, language: language)) + } + guard let indexAs11Bits = UInt11(exactly: indexInVocabulary) else { + fatalError("Unexpected error, is word list longer than 2048 words, it shold not be") + } + return indexAs11Bits + } + + let bitArray = BitArray(indices) + + let checksumLength = mnemonicWords.count / 3 + + let dataBits = bitArray.prefix(subtractFromCount: checksumLength) + let checksumBits = bitArray.suffix(maxBitCount: checksumLength) + + let hash = Crypto.sha256(dataBits.asData()) + + let hashBits = BitArray(data: hash).prefix(maxBitCount: checksumLength) + + guard hashBits == checksumBits else { + throw MnemonicError.invalid(.checksumMismatch) + } + + // All is well + return true + } + + private static func intToBinString(_ int: I) -> String where I: BinaryInteger { + guard let uint8 = UInt8(exactly: int) else { fatalError("could not create uint8 from integer: \(int)") } + return byteToBinString(byte: uint8) + } + + private static func byteToBinString(byte: UInt8) -> String { + return String(("00000000" + String(byte, radix: 2)).suffix(8)) + } + + internal static func generate( + entropy: Data, + language: Language = .english + ) throws -> [String] { + + let entropybits = String(entropy.flatMap { ("00000000" + String($0, radix: 2)).suffix(bitsPerByte) }) + let hash = Crypto.sha256(entropy) + let hashBits = String(hash.flatMap { ("00000000" + String($0, radix: 2)).suffix(bitsPerByte) }) + let checkSum = String(hashBits.prefix((entropy.count * bitsPerByte) / 32)) + + let words = wordList(for: language) + let concatenatedBits = entropybits + checkSum + + var mnemonic: [String] = [] + for index in 0..<(concatenatedBits.count / wordListSizeLog2) { + let startIndex = concatenatedBits.index(concatenatedBits.startIndex, offsetBy: index * wordListSizeLog2) + let endIndex = concatenatedBits.index(startIndex, offsetBy: wordListSizeLog2) + let wordIndex = Int(strtoul(String(concatenatedBits[startIndex.. Void) = { try Mnemonic.validateChecksumDerivingLanguageOf(mnemonic: $0) } + ) rethrows -> Data { + + try validateChecksum(words) + + let mnemonic = words.joined(separator: " ").decomposedStringWithCompatibilityMapping.data(using: .utf8)! + let salt = ("mnemonic" + passphrase).decomposedStringWithCompatibilityMapping.data(using: .utf8)! + let seed = _Key.deriveKey(mnemonic, salt: salt, iterations: 2048, keyLength: 64) + return seed + } + + public static func wordList(for language: Language) -> [String] { + switch language { + case .english: + return WordList.english + case .japanese: + return WordList.japanese + case .korean: + return WordList.korean + case .spanish: + return WordList.spanish + case .simplifiedChinese: + return WordList.simplifiedChinese + case .traditionalChinese: + return WordList.traditionalChinese + case .french: + return WordList.french + case .italian: + return WordList.italian + } + } +} + +public enum MnemonicError: Error { + case randomBytesError + + indirect case invalid(MnemonicValidationError) + public enum MnemonicValidationError: Error { + case badWordCount(expectedAnyOf: [Int], butGot: Int) + case wordNotInList(String, language: Mnemonic.Language) + case unableToDeriveLanguageFrom(words: [String]) + case checksumMismatch + } +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/UInt11.swift b/Sources/BitcoinKit/Core/Mnemonic/UInt11.swift new file mode 100644 index 00000000..dba186f6 --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/UInt11.swift @@ -0,0 +1,73 @@ +// +// UInt11.swift +// +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +struct UInt11: ExpressibleByIntegerLiteral { + static var bitWidth: Int { 11 } + + static var max16: UInt16 { UInt16(2047) } + static var max: UInt11 { UInt11(exactly: max16)! } + + static var min: UInt11 { 0 } + + private let valueBoundBy16Bits: UInt16 + + init?(exactly source: T) where T: BinaryInteger { + guard + let valueBoundBy16Bits = UInt16(exactly: source), + valueBoundBy16Bits < 2048 else { return nil } + + self.valueBoundBy16Bits = valueBoundBy16Bits + } + +} + +extension UInt11 { + init(truncatingIfNeeded source: T) where T: BinaryInteger { + let valueBoundBy16Bits = UInt16(truncatingIfNeeded: source) + self.valueBoundBy16Bits = Swift.min(UInt11.max16, valueBoundBy16Bits) + } + + /// Creates a new integer value from the given string and radix. + init?(_ text: S, radix: Int = 10) where S: StringProtocol { + guard let uint16 = UInt16(text, radix: radix) else { return nil } + self.init(exactly: uint16) + } + + init(integerLiteral value: Int) { + guard let exactly = UInt11(exactly: value) else { + fatalError("bad integer literal value does not fit in UInt11, value passed was: \(value)") + } + self = exactly + } +} + +extension UInt11 { + var binaryString: String { + let binaryString = String(valueBoundBy16Bits.binaryString.suffix(Self.bitWidth)) + assert(UInt16(binaryString, radix: 2)! == valueBoundBy16Bits, "incorrect conversion.") + return binaryString + } +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+English.swift b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+English.swift new file mode 100644 index 00000000..597b9c57 --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+English.swift @@ -0,0 +1,2085 @@ +// +// WordList.swift +// +// Copyright © 2018 Kishikawa Katsumi +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +// swiftlint:disable file_length +public extension WordList { + static var english: [String] = { + let words = + """ + abandon + ability + able + about + above + absent + absorb + abstract + absurd + abuse + access + accident + account + accuse + achieve + acid + acoustic + acquire + across + act + action + actor + actress + actual + adapt + add + addict + address + adjust + admit + adult + advance + advice + aerobic + affair + afford + afraid + again + age + agent + agree + ahead + aim + air + airport + aisle + alarm + album + alcohol + alert + alien + all + alley + allow + almost + alone + alpha + already + also + alter + always + amateur + amazing + among + amount + amused + analyst + anchor + ancient + anger + angle + angry + animal + ankle + announce + annual + another + answer + antenna + antique + anxiety + any + apart + apology + appear + apple + approve + april + arch + arctic + area + arena + argue + arm + armed + armor + army + around + arrange + arrest + arrive + arrow + art + artefact + artist + artwork + ask + aspect + assault + asset + assist + assume + asthma + athlete + atom + attack + attend + attitude + attract + auction + audit + august + aunt + author + auto + autumn + average + avocado + avoid + awake + aware + away + awesome + awful + awkward + axis + baby + bachelor + bacon + badge + bag + balance + balcony + ball + bamboo + banana + banner + bar + barely + bargain + barrel + base + basic + basket + battle + beach + bean + beauty + because + become + beef + before + begin + behave + behind + believe + below + belt + bench + benefit + best + betray + better + between + beyond + bicycle + bid + bike + bind + biology + bird + birth + bitter + black + blade + blame + blanket + blast + bleak + bless + blind + blood + blossom + blouse + blue + blur + blush + board + boat + body + boil + bomb + bone + bonus + book + boost + border + boring + borrow + boss + bottom + bounce + box + boy + bracket + brain + brand + brass + brave + bread + breeze + brick + bridge + brief + bright + bring + brisk + broccoli + broken + bronze + broom + brother + brown + brush + bubble + buddy + budget + buffalo + build + bulb + bulk + bullet + bundle + bunker + burden + burger + burst + bus + business + busy + butter + buyer + buzz + cabbage + cabin + cable + cactus + cage + cake + call + calm + camera + camp + can + canal + cancel + candy + cannon + canoe + canvas + canyon + capable + capital + captain + car + carbon + card + cargo + carpet + carry + cart + case + cash + casino + castle + casual + cat + catalog + catch + category + cattle + caught + cause + caution + cave + ceiling + celery + cement + census + century + cereal + certain + chair + chalk + champion + change + chaos + chapter + charge + chase + chat + cheap + check + cheese + chef + cherry + chest + chicken + chief + child + chimney + choice + choose + chronic + chuckle + chunk + churn + cigar + cinnamon + circle + citizen + city + civil + claim + clap + clarify + claw + clay + clean + clerk + clever + click + client + cliff + climb + clinic + clip + clock + clog + close + cloth + cloud + clown + club + clump + cluster + clutch + coach + coast + coconut + code + coffee + coil + coin + collect + color + column + combine + come + comfort + comic + common + company + concert + conduct + confirm + congress + connect + consider + control + convince + cook + cool + copper + copy + coral + core + corn + correct + cost + cotton + couch + country + couple + course + cousin + cover + coyote + crack + cradle + craft + cram + crane + crash + crater + crawl + crazy + cream + credit + creek + crew + cricket + crime + crisp + critic + crop + cross + crouch + crowd + crucial + cruel + cruise + crumble + crunch + crush + cry + crystal + cube + culture + cup + cupboard + curious + current + curtain + curve + cushion + custom + cute + cycle + dad + damage + damp + dance + danger + daring + dash + daughter + dawn + day + deal + debate + debris + decade + december + decide + decline + decorate + decrease + deer + defense + define + defy + degree + delay + deliver + demand + demise + denial + dentist + deny + depart + depend + deposit + depth + deputy + derive + describe + desert + design + desk + despair + destroy + detail + detect + develop + device + devote + diagram + dial + diamond + diary + dice + diesel + diet + differ + digital + dignity + dilemma + dinner + dinosaur + direct + dirt + disagree + discover + disease + dish + dismiss + disorder + display + distance + divert + divide + divorce + dizzy + doctor + document + dog + doll + dolphin + domain + donate + donkey + donor + door + dose + double + dove + draft + dragon + drama + drastic + draw + dream + dress + drift + drill + drink + drip + drive + drop + drum + dry + duck + dumb + dune + during + dust + dutch + duty + dwarf + dynamic + eager + eagle + early + earn + earth + easily + east + easy + echo + ecology + economy + edge + edit + educate + effort + egg + eight + either + elbow + elder + electric + elegant + element + elephant + elevator + elite + else + embark + embody + embrace + emerge + emotion + employ + empower + empty + enable + enact + end + endless + endorse + enemy + energy + enforce + engage + engine + enhance + enjoy + enlist + enough + enrich + enroll + ensure + enter + entire + entry + envelope + episode + equal + equip + era + erase + erode + erosion + error + erupt + escape + essay + essence + estate + eternal + ethics + evidence + evil + evoke + evolve + exact + example + excess + exchange + excite + exclude + excuse + execute + exercise + exhaust + exhibit + exile + exist + exit + exotic + expand + expect + expire + explain + expose + express + extend + extra + eye + eyebrow + fabric + face + faculty + fade + faint + faith + fall + false + fame + family + famous + fan + fancy + fantasy + farm + fashion + fat + fatal + father + fatigue + fault + favorite + feature + february + federal + fee + feed + feel + female + fence + festival + fetch + fever + few + fiber + fiction + field + figure + file + film + filter + final + find + fine + finger + finish + fire + firm + first + fiscal + fish + fit + fitness + fix + flag + flame + flash + flat + flavor + flee + flight + flip + float + flock + floor + flower + fluid + flush + fly + foam + focus + fog + foil + fold + follow + food + foot + force + forest + forget + fork + fortune + forum + forward + fossil + foster + found + fox + fragile + frame + frequent + fresh + friend + fringe + frog + front + frost + frown + frozen + fruit + fuel + fun + funny + furnace + fury + future + gadget + gain + galaxy + gallery + game + gap + garage + garbage + garden + garlic + garment + gas + gasp + gate + gather + gauge + gaze + general + genius + genre + gentle + genuine + gesture + ghost + giant + gift + giggle + ginger + giraffe + girl + give + glad + glance + glare + glass + glide + glimpse + globe + gloom + glory + glove + glow + glue + goat + goddess + gold + good + goose + gorilla + gospel + gossip + govern + gown + grab + grace + grain + grant + grape + grass + gravity + great + green + grid + grief + grit + grocery + group + grow + grunt + guard + guess + guide + guilt + guitar + gun + gym + habit + hair + half + hammer + hamster + hand + happy + harbor + hard + harsh + harvest + hat + have + hawk + hazard + head + health + heart + heavy + hedgehog + height + hello + helmet + help + hen + hero + hidden + high + hill + hint + hip + hire + history + hobby + hockey + hold + hole + holiday + hollow + home + honey + hood + hope + horn + horror + horse + hospital + host + hotel + hour + hover + hub + huge + human + humble + humor + hundred + hungry + hunt + hurdle + hurry + hurt + husband + hybrid + ice + icon + idea + identify + idle + ignore + ill + illegal + illness + image + imitate + immense + immune + impact + impose + improve + impulse + inch + include + income + increase + index + indicate + indoor + industry + infant + inflict + inform + inhale + inherit + initial + inject + injury + inmate + inner + innocent + input + inquiry + insane + insect + inside + inspire + install + intact + interest + into + invest + invite + involve + iron + island + isolate + issue + item + ivory + jacket + jaguar + jar + jazz + jealous + jeans + jelly + jewel + job + join + joke + journey + joy + judge + juice + jump + jungle + junior + junk + just + kangaroo + keen + keep + ketchup + key + kick + kid + kidney + kind + kingdom + kiss + kit + kitchen + kite + kitten + kiwi + knee + knife + knock + know + lab + label + labor + ladder + lady + lake + lamp + language + laptop + large + later + latin + laugh + laundry + lava + law + lawn + lawsuit + layer + lazy + leader + leaf + learn + leave + lecture + left + leg + legal + legend + leisure + lemon + lend + length + lens + leopard + lesson + letter + level + liar + liberty + library + license + life + lift + light + like + limb + limit + link + lion + liquid + list + little + live + lizard + load + loan + lobster + local + lock + logic + lonely + long + loop + lottery + loud + lounge + love + loyal + lucky + luggage + lumber + lunar + lunch + luxury + lyrics + machine + mad + magic + magnet + maid + mail + main + major + make + mammal + man + manage + mandate + mango + mansion + manual + maple + marble + march + margin + marine + market + marriage + mask + mass + master + match + material + math + matrix + matter + maximum + maze + meadow + mean + measure + meat + mechanic + medal + media + melody + melt + member + memory + mention + menu + mercy + merge + merit + merry + mesh + message + metal + method + middle + midnight + milk + million + mimic + mind + minimum + minor + minute + miracle + mirror + misery + miss + mistake + mix + mixed + mixture + mobile + model + modify + mom + moment + monitor + monkey + monster + month + moon + moral + more + morning + mosquito + mother + motion + motor + mountain + mouse + move + movie + much + muffin + mule + multiply + muscle + museum + mushroom + music + must + mutual + myself + mystery + myth + naive + name + napkin + narrow + nasty + nation + nature + near + neck + need + negative + neglect + neither + nephew + nerve + nest + net + network + neutral + never + news + next + nice + night + noble + noise + nominee + noodle + normal + north + nose + notable + note + nothing + notice + novel + now + nuclear + number + nurse + nut + oak + obey + object + oblige + obscure + observe + obtain + obvious + occur + ocean + october + odor + off + offer + office + often + oil + okay + old + olive + olympic + omit + once + one + onion + online + only + open + opera + opinion + oppose + option + orange + orbit + orchard + order + ordinary + organ + orient + original + orphan + ostrich + other + outdoor + outer + output + outside + oval + oven + over + own + owner + oxygen + oyster + ozone + pact + paddle + page + pair + palace + palm + panda + panel + panic + panther + paper + parade + parent + park + parrot + party + pass + patch + path + patient + patrol + pattern + pause + pave + payment + peace + peanut + pear + peasant + pelican + pen + penalty + pencil + people + pepper + perfect + permit + person + pet + phone + photo + phrase + physical + piano + picnic + picture + piece + pig + pigeon + pill + pilot + pink + pioneer + pipe + pistol + pitch + pizza + place + planet + plastic + plate + play + please + pledge + pluck + plug + plunge + poem + poet + point + polar + pole + police + pond + pony + pool + popular + portion + position + possible + post + potato + pottery + poverty + powder + power + practice + praise + predict + prefer + prepare + present + pretty + prevent + price + pride + primary + print + priority + prison + private + prize + problem + process + produce + profit + program + project + promote + proof + property + prosper + protect + proud + provide + public + pudding + pull + pulp + pulse + pumpkin + punch + pupil + puppy + purchase + purity + purpose + purse + push + put + puzzle + pyramid + quality + quantum + quarter + question + quick + quit + quiz + quote + rabbit + raccoon + race + rack + radar + radio + rail + rain + raise + rally + ramp + ranch + random + range + rapid + rare + rate + rather + raven + raw + razor + ready + real + reason + rebel + rebuild + recall + receive + recipe + record + recycle + reduce + reflect + reform + refuse + region + regret + regular + reject + relax + release + relief + rely + remain + remember + remind + remove + render + renew + rent + reopen + repair + repeat + replace + report + require + rescue + resemble + resist + resource + response + result + retire + retreat + return + reunion + reveal + review + reward + rhythm + rib + ribbon + rice + rich + ride + ridge + rifle + right + rigid + ring + riot + ripple + risk + ritual + rival + river + road + roast + robot + robust + rocket + romance + roof + rookie + room + rose + rotate + rough + round + route + royal + rubber + rude + rug + rule + run + runway + rural + sad + saddle + sadness + safe + sail + salad + salmon + salon + salt + salute + same + sample + sand + satisfy + satoshi + sauce + sausage + save + say + scale + scan + scare + scatter + scene + scheme + school + science + scissors + scorpion + scout + scrap + screen + script + scrub + sea + search + season + seat + second + secret + section + security + seed + seek + segment + select + sell + seminar + senior + sense + sentence + series + service + session + settle + setup + seven + shadow + shaft + shallow + share + shed + shell + sheriff + shield + shift + shine + ship + shiver + shock + shoe + shoot + shop + short + shoulder + shove + shrimp + shrug + shuffle + shy + sibling + sick + side + siege + sight + sign + silent + silk + silly + silver + similar + simple + since + sing + siren + sister + situate + six + size + skate + sketch + ski + skill + skin + skirt + skull + slab + slam + sleep + slender + slice + slide + slight + slim + slogan + slot + slow + slush + small + smart + smile + smoke + smooth + snack + snake + snap + sniff + snow + soap + soccer + social + sock + soda + soft + solar + soldier + solid + solution + solve + someone + song + soon + sorry + sort + soul + sound + soup + source + south + space + spare + spatial + spawn + speak + special + speed + spell + spend + sphere + spice + spider + spike + spin + spirit + split + spoil + sponsor + spoon + sport + spot + spray + spread + spring + spy + square + squeeze + squirrel + stable + stadium + staff + stage + stairs + stamp + stand + start + state + stay + steak + steel + stem + step + stereo + stick + still + sting + stock + stomach + stone + stool + story + stove + strategy + street + strike + strong + struggle + student + stuff + stumble + style + subject + submit + subway + success + such + sudden + suffer + sugar + suggest + suit + summer + sun + sunny + sunset + super + supply + supreme + sure + surface + surge + surprise + surround + survey + suspect + sustain + swallow + swamp + swap + swarm + swear + sweet + swift + swim + swing + switch + sword + symbol + symptom + syrup + system + table + tackle + tag + tail + talent + talk + tank + tape + target + task + taste + tattoo + taxi + teach + team + tell + ten + tenant + tennis + tent + term + test + text + thank + that + theme + then + theory + there + they + thing + this + thought + three + thrive + throw + thumb + thunder + ticket + tide + tiger + tilt + timber + time + tiny + tip + tired + tissue + title + toast + tobacco + today + toddler + toe + together + toilet + token + tomato + tomorrow + tone + tongue + tonight + tool + tooth + top + topic + topple + torch + tornado + tortoise + toss + total + tourist + toward + tower + town + toy + track + trade + traffic + tragic + train + transfer + trap + trash + travel + tray + treat + tree + trend + trial + tribe + trick + trigger + trim + trip + trophy + trouble + truck + true + truly + trumpet + trust + truth + try + tube + tuition + tumble + tuna + tunnel + turkey + turn + turtle + twelve + twenty + twice + twin + twist + two + type + typical + ugly + umbrella + unable + unaware + uncle + uncover + under + undo + unfair + unfold + unhappy + uniform + unique + unit + universe + unknown + unlock + until + unusual + unveil + update + upgrade + uphold + upon + upper + upset + urban + urge + usage + use + used + useful + useless + usual + utility + vacant + vacuum + vague + valid + valley + valve + van + vanish + vapor + various + vast + vault + vehicle + velvet + vendor + venture + venue + verb + verify + version + very + vessel + veteran + viable + vibrant + vicious + victory + video + view + village + vintage + violin + virtual + virus + visa + visit + visual + vital + vivid + vocal + voice + void + volcano + volume + vote + voyage + wage + wagon + wait + walk + wall + walnut + want + warfare + warm + warrior + wash + wasp + waste + water + wave + way + wealth + weapon + wear + weasel + weather + web + wedding + weekend + weird + welcome + west + wet + whale + what + wheat + wheel + when + where + whip + whisper + wide + width + wife + wild + will + win + window + wine + wing + wink + winner + winter + wire + wisdom + wise + wish + witness + wolf + woman + wonder + wood + wool + word + work + world + worry + worth + wrap + wreck + wrestle + wrist + write + wrong + yard + year + yellow + you + young + youth + zebra + zero + zone + zoo + """ + + return words.split(separator: "\n").map { String($0) } + }() +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+French.swift b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+French.swift new file mode 100644 index 00000000..5e3bc8f6 --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+French.swift @@ -0,0 +1,2085 @@ +// +// WordList.swift +// +// Copyright © 2018 Kishikawa Katsumi +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +// swiftlint:disable file_length +public extension WordList { + static var french: [String] = { + let words = + """ + abaisser + abandon + abdiquer + abeille + abolir + aborder + aboutir + aboyer + abrasif + abreuver + abriter + abroger + abrupt + absence + absolu + absurde + abusif + abyssal + académie + acajou + acarien + accabler + accepter + acclamer + accolade + accroche + accuser + acerbe + achat + acheter + aciduler + acier + acompte + acquérir + acronyme + acteur + actif + actuel + adepte + adéquat + adhésif + adjectif + adjuger + admettre + admirer + adopter + adorer + adoucir + adresse + adroit + adulte + adverbe + aérer + aéronef + affaire + affecter + affiche + affreux + affubler + agacer + agencer + agile + agiter + agrafer + agréable + agrume + aider + aiguille + ailier + aimable + aisance + ajouter + ajuster + alarmer + alchimie + alerte + algèbre + algue + aliéner + aliment + alléger + alliage + allouer + allumer + alourdir + alpaga + altesse + alvéole + amateur + ambigu + ambre + aménager + amertume + amidon + amiral + amorcer + amour + amovible + amphibie + ampleur + amusant + analyse + anaphore + anarchie + anatomie + ancien + anéantir + angle + angoisse + anguleux + animal + annexer + annonce + annuel + anodin + anomalie + anonyme + anormal + antenne + antidote + anxieux + apaiser + apéritif + aplanir + apologie + appareil + appeler + apporter + appuyer + aquarium + aqueduc + arbitre + arbuste + ardeur + ardoise + argent + arlequin + armature + armement + armoire + armure + arpenter + arracher + arriver + arroser + arsenic + artériel + article + aspect + asphalte + aspirer + assaut + asservir + assiette + associer + assurer + asticot + astre + astuce + atelier + atome + atrium + atroce + attaque + attentif + attirer + attraper + aubaine + auberge + audace + audible + augurer + aurore + automne + autruche + avaler + avancer + avarice + avenir + averse + aveugle + aviateur + avide + avion + aviser + avoine + avouer + avril + axial + axiome + badge + bafouer + bagage + baguette + baignade + balancer + balcon + baleine + balisage + bambin + bancaire + bandage + banlieue + bannière + banquier + barbier + baril + baron + barque + barrage + bassin + bastion + bataille + bateau + batterie + baudrier + bavarder + belette + bélier + belote + bénéfice + berceau + berger + berline + bermuda + besace + besogne + bétail + beurre + biberon + bicycle + bidule + bijou + bilan + bilingue + billard + binaire + biologie + biopsie + biotype + biscuit + bison + bistouri + bitume + bizarre + blafard + blague + blanchir + blessant + blinder + blond + bloquer + blouson + bobard + bobine + boire + boiser + bolide + bonbon + bondir + bonheur + bonifier + bonus + bordure + borne + botte + boucle + boueux + bougie + boulon + bouquin + bourse + boussole + boutique + boxeur + branche + brasier + brave + brebis + brèche + breuvage + bricoler + brigade + brillant + brioche + brique + brochure + broder + bronzer + brousse + broyeur + brume + brusque + brutal + bruyant + buffle + buisson + bulletin + bureau + burin + bustier + butiner + butoir + buvable + buvette + cabanon + cabine + cachette + cadeau + cadre + caféine + caillou + caisson + calculer + calepin + calibre + calmer + calomnie + calvaire + camarade + caméra + camion + campagne + canal + caneton + canon + cantine + canular + capable + caporal + caprice + capsule + capter + capuche + carabine + carbone + caresser + caribou + carnage + carotte + carreau + carton + cascade + casier + casque + cassure + causer + caution + cavalier + caverne + caviar + cédille + ceinture + céleste + cellule + cendrier + censurer + central + cercle + cérébral + cerise + cerner + cerveau + cesser + chagrin + chaise + chaleur + chambre + chance + chapitre + charbon + chasseur + chaton + chausson + chavirer + chemise + chenille + chéquier + chercher + cheval + chien + chiffre + chignon + chimère + chiot + chlorure + chocolat + choisir + chose + chouette + chrome + chute + cigare + cigogne + cimenter + cinéma + cintrer + circuler + cirer + cirque + citerne + citoyen + citron + civil + clairon + clameur + claquer + classe + clavier + client + cligner + climat + clivage + cloche + clonage + cloporte + cobalt + cobra + cocasse + cocotier + coder + codifier + coffre + cogner + cohésion + coiffer + coincer + colère + colibri + colline + colmater + colonel + combat + comédie + commande + compact + concert + conduire + confier + congeler + connoter + consonne + contact + convexe + copain + copie + corail + corbeau + cordage + corniche + corpus + correct + cortège + cosmique + costume + coton + coude + coupure + courage + couteau + couvrir + coyote + crabe + crainte + cravate + crayon + créature + créditer + crémeux + creuser + crevette + cribler + crier + cristal + critère + croire + croquer + crotale + crucial + cruel + crypter + cubique + cueillir + cuillère + cuisine + cuivre + culminer + cultiver + cumuler + cupide + curatif + curseur + cyanure + cycle + cylindre + cynique + daigner + damier + danger + danseur + dauphin + débattre + débiter + déborder + débrider + débutant + décaler + décembre + déchirer + décider + déclarer + décorer + décrire + décupler + dédale + déductif + déesse + défensif + défiler + défrayer + dégager + dégivrer + déglutir + dégrafer + déjeuner + délice + déloger + demander + demeurer + démolir + dénicher + dénouer + dentelle + dénuder + départ + dépenser + déphaser + déplacer + déposer + déranger + dérober + désastre + descente + désert + désigner + désobéir + dessiner + destrier + détacher + détester + détourer + détresse + devancer + devenir + deviner + devoir + diable + dialogue + diamant + dicter + différer + digérer + digital + digne + diluer + dimanche + diminuer + dioxyde + directif + diriger + discuter + disposer + dissiper + distance + divertir + diviser + docile + docteur + dogme + doigt + domaine + domicile + dompter + donateur + donjon + donner + dopamine + dortoir + dorure + dosage + doseur + dossier + dotation + douanier + double + douceur + douter + doyen + dragon + draper + dresser + dribbler + droiture + duperie + duplexe + durable + durcir + dynastie + éblouir + écarter + écharpe + échelle + éclairer + éclipse + éclore + écluse + école + économie + écorce + écouter + écraser + écrémer + écrivain + écrou + écume + écureuil + édifier + éduquer + effacer + effectif + effigie + effort + effrayer + effusion + égaliser + égarer + éjecter + élaborer + élargir + électron + élégant + éléphant + élève + éligible + élitisme + éloge + élucider + éluder + emballer + embellir + embryon + émeraude + émission + emmener + émotion + émouvoir + empereur + employer + emporter + emprise + émulsion + encadrer + enchère + enclave + encoche + endiguer + endosser + endroit + enduire + énergie + enfance + enfermer + enfouir + engager + engin + englober + énigme + enjamber + enjeu + enlever + ennemi + ennuyeux + enrichir + enrobage + enseigne + entasser + entendre + entier + entourer + entraver + énumérer + envahir + enviable + envoyer + enzyme + éolien + épaissir + épargne + épatant + épaule + épicerie + épidémie + épier + épilogue + épine + épisode + épitaphe + époque + épreuve + éprouver + épuisant + équerre + équipe + ériger + érosion + erreur + éruption + escalier + espadon + espèce + espiègle + espoir + esprit + esquiver + essayer + essence + essieu + essorer + estime + estomac + estrade + étagère + étaler + étanche + étatique + éteindre + étendoir + éternel + éthanol + éthique + ethnie + étirer + étoffer + étoile + étonnant + étourdir + étrange + étroit + étude + euphorie + évaluer + évasion + éventail + évidence + éviter + évolutif + évoquer + exact + exagérer + exaucer + exceller + excitant + exclusif + excuse + exécuter + exemple + exercer + exhaler + exhorter + exigence + exiler + exister + exotique + expédier + explorer + exposer + exprimer + exquis + extensif + extraire + exulter + fable + fabuleux + facette + facile + facture + faiblir + falaise + fameux + famille + farceur + farfelu + farine + farouche + fasciner + fatal + fatigue + faucon + fautif + faveur + favori + fébrile + féconder + fédérer + félin + femme + fémur + fendoir + féodal + fermer + féroce + ferveur + festival + feuille + feutre + février + fiasco + ficeler + fictif + fidèle + figure + filature + filetage + filière + filleul + filmer + filou + filtrer + financer + finir + fiole + firme + fissure + fixer + flairer + flamme + flasque + flatteur + fléau + flèche + fleur + flexion + flocon + flore + fluctuer + fluide + fluvial + folie + fonderie + fongible + fontaine + forcer + forgeron + formuler + fortune + fossile + foudre + fougère + fouiller + foulure + fourmi + fragile + fraise + franchir + frapper + frayeur + frégate + freiner + frelon + frémir + frénésie + frère + friable + friction + frisson + frivole + froid + fromage + frontal + frotter + fruit + fugitif + fuite + fureur + furieux + furtif + fusion + futur + gagner + galaxie + galerie + gambader + garantir + gardien + garnir + garrigue + gazelle + gazon + géant + gélatine + gélule + gendarme + général + génie + genou + gentil + géologie + géomètre + géranium + germe + gestuel + geyser + gibier + gicler + girafe + givre + glace + glaive + glisser + globe + gloire + glorieux + golfeur + gomme + gonfler + gorge + gorille + goudron + gouffre + goulot + goupille + gourmand + goutte + graduel + graffiti + graine + grand + grappin + gratuit + gravir + grenat + griffure + griller + grimper + grogner + gronder + grotte + groupe + gruger + grutier + gruyère + guépard + guerrier + guide + guimauve + guitare + gustatif + gymnaste + gyrostat + habitude + hachoir + halte + hameau + hangar + hanneton + haricot + harmonie + harpon + hasard + hélium + hématome + herbe + hérisson + hermine + héron + hésiter + heureux + hiberner + hibou + hilarant + histoire + hiver + homard + hommage + homogène + honneur + honorer + honteux + horde + horizon + horloge + hormone + horrible + houleux + housse + hublot + huileux + humain + humble + humide + humour + hurler + hydromel + hygiène + hymne + hypnose + idylle + ignorer + iguane + illicite + illusion + image + imbiber + imiter + immense + immobile + immuable + impact + impérial + implorer + imposer + imprimer + imputer + incarner + incendie + incident + incliner + incolore + indexer + indice + inductif + inédit + ineptie + inexact + infini + infliger + informer + infusion + ingérer + inhaler + inhiber + injecter + injure + innocent + inoculer + inonder + inscrire + insecte + insigne + insolite + inspirer + instinct + insulter + intact + intense + intime + intrigue + intuitif + inutile + invasion + inventer + inviter + invoquer + ironique + irradier + irréel + irriter + isoler + ivoire + ivresse + jaguar + jaillir + jambe + janvier + jardin + jauger + jaune + javelot + jetable + jeton + jeudi + jeunesse + joindre + joncher + jongler + joueur + jouissif + journal + jovial + joyau + joyeux + jubiler + jugement + junior + jupon + juriste + justice + juteux + juvénile + kayak + kimono + kiosque + label + labial + labourer + lacérer + lactose + lagune + laine + laisser + laitier + lambeau + lamelle + lampe + lanceur + langage + lanterne + lapin + largeur + larme + laurier + lavabo + lavoir + lecture + légal + léger + légume + lessive + lettre + levier + lexique + lézard + liasse + libérer + libre + licence + licorne + liège + lièvre + ligature + ligoter + ligue + limer + limite + limonade + limpide + linéaire + lingot + lionceau + liquide + lisière + lister + lithium + litige + littoral + livreur + logique + lointain + loisir + lombric + loterie + louer + lourd + loutre + louve + loyal + lubie + lucide + lucratif + lueur + lugubre + luisant + lumière + lunaire + lundi + luron + lutter + luxueux + machine + magasin + magenta + magique + maigre + maillon + maintien + mairie + maison + majorer + malaxer + maléfice + malheur + malice + mallette + mammouth + mandater + maniable + manquant + manteau + manuel + marathon + marbre + marchand + mardi + maritime + marqueur + marron + marteler + mascotte + massif + matériel + matière + matraque + maudire + maussade + mauve + maximal + méchant + méconnu + médaille + médecin + méditer + méduse + meilleur + mélange + mélodie + membre + mémoire + menacer + mener + menhir + mensonge + mentor + mercredi + mérite + merle + messager + mesure + métal + météore + méthode + métier + meuble + miauler + microbe + miette + mignon + migrer + milieu + million + mimique + mince + minéral + minimal + minorer + minute + miracle + miroiter + missile + mixte + mobile + moderne + moelleux + mondial + moniteur + monnaie + monotone + monstre + montagne + monument + moqueur + morceau + morsure + mortier + moteur + motif + mouche + moufle + moulin + mousson + mouton + mouvant + multiple + munition + muraille + murène + murmure + muscle + muséum + musicien + mutation + muter + mutuel + myriade + myrtille + mystère + mythique + nageur + nappe + narquois + narrer + natation + nation + nature + naufrage + nautique + navire + nébuleux + nectar + néfaste + négation + négliger + négocier + neige + nerveux + nettoyer + neurone + neutron + neveu + niche + nickel + nitrate + niveau + noble + nocif + nocturne + noirceur + noisette + nomade + nombreux + nommer + normatif + notable + notifier + notoire + nourrir + nouveau + novateur + novembre + novice + nuage + nuancer + nuire + nuisible + numéro + nuptial + nuque + nutritif + obéir + objectif + obliger + obscur + observer + obstacle + obtenir + obturer + occasion + occuper + océan + octobre + octroyer + octupler + oculaire + odeur + odorant + offenser + officier + offrir + ogive + oiseau + oisillon + olfactif + olivier + ombrage + omettre + onctueux + onduler + onéreux + onirique + opale + opaque + opérer + opinion + opportun + opprimer + opter + optique + orageux + orange + orbite + ordonner + oreille + organe + orgueil + orifice + ornement + orque + ortie + osciller + osmose + ossature + otarie + ouragan + ourson + outil + outrager + ouvrage + ovation + oxyde + oxygène + ozone + paisible + palace + palmarès + palourde + palper + panache + panda + pangolin + paniquer + panneau + panorama + pantalon + papaye + papier + papoter + papyrus + paradoxe + parcelle + paresse + parfumer + parler + parole + parrain + parsemer + partager + parure + parvenir + passion + pastèque + paternel + patience + patron + pavillon + pavoiser + payer + paysage + peigne + peintre + pelage + pélican + pelle + pelouse + peluche + pendule + pénétrer + pénible + pensif + pénurie + pépite + péplum + perdrix + perforer + période + permuter + perplexe + persil + perte + peser + pétale + petit + pétrir + peuple + pharaon + phobie + phoque + photon + phrase + physique + piano + pictural + pièce + pierre + pieuvre + pilote + pinceau + pipette + piquer + pirogue + piscine + piston + pivoter + pixel + pizza + placard + plafond + plaisir + planer + plaque + plastron + plateau + pleurer + plexus + pliage + plomb + plonger + pluie + plumage + pochette + poésie + poète + pointe + poirier + poisson + poivre + polaire + policier + pollen + polygone + pommade + pompier + ponctuel + pondérer + poney + portique + position + posséder + posture + potager + poteau + potion + pouce + poulain + poumon + pourpre + poussin + pouvoir + prairie + pratique + précieux + prédire + préfixe + prélude + prénom + présence + prétexte + prévoir + primitif + prince + prison + priver + problème + procéder + prodige + profond + progrès + proie + projeter + prologue + promener + propre + prospère + protéger + prouesse + proverbe + prudence + pruneau + psychose + public + puceron + puiser + pulpe + pulsar + punaise + punitif + pupitre + purifier + puzzle + pyramide + quasar + querelle + question + quiétude + quitter + quotient + racine + raconter + radieux + ragondin + raideur + raisin + ralentir + rallonge + ramasser + rapide + rasage + ratisser + ravager + ravin + rayonner + réactif + réagir + réaliser + réanimer + recevoir + réciter + réclamer + récolter + recruter + reculer + recycler + rédiger + redouter + refaire + réflexe + réformer + refrain + refuge + régalien + région + réglage + régulier + réitérer + rejeter + rejouer + relatif + relever + relief + remarque + remède + remise + remonter + remplir + remuer + renard + renfort + renifler + renoncer + rentrer + renvoi + replier + reporter + reprise + reptile + requin + réserve + résineux + résoudre + respect + rester + résultat + rétablir + retenir + réticule + retomber + retracer + réunion + réussir + revanche + revivre + révolte + révulsif + richesse + rideau + rieur + rigide + rigoler + rincer + riposter + risible + risque + rituel + rival + rivière + rocheux + romance + rompre + ronce + rondin + roseau + rosier + rotatif + rotor + rotule + rouge + rouille + rouleau + routine + royaume + ruban + rubis + ruche + ruelle + rugueux + ruiner + ruisseau + ruser + rustique + rythme + sabler + saboter + sabre + sacoche + safari + sagesse + saisir + salade + salive + salon + saluer + samedi + sanction + sanglier + sarcasme + sardine + saturer + saugrenu + saumon + sauter + sauvage + savant + savonner + scalpel + scandale + scélérat + scénario + sceptre + schéma + science + scinder + score + scrutin + sculpter + séance + sécable + sécher + secouer + sécréter + sédatif + séduire + seigneur + séjour + sélectif + semaine + sembler + semence + séminal + sénateur + sensible + sentence + séparer + séquence + serein + sergent + sérieux + serrure + sérum + service + sésame + sévir + sevrage + sextuple + sidéral + siècle + siéger + siffler + sigle + signal + silence + silicium + simple + sincère + sinistre + siphon + sirop + sismique + situer + skier + social + socle + sodium + soigneux + soldat + soleil + solitude + soluble + sombre + sommeil + somnoler + sonde + songeur + sonnette + sonore + sorcier + sortir + sosie + sottise + soucieux + soudure + souffle + soulever + soupape + source + soutirer + souvenir + spacieux + spatial + spécial + sphère + spiral + stable + station + sternum + stimulus + stipuler + strict + studieux + stupeur + styliste + sublime + substrat + subtil + subvenir + succès + sucre + suffixe + suggérer + suiveur + sulfate + superbe + supplier + surface + suricate + surmener + surprise + sursaut + survie + suspect + syllabe + symbole + symétrie + synapse + syntaxe + système + tabac + tablier + tactile + tailler + talent + talisman + talonner + tambour + tamiser + tangible + tapis + taquiner + tarder + tarif + tartine + tasse + tatami + tatouage + taupe + taureau + taxer + témoin + temporel + tenaille + tendre + teneur + tenir + tension + terminer + terne + terrible + tétine + texte + thème + théorie + thérapie + thorax + tibia + tiède + timide + tirelire + tiroir + tissu + titane + titre + tituber + toboggan + tolérant + tomate + tonique + tonneau + toponyme + torche + tordre + tornade + torpille + torrent + torse + tortue + totem + toucher + tournage + tousser + toxine + traction + trafic + tragique + trahir + train + trancher + travail + trèfle + tremper + trésor + treuil + triage + tribunal + tricoter + trilogie + triomphe + tripler + triturer + trivial + trombone + tronc + tropical + troupeau + tuile + tulipe + tumulte + tunnel + turbine + tuteur + tutoyer + tuyau + tympan + typhon + typique + tyran + ubuesque + ultime + ultrason + unanime + unifier + union + unique + unitaire + univers + uranium + urbain + urticant + usage + usine + usuel + usure + utile + utopie + vacarme + vaccin + vagabond + vague + vaillant + vaincre + vaisseau + valable + valise + vallon + valve + vampire + vanille + vapeur + varier + vaseux + vassal + vaste + vecteur + vedette + végétal + véhicule + veinard + véloce + vendredi + vénérer + venger + venimeux + ventouse + verdure + vérin + vernir + verrou + verser + vertu + veston + vétéran + vétuste + vexant + vexer + viaduc + viande + victoire + vidange + vidéo + vignette + vigueur + vilain + village + vinaigre + violon + vipère + virement + virtuose + virus + visage + viseur + vision + visqueux + visuel + vital + vitesse + viticole + vitrine + vivace + vivipare + vocation + voguer + voile + voisin + voiture + volaille + volcan + voltiger + volume + vorace + vortex + voter + vouloir + voyage + voyelle + wagon + xénon + yacht + zèbre + zénith + zeste + zoologie + """ + return words.split(separator: "\n").map { String($0) } + }() + +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Italian.swift b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Italian.swift new file mode 100644 index 00000000..ecf87337 --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Italian.swift @@ -0,0 +1,2084 @@ +// +// WordList.swift +// +// Copyright © 2018 Kishikawa Katsumi +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +// swiftlint:disable file_length +public extension WordList { + static var italian: [String] = { + let words = + """ + abaco + abbaglio + abbinato + abete + abisso + abolire + abrasivo + abrogato + accadere + accenno + accusato + acetone + achille + acido + acqua + acre + acrilico + acrobata + acuto + adagio + addebito + addome + adeguato + aderire + adipe + adottare + adulare + affabile + affetto + affisso + affranto + aforisma + afoso + africano + agave + agente + agevole + aggancio + agire + agitare + agonismo + agricolo + agrumeto + aguzzo + alabarda + alato + albatro + alberato + albo + albume + alce + alcolico + alettone + alfa + algebra + aliante + alibi + alimento + allagato + allegro + allievo + allodola + allusivo + almeno + alogeno + alpaca + alpestre + altalena + alterno + alticcio + altrove + alunno + alveolo + alzare + amalgama + amanita + amarena + ambito + ambrato + ameba + america + ametista + amico + ammasso + ammenda + ammirare + ammonito + amore + ampio + ampliare + amuleto + anacardo + anagrafe + analista + anarchia + anatra + anca + ancella + ancora + andare + andrea + anello + angelo + angolare + angusto + anima + annegare + annidato + anno + annuncio + anonimo + anticipo + anzi + apatico + apertura + apode + apparire + appetito + appoggio + approdo + appunto + aprile + arabica + arachide + aragosta + araldica + arancio + aratura + arazzo + arbitro + archivio + ardito + arenile + argento + argine + arguto + aria + armonia + arnese + arredato + arringa + arrosto + arsenico + arso + artefice + arzillo + asciutto + ascolto + asepsi + asettico + asfalto + asino + asola + aspirato + aspro + assaggio + asse + assoluto + assurdo + asta + astenuto + astice + astratto + atavico + ateismo + atomico + atono + attesa + attivare + attorno + attrito + attuale + ausilio + austria + autista + autonomo + autunno + avanzato + avere + avvenire + avviso + avvolgere + azione + azoto + azzimo + azzurro + babele + baccano + bacino + baco + badessa + badilata + bagnato + baita + balcone + baldo + balena + ballata + balzano + bambino + bandire + baraonda + barbaro + barca + baritono + barlume + barocco + basilico + basso + batosta + battuto + baule + bava + bavosa + becco + beffa + belgio + belva + benda + benevole + benigno + benzina + bere + berlina + beta + bibita + bici + bidone + bifido + biga + bilancia + bimbo + binocolo + biologo + bipede + bipolare + birbante + birra + biscotto + bisesto + bisnonno + bisonte + bisturi + bizzarro + blando + blatta + bollito + bonifico + bordo + bosco + botanico + bottino + bozzolo + braccio + bradipo + brama + branca + bravura + bretella + brevetto + brezza + briglia + brillante + brindare + broccolo + brodo + bronzina + brullo + bruno + bubbone + buca + budino + buffone + buio + bulbo + buono + burlone + burrasca + bussola + busta + cadetto + caduco + calamaro + calcolo + calesse + calibro + calmo + caloria + cambusa + camerata + camicia + cammino + camola + campale + canapa + candela + cane + canino + canotto + cantina + capace + capello + capitolo + capogiro + cappero + capra + capsula + carapace + carcassa + cardo + carisma + carovana + carretto + cartolina + casaccio + cascata + caserma + caso + cassone + castello + casuale + catasta + catena + catrame + cauto + cavillo + cedibile + cedrata + cefalo + celebre + cellulare + cena + cenone + centesimo + ceramica + cercare + certo + cerume + cervello + cesoia + cespo + ceto + chela + chiaro + chicca + chiedere + chimera + china + chirurgo + chitarra + ciao + ciclismo + cifrare + cigno + cilindro + ciottolo + circa + cirrosi + citrico + cittadino + ciuffo + civetta + civile + classico + clinica + cloro + cocco + codardo + codice + coerente + cognome + collare + colmato + colore + colposo + coltivato + colza + coma + cometa + commando + comodo + computer + comune + conciso + condurre + conferma + congelare + coniuge + connesso + conoscere + consumo + continuo + convegno + coperto + copione + coppia + copricapo + corazza + cordata + coricato + cornice + corolla + corpo + corredo + corsia + cortese + cosmico + costante + cottura + covato + cratere + cravatta + creato + credere + cremoso + crescita + creta + criceto + crinale + crisi + critico + croce + cronaca + crostata + cruciale + crusca + cucire + cuculo + cugino + cullato + cupola + curatore + cursore + curvo + cuscino + custode + dado + daino + dalmata + damerino + daniela + dannoso + danzare + datato + davanti + davvero + debutto + decennio + deciso + declino + decollo + decreto + dedicato + definito + deforme + degno + delegare + delfino + delirio + delta + demenza + denotato + dentro + deposito + derapata + derivare + deroga + descritto + deserto + desiderio + desumere + detersivo + devoto + diametro + dicembre + diedro + difeso + diffuso + digerire + digitale + diluvio + dinamico + dinnanzi + dipinto + diploma + dipolo + diradare + dire + dirotto + dirupo + disagio + discreto + disfare + disgelo + disposto + distanza + disumano + dito + divano + divelto + dividere + divorato + doblone + docente + doganale + dogma + dolce + domato + domenica + dominare + dondolo + dono + dormire + dote + dottore + dovuto + dozzina + drago + druido + dubbio + dubitare + ducale + duna + duomo + duplice + duraturo + ebano + eccesso + ecco + eclissi + economia + edera + edicola + edile + editoria + educare + egemonia + egli + egoismo + egregio + elaborato + elargire + elegante + elencato + eletto + elevare + elfico + elica + elmo + elsa + eluso + emanato + emblema + emesso + emiro + emotivo + emozione + empirico + emulo + endemico + enduro + energia + enfasi + enoteca + entrare + enzima + epatite + epilogo + episodio + epocale + eppure + equatore + erario + erba + erboso + erede + eremita + erigere + ermetico + eroe + erosivo + errante + esagono + esame + esanime + esaudire + esca + esempio + esercito + esibito + esigente + esistere + esito + esofago + esortato + esoso + espanso + espresso + essenza + esso + esteso + estimare + estonia + estroso + esultare + etilico + etnico + etrusco + etto + euclideo + europa + evaso + evidenza + evitato + evoluto + evviva + fabbrica + faccenda + fachiro + falco + famiglia + fanale + fanfara + fango + fantasma + fare + farfalla + farinoso + farmaco + fascia + fastoso + fasullo + faticare + fato + favoloso + febbre + fecola + fede + fegato + felpa + feltro + femmina + fendere + fenomeno + fermento + ferro + fertile + fessura + festivo + fetta + feudo + fiaba + fiducia + fifa + figurato + filo + finanza + finestra + finire + fiore + fiscale + fisico + fiume + flacone + flamenco + flebo + flemma + florido + fluente + fluoro + fobico + focaccia + focoso + foderato + foglio + folata + folclore + folgore + fondente + fonetico + fonia + fontana + forbito + forchetta + foresta + formica + fornaio + foro + fortezza + forzare + fosfato + fosso + fracasso + frana + frassino + fratello + freccetta + frenata + fresco + frigo + frollino + fronde + frugale + frutta + fucilata + fucsia + fuggente + fulmine + fulvo + fumante + fumetto + fumoso + fune + funzione + fuoco + furbo + furgone + furore + fuso + futile + gabbiano + gaffe + galateo + gallina + galoppo + gambero + gamma + garanzia + garbo + garofano + garzone + gasdotto + gasolio + gastrico + gatto + gaudio + gazebo + gazzella + geco + gelatina + gelso + gemello + gemmato + gene + genitore + gennaio + genotipo + gergo + ghepardo + ghiaccio + ghisa + giallo + gilda + ginepro + giocare + gioiello + giorno + giove + girato + girone + gittata + giudizio + giurato + giusto + globulo + glutine + gnomo + gobba + golf + gomito + gommone + gonfio + gonna + governo + gracile + grado + grafico + grammo + grande + grattare + gravoso + grazia + greca + gregge + grifone + grigio + grinza + grotta + gruppo + guadagno + guaio + guanto + guardare + gufo + guidare + ibernato + icona + identico + idillio + idolo + idra + idrico + idrogeno + igiene + ignaro + ignorato + ilare + illeso + illogico + illudere + imballo + imbevuto + imbocco + imbuto + immane + immerso + immolato + impacco + impeto + impiego + importo + impronta + inalare + inarcare + inattivo + incanto + incendio + inchino + incisivo + incluso + incontro + incrocio + incubo + indagine + india + indole + inedito + infatti + infilare + inflitto + ingaggio + ingegno + inglese + ingordo + ingrosso + innesco + inodore + inoltrare + inondato + insano + insetto + insieme + insonnia + insulina + intasato + intero + intonaco + intuito + inumidire + invalido + invece + invito + iperbole + ipnotico + ipotesi + ippica + iride + irlanda + ironico + irrigato + irrorare + isolato + isotopo + isterico + istituto + istrice + italia + iterare + labbro + labirinto + lacca + lacerato + lacrima + lacuna + laddove + lago + lampo + lancetta + lanterna + lardoso + larga + laringe + lastra + latenza + latino + lattuga + lavagna + lavoro + legale + leggero + lembo + lentezza + lenza + leone + lepre + lesivo + lessato + lesto + letterale + leva + levigato + libero + lido + lievito + lilla + limatura + limitare + limpido + lineare + lingua + liquido + lira + lirica + lisca + lite + litigio + livrea + locanda + lode + logica + lombare + londra + longevo + loquace + lorenzo + loto + lotteria + luce + lucidato + lumaca + luminoso + lungo + lupo + luppolo + lusinga + lusso + lutto + macabro + macchina + macero + macinato + madama + magico + maglia + magnete + magro + maiolica + malafede + malgrado + malinteso + malsano + malto + malumore + mana + mancia + mandorla + mangiare + manifesto + mannaro + manovra + mansarda + mantide + manubrio + mappa + maratona + marcire + maretta + marmo + marsupio + maschera + massaia + mastino + materasso + matricola + mattone + maturo + mazurca + meandro + meccanico + mecenate + medesimo + meditare + mega + melassa + melis + melodia + meninge + meno + mensola + mercurio + merenda + merlo + meschino + mese + messere + mestolo + metallo + metodo + mettere + miagolare + mica + micelio + michele + microbo + midollo + miele + migliore + milano + milite + mimosa + minerale + mini + minore + mirino + mirtillo + miscela + missiva + misto + misurare + mitezza + mitigare + mitra + mittente + mnemonico + modello + modifica + modulo + mogano + mogio + mole + molosso + monastero + monco + mondina + monetario + monile + monotono + monsone + montato + monviso + mora + mordere + morsicato + mostro + motivato + motosega + motto + movenza + movimento + mozzo + mucca + mucosa + muffa + mughetto + mugnaio + mulatto + mulinello + multiplo + mummia + munto + muovere + murale + musa + muscolo + musica + mutevole + muto + nababbo + nafta + nanometro + narciso + narice + narrato + nascere + nastrare + naturale + nautica + naviglio + nebulosa + necrosi + negativo + negozio + nemmeno + neofita + neretto + nervo + nessuno + nettuno + neutrale + neve + nevrotico + nicchia + ninfa + nitido + nobile + nocivo + nodo + nome + nomina + nordico + normale + norvegese + nostrano + notare + notizia + notturno + novella + nucleo + nulla + numero + nuovo + nutrire + nuvola + nuziale + oasi + obbedire + obbligo + obelisco + oblio + obolo + obsoleto + occasione + occhio + occidente + occorrere + occultare + ocra + oculato + odierno + odorare + offerta + offrire + offuscato + oggetto + oggi + ognuno + olandese + olfatto + oliato + oliva + ologramma + oltre + omaggio + ombelico + ombra + omega + omissione + ondoso + onere + onice + onnivoro + onorevole + onta + operato + opinione + opposto + oracolo + orafo + ordine + orecchino + orefice + orfano + organico + origine + orizzonte + orma + ormeggio + ornativo + orologio + orrendo + orribile + ortensia + ortica + orzata + orzo + osare + oscurare + osmosi + ospedale + ospite + ossa + ossidare + ostacolo + oste + otite + otre + ottagono + ottimo + ottobre + ovale + ovest + ovino + oviparo + ovocito + ovunque + ovviare + ozio + pacchetto + pace + pacifico + padella + padrone + paese + paga + pagina + palazzina + palesare + pallido + palo + palude + pandoro + pannello + paolo + paonazzo + paprica + parabola + parcella + parere + pargolo + pari + parlato + parola + partire + parvenza + parziale + passivo + pasticca + patacca + patologia + pattume + pavone + peccato + pedalare + pedonale + peggio + peloso + penare + pendice + penisola + pennuto + penombra + pensare + pentola + pepe + pepita + perbene + percorso + perdonato + perforare + pergamena + periodo + permesso + perno + perplesso + persuaso + pertugio + pervaso + pesatore + pesista + peso + pestifero + petalo + pettine + petulante + pezzo + piacere + pianta + piattino + piccino + picozza + piega + pietra + piffero + pigiama + pigolio + pigro + pila + pilifero + pillola + pilota + pimpante + pineta + pinna + pinolo + pioggia + piombo + piramide + piretico + pirite + pirolisi + pitone + pizzico + placebo + planare + plasma + platano + plenario + pochezza + poderoso + podismo + poesia + poggiare + polenta + poligono + pollice + polmonite + polpetta + polso + poltrona + polvere + pomice + pomodoro + ponte + popoloso + porfido + poroso + porpora + porre + portata + posa + positivo + possesso + postulato + potassio + potere + pranzo + prassi + pratica + precluso + predica + prefisso + pregiato + prelievo + premere + prenotare + preparato + presenza + pretesto + prevalso + prima + principe + privato + problema + procura + produrre + profumo + progetto + prolunga + promessa + pronome + proposta + proroga + proteso + prova + prudente + prugna + prurito + psiche + pubblico + pudica + pugilato + pugno + pulce + pulito + pulsante + puntare + pupazzo + pupilla + puro + quadro + qualcosa + quasi + querela + quota + raccolto + raddoppio + radicale + radunato + raffica + ragazzo + ragione + ragno + ramarro + ramingo + ramo + randagio + rantolare + rapato + rapina + rappreso + rasatura + raschiato + rasente + rassegna + rastrello + rata + ravveduto + reale + recepire + recinto + recluta + recondito + recupero + reddito + redimere + regalato + registro + regola + regresso + relazione + remare + remoto + renna + replica + reprimere + reputare + resa + residente + responso + restauro + rete + retina + retorica + rettifica + revocato + riassunto + ribadire + ribelle + ribrezzo + ricarica + ricco + ricevere + riciclato + ricordo + ricreduto + ridicolo + ridurre + rifasare + riflesso + riforma + rifugio + rigare + rigettato + righello + rilassato + rilevato + rimanere + rimbalzo + rimedio + rimorchio + rinascita + rincaro + rinforzo + rinnovo + rinomato + rinsavito + rintocco + rinuncia + rinvenire + riparato + ripetuto + ripieno + riportare + ripresa + ripulire + risata + rischio + riserva + risibile + riso + rispetto + ristoro + risultato + risvolto + ritardo + ritegno + ritmico + ritrovo + riunione + riva + riverso + rivincita + rivolto + rizoma + roba + robotico + robusto + roccia + roco + rodaggio + rodere + roditore + rogito + rollio + romantico + rompere + ronzio + rosolare + rospo + rotante + rotondo + rotula + rovescio + rubizzo + rubrica + ruga + rullino + rumine + rumoroso + ruolo + rupe + russare + rustico + sabato + sabbiare + sabotato + sagoma + salasso + saldatura + salgemma + salivare + salmone + salone + saltare + saluto + salvo + sapere + sapido + saporito + saraceno + sarcasmo + sarto + sassoso + satellite + satira + satollo + saturno + savana + savio + saziato + sbadiglio + sbalzo + sbancato + sbarra + sbattere + sbavare + sbendare + sbirciare + sbloccato + sbocciato + sbrinare + sbruffone + sbuffare + scabroso + scadenza + scala + scambiare + scandalo + scapola + scarso + scatenare + scavato + scelto + scenico + scettro + scheda + schiena + sciarpa + scienza + scindere + scippo + sciroppo + scivolo + sclerare + scodella + scolpito + scomparto + sconforto + scoprire + scorta + scossone + scozzese + scriba + scrollare + scrutinio + scuderia + scultore + scuola + scuro + scusare + sdebitare + sdoganare + seccatura + secondo + sedano + seggiola + segnalato + segregato + seguito + selciato + selettivo + sella + selvaggio + semaforo + sembrare + seme + seminato + sempre + senso + sentire + sepolto + sequenza + serata + serbato + sereno + serio + serpente + serraglio + servire + sestina + setola + settimana + sfacelo + sfaldare + sfamato + sfarzoso + sfaticato + sfera + sfida + sfilato + sfinge + sfocato + sfoderare + sfogo + sfoltire + sforzato + sfratto + sfruttato + sfuggito + sfumare + sfuso + sgabello + sgarbato + sgonfiare + sgorbio + sgrassato + sguardo + sibilo + siccome + sierra + sigla + signore + silenzio + sillaba + simbolo + simpatico + simulato + sinfonia + singolo + sinistro + sino + sintesi + sinusoide + sipario + sisma + sistole + situato + slitta + slogatura + sloveno + smarrito + smemorato + smentito + smeraldo + smilzo + smontare + smottato + smussato + snellire + snervato + snodo + sobbalzo + sobrio + soccorso + sociale + sodale + soffitto + sogno + soldato + solenne + solido + sollazzo + solo + solubile + solvente + somatico + somma + sonda + sonetto + sonnifero + sopire + soppeso + sopra + sorgere + sorpasso + sorriso + sorso + sorteggio + sorvolato + sospiro + sosta + sottile + spada + spalla + spargere + spatola + spavento + spazzola + specie + spedire + spegnere + spelatura + speranza + spessore + spettrale + spezzato + spia + spigoloso + spillato + spinoso + spirale + splendido + sportivo + sposo + spranga + sprecare + spronato + spruzzo + spuntino + squillo + sradicare + srotolato + stabile + stacco + staffa + stagnare + stampato + stantio + starnuto + stasera + statuto + stelo + steppa + sterzo + stiletto + stima + stirpe + stivale + stizzoso + stonato + storico + strappo + stregato + stridulo + strozzare + strutto + stuccare + stufo + stupendo + subentro + succoso + sudore + suggerito + sugo + sultano + suonare + superbo + supporto + surgelato + surrogato + sussurro + sutura + svagare + svedese + sveglio + svelare + svenuto + svezia + sviluppo + svista + svizzera + svolta + svuotare + tabacco + tabulato + tacciare + taciturno + tale + talismano + tampone + tannino + tara + tardivo + targato + tariffa + tarpare + tartaruga + tasto + tattico + taverna + tavolata + tazza + teca + tecnico + telefono + temerario + tempo + temuto + tendone + tenero + tensione + tentacolo + teorema + terme + terrazzo + terzetto + tesi + tesserato + testato + tetro + tettoia + tifare + tigella + timbro + tinto + tipico + tipografo + tiraggio + tiro + titanio + titolo + titubante + tizio + tizzone + toccare + tollerare + tolto + tombola + tomo + tonfo + tonsilla + topazio + topologia + toppa + torba + tornare + torrone + tortora + toscano + tossire + tostatura + totano + trabocco + trachea + trafila + tragedia + tralcio + tramonto + transito + trapano + trarre + trasloco + trattato + trave + treccia + tremolio + trespolo + tributo + tricheco + trifoglio + trillo + trincea + trio + tristezza + triturato + trivella + tromba + trono + troppo + trottola + trovare + truccato + tubatura + tuffato + tulipano + tumulto + tunisia + turbare + turchino + tuta + tutela + ubicato + uccello + uccisore + udire + uditivo + uffa + ufficio + uguale + ulisse + ultimato + umano + umile + umorismo + uncinetto + ungere + ungherese + unicorno + unificato + unisono + unitario + unte + uovo + upupa + uragano + urgenza + urlo + usanza + usato + uscito + usignolo + usuraio + utensile + utilizzo + utopia + vacante + vaccinato + vagabondo + vagliato + valanga + valgo + valico + valletta + valoroso + valutare + valvola + vampata + vangare + vanitoso + vano + vantaggio + vanvera + vapore + varano + varcato + variante + vasca + vedetta + vedova + veduto + vegetale + veicolo + velcro + velina + velluto + veloce + venato + vendemmia + vento + verace + verbale + vergogna + verifica + vero + verruca + verticale + vescica + vessillo + vestale + veterano + vetrina + vetusto + viandante + vibrante + vicenda + vichingo + vicinanza + vidimare + vigilia + vigneto + vigore + vile + villano + vimini + vincitore + viola + vipera + virgola + virologo + virulento + viscoso + visione + vispo + vissuto + visura + vita + vitello + vittima + vivanda + vivido + viziare + voce + voga + volatile + volere + volpe + voragine + vulcano + zampogna + zanna + zappato + zattera + zavorra + zefiro + zelante + zelo + zenzero + zerbino + zibetto + zinco + zircone + zitto + zolla + zotico + zucchero + zufolo + zulu + zuppa + """ + return words.split(separator: "\n").map { String($0) } + }() +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Japanese.swift b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Japanese.swift new file mode 100644 index 00000000..67048888 --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Japanese.swift @@ -0,0 +1,2085 @@ +// +// WordList.swift +// +// Copyright © 2018 Kishikawa Katsumi +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +// swiftlint:disable file_length +public extension WordList { + static var japanese: [String] = { + let words = + """ + あいこくしん + あいさつ + あいだ + あおぞら + あかちゃん + あきる + あけがた + あける + あこがれる + あさい + あさひ + あしあと + あじわう + あずかる + あずき + あそぶ + あたえる + あたためる + あたりまえ + あたる + あつい + あつかう + あっしゅく + あつまり + あつめる + あてな + あてはまる + あひる + あぶら + あぶる + あふれる + あまい + あまど + あまやかす + あまり + あみもの + あめりか + あやまる + あゆむ + あらいぐま + あらし + あらすじ + あらためる + あらゆる + あらわす + ありがとう + あわせる + あわてる + あんい + あんがい + あんこ + あんぜん + あんてい + あんない + あんまり + いいだす + いおん + いがい + いがく + いきおい + いきなり + いきもの + いきる + いくじ + いくぶん + いけばな + いけん + いこう + いこく + いこつ + いさましい + いさん + いしき + いじゅう + いじょう + いじわる + いずみ + いずれ + いせい + いせえび + いせかい + いせき + いぜん + いそうろう + いそがしい + いだい + いだく + いたずら + いたみ + いたりあ + いちおう + いちじ + いちど + いちば + いちぶ + いちりゅう + いつか + いっしゅん + いっせい + いっそう + いったん + いっち + いってい + いっぽう + いてざ + いてん + いどう + いとこ + いない + いなか + いねむり + いのち + いのる + いはつ + いばる + いはん + いびき + いひん + いふく + いへん + いほう + いみん + いもうと + いもたれ + いもり + いやがる + いやす + いよかん + いよく + いらい + いらすと + いりぐち + いりょう + いれい + いれもの + いれる + いろえんぴつ + いわい + いわう + いわかん + いわば + いわゆる + いんげんまめ + いんさつ + いんしょう + いんよう + うえき + うえる + うおざ + うがい + うかぶ + うかべる + うきわ + うくらいな + うくれれ + うけたまわる + うけつけ + うけとる + うけもつ + うける + うごかす + うごく + うこん + うさぎ + うしなう + うしろがみ + うすい + うすぎ + うすぐらい + うすめる + うせつ + うちあわせ + うちがわ + うちき + うちゅう + うっかり + うつくしい + うったえる + うつる + うどん + うなぎ + うなじ + うなずく + うなる + うねる + うのう + うぶげ + うぶごえ + うまれる + うめる + うもう + うやまう + うよく + うらがえす + うらぐち + うらない + うりあげ + うりきれ + うるさい + うれしい + うれゆき + うれる + うろこ + うわき + うわさ + うんこう + うんちん + うんてん + うんどう + えいえん + えいが + えいきょう + えいご + えいせい + えいぶん + えいよう + えいわ + えおり + えがお + えがく + えきたい + えくせる + えしゃく + えすて + えつらん + えのぐ + えほうまき + えほん + えまき + えもじ + えもの + えらい + えらぶ + えりあ + えんえん + えんかい + えんぎ + えんげき + えんしゅう + えんぜつ + えんそく + えんちょう + えんとつ + おいかける + おいこす + おいしい + おいつく + おうえん + おうさま + おうじ + おうせつ + おうたい + おうふく + おうべい + おうよう + おえる + おおい + おおう + おおどおり + おおや + おおよそ + おかえり + おかず + おがむ + おかわり + おぎなう + おきる + おくさま + おくじょう + おくりがな + おくる + おくれる + おこす + おこなう + おこる + おさえる + おさない + おさめる + おしいれ + おしえる + おじぎ + おじさん + おしゃれ + おそらく + おそわる + おたがい + おたく + おだやか + おちつく + おっと + おつり + おでかけ + おとしもの + おとなしい + おどり + おどろかす + おばさん + おまいり + おめでとう + おもいで + おもう + おもたい + おもちゃ + おやつ + おやゆび + およぼす + おらんだ + おろす + おんがく + おんけい + おんしゃ + おんせん + おんだん + おんちゅう + おんどけい + かあつ + かいが + がいき + がいけん + がいこう + かいさつ + かいしゃ + かいすいよく + かいぜん + かいぞうど + かいつう + かいてん + かいとう + かいふく + がいへき + かいほう + かいよう + がいらい + かいわ + かえる + かおり + かかえる + かがく + かがし + かがみ + かくご + かくとく + かざる + がぞう + かたい + かたち + がちょう + がっきゅう + がっこう + がっさん + がっしょう + かなざわし + かのう + がはく + かぶか + かほう + かほご + かまう + かまぼこ + かめれおん + かゆい + かようび + からい + かるい + かろう + かわく + かわら + がんか + かんけい + かんこう + かんしゃ + かんそう + かんたん + かんち + がんばる + きあい + きあつ + きいろ + ぎいん + きうい + きうん + きえる + きおう + きおく + きおち + きおん + きかい + きかく + きかんしゃ + ききて + きくばり + きくらげ + きけんせい + きこう + きこえる + きこく + きさい + きさく + きさま + きさらぎ + ぎじかがく + ぎしき + ぎじたいけん + ぎじにってい + ぎじゅつしゃ + きすう + きせい + きせき + きせつ + きそう + きぞく + きぞん + きたえる + きちょう + きつえん + ぎっちり + きつつき + きつね + きてい + きどう + きどく + きない + きなが + きなこ + きぬごし + きねん + きのう + きのした + きはく + きびしい + きひん + きふく + きぶん + きぼう + きほん + きまる + きみつ + きむずかしい + きめる + きもだめし + きもち + きもの + きゃく + きやく + ぎゅうにく + きよう + きょうりゅう + きらい + きらく + きりん + きれい + きれつ + きろく + ぎろん + きわめる + ぎんいろ + きんかくじ + きんじょ + きんようび + ぐあい + くいず + くうかん + くうき + くうぐん + くうこう + ぐうせい + くうそう + ぐうたら + くうふく + くうぼ + くかん + くきょう + くげん + ぐこう + くさい + くさき + くさばな + くさる + くしゃみ + くしょう + くすのき + くすりゆび + くせげ + くせん + ぐたいてき + くださる + くたびれる + くちこみ + くちさき + くつした + ぐっすり + くつろぐ + くとうてん + くどく + くなん + くねくね + くのう + くふう + くみあわせ + くみたてる + くめる + くやくしょ + くらす + くらべる + くるま + くれる + くろう + くわしい + ぐんかん + ぐんしょく + ぐんたい + ぐんて + けあな + けいかく + けいけん + けいこ + けいさつ + げいじゅつ + けいたい + げいのうじん + けいれき + けいろ + けおとす + けおりもの + げきか + げきげん + げきだん + げきちん + げきとつ + げきは + げきやく + げこう + げこくじょう + げざい + けさき + げざん + けしき + けしごむ + けしょう + げすと + けたば + けちゃっぷ + けちらす + けつあつ + けつい + けつえき + けっこん + けつじょ + けっせき + けってい + けつまつ + げつようび + げつれい + けつろん + げどく + けとばす + けとる + けなげ + けなす + けなみ + けぬき + げねつ + けねん + けはい + げひん + けぶかい + げぼく + けまり + けみかる + けむし + けむり + けもの + けらい + けろけろ + けわしい + けんい + けんえつ + けんお + けんか + げんき + けんげん + けんこう + けんさく + けんしゅう + けんすう + げんそう + けんちく + けんてい + けんとう + けんない + けんにん + げんぶつ + けんま + けんみん + けんめい + けんらん + けんり + こあくま + こいぬ + こいびと + ごうい + こうえん + こうおん + こうかん + ごうきゅう + ごうけい + こうこう + こうさい + こうじ + こうすい + ごうせい + こうそく + こうたい + こうちゃ + こうつう + こうてい + こうどう + こうない + こうはい + ごうほう + ごうまん + こうもく + こうりつ + こえる + こおり + ごかい + ごがつ + ごかん + こくご + こくさい + こくとう + こくない + こくはく + こぐま + こけい + こける + ここのか + こころ + こさめ + こしつ + こすう + こせい + こせき + こぜん + こそだて + こたい + こたえる + こたつ + こちょう + こっか + こつこつ + こつばん + こつぶ + こてい + こてん + ことがら + ことし + ことば + ことり + こなごな + こねこね + このまま + このみ + このよ + ごはん + こひつじ + こふう + こふん + こぼれる + ごまあぶら + こまかい + ごますり + こまつな + こまる + こむぎこ + こもじ + こもち + こもの + こもん + こやく + こやま + こゆう + こゆび + こよい + こよう + こりる + これくしょん + ころっけ + こわもて + こわれる + こんいん + こんかい + こんき + こんしゅう + こんすい + こんだて + こんとん + こんなん + こんびに + こんぽん + こんまけ + こんや + こんれい + こんわく + ざいえき + さいかい + さいきん + ざいげん + ざいこ + さいしょ + さいせい + ざいたく + ざいちゅう + さいてき + ざいりょう + さうな + さかいし + さがす + さかな + さかみち + さがる + さぎょう + さくし + さくひん + さくら + さこく + さこつ + さずかる + ざせき + さたん + さつえい + ざつおん + ざっか + ざつがく + さっきょく + ざっし + さつじん + ざっそう + さつたば + さつまいも + さてい + さといも + さとう + さとおや + さとし + さとる + さのう + さばく + さびしい + さべつ + さほう + さほど + さます + さみしい + さみだれ + さむけ + さめる + さやえんどう + さゆう + さよう + さよく + さらだ + ざるそば + さわやか + さわる + さんいん + さんか + さんきゃく + さんこう + さんさい + ざんしょ + さんすう + さんせい + さんそ + さんち + さんま + さんみ + さんらん + しあい + しあげ + しあさって + しあわせ + しいく + しいん + しうち + しえい + しおけ + しかい + しかく + じかん + しごと + しすう + じだい + したうけ + したぎ + したて + したみ + しちょう + しちりん + しっかり + しつじ + しつもん + してい + してき + してつ + じてん + じどう + しなぎれ + しなもの + しなん + しねま + しねん + しのぐ + しのぶ + しはい + しばかり + しはつ + しはらい + しはん + しひょう + しふく + じぶん + しへい + しほう + しほん + しまう + しまる + しみん + しむける + じむしょ + しめい + しめる + しもん + しゃいん + しゃうん + しゃおん + じゃがいも + しやくしょ + しゃくほう + しゃけん + しゃこ + しゃざい + しゃしん + しゃせん + しゃそう + しゃたい + しゃちょう + しゃっきん + じゃま + しゃりん + しゃれい + じゆう + じゅうしょ + しゅくはく + じゅしん + しゅっせき + しゅみ + しゅらば + じゅんばん + しょうかい + しょくたく + しょっけん + しょどう + しょもつ + しらせる + しらべる + しんか + しんこう + じんじゃ + しんせいじ + しんちく + しんりん + すあげ + すあし + すあな + ずあん + すいえい + すいか + すいとう + ずいぶん + すいようび + すうがく + すうじつ + すうせん + すおどり + すきま + すくう + すくない + すける + すごい + すこし + ずさん + すずしい + すすむ + すすめる + すっかり + ずっしり + ずっと + すてき + すてる + すねる + すのこ + すはだ + すばらしい + ずひょう + ずぶぬれ + すぶり + すふれ + すべて + すべる + ずほう + すぼん + すまい + すめし + すもう + すやき + すらすら + するめ + すれちがう + すろっと + すわる + すんぜん + すんぽう + せあぶら + せいかつ + せいげん + せいじ + せいよう + せおう + せかいかん + せきにん + せきむ + せきゆ + せきらんうん + せけん + せこう + せすじ + せたい + せたけ + せっかく + せっきゃく + ぜっく + せっけん + せっこつ + せっさたくま + せつぞく + せつだん + せつでん + せっぱん + せつび + せつぶん + せつめい + せつりつ + せなか + せのび + せはば + せびろ + せぼね + せまい + せまる + せめる + せもたれ + せりふ + ぜんあく + せんい + せんえい + せんか + せんきょ + せんく + せんげん + ぜんご + せんさい + せんしゅ + せんすい + せんせい + せんぞ + せんたく + せんちょう + せんてい + せんとう + せんぬき + せんねん + せんぱい + ぜんぶ + ぜんぽう + せんむ + せんめんじょ + せんもん + せんやく + せんゆう + せんよう + ぜんら + ぜんりゃく + せんれい + せんろ + そあく + そいとげる + そいね + そうがんきょう + そうき + そうご + そうしん + そうだん + そうなん + そうび + そうめん + そうり + そえもの + そえん + そがい + そげき + そこう + そこそこ + そざい + そしな + そせい + そせん + そそぐ + そだてる + そつう + そつえん + そっかん + そつぎょう + そっけつ + そっこう + そっせん + そっと + そとがわ + そとづら + そなえる + そなた + そふぼ + そぼく + そぼろ + そまつ + そまる + そむく + そむりえ + そめる + そもそも + そよかぜ + そらまめ + そろう + そんかい + そんけい + そんざい + そんしつ + そんぞく + そんちょう + ぞんび + ぞんぶん + そんみん + たあい + たいいん + たいうん + たいえき + たいおう + だいがく + たいき + たいぐう + たいけん + たいこ + たいざい + だいじょうぶ + だいすき + たいせつ + たいそう + だいたい + たいちょう + たいてい + だいどころ + たいない + たいねつ + たいのう + たいはん + だいひょう + たいふう + たいへん + たいほ + たいまつばな + たいみんぐ + たいむ + たいめん + たいやき + たいよう + たいら + たいりょく + たいる + たいわん + たうえ + たえる + たおす + たおる + たおれる + たかい + たかね + たきび + たくさん + たこく + たこやき + たさい + たしざん + だじゃれ + たすける + たずさわる + たそがれ + たたかう + たたく + ただしい + たたみ + たちばな + だっかい + だっきゃく + だっこ + だっしゅつ + だったい + たてる + たとえる + たなばた + たにん + たぬき + たのしみ + たはつ + たぶん + たべる + たぼう + たまご + たまる + だむる + ためいき + ためす + ためる + たもつ + たやすい + たよる + たらす + たりきほんがん + たりょう + たりる + たると + たれる + たれんと + たろっと + たわむれる + だんあつ + たんい + たんおん + たんか + たんき + たんけん + たんご + たんさん + たんじょうび + だんせい + たんそく + たんたい + だんち + たんてい + たんとう + だんな + たんにん + だんねつ + たんのう + たんぴん + だんぼう + たんまつ + たんめい + だんれつ + だんろ + だんわ + ちあい + ちあん + ちいき + ちいさい + ちえん + ちかい + ちから + ちきゅう + ちきん + ちけいず + ちけん + ちこく + ちさい + ちしき + ちしりょう + ちせい + ちそう + ちたい + ちたん + ちちおや + ちつじょ + ちてき + ちてん + ちぬき + ちぬり + ちのう + ちひょう + ちへいせん + ちほう + ちまた + ちみつ + ちみどろ + ちめいど + ちゃんこなべ + ちゅうい + ちゆりょく + ちょうし + ちょさくけん + ちらし + ちらみ + ちりがみ + ちりょう + ちるど + ちわわ + ちんたい + ちんもく + ついか + ついたち + つうか + つうじょう + つうはん + つうわ + つかう + つかれる + つくね + つくる + つけね + つける + つごう + つたえる + つづく + つつじ + つつむ + つとめる + つながる + つなみ + つねづね + つのる + つぶす + つまらない + つまる + つみき + つめたい + つもり + つもる + つよい + つるぼ + つるみく + つわもの + つわり + てあし + てあて + てあみ + ていおん + ていか + ていき + ていけい + ていこく + ていさつ + ていし + ていせい + ていたい + ていど + ていねい + ていひょう + ていへん + ていぼう + てうち + ておくれ + てきとう + てくび + でこぼこ + てさぎょう + てさげ + てすり + てそう + てちがい + てちょう + てつがく + てつづき + でっぱ + てつぼう + てつや + でぬかえ + てぬき + てぬぐい + てのひら + てはい + てぶくろ + てふだ + てほどき + てほん + てまえ + てまきずし + てみじか + てみやげ + てらす + てれび + てわけ + てわたし + でんあつ + てんいん + てんかい + てんき + てんぐ + てんけん + てんごく + てんさい + てんし + てんすう + でんち + てんてき + てんとう + てんない + てんぷら + てんぼうだい + てんめつ + てんらんかい + でんりょく + でんわ + どあい + といれ + どうかん + とうきゅう + どうぐ + とうし + とうむぎ + とおい + とおか + とおく + とおす + とおる + とかい + とかす + ときおり + ときどき + とくい + とくしゅう + とくてん + とくに + とくべつ + とけい + とける + とこや + とさか + としょかん + とそう + とたん + とちゅう + とっきゅう + とっくん + とつぜん + とつにゅう + とどける + ととのえる + とない + となえる + となり + とのさま + とばす + どぶがわ + とほう + とまる + とめる + ともだち + ともる + どようび + とらえる + とんかつ + どんぶり + ないかく + ないこう + ないしょ + ないす + ないせん + ないそう + なおす + ながい + なくす + なげる + なこうど + なさけ + なたでここ + なっとう + なつやすみ + ななおし + なにごと + なにもの + なにわ + なのか + なふだ + なまいき + なまえ + なまみ + なみだ + なめらか + なめる + なやむ + ならう + ならび + ならぶ + なれる + なわとび + なわばり + にあう + にいがた + にうけ + におい + にかい + にがて + にきび + にくしみ + にくまん + にげる + にさんかたんそ + にしき + にせもの + にちじょう + にちようび + にっか + にっき + にっけい + にっこう + にっさん + にっしょく + にっすう + にっせき + にってい + になう + にほん + にまめ + にもつ + にやり + にゅういん + にりんしゃ + にわとり + にんい + にんか + にんき + にんげん + にんしき + にんずう + にんそう + にんたい + にんち + にんてい + にんにく + にんぷ + にんまり + にんむ + にんめい + にんよう + ぬいくぎ + ぬかす + ぬぐいとる + ぬぐう + ぬくもり + ぬすむ + ぬまえび + ぬめり + ぬらす + ぬんちゃく + ねあげ + ねいき + ねいる + ねいろ + ねぐせ + ねくたい + ねくら + ねこぜ + ねこむ + ねさげ + ねすごす + ねそべる + ねだん + ねつい + ねっしん + ねつぞう + ねったいぎょ + ねぶそく + ねふだ + ねぼう + ねほりはほり + ねまき + ねまわし + ねみみ + ねむい + ねむたい + ねもと + ねらう + ねわざ + ねんいり + ねんおし + ねんかん + ねんきん + ねんぐ + ねんざ + ねんし + ねんちゃく + ねんど + ねんぴ + ねんぶつ + ねんまつ + ねんりょう + ねんれい + のいず + のおづま + のがす + のきなみ + のこぎり + のこす + のこる + のせる + のぞく + のぞむ + のたまう + のちほど + のっく + のばす + のはら + のべる + のぼる + のみもの + のやま + のらいぬ + のらねこ + のりもの + のりゆき + のれん + のんき + ばあい + はあく + ばあさん + ばいか + ばいく + はいけん + はいご + はいしん + はいすい + はいせん + はいそう + はいち + ばいばい + はいれつ + はえる + はおる + はかい + ばかり + はかる + はくしゅ + はけん + はこぶ + はさみ + はさん + はしご + ばしょ + はしる + はせる + ぱそこん + はそん + はたん + はちみつ + はつおん + はっかく + はづき + はっきり + はっくつ + はっけん + はっこう + はっさん + はっしん + はったつ + はっちゅう + はってん + はっぴょう + はっぽう + はなす + はなび + はにかむ + はぶらし + はみがき + はむかう + はめつ + はやい + はやし + はらう + はろうぃん + はわい + はんい + はんえい + はんおん + はんかく + はんきょう + ばんぐみ + はんこ + はんしゃ + はんすう + はんだん + ぱんち + ぱんつ + はんてい + はんとし + はんのう + はんぱ + はんぶん + はんぺん + はんぼうき + はんめい + はんらん + はんろん + ひいき + ひうん + ひえる + ひかく + ひかり + ひかる + ひかん + ひくい + ひけつ + ひこうき + ひこく + ひさい + ひさしぶり + ひさん + びじゅつかん + ひしょ + ひそか + ひそむ + ひたむき + ひだり + ひたる + ひつぎ + ひっこし + ひっし + ひつじゅひん + ひっす + ひつぜん + ぴったり + ぴっちり + ひつよう + ひてい + ひとごみ + ひなまつり + ひなん + ひねる + ひはん + ひびく + ひひょう + ひほう + ひまわり + ひまん + ひみつ + ひめい + ひめじし + ひやけ + ひやす + ひよう + びょうき + ひらがな + ひらく + ひりつ + ひりょう + ひるま + ひるやすみ + ひれい + ひろい + ひろう + ひろき + ひろゆき + ひんかく + ひんけつ + ひんこん + ひんしゅ + ひんそう + ぴんち + ひんぱん + びんぼう + ふあん + ふいうち + ふうけい + ふうせん + ぷうたろう + ふうとう + ふうふ + ふえる + ふおん + ふかい + ふきん + ふくざつ + ふくぶくろ + ふこう + ふさい + ふしぎ + ふじみ + ふすま + ふせい + ふせぐ + ふそく + ぶたにく + ふたん + ふちょう + ふつう + ふつか + ふっかつ + ふっき + ふっこく + ぶどう + ふとる + ふとん + ふのう + ふはい + ふひょう + ふへん + ふまん + ふみん + ふめつ + ふめん + ふよう + ふりこ + ふりる + ふるい + ふんいき + ぶんがく + ぶんぐ + ふんしつ + ぶんせき + ふんそう + ぶんぽう + へいあん + へいおん + へいがい + へいき + へいげん + へいこう + へいさ + へいしゃ + へいせつ + へいそ + へいたく + へいてん + へいねつ + へいわ + へきが + へこむ + べにいろ + べにしょうが + へらす + へんかん + べんきょう + べんごし + へんさい + へんたい + べんり + ほあん + ほいく + ぼうぎょ + ほうこく + ほうそう + ほうほう + ほうもん + ほうりつ + ほえる + ほおん + ほかん + ほきょう + ぼきん + ほくろ + ほけつ + ほけん + ほこう + ほこる + ほしい + ほしつ + ほしゅ + ほしょう + ほせい + ほそい + ほそく + ほたて + ほたる + ぽちぶくろ + ほっきょく + ほっさ + ほったん + ほとんど + ほめる + ほんい + ほんき + ほんけ + ほんしつ + ほんやく + まいにち + まかい + まかせる + まがる + まける + まこと + まさつ + まじめ + ますく + まぜる + まつり + まとめ + まなぶ + まぬけ + まねく + まほう + まもる + まゆげ + まよう + まろやか + まわす + まわり + まわる + まんが + まんきつ + まんぞく + まんなか + みいら + みうち + みえる + みがく + みかた + みかん + みけん + みこん + みじかい + みすい + みすえる + みせる + みっか + みつかる + みつける + みてい + みとめる + みなと + みなみかさい + みねらる + みのう + みのがす + みほん + みもと + みやげ + みらい + みりょく + みわく + みんか + みんぞく + むいか + むえき + むえん + むかい + むかう + むかえ + むかし + むぎちゃ + むける + むげん + むさぼる + むしあつい + むしば + むじゅん + むしろ + むすう + むすこ + むすぶ + むすめ + むせる + むせん + むちゅう + むなしい + むのう + むやみ + むよう + むらさき + むりょう + むろん + めいあん + めいうん + めいえん + めいかく + めいきょく + めいさい + めいし + めいそう + めいぶつ + めいれい + めいわく + めぐまれる + めざす + めした + めずらしい + めだつ + めまい + めやす + めんきょ + めんせき + めんどう + もうしあげる + もうどうけん + もえる + もくし + もくてき + もくようび + もちろん + もどる + もらう + もんく + もんだい + やおや + やける + やさい + やさしい + やすい + やすたろう + やすみ + やせる + やそう + やたい + やちん + やっと + やっぱり + やぶる + やめる + ややこしい + やよい + やわらかい + ゆうき + ゆうびんきょく + ゆうべ + ゆうめい + ゆけつ + ゆしゅつ + ゆせん + ゆそう + ゆたか + ゆちゃく + ゆでる + ゆにゅう + ゆびわ + ゆらい + ゆれる + ようい + ようか + ようきゅう + ようじ + ようす + ようちえん + よかぜ + よかん + よきん + よくせい + よくぼう + よけい + よごれる + よさん + よしゅう + よそう + よそく + よっか + よてい + よどがわく + よねつ + よやく + よゆう + よろこぶ + よろしい + らいう + らくがき + らくご + らくさつ + らくだ + らしんばん + らせん + らぞく + らたい + らっか + られつ + りえき + りかい + りきさく + りきせつ + りくぐん + りくつ + りけん + りこう + りせい + りそう + りそく + りてん + りねん + りゆう + りゅうがく + りよう + りょうり + りょかん + りょくちゃ + りょこう + りりく + りれき + りろん + りんご + るいけい + るいさい + るいじ + るいせき + るすばん + るりがわら + れいかん + れいぎ + れいせい + れいぞうこ + れいとう + れいぼう + れきし + れきだい + れんあい + れんけい + れんこん + れんさい + れんしゅう + れんぞく + れんらく + ろうか + ろうご + ろうじん + ろうそく + ろくが + ろこつ + ろじうら + ろしゅつ + ろせん + ろてん + ろめん + ろれつ + ろんぎ + ろんぱ + ろんぶん + ろんり + わかす + わかめ + わかやま + わかれる + わしつ + わじまし + わすれもの + わらう + われる + """ + + return words.split(separator: "\n").map { String($0) } + }() +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Korean.swift b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Korean.swift new file mode 100644 index 00000000..5c771a69 --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Korean.swift @@ -0,0 +1,2085 @@ +// +// WordList.swift +// +// Copyright © 2018 Kishikawa Katsumi +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +// swiftlint:disable file_length +public extension WordList { + static var korean: [String] = { + let words = + """ + 가격 + 가끔 + 가난 + 가능 + 가득 + 가르침 + 가뭄 + 가방 + 가상 + 가슴 + 가운데 + 가을 + 가이드 + 가입 + 가장 + 가정 + 가족 + 가죽 + 각오 + 각자 + 간격 + 간부 + 간섭 + 간장 + 간접 + 간판 + 갈등 + 갈비 + 갈색 + 갈증 + 감각 + 감기 + 감소 + 감수성 + 감자 + 감정 + 갑자기 + 강남 + 강당 + 강도 + 강력히 + 강변 + 강북 + 강사 + 강수량 + 강아지 + 강원도 + 강의 + 강제 + 강조 + 같이 + 개구리 + 개나리 + 개방 + 개별 + 개선 + 개성 + 개인 + 객관적 + 거실 + 거액 + 거울 + 거짓 + 거품 + 걱정 + 건강 + 건물 + 건설 + 건조 + 건축 + 걸음 + 검사 + 검토 + 게시판 + 게임 + 겨울 + 견해 + 결과 + 결국 + 결론 + 결석 + 결승 + 결심 + 결정 + 결혼 + 경계 + 경고 + 경기 + 경력 + 경복궁 + 경비 + 경상도 + 경영 + 경우 + 경쟁 + 경제 + 경주 + 경찰 + 경치 + 경향 + 경험 + 계곡 + 계단 + 계란 + 계산 + 계속 + 계약 + 계절 + 계층 + 계획 + 고객 + 고구려 + 고궁 + 고급 + 고등학생 + 고무신 + 고민 + 고양이 + 고장 + 고전 + 고집 + 고춧가루 + 고통 + 고향 + 곡식 + 골목 + 골짜기 + 골프 + 공간 + 공개 + 공격 + 공군 + 공급 + 공기 + 공동 + 공무원 + 공부 + 공사 + 공식 + 공업 + 공연 + 공원 + 공장 + 공짜 + 공책 + 공통 + 공포 + 공항 + 공휴일 + 과목 + 과일 + 과장 + 과정 + 과학 + 관객 + 관계 + 관광 + 관념 + 관람 + 관련 + 관리 + 관습 + 관심 + 관점 + 관찰 + 광경 + 광고 + 광장 + 광주 + 괴로움 + 굉장히 + 교과서 + 교문 + 교복 + 교실 + 교양 + 교육 + 교장 + 교직 + 교통 + 교환 + 교훈 + 구경 + 구름 + 구멍 + 구별 + 구분 + 구석 + 구성 + 구속 + 구역 + 구입 + 구청 + 구체적 + 국가 + 국기 + 국내 + 국립 + 국물 + 국민 + 국수 + 국어 + 국왕 + 국적 + 국제 + 국회 + 군대 + 군사 + 군인 + 궁극적 + 권리 + 권위 + 권투 + 귀국 + 귀신 + 규정 + 규칙 + 균형 + 그날 + 그냥 + 그늘 + 그러나 + 그룹 + 그릇 + 그림 + 그제서야 + 그토록 + 극복 + 극히 + 근거 + 근교 + 근래 + 근로 + 근무 + 근본 + 근원 + 근육 + 근처 + 글씨 + 글자 + 금강산 + 금고 + 금년 + 금메달 + 금액 + 금연 + 금요일 + 금지 + 긍정적 + 기간 + 기관 + 기념 + 기능 + 기독교 + 기둥 + 기록 + 기름 + 기법 + 기본 + 기분 + 기쁨 + 기숙사 + 기술 + 기억 + 기업 + 기온 + 기운 + 기원 + 기적 + 기준 + 기침 + 기혼 + 기획 + 긴급 + 긴장 + 길이 + 김밥 + 김치 + 김포공항 + 깍두기 + 깜빡 + 깨달음 + 깨소금 + 껍질 + 꼭대기 + 꽃잎 + 나들이 + 나란히 + 나머지 + 나물 + 나침반 + 나흘 + 낙엽 + 난방 + 날개 + 날씨 + 날짜 + 남녀 + 남대문 + 남매 + 남산 + 남자 + 남편 + 남학생 + 낭비 + 낱말 + 내년 + 내용 + 내일 + 냄비 + 냄새 + 냇물 + 냉동 + 냉면 + 냉방 + 냉장고 + 넥타이 + 넷째 + 노동 + 노란색 + 노력 + 노인 + 녹음 + 녹차 + 녹화 + 논리 + 논문 + 논쟁 + 놀이 + 농구 + 농담 + 농민 + 농부 + 농업 + 농장 + 농촌 + 높이 + 눈동자 + 눈물 + 눈썹 + 뉴욕 + 느낌 + 늑대 + 능동적 + 능력 + 다방 + 다양성 + 다음 + 다이어트 + 다행 + 단계 + 단골 + 단독 + 단맛 + 단순 + 단어 + 단위 + 단점 + 단체 + 단추 + 단편 + 단풍 + 달걀 + 달러 + 달력 + 달리 + 닭고기 + 담당 + 담배 + 담요 + 담임 + 답변 + 답장 + 당근 + 당분간 + 당연히 + 당장 + 대규모 + 대낮 + 대단히 + 대답 + 대도시 + 대략 + 대량 + 대륙 + 대문 + 대부분 + 대신 + 대응 + 대장 + 대전 + 대접 + 대중 + 대책 + 대출 + 대충 + 대통령 + 대학 + 대한민국 + 대합실 + 대형 + 덩어리 + 데이트 + 도대체 + 도덕 + 도둑 + 도망 + 도서관 + 도심 + 도움 + 도입 + 도자기 + 도저히 + 도전 + 도중 + 도착 + 독감 + 독립 + 독서 + 독일 + 독창적 + 동화책 + 뒷모습 + 뒷산 + 딸아이 + 마누라 + 마늘 + 마당 + 마라톤 + 마련 + 마무리 + 마사지 + 마약 + 마요네즈 + 마을 + 마음 + 마이크 + 마중 + 마지막 + 마찬가지 + 마찰 + 마흔 + 막걸리 + 막내 + 막상 + 만남 + 만두 + 만세 + 만약 + 만일 + 만점 + 만족 + 만화 + 많이 + 말기 + 말씀 + 말투 + 맘대로 + 망원경 + 매년 + 매달 + 매력 + 매번 + 매스컴 + 매일 + 매장 + 맥주 + 먹이 + 먼저 + 먼지 + 멀리 + 메일 + 며느리 + 며칠 + 면담 + 멸치 + 명단 + 명령 + 명예 + 명의 + 명절 + 명칭 + 명함 + 모금 + 모니터 + 모델 + 모든 + 모범 + 모습 + 모양 + 모임 + 모조리 + 모집 + 모퉁이 + 목걸이 + 목록 + 목사 + 목소리 + 목숨 + 목적 + 목표 + 몰래 + 몸매 + 몸무게 + 몸살 + 몸속 + 몸짓 + 몸통 + 몹시 + 무관심 + 무궁화 + 무더위 + 무덤 + 무릎 + 무슨 + 무엇 + 무역 + 무용 + 무조건 + 무지개 + 무척 + 문구 + 문득 + 문법 + 문서 + 문제 + 문학 + 문화 + 물가 + 물건 + 물결 + 물고기 + 물론 + 물리학 + 물음 + 물질 + 물체 + 미국 + 미디어 + 미사일 + 미술 + 미역 + 미용실 + 미움 + 미인 + 미팅 + 미혼 + 민간 + 민족 + 민주 + 믿음 + 밀가루 + 밀리미터 + 밑바닥 + 바가지 + 바구니 + 바나나 + 바늘 + 바닥 + 바닷가 + 바람 + 바이러스 + 바탕 + 박물관 + 박사 + 박수 + 반대 + 반드시 + 반말 + 반발 + 반성 + 반응 + 반장 + 반죽 + 반지 + 반찬 + 받침 + 발가락 + 발걸음 + 발견 + 발달 + 발레 + 발목 + 발바닥 + 발생 + 발음 + 발자국 + 발전 + 발톱 + 발표 + 밤하늘 + 밥그릇 + 밥맛 + 밥상 + 밥솥 + 방금 + 방면 + 방문 + 방바닥 + 방법 + 방송 + 방식 + 방안 + 방울 + 방지 + 방학 + 방해 + 방향 + 배경 + 배꼽 + 배달 + 배드민턴 + 백두산 + 백색 + 백성 + 백인 + 백제 + 백화점 + 버릇 + 버섯 + 버튼 + 번개 + 번역 + 번지 + 번호 + 벌금 + 벌레 + 벌써 + 범위 + 범인 + 범죄 + 법률 + 법원 + 법적 + 법칙 + 베이징 + 벨트 + 변경 + 변동 + 변명 + 변신 + 변호사 + 변화 + 별도 + 별명 + 별일 + 병실 + 병아리 + 병원 + 보관 + 보너스 + 보라색 + 보람 + 보름 + 보상 + 보안 + 보자기 + 보장 + 보전 + 보존 + 보통 + 보편적 + 보험 + 복도 + 복사 + 복숭아 + 복습 + 볶음 + 본격적 + 본래 + 본부 + 본사 + 본성 + 본인 + 본질 + 볼펜 + 봉사 + 봉지 + 봉투 + 부근 + 부끄러움 + 부담 + 부동산 + 부문 + 부분 + 부산 + 부상 + 부엌 + 부인 + 부작용 + 부장 + 부정 + 부족 + 부지런히 + 부친 + 부탁 + 부품 + 부회장 + 북부 + 북한 + 분노 + 분량 + 분리 + 분명 + 분석 + 분야 + 분위기 + 분필 + 분홍색 + 불고기 + 불과 + 불교 + 불꽃 + 불만 + 불법 + 불빛 + 불안 + 불이익 + 불행 + 브랜드 + 비극 + 비난 + 비닐 + 비둘기 + 비디오 + 비로소 + 비만 + 비명 + 비밀 + 비바람 + 비빔밥 + 비상 + 비용 + 비율 + 비중 + 비타민 + 비판 + 빌딩 + 빗물 + 빗방울 + 빗줄기 + 빛깔 + 빨간색 + 빨래 + 빨리 + 사건 + 사계절 + 사나이 + 사냥 + 사람 + 사랑 + 사립 + 사모님 + 사물 + 사방 + 사상 + 사생활 + 사설 + 사슴 + 사실 + 사업 + 사용 + 사월 + 사장 + 사전 + 사진 + 사촌 + 사춘기 + 사탕 + 사투리 + 사흘 + 산길 + 산부인과 + 산업 + 산책 + 살림 + 살인 + 살짝 + 삼계탕 + 삼국 + 삼십 + 삼월 + 삼촌 + 상관 + 상금 + 상대 + 상류 + 상반기 + 상상 + 상식 + 상업 + 상인 + 상자 + 상점 + 상처 + 상추 + 상태 + 상표 + 상품 + 상황 + 새벽 + 색깔 + 색연필 + 생각 + 생명 + 생물 + 생방송 + 생산 + 생선 + 생신 + 생일 + 생활 + 서랍 + 서른 + 서명 + 서민 + 서비스 + 서양 + 서울 + 서적 + 서점 + 서쪽 + 서클 + 석사 + 석유 + 선거 + 선물 + 선배 + 선생 + 선수 + 선원 + 선장 + 선전 + 선택 + 선풍기 + 설거지 + 설날 + 설렁탕 + 설명 + 설문 + 설사 + 설악산 + 설치 + 설탕 + 섭씨 + 성공 + 성당 + 성명 + 성별 + 성인 + 성장 + 성적 + 성질 + 성함 + 세금 + 세미나 + 세상 + 세월 + 세종대왕 + 세탁 + 센터 + 센티미터 + 셋째 + 소규모 + 소극적 + 소금 + 소나기 + 소년 + 소득 + 소망 + 소문 + 소설 + 소속 + 소아과 + 소용 + 소원 + 소음 + 소중히 + 소지품 + 소질 + 소풍 + 소형 + 속담 + 속도 + 속옷 + 손가락 + 손길 + 손녀 + 손님 + 손등 + 손목 + 손뼉 + 손실 + 손질 + 손톱 + 손해 + 솔직히 + 솜씨 + 송아지 + 송이 + 송편 + 쇠고기 + 쇼핑 + 수건 + 수년 + 수단 + 수돗물 + 수동적 + 수면 + 수명 + 수박 + 수상 + 수석 + 수술 + 수시로 + 수업 + 수염 + 수영 + 수입 + 수준 + 수집 + 수출 + 수컷 + 수필 + 수학 + 수험생 + 수화기 + 숙녀 + 숙소 + 숙제 + 순간 + 순서 + 순수 + 순식간 + 순위 + 숟가락 + 술병 + 술집 + 숫자 + 스님 + 스물 + 스스로 + 스승 + 스웨터 + 스위치 + 스케이트 + 스튜디오 + 스트레스 + 스포츠 + 슬쩍 + 슬픔 + 습관 + 습기 + 승객 + 승리 + 승부 + 승용차 + 승진 + 시각 + 시간 + 시골 + 시금치 + 시나리오 + 시댁 + 시리즈 + 시멘트 + 시민 + 시부모 + 시선 + 시설 + 시스템 + 시아버지 + 시어머니 + 시월 + 시인 + 시일 + 시작 + 시장 + 시절 + 시점 + 시중 + 시즌 + 시집 + 시청 + 시합 + 시험 + 식구 + 식기 + 식당 + 식량 + 식료품 + 식물 + 식빵 + 식사 + 식생활 + 식초 + 식탁 + 식품 + 신고 + 신규 + 신념 + 신문 + 신발 + 신비 + 신사 + 신세 + 신용 + 신제품 + 신청 + 신체 + 신화 + 실감 + 실내 + 실력 + 실례 + 실망 + 실수 + 실습 + 실시 + 실장 + 실정 + 실질적 + 실천 + 실체 + 실컷 + 실태 + 실패 + 실험 + 실현 + 심리 + 심부름 + 심사 + 심장 + 심정 + 심판 + 쌍둥이 + 씨름 + 씨앗 + 아가씨 + 아나운서 + 아드님 + 아들 + 아쉬움 + 아스팔트 + 아시아 + 아울러 + 아저씨 + 아줌마 + 아직 + 아침 + 아파트 + 아프리카 + 아픔 + 아홉 + 아흔 + 악기 + 악몽 + 악수 + 안개 + 안경 + 안과 + 안내 + 안녕 + 안동 + 안방 + 안부 + 안주 + 알루미늄 + 알코올 + 암시 + 암컷 + 압력 + 앞날 + 앞문 + 애인 + 애정 + 액수 + 앨범 + 야간 + 야단 + 야옹 + 약간 + 약국 + 약속 + 약수 + 약점 + 약품 + 약혼녀 + 양념 + 양력 + 양말 + 양배추 + 양주 + 양파 + 어둠 + 어려움 + 어른 + 어젯밤 + 어쨌든 + 어쩌다가 + 어쩐지 + 언니 + 언덕 + 언론 + 언어 + 얼굴 + 얼른 + 얼음 + 얼핏 + 엄마 + 업무 + 업종 + 업체 + 엉덩이 + 엉망 + 엉터리 + 엊그제 + 에너지 + 에어컨 + 엔진 + 여건 + 여고생 + 여관 + 여군 + 여권 + 여대생 + 여덟 + 여동생 + 여든 + 여론 + 여름 + 여섯 + 여성 + 여왕 + 여인 + 여전히 + 여직원 + 여학생 + 여행 + 역사 + 역시 + 역할 + 연결 + 연구 + 연극 + 연기 + 연락 + 연설 + 연세 + 연속 + 연습 + 연애 + 연예인 + 연인 + 연장 + 연주 + 연출 + 연필 + 연합 + 연휴 + 열기 + 열매 + 열쇠 + 열심히 + 열정 + 열차 + 열흘 + 염려 + 엽서 + 영국 + 영남 + 영상 + 영양 + 영역 + 영웅 + 영원히 + 영하 + 영향 + 영혼 + 영화 + 옆구리 + 옆방 + 옆집 + 예감 + 예금 + 예방 + 예산 + 예상 + 예선 + 예술 + 예습 + 예식장 + 예약 + 예전 + 예절 + 예정 + 예컨대 + 옛날 + 오늘 + 오락 + 오랫동안 + 오렌지 + 오로지 + 오른발 + 오븐 + 오십 + 오염 + 오월 + 오전 + 오직 + 오징어 + 오페라 + 오피스텔 + 오히려 + 옥상 + 옥수수 + 온갖 + 온라인 + 온몸 + 온종일 + 온통 + 올가을 + 올림픽 + 올해 + 옷차림 + 와이셔츠 + 와인 + 완성 + 완전 + 왕비 + 왕자 + 왜냐하면 + 왠지 + 외갓집 + 외국 + 외로움 + 외삼촌 + 외출 + 외침 + 외할머니 + 왼발 + 왼손 + 왼쪽 + 요금 + 요일 + 요즘 + 요청 + 용기 + 용서 + 용어 + 우산 + 우선 + 우승 + 우연히 + 우정 + 우체국 + 우편 + 운동 + 운명 + 운반 + 운전 + 운행 + 울산 + 울음 + 움직임 + 웃어른 + 웃음 + 워낙 + 원고 + 원래 + 원서 + 원숭이 + 원인 + 원장 + 원피스 + 월급 + 월드컵 + 월세 + 월요일 + 웨이터 + 위반 + 위법 + 위성 + 위원 + 위험 + 위협 + 윗사람 + 유난히 + 유럽 + 유명 + 유물 + 유산 + 유적 + 유치원 + 유학 + 유행 + 유형 + 육군 + 육상 + 육십 + 육체 + 은행 + 음력 + 음료 + 음반 + 음성 + 음식 + 음악 + 음주 + 의견 + 의논 + 의문 + 의복 + 의식 + 의심 + 의외로 + 의욕 + 의원 + 의학 + 이것 + 이곳 + 이념 + 이놈 + 이달 + 이대로 + 이동 + 이렇게 + 이력서 + 이론적 + 이름 + 이민 + 이발소 + 이별 + 이불 + 이빨 + 이상 + 이성 + 이슬 + 이야기 + 이용 + 이웃 + 이월 + 이윽고 + 이익 + 이전 + 이중 + 이튿날 + 이틀 + 이혼 + 인간 + 인격 + 인공 + 인구 + 인근 + 인기 + 인도 + 인류 + 인물 + 인생 + 인쇄 + 인연 + 인원 + 인재 + 인종 + 인천 + 인체 + 인터넷 + 인하 + 인형 + 일곱 + 일기 + 일단 + 일대 + 일등 + 일반 + 일본 + 일부 + 일상 + 일생 + 일손 + 일요일 + 일월 + 일정 + 일종 + 일주일 + 일찍 + 일체 + 일치 + 일행 + 일회용 + 임금 + 임무 + 입대 + 입력 + 입맛 + 입사 + 입술 + 입시 + 입원 + 입장 + 입학 + 자가용 + 자격 + 자극 + 자동 + 자랑 + 자부심 + 자식 + 자신 + 자연 + 자원 + 자율 + 자전거 + 자정 + 자존심 + 자판 + 작가 + 작년 + 작성 + 작업 + 작용 + 작은딸 + 작품 + 잔디 + 잔뜩 + 잔치 + 잘못 + 잠깐 + 잠수함 + 잠시 + 잠옷 + 잠자리 + 잡지 + 장관 + 장군 + 장기간 + 장래 + 장례 + 장르 + 장마 + 장면 + 장모 + 장미 + 장비 + 장사 + 장소 + 장식 + 장애인 + 장인 + 장점 + 장차 + 장학금 + 재능 + 재빨리 + 재산 + 재생 + 재작년 + 재정 + 재채기 + 재판 + 재학 + 재활용 + 저것 + 저고리 + 저곳 + 저녁 + 저런 + 저렇게 + 저번 + 저울 + 저절로 + 저축 + 적극 + 적당히 + 적성 + 적용 + 적응 + 전개 + 전공 + 전기 + 전달 + 전라도 + 전망 + 전문 + 전반 + 전부 + 전세 + 전시 + 전용 + 전자 + 전쟁 + 전주 + 전철 + 전체 + 전통 + 전혀 + 전후 + 절대 + 절망 + 절반 + 절약 + 절차 + 점검 + 점수 + 점심 + 점원 + 점점 + 점차 + 접근 + 접시 + 접촉 + 젓가락 + 정거장 + 정도 + 정류장 + 정리 + 정말 + 정면 + 정문 + 정반대 + 정보 + 정부 + 정비 + 정상 + 정성 + 정오 + 정원 + 정장 + 정지 + 정치 + 정확히 + 제공 + 제과점 + 제대로 + 제목 + 제발 + 제법 + 제삿날 + 제안 + 제일 + 제작 + 제주도 + 제출 + 제품 + 제한 + 조각 + 조건 + 조금 + 조깅 + 조명 + 조미료 + 조상 + 조선 + 조용히 + 조절 + 조정 + 조직 + 존댓말 + 존재 + 졸업 + 졸음 + 종교 + 종로 + 종류 + 종소리 + 종업원 + 종종 + 종합 + 좌석 + 죄인 + 주관적 + 주름 + 주말 + 주머니 + 주먹 + 주문 + 주민 + 주방 + 주변 + 주식 + 주인 + 주일 + 주장 + 주전자 + 주택 + 준비 + 줄거리 + 줄기 + 줄무늬 + 중간 + 중계방송 + 중국 + 중년 + 중단 + 중독 + 중반 + 중부 + 중세 + 중소기업 + 중순 + 중앙 + 중요 + 중학교 + 즉석 + 즉시 + 즐거움 + 증가 + 증거 + 증권 + 증상 + 증세 + 지각 + 지갑 + 지경 + 지극히 + 지금 + 지급 + 지능 + 지름길 + 지리산 + 지방 + 지붕 + 지식 + 지역 + 지우개 + 지원 + 지적 + 지점 + 지진 + 지출 + 직선 + 직업 + 직원 + 직장 + 진급 + 진동 + 진로 + 진료 + 진리 + 진짜 + 진찰 + 진출 + 진통 + 진행 + 질문 + 질병 + 질서 + 짐작 + 집단 + 집안 + 집중 + 짜증 + 찌꺼기 + 차남 + 차라리 + 차량 + 차림 + 차별 + 차선 + 차츰 + 착각 + 찬물 + 찬성 + 참가 + 참기름 + 참새 + 참석 + 참여 + 참외 + 참조 + 찻잔 + 창가 + 창고 + 창구 + 창문 + 창밖 + 창작 + 창조 + 채널 + 채점 + 책가방 + 책방 + 책상 + 책임 + 챔피언 + 처벌 + 처음 + 천국 + 천둥 + 천장 + 천재 + 천천히 + 철도 + 철저히 + 철학 + 첫날 + 첫째 + 청년 + 청바지 + 청소 + 청춘 + 체계 + 체력 + 체온 + 체육 + 체중 + 체험 + 초등학생 + 초반 + 초밥 + 초상화 + 초순 + 초여름 + 초원 + 초저녁 + 초점 + 초청 + 초콜릿 + 촛불 + 총각 + 총리 + 총장 + 촬영 + 최근 + 최상 + 최선 + 최신 + 최악 + 최종 + 추석 + 추억 + 추진 + 추천 + 추측 + 축구 + 축소 + 축제 + 축하 + 출근 + 출발 + 출산 + 출신 + 출연 + 출입 + 출장 + 출판 + 충격 + 충고 + 충돌 + 충분히 + 충청도 + 취업 + 취직 + 취향 + 치약 + 친구 + 친척 + 칠십 + 칠월 + 칠판 + 침대 + 침묵 + 침실 + 칫솔 + 칭찬 + 카메라 + 카운터 + 칼국수 + 캐릭터 + 캠퍼스 + 캠페인 + 커튼 + 컨디션 + 컬러 + 컴퓨터 + 코끼리 + 코미디 + 콘서트 + 콜라 + 콤플렉스 + 콩나물 + 쾌감 + 쿠데타 + 크림 + 큰길 + 큰딸 + 큰소리 + 큰아들 + 큰어머니 + 큰일 + 큰절 + 클래식 + 클럽 + 킬로 + 타입 + 타자기 + 탁구 + 탁자 + 탄생 + 태권도 + 태양 + 태풍 + 택시 + 탤런트 + 터널 + 터미널 + 테니스 + 테스트 + 테이블 + 텔레비전 + 토론 + 토마토 + 토요일 + 통계 + 통과 + 통로 + 통신 + 통역 + 통일 + 통장 + 통제 + 통증 + 통합 + 통화 + 퇴근 + 퇴원 + 퇴직금 + 튀김 + 트럭 + 특급 + 특별 + 특성 + 특수 + 특징 + 특히 + 튼튼히 + 티셔츠 + 파란색 + 파일 + 파출소 + 판결 + 판단 + 판매 + 판사 + 팔십 + 팔월 + 팝송 + 패션 + 팩스 + 팩시밀리 + 팬티 + 퍼센트 + 페인트 + 편견 + 편의 + 편지 + 편히 + 평가 + 평균 + 평생 + 평소 + 평양 + 평일 + 평화 + 포스터 + 포인트 + 포장 + 포함 + 표면 + 표정 + 표준 + 표현 + 품목 + 품질 + 풍경 + 풍속 + 풍습 + 프랑스 + 프린터 + 플라스틱 + 피곤 + 피망 + 피아노 + 필름 + 필수 + 필요 + 필자 + 필통 + 핑계 + 하느님 + 하늘 + 하드웨어 + 하룻밤 + 하반기 + 하숙집 + 하순 + 하여튼 + 하지만 + 하천 + 하품 + 하필 + 학과 + 학교 + 학급 + 학기 + 학년 + 학력 + 학번 + 학부모 + 학비 + 학생 + 학술 + 학습 + 학용품 + 학원 + 학위 + 학자 + 학점 + 한계 + 한글 + 한꺼번에 + 한낮 + 한눈 + 한동안 + 한때 + 한라산 + 한마디 + 한문 + 한번 + 한복 + 한식 + 한여름 + 한쪽 + 할머니 + 할아버지 + 할인 + 함께 + 함부로 + 합격 + 합리적 + 항공 + 항구 + 항상 + 항의 + 해결 + 해군 + 해답 + 해당 + 해물 + 해석 + 해설 + 해수욕장 + 해안 + 핵심 + 핸드백 + 햄버거 + 햇볕 + 햇살 + 행동 + 행복 + 행사 + 행운 + 행위 + 향기 + 향상 + 향수 + 허락 + 허용 + 헬기 + 현관 + 현금 + 현대 + 현상 + 현실 + 현장 + 현재 + 현지 + 혈액 + 협력 + 형부 + 형사 + 형수 + 형식 + 형제 + 형태 + 형편 + 혜택 + 호기심 + 호남 + 호랑이 + 호박 + 호텔 + 호흡 + 혹시 + 홀로 + 홈페이지 + 홍보 + 홍수 + 홍차 + 화면 + 화분 + 화살 + 화요일 + 화장 + 화학 + 확보 + 확인 + 확장 + 확정 + 환갑 + 환경 + 환영 + 환율 + 환자 + 활기 + 활동 + 활발히 + 활용 + 활짝 + 회견 + 회관 + 회복 + 회색 + 회원 + 회장 + 회전 + 횟수 + 횡단보도 + 효율적 + 후반 + 후춧가루 + 훈련 + 훨씬 + 휴식 + 휴일 + 흉내 + 흐름 + 흑백 + 흑인 + 흔적 + 흔히 + 흥미 + 흥분 + 희곡 + 희망 + 희생 + 흰색 + 힘껏 + """ + return words.split(separator: "\n").map { String($0) } + }() + +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+SimplifiedChinese.swift b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+SimplifiedChinese.swift new file mode 100644 index 00000000..dbdbe129 --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+SimplifiedChinese.swift @@ -0,0 +1,2085 @@ +// +// WordList.swift +// +// Copyright © 2018 Kishikawa Katsumi +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +// swiftlint:disable file_length +public extension WordList { + static var simplifiedChinese: [String] = { + let words = + """ + 的 + 一 + 是 + 在 + 不 + 了 + 有 + 和 + 人 + 这 + 中 + 大 + 为 + 上 + 个 + 国 + 我 + 以 + 要 + 他 + 时 + 来 + 用 + 们 + 生 + 到 + 作 + 地 + 于 + 出 + 就 + 分 + 对 + 成 + 会 + 可 + 主 + 发 + 年 + 动 + 同 + 工 + 也 + 能 + 下 + 过 + 子 + 说 + 产 + 种 + 面 + 而 + 方 + 后 + 多 + 定 + 行 + 学 + 法 + 所 + 民 + 得 + 经 + 十 + 三 + 之 + 进 + 着 + 等 + 部 + 度 + 家 + 电 + 力 + 里 + 如 + 水 + 化 + 高 + 自 + 二 + 理 + 起 + 小 + 物 + 现 + 实 + 加 + 量 + 都 + 两 + 体 + 制 + 机 + 当 + 使 + 点 + 从 + 业 + 本 + 去 + 把 + 性 + 好 + 应 + 开 + 它 + 合 + 还 + 因 + 由 + 其 + 些 + 然 + 前 + 外 + 天 + 政 + 四 + 日 + 那 + 社 + 义 + 事 + 平 + 形 + 相 + 全 + 表 + 间 + 样 + 与 + 关 + 各 + 重 + 新 + 线 + 内 + 数 + 正 + 心 + 反 + 你 + 明 + 看 + 原 + 又 + 么 + 利 + 比 + 或 + 但 + 质 + 气 + 第 + 向 + 道 + 命 + 此 + 变 + 条 + 只 + 没 + 结 + 解 + 问 + 意 + 建 + 月 + 公 + 无 + 系 + 军 + 很 + 情 + 者 + 最 + 立 + 代 + 想 + 已 + 通 + 并 + 提 + 直 + 题 + 党 + 程 + 展 + 五 + 果 + 料 + 象 + 员 + 革 + 位 + 入 + 常 + 文 + 总 + 次 + 品 + 式 + 活 + 设 + 及 + 管 + 特 + 件 + 长 + 求 + 老 + 头 + 基 + 资 + 边 + 流 + 路 + 级 + 少 + 图 + 山 + 统 + 接 + 知 + 较 + 将 + 组 + 见 + 计 + 别 + 她 + 手 + 角 + 期 + 根 + 论 + 运 + 农 + 指 + 几 + 九 + 区 + 强 + 放 + 决 + 西 + 被 + 干 + 做 + 必 + 战 + 先 + 回 + 则 + 任 + 取 + 据 + 处 + 队 + 南 + 给 + 色 + 光 + 门 + 即 + 保 + 治 + 北 + 造 + 百 + 规 + 热 + 领 + 七 + 海 + 口 + 东 + 导 + 器 + 压 + 志 + 世 + 金 + 增 + 争 + 济 + 阶 + 油 + 思 + 术 + 极 + 交 + 受 + 联 + 什 + 认 + 六 + 共 + 权 + 收 + 证 + 改 + 清 + 美 + 再 + 采 + 转 + 更 + 单 + 风 + 切 + 打 + 白 + 教 + 速 + 花 + 带 + 安 + 场 + 身 + 车 + 例 + 真 + 务 + 具 + 万 + 每 + 目 + 至 + 达 + 走 + 积 + 示 + 议 + 声 + 报 + 斗 + 完 + 类 + 八 + 离 + 华 + 名 + 确 + 才 + 科 + 张 + 信 + 马 + 节 + 话 + 米 + 整 + 空 + 元 + 况 + 今 + 集 + 温 + 传 + 土 + 许 + 步 + 群 + 广 + 石 + 记 + 需 + 段 + 研 + 界 + 拉 + 林 + 律 + 叫 + 且 + 究 + 观 + 越 + 织 + 装 + 影 + 算 + 低 + 持 + 音 + 众 + 书 + 布 + 复 + 容 + 儿 + 须 + 际 + 商 + 非 + 验 + 连 + 断 + 深 + 难 + 近 + 矿 + 千 + 周 + 委 + 素 + 技 + 备 + 半 + 办 + 青 + 省 + 列 + 习 + 响 + 约 + 支 + 般 + 史 + 感 + 劳 + 便 + 团 + 往 + 酸 + 历 + 市 + 克 + 何 + 除 + 消 + 构 + 府 + 称 + 太 + 准 + 精 + 值 + 号 + 率 + 族 + 维 + 划 + 选 + 标 + 写 + 存 + 候 + 毛 + 亲 + 快 + 效 + 斯 + 院 + 查 + 江 + 型 + 眼 + 王 + 按 + 格 + 养 + 易 + 置 + 派 + 层 + 片 + 始 + 却 + 专 + 状 + 育 + 厂 + 京 + 识 + 适 + 属 + 圆 + 包 + 火 + 住 + 调 + 满 + 县 + 局 + 照 + 参 + 红 + 细 + 引 + 听 + 该 + 铁 + 价 + 严 + 首 + 底 + 液 + 官 + 德 + 随 + 病 + 苏 + 失 + 尔 + 死 + 讲 + 配 + 女 + 黄 + 推 + 显 + 谈 + 罪 + 神 + 艺 + 呢 + 席 + 含 + 企 + 望 + 密 + 批 + 营 + 项 + 防 + 举 + 球 + 英 + 氧 + 势 + 告 + 李 + 台 + 落 + 木 + 帮 + 轮 + 破 + 亚 + 师 + 围 + 注 + 远 + 字 + 材 + 排 + 供 + 河 + 态 + 封 + 另 + 施 + 减 + 树 + 溶 + 怎 + 止 + 案 + 言 + 士 + 均 + 武 + 固 + 叶 + 鱼 + 波 + 视 + 仅 + 费 + 紧 + 爱 + 左 + 章 + 早 + 朝 + 害 + 续 + 轻 + 服 + 试 + 食 + 充 + 兵 + 源 + 判 + 护 + 司 + 足 + 某 + 练 + 差 + 致 + 板 + 田 + 降 + 黑 + 犯 + 负 + 击 + 范 + 继 + 兴 + 似 + 余 + 坚 + 曲 + 输 + 修 + 故 + 城 + 夫 + 够 + 送 + 笔 + 船 + 占 + 右 + 财 + 吃 + 富 + 春 + 职 + 觉 + 汉 + 画 + 功 + 巴 + 跟 + 虽 + 杂 + 飞 + 检 + 吸 + 助 + 升 + 阳 + 互 + 初 + 创 + 抗 + 考 + 投 + 坏 + 策 + 古 + 径 + 换 + 未 + 跑 + 留 + 钢 + 曾 + 端 + 责 + 站 + 简 + 述 + 钱 + 副 + 尽 + 帝 + 射 + 草 + 冲 + 承 + 独 + 令 + 限 + 阿 + 宣 + 环 + 双 + 请 + 超 + 微 + 让 + 控 + 州 + 良 + 轴 + 找 + 否 + 纪 + 益 + 依 + 优 + 顶 + 础 + 载 + 倒 + 房 + 突 + 坐 + 粉 + 敌 + 略 + 客 + 袁 + 冷 + 胜 + 绝 + 析 + 块 + 剂 + 测 + 丝 + 协 + 诉 + 念 + 陈 + 仍 + 罗 + 盐 + 友 + 洋 + 错 + 苦 + 夜 + 刑 + 移 + 频 + 逐 + 靠 + 混 + 母 + 短 + 皮 + 终 + 聚 + 汽 + 村 + 云 + 哪 + 既 + 距 + 卫 + 停 + 烈 + 央 + 察 + 烧 + 迅 + 境 + 若 + 印 + 洲 + 刻 + 括 + 激 + 孔 + 搞 + 甚 + 室 + 待 + 核 + 校 + 散 + 侵 + 吧 + 甲 + 游 + 久 + 菜 + 味 + 旧 + 模 + 湖 + 货 + 损 + 预 + 阻 + 毫 + 普 + 稳 + 乙 + 妈 + 植 + 息 + 扩 + 银 + 语 + 挥 + 酒 + 守 + 拿 + 序 + 纸 + 医 + 缺 + 雨 + 吗 + 针 + 刘 + 啊 + 急 + 唱 + 误 + 训 + 愿 + 审 + 附 + 获 + 茶 + 鲜 + 粮 + 斤 + 孩 + 脱 + 硫 + 肥 + 善 + 龙 + 演 + 父 + 渐 + 血 + 欢 + 械 + 掌 + 歌 + 沙 + 刚 + 攻 + 谓 + 盾 + 讨 + 晚 + 粒 + 乱 + 燃 + 矛 + 乎 + 杀 + 药 + 宁 + 鲁 + 贵 + 钟 + 煤 + 读 + 班 + 伯 + 香 + 介 + 迫 + 句 + 丰 + 培 + 握 + 兰 + 担 + 弦 + 蛋 + 沉 + 假 + 穿 + 执 + 答 + 乐 + 谁 + 顺 + 烟 + 缩 + 征 + 脸 + 喜 + 松 + 脚 + 困 + 异 + 免 + 背 + 星 + 福 + 买 + 染 + 井 + 概 + 慢 + 怕 + 磁 + 倍 + 祖 + 皇 + 促 + 静 + 补 + 评 + 翻 + 肉 + 践 + 尼 + 衣 + 宽 + 扬 + 棉 + 希 + 伤 + 操 + 垂 + 秋 + 宜 + 氢 + 套 + 督 + 振 + 架 + 亮 + 末 + 宪 + 庆 + 编 + 牛 + 触 + 映 + 雷 + 销 + 诗 + 座 + 居 + 抓 + 裂 + 胞 + 呼 + 娘 + 景 + 威 + 绿 + 晶 + 厚 + 盟 + 衡 + 鸡 + 孙 + 延 + 危 + 胶 + 屋 + 乡 + 临 + 陆 + 顾 + 掉 + 呀 + 灯 + 岁 + 措 + 束 + 耐 + 剧 + 玉 + 赵 + 跳 + 哥 + 季 + 课 + 凯 + 胡 + 额 + 款 + 绍 + 卷 + 齐 + 伟 + 蒸 + 殖 + 永 + 宗 + 苗 + 川 + 炉 + 岩 + 弱 + 零 + 杨 + 奏 + 沿 + 露 + 杆 + 探 + 滑 + 镇 + 饭 + 浓 + 航 + 怀 + 赶 + 库 + 夺 + 伊 + 灵 + 税 + 途 + 灭 + 赛 + 归 + 召 + 鼓 + 播 + 盘 + 裁 + 险 + 康 + 唯 + 录 + 菌 + 纯 + 借 + 糖 + 盖 + 横 + 符 + 私 + 努 + 堂 + 域 + 枪 + 润 + 幅 + 哈 + 竟 + 熟 + 虫 + 泽 + 脑 + 壤 + 碳 + 欧 + 遍 + 侧 + 寨 + 敢 + 彻 + 虑 + 斜 + 薄 + 庭 + 纳 + 弹 + 饲 + 伸 + 折 + 麦 + 湿 + 暗 + 荷 + 瓦 + 塞 + 床 + 筑 + 恶 + 户 + 访 + 塔 + 奇 + 透 + 梁 + 刀 + 旋 + 迹 + 卡 + 氯 + 遇 + 份 + 毒 + 泥 + 退 + 洗 + 摆 + 灰 + 彩 + 卖 + 耗 + 夏 + 择 + 忙 + 铜 + 献 + 硬 + 予 + 繁 + 圈 + 雪 + 函 + 亦 + 抽 + 篇 + 阵 + 阴 + 丁 + 尺 + 追 + 堆 + 雄 + 迎 + 泛 + 爸 + 楼 + 避 + 谋 + 吨 + 野 + 猪 + 旗 + 累 + 偏 + 典 + 馆 + 索 + 秦 + 脂 + 潮 + 爷 + 豆 + 忽 + 托 + 惊 + 塑 + 遗 + 愈 + 朱 + 替 + 纤 + 粗 + 倾 + 尚 + 痛 + 楚 + 谢 + 奋 + 购 + 磨 + 君 + 池 + 旁 + 碎 + 骨 + 监 + 捕 + 弟 + 暴 + 割 + 贯 + 殊 + 释 + 词 + 亡 + 壁 + 顿 + 宝 + 午 + 尘 + 闻 + 揭 + 炮 + 残 + 冬 + 桥 + 妇 + 警 + 综 + 招 + 吴 + 付 + 浮 + 遭 + 徐 + 您 + 摇 + 谷 + 赞 + 箱 + 隔 + 订 + 男 + 吹 + 园 + 纷 + 唐 + 败 + 宋 + 玻 + 巨 + 耕 + 坦 + 荣 + 闭 + 湾 + 键 + 凡 + 驻 + 锅 + 救 + 恩 + 剥 + 凝 + 碱 + 齿 + 截 + 炼 + 麻 + 纺 + 禁 + 废 + 盛 + 版 + 缓 + 净 + 睛 + 昌 + 婚 + 涉 + 筒 + 嘴 + 插 + 岸 + 朗 + 庄 + 街 + 藏 + 姑 + 贸 + 腐 + 奴 + 啦 + 惯 + 乘 + 伙 + 恢 + 匀 + 纱 + 扎 + 辩 + 耳 + 彪 + 臣 + 亿 + 璃 + 抵 + 脉 + 秀 + 萨 + 俄 + 网 + 舞 + 店 + 喷 + 纵 + 寸 + 汗 + 挂 + 洪 + 贺 + 闪 + 柬 + 爆 + 烯 + 津 + 稻 + 墙 + 软 + 勇 + 像 + 滚 + 厘 + 蒙 + 芳 + 肯 + 坡 + 柱 + 荡 + 腿 + 仪 + 旅 + 尾 + 轧 + 冰 + 贡 + 登 + 黎 + 削 + 钻 + 勒 + 逃 + 障 + 氨 + 郭 + 峰 + 币 + 港 + 伏 + 轨 + 亩 + 毕 + 擦 + 莫 + 刺 + 浪 + 秘 + 援 + 株 + 健 + 售 + 股 + 岛 + 甘 + 泡 + 睡 + 童 + 铸 + 汤 + 阀 + 休 + 汇 + 舍 + 牧 + 绕 + 炸 + 哲 + 磷 + 绩 + 朋 + 淡 + 尖 + 启 + 陷 + 柴 + 呈 + 徒 + 颜 + 泪 + 稍 + 忘 + 泵 + 蓝 + 拖 + 洞 + 授 + 镜 + 辛 + 壮 + 锋 + 贫 + 虚 + 弯 + 摩 + 泰 + 幼 + 廷 + 尊 + 窗 + 纲 + 弄 + 隶 + 疑 + 氏 + 宫 + 姐 + 震 + 瑞 + 怪 + 尤 + 琴 + 循 + 描 + 膜 + 违 + 夹 + 腰 + 缘 + 珠 + 穷 + 森 + 枝 + 竹 + 沟 + 催 + 绳 + 忆 + 邦 + 剩 + 幸 + 浆 + 栏 + 拥 + 牙 + 贮 + 礼 + 滤 + 钠 + 纹 + 罢 + 拍 + 咱 + 喊 + 袖 + 埃 + 勤 + 罚 + 焦 + 潜 + 伍 + 墨 + 欲 + 缝 + 姓 + 刊 + 饱 + 仿 + 奖 + 铝 + 鬼 + 丽 + 跨 + 默 + 挖 + 链 + 扫 + 喝 + 袋 + 炭 + 污 + 幕 + 诸 + 弧 + 励 + 梅 + 奶 + 洁 + 灾 + 舟 + 鉴 + 苯 + 讼 + 抱 + 毁 + 懂 + 寒 + 智 + 埔 + 寄 + 届 + 跃 + 渡 + 挑 + 丹 + 艰 + 贝 + 碰 + 拔 + 爹 + 戴 + 码 + 梦 + 芽 + 熔 + 赤 + 渔 + 哭 + 敬 + 颗 + 奔 + 铅 + 仲 + 虎 + 稀 + 妹 + 乏 + 珍 + 申 + 桌 + 遵 + 允 + 隆 + 螺 + 仓 + 魏 + 锐 + 晓 + 氮 + 兼 + 隐 + 碍 + 赫 + 拨 + 忠 + 肃 + 缸 + 牵 + 抢 + 博 + 巧 + 壳 + 兄 + 杜 + 讯 + 诚 + 碧 + 祥 + 柯 + 页 + 巡 + 矩 + 悲 + 灌 + 龄 + 伦 + 票 + 寻 + 桂 + 铺 + 圣 + 恐 + 恰 + 郑 + 趣 + 抬 + 荒 + 腾 + 贴 + 柔 + 滴 + 猛 + 阔 + 辆 + 妻 + 填 + 撤 + 储 + 签 + 闹 + 扰 + 紫 + 砂 + 递 + 戏 + 吊 + 陶 + 伐 + 喂 + 疗 + 瓶 + 婆 + 抚 + 臂 + 摸 + 忍 + 虾 + 蜡 + 邻 + 胸 + 巩 + 挤 + 偶 + 弃 + 槽 + 劲 + 乳 + 邓 + 吉 + 仁 + 烂 + 砖 + 租 + 乌 + 舰 + 伴 + 瓜 + 浅 + 丙 + 暂 + 燥 + 橡 + 柳 + 迷 + 暖 + 牌 + 秧 + 胆 + 详 + 簧 + 踏 + 瓷 + 谱 + 呆 + 宾 + 糊 + 洛 + 辉 + 愤 + 竞 + 隙 + 怒 + 粘 + 乃 + 绪 + 肩 + 籍 + 敏 + 涂 + 熙 + 皆 + 侦 + 悬 + 掘 + 享 + 纠 + 醒 + 狂 + 锁 + 淀 + 恨 + 牲 + 霸 + 爬 + 赏 + 逆 + 玩 + 陵 + 祝 + 秒 + 浙 + 貌 + 役 + 彼 + 悉 + 鸭 + 趋 + 凤 + 晨 + 畜 + 辈 + 秩 + 卵 + 署 + 梯 + 炎 + 滩 + 棋 + 驱 + 筛 + 峡 + 冒 + 啥 + 寿 + 译 + 浸 + 泉 + 帽 + 迟 + 硅 + 疆 + 贷 + 漏 + 稿 + 冠 + 嫩 + 胁 + 芯 + 牢 + 叛 + 蚀 + 奥 + 鸣 + 岭 + 羊 + 凭 + 串 + 塘 + 绘 + 酵 + 融 + 盆 + 锡 + 庙 + 筹 + 冻 + 辅 + 摄 + 袭 + 筋 + 拒 + 僚 + 旱 + 钾 + 鸟 + 漆 + 沈 + 眉 + 疏 + 添 + 棒 + 穗 + 硝 + 韩 + 逼 + 扭 + 侨 + 凉 + 挺 + 碗 + 栽 + 炒 + 杯 + 患 + 馏 + 劝 + 豪 + 辽 + 勃 + 鸿 + 旦 + 吏 + 拜 + 狗 + 埋 + 辊 + 掩 + 饮 + 搬 + 骂 + 辞 + 勾 + 扣 + 估 + 蒋 + 绒 + 雾 + 丈 + 朵 + 姆 + 拟 + 宇 + 辑 + 陕 + 雕 + 偿 + 蓄 + 崇 + 剪 + 倡 + 厅 + 咬 + 驶 + 薯 + 刷 + 斥 + 番 + 赋 + 奉 + 佛 + 浇 + 漫 + 曼 + 扇 + 钙 + 桃 + 扶 + 仔 + 返 + 俗 + 亏 + 腔 + 鞋 + 棱 + 覆 + 框 + 悄 + 叔 + 撞 + 骗 + 勘 + 旺 + 沸 + 孤 + 吐 + 孟 + 渠 + 屈 + 疾 + 妙 + 惜 + 仰 + 狠 + 胀 + 谐 + 抛 + 霉 + 桑 + 岗 + 嘛 + 衰 + 盗 + 渗 + 脏 + 赖 + 涌 + 甜 + 曹 + 阅 + 肌 + 哩 + 厉 + 烃 + 纬 + 毅 + 昨 + 伪 + 症 + 煮 + 叹 + 钉 + 搭 + 茎 + 笼 + 酷 + 偷 + 弓 + 锥 + 恒 + 杰 + 坑 + 鼻 + 翼 + 纶 + 叙 + 狱 + 逮 + 罐 + 络 + 棚 + 抑 + 膨 + 蔬 + 寺 + 骤 + 穆 + 冶 + 枯 + 册 + 尸 + 凸 + 绅 + 坯 + 牺 + 焰 + 轰 + 欣 + 晋 + 瘦 + 御 + 锭 + 锦 + 丧 + 旬 + 锻 + 垄 + 搜 + 扑 + 邀 + 亭 + 酯 + 迈 + 舒 + 脆 + 酶 + 闲 + 忧 + 酚 + 顽 + 羽 + 涨 + 卸 + 仗 + 陪 + 辟 + 惩 + 杭 + 姚 + 肚 + 捉 + 飘 + 漂 + 昆 + 欺 + 吾 + 郎 + 烷 + 汁 + 呵 + 饰 + 萧 + 雅 + 邮 + 迁 + 燕 + 撒 + 姻 + 赴 + 宴 + 烦 + 债 + 帐 + 斑 + 铃 + 旨 + 醇 + 董 + 饼 + 雏 + 姿 + 拌 + 傅 + 腹 + 妥 + 揉 + 贤 + 拆 + 歪 + 葡 + 胺 + 丢 + 浩 + 徽 + 昂 + 垫 + 挡 + 览 + 贪 + 慰 + 缴 + 汪 + 慌 + 冯 + 诺 + 姜 + 谊 + 凶 + 劣 + 诬 + 耀 + 昏 + 躺 + 盈 + 骑 + 乔 + 溪 + 丛 + 卢 + 抹 + 闷 + 咨 + 刮 + 驾 + 缆 + 悟 + 摘 + 铒 + 掷 + 颇 + 幻 + 柄 + 惠 + 惨 + 佳 + 仇 + 腊 + 窝 + 涤 + 剑 + 瞧 + 堡 + 泼 + 葱 + 罩 + 霍 + 捞 + 胎 + 苍 + 滨 + 俩 + 捅 + 湘 + 砍 + 霞 + 邵 + 萄 + 疯 + 淮 + 遂 + 熊 + 粪 + 烘 + 宿 + 档 + 戈 + 驳 + 嫂 + 裕 + 徙 + 箭 + 捐 + 肠 + 撑 + 晒 + 辨 + 殿 + 莲 + 摊 + 搅 + 酱 + 屏 + 疫 + 哀 + 蔡 + 堵 + 沫 + 皱 + 畅 + 叠 + 阁 + 莱 + 敲 + 辖 + 钩 + 痕 + 坝 + 巷 + 饿 + 祸 + 丘 + 玄 + 溜 + 曰 + 逻 + 彭 + 尝 + 卿 + 妨 + 艇 + 吞 + 韦 + 怨 + 矮 + 歇 + """ + return words.split(separator: "\n").map { String($0) } + }() + +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Spanish.swift b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Spanish.swift new file mode 100644 index 00000000..3ba12f2e --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+Spanish.swift @@ -0,0 +1,2085 @@ +// +// WordList.swift +// +// Copyright © 2018 Kishikawa Katsumi +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +// swiftlint:disable file_length +public extension WordList { + static var spanish: [String] = { + let words = + """ + ábaco + abdomen + abeja + abierto + abogado + abono + aborto + abrazo + abrir + abuelo + abuso + acabar + academia + acceso + acción + aceite + acelga + acento + aceptar + ácido + aclarar + acné + acoger + acoso + activo + acto + actriz + actuar + acudir + acuerdo + acusar + adicto + admitir + adoptar + adorno + aduana + adulto + aéreo + afectar + afición + afinar + afirmar + ágil + agitar + agonía + agosto + agotar + agregar + agrio + agua + agudo + águila + aguja + ahogo + ahorro + aire + aislar + ajedrez + ajeno + ajuste + alacrán + alambre + alarma + alba + álbum + alcalde + aldea + alegre + alejar + alerta + aleta + alfiler + alga + algodón + aliado + aliento + alivio + alma + almeja + almíbar + altar + alteza + altivo + alto + altura + alumno + alzar + amable + amante + amapola + amargo + amasar + ámbar + ámbito + ameno + amigo + amistad + amor + amparo + amplio + ancho + anciano + ancla + andar + andén + anemia + ángulo + anillo + ánimo + anís + anotar + antena + antiguo + antojo + anual + anular + anuncio + añadir + añejo + año + apagar + aparato + apetito + apio + aplicar + apodo + aporte + apoyo + aprender + aprobar + apuesta + apuro + arado + araña + arar + árbitro + árbol + arbusto + archivo + arco + arder + ardilla + arduo + área + árido + aries + armonía + arnés + aroma + arpa + arpón + arreglo + arroz + arruga + arte + artista + asa + asado + asalto + ascenso + asegurar + aseo + asesor + asiento + asilo + asistir + asno + asombro + áspero + astilla + astro + astuto + asumir + asunto + atajo + ataque + atar + atento + ateo + ático + atleta + átomo + atraer + atroz + atún + audaz + audio + auge + aula + aumento + ausente + autor + aval + avance + avaro + ave + avellana + avena + avestruz + avión + aviso + ayer + ayuda + ayuno + azafrán + azar + azote + azúcar + azufre + azul + baba + babor + bache + bahía + baile + bajar + balanza + balcón + balde + bambú + banco + banda + baño + barba + barco + barniz + barro + báscula + bastón + basura + batalla + batería + batir + batuta + baúl + bazar + bebé + bebida + bello + besar + beso + bestia + bicho + bien + bingo + blanco + bloque + blusa + boa + bobina + bobo + boca + bocina + boda + bodega + boina + bola + bolero + bolsa + bomba + bondad + bonito + bono + bonsái + borde + borrar + bosque + bote + botín + bóveda + bozal + bravo + brazo + brecha + breve + brillo + brinco + brisa + broca + broma + bronce + brote + bruja + brusco + bruto + buceo + bucle + bueno + buey + bufanda + bufón + búho + buitre + bulto + burbuja + burla + burro + buscar + butaca + buzón + caballo + cabeza + cabina + cabra + cacao + cadáver + cadena + caer + café + caída + caimán + caja + cajón + cal + calamar + calcio + caldo + calidad + calle + calma + calor + calvo + cama + cambio + camello + camino + campo + cáncer + candil + canela + canguro + canica + canto + caña + cañón + caoba + caos + capaz + capitán + capote + captar + capucha + cara + carbón + cárcel + careta + carga + cariño + carne + carpeta + carro + carta + casa + casco + casero + caspa + castor + catorce + catre + caudal + causa + cazo + cebolla + ceder + cedro + celda + célebre + celoso + célula + cemento + ceniza + centro + cerca + cerdo + cereza + cero + cerrar + certeza + césped + cetro + chacal + chaleco + champú + chancla + chapa + charla + chico + chiste + chivo + choque + choza + chuleta + chupar + ciclón + ciego + cielo + cien + cierto + cifra + cigarro + cima + cinco + cine + cinta + ciprés + circo + ciruela + cisne + cita + ciudad + clamor + clan + claro + clase + clave + cliente + clima + clínica + cobre + cocción + cochino + cocina + coco + código + codo + cofre + coger + cohete + cojín + cojo + cola + colcha + colegio + colgar + colina + collar + colmo + columna + combate + comer + comida + cómodo + compra + conde + conejo + conga + conocer + consejo + contar + copa + copia + corazón + corbata + corcho + cordón + corona + correr + coser + cosmos + costa + cráneo + cráter + crear + crecer + creído + crema + cría + crimen + cripta + crisis + cromo + crónica + croqueta + crudo + cruz + cuadro + cuarto + cuatro + cubo + cubrir + cuchara + cuello + cuento + cuerda + cuesta + cueva + cuidar + culebra + culpa + culto + cumbre + cumplir + cuna + cuneta + cuota + cupón + cúpula + curar + curioso + curso + curva + cutis + dama + danza + dar + dardo + dátil + deber + débil + década + decir + dedo + defensa + definir + dejar + delfín + delgado + delito + demora + denso + dental + deporte + derecho + derrota + desayuno + deseo + desfile + desnudo + destino + desvío + detalle + detener + deuda + día + diablo + diadema + diamante + diana + diario + dibujo + dictar + diente + dieta + diez + difícil + digno + dilema + diluir + dinero + directo + dirigir + disco + diseño + disfraz + diva + divino + doble + doce + dolor + domingo + don + donar + dorado + dormir + dorso + dos + dosis + dragón + droga + ducha + duda + duelo + dueño + dulce + dúo + duque + durar + dureza + duro + ébano + ebrio + echar + eco + ecuador + edad + edición + edificio + editor + educar + efecto + eficaz + eje + ejemplo + elefante + elegir + elemento + elevar + elipse + élite + elixir + elogio + eludir + embudo + emitir + emoción + empate + empeño + empleo + empresa + enano + encargo + enchufe + encía + enemigo + enero + enfado + enfermo + engaño + enigma + enlace + enorme + enredo + ensayo + enseñar + entero + entrar + envase + envío + época + equipo + erizo + escala + escena + escolar + escribir + escudo + esencia + esfera + esfuerzo + espada + espejo + espía + esposa + espuma + esquí + estar + este + estilo + estufa + etapa + eterno + ética + etnia + evadir + evaluar + evento + evitar + exacto + examen + exceso + excusa + exento + exigir + exilio + existir + éxito + experto + explicar + exponer + extremo + fábrica + fábula + fachada + fácil + factor + faena + faja + falda + fallo + falso + faltar + fama + familia + famoso + faraón + farmacia + farol + farsa + fase + fatiga + fauna + favor + fax + febrero + fecha + feliz + feo + feria + feroz + fértil + fervor + festín + fiable + fianza + fiar + fibra + ficción + ficha + fideo + fiebre + fiel + fiera + fiesta + figura + fijar + fijo + fila + filete + filial + filtro + fin + finca + fingir + finito + firma + flaco + flauta + flecha + flor + flota + fluir + flujo + flúor + fobia + foca + fogata + fogón + folio + folleto + fondo + forma + forro + fortuna + forzar + fosa + foto + fracaso + frágil + franja + frase + fraude + freír + freno + fresa + frío + frito + fruta + fuego + fuente + fuerza + fuga + fumar + función + funda + furgón + furia + fusil + fútbol + futuro + gacela + gafas + gaita + gajo + gala + galería + gallo + gamba + ganar + gancho + ganga + ganso + garaje + garza + gasolina + gastar + gato + gavilán + gemelo + gemir + gen + género + genio + gente + geranio + gerente + germen + gesto + gigante + gimnasio + girar + giro + glaciar + globo + gloria + gol + golfo + goloso + golpe + goma + gordo + gorila + gorra + gota + goteo + gozar + grada + gráfico + grano + grasa + gratis + grave + grieta + grillo + gripe + gris + grito + grosor + grúa + grueso + grumo + grupo + guante + guapo + guardia + guerra + guía + guiño + guion + guiso + guitarra + gusano + gustar + haber + hábil + hablar + hacer + hacha + hada + hallar + hamaca + harina + haz + hazaña + hebilla + hebra + hecho + helado + helio + hembra + herir + hermano + héroe + hervir + hielo + hierro + hígado + higiene + hijo + himno + historia + hocico + hogar + hoguera + hoja + hombre + hongo + honor + honra + hora + hormiga + horno + hostil + hoyo + hueco + huelga + huerta + hueso + huevo + huida + huir + humano + húmedo + humilde + humo + hundir + huracán + hurto + icono + ideal + idioma + ídolo + iglesia + iglú + igual + ilegal + ilusión + imagen + imán + imitar + impar + imperio + imponer + impulso + incapaz + índice + inerte + infiel + informe + ingenio + inicio + inmenso + inmune + innato + insecto + instante + interés + íntimo + intuir + inútil + invierno + ira + iris + ironía + isla + islote + jabalí + jabón + jamón + jarabe + jardín + jarra + jaula + jazmín + jefe + jeringa + jinete + jornada + joroba + joven + joya + juerga + jueves + juez + jugador + jugo + juguete + juicio + junco + jungla + junio + juntar + júpiter + jurar + justo + juvenil + juzgar + kilo + koala + labio + lacio + lacra + lado + ladrón + lagarto + lágrima + laguna + laico + lamer + lámina + lámpara + lana + lancha + langosta + lanza + lápiz + largo + larva + lástima + lata + látex + latir + laurel + lavar + lazo + leal + lección + leche + lector + leer + legión + legumbre + lejano + lengua + lento + leña + león + leopardo + lesión + letal + letra + leve + leyenda + libertad + libro + licor + líder + lidiar + lienzo + liga + ligero + lima + límite + limón + limpio + lince + lindo + línea + lingote + lino + linterna + líquido + liso + lista + litera + litio + litro + llaga + llama + llanto + llave + llegar + llenar + llevar + llorar + llover + lluvia + lobo + loción + loco + locura + lógica + logro + lombriz + lomo + lonja + lote + lucha + lucir + lugar + lujo + luna + lunes + lupa + lustro + luto + luz + maceta + macho + madera + madre + maduro + maestro + mafia + magia + mago + maíz + maldad + maleta + malla + malo + mamá + mambo + mamut + manco + mando + manejar + manga + maniquí + manjar + mano + manso + manta + mañana + mapa + máquina + mar + marco + marea + marfil + margen + marido + mármol + marrón + martes + marzo + masa + máscara + masivo + matar + materia + matiz + matriz + máximo + mayor + mazorca + mecha + medalla + medio + médula + mejilla + mejor + melena + melón + memoria + menor + mensaje + mente + menú + mercado + merengue + mérito + mes + mesón + meta + meter + método + metro + mezcla + miedo + miel + miembro + miga + mil + milagro + militar + millón + mimo + mina + minero + mínimo + minuto + miope + mirar + misa + miseria + misil + mismo + mitad + mito + mochila + moción + moda + modelo + moho + mojar + molde + moler + molino + momento + momia + monarca + moneda + monja + monto + moño + morada + morder + moreno + morir + morro + morsa + mortal + mosca + mostrar + motivo + mover + móvil + mozo + mucho + mudar + mueble + muela + muerte + muestra + mugre + mujer + mula + muleta + multa + mundo + muñeca + mural + muro + músculo + museo + musgo + música + muslo + nácar + nación + nadar + naipe + naranja + nariz + narrar + nasal + natal + nativo + natural + náusea + naval + nave + navidad + necio + néctar + negar + negocio + negro + neón + nervio + neto + neutro + nevar + nevera + nicho + nido + niebla + nieto + niñez + niño + nítido + nivel + nobleza + noche + nómina + noria + norma + norte + nota + noticia + novato + novela + novio + nube + nuca + núcleo + nudillo + nudo + nuera + nueve + nuez + nulo + número + nutria + oasis + obeso + obispo + objeto + obra + obrero + observar + obtener + obvio + oca + ocaso + océano + ochenta + ocho + ocio + ocre + octavo + octubre + oculto + ocupar + ocurrir + odiar + odio + odisea + oeste + ofensa + oferta + oficio + ofrecer + ogro + oído + oír + ojo + ola + oleada + olfato + olivo + olla + olmo + olor + olvido + ombligo + onda + onza + opaco + opción + ópera + opinar + oponer + optar + óptica + opuesto + oración + orador + oral + órbita + orca + orden + oreja + órgano + orgía + orgullo + oriente + origen + orilla + oro + orquesta + oruga + osadía + oscuro + osezno + oso + ostra + otoño + otro + oveja + óvulo + óxido + oxígeno + oyente + ozono + pacto + padre + paella + página + pago + país + pájaro + palabra + palco + paleta + pálido + palma + paloma + palpar + pan + panal + pánico + pantera + pañuelo + papá + papel + papilla + paquete + parar + parcela + pared + parir + paro + párpado + parque + párrafo + parte + pasar + paseo + pasión + paso + pasta + pata + patio + patria + pausa + pauta + pavo + payaso + peatón + pecado + pecera + pecho + pedal + pedir + pegar + peine + pelar + peldaño + pelea + peligro + pellejo + pelo + peluca + pena + pensar + peñón + peón + peor + pepino + pequeño + pera + percha + perder + pereza + perfil + perico + perla + permiso + perro + persona + pesa + pesca + pésimo + pestaña + pétalo + petróleo + pez + pezuña + picar + pichón + pie + piedra + pierna + pieza + pijama + pilar + piloto + pimienta + pino + pintor + pinza + piña + piojo + pipa + pirata + pisar + piscina + piso + pista + pitón + pizca + placa + plan + plata + playa + plaza + pleito + pleno + plomo + pluma + plural + pobre + poco + poder + podio + poema + poesía + poeta + polen + policía + pollo + polvo + pomada + pomelo + pomo + pompa + poner + porción + portal + posada + poseer + posible + poste + potencia + potro + pozo + prado + precoz + pregunta + premio + prensa + preso + previo + primo + príncipe + prisión + privar + proa + probar + proceso + producto + proeza + profesor + programa + prole + promesa + pronto + propio + próximo + prueba + público + puchero + pudor + pueblo + puerta + puesto + pulga + pulir + pulmón + pulpo + pulso + puma + punto + puñal + puño + pupa + pupila + puré + quedar + queja + quemar + querer + queso + quieto + química + quince + quitar + rábano + rabia + rabo + ración + radical + raíz + rama + rampa + rancho + rango + rapaz + rápido + rapto + rasgo + raspa + rato + rayo + raza + razón + reacción + realidad + rebaño + rebote + recaer + receta + rechazo + recoger + recreo + recto + recurso + red + redondo + reducir + reflejo + reforma + refrán + refugio + regalo + regir + regla + regreso + rehén + reino + reír + reja + relato + relevo + relieve + relleno + reloj + remar + remedio + remo + rencor + rendir + renta + reparto + repetir + reposo + reptil + res + rescate + resina + respeto + resto + resumen + retiro + retorno + retrato + reunir + revés + revista + rey + rezar + rico + riego + rienda + riesgo + rifa + rígido + rigor + rincón + riñón + río + riqueza + risa + ritmo + rito + rizo + roble + roce + rociar + rodar + rodeo + rodilla + roer + rojizo + rojo + romero + romper + ron + ronco + ronda + ropa + ropero + rosa + rosca + rostro + rotar + rubí + rubor + rudo + rueda + rugir + ruido + ruina + ruleta + rulo + rumbo + rumor + ruptura + ruta + rutina + sábado + saber + sabio + sable + sacar + sagaz + sagrado + sala + saldo + salero + salir + salmón + salón + salsa + salto + salud + salvar + samba + sanción + sandía + sanear + sangre + sanidad + sano + santo + sapo + saque + sardina + sartén + sastre + satán + sauna + saxofón + sección + seco + secreto + secta + sed + seguir + seis + sello + selva + semana + semilla + senda + sensor + señal + señor + separar + sepia + sequía + ser + serie + sermón + servir + sesenta + sesión + seta + setenta + severo + sexo + sexto + sidra + siesta + siete + siglo + signo + sílaba + silbar + silencio + silla + símbolo + simio + sirena + sistema + sitio + situar + sobre + socio + sodio + sol + solapa + soldado + soledad + sólido + soltar + solución + sombra + sondeo + sonido + sonoro + sonrisa + sopa + soplar + soporte + sordo + sorpresa + sorteo + sostén + sótano + suave + subir + suceso + sudor + suegra + suelo + sueño + suerte + sufrir + sujeto + sultán + sumar + superar + suplir + suponer + supremo + sur + surco + sureño + surgir + susto + sutil + tabaco + tabique + tabla + tabú + taco + tacto + tajo + talar + talco + talento + talla + talón + tamaño + tambor + tango + tanque + tapa + tapete + tapia + tapón + taquilla + tarde + tarea + tarifa + tarjeta + tarot + tarro + tarta + tatuaje + tauro + taza + tazón + teatro + techo + tecla + técnica + tejado + tejer + tejido + tela + teléfono + tema + temor + templo + tenaz + tender + tener + tenis + tenso + teoría + terapia + terco + término + ternura + terror + tesis + tesoro + testigo + tetera + texto + tez + tibio + tiburón + tiempo + tienda + tierra + tieso + tigre + tijera + tilde + timbre + tímido + timo + tinta + tío + típico + tipo + tira + tirón + titán + títere + título + tiza + toalla + tobillo + tocar + tocino + todo + toga + toldo + tomar + tono + tonto + topar + tope + toque + tórax + torero + tormenta + torneo + toro + torpedo + torre + torso + tortuga + tos + tosco + toser + tóxico + trabajo + tractor + traer + tráfico + trago + traje + tramo + trance + trato + trauma + trazar + trébol + tregua + treinta + tren + trepar + tres + tribu + trigo + tripa + triste + triunfo + trofeo + trompa + tronco + tropa + trote + trozo + truco + trueno + trufa + tubería + tubo + tuerto + tumba + tumor + túnel + túnica + turbina + turismo + turno + tutor + ubicar + úlcera + umbral + unidad + unir + universo + uno + untar + uña + urbano + urbe + urgente + urna + usar + usuario + útil + utopía + uva + vaca + vacío + vacuna + vagar + vago + vaina + vajilla + vale + válido + valle + valor + válvula + vampiro + vara + variar + varón + vaso + vecino + vector + vehículo + veinte + vejez + vela + velero + veloz + vena + vencer + venda + veneno + vengar + venir + venta + venus + ver + verano + verbo + verde + vereda + verja + verso + verter + vía + viaje + vibrar + vicio + víctima + vida + vídeo + vidrio + viejo + viernes + vigor + vil + villa + vinagre + vino + viñedo + violín + viral + virgo + virtud + visor + víspera + vista + vitamina + viudo + vivaz + vivero + vivir + vivo + volcán + volumen + volver + voraz + votar + voto + voz + vuelo + vulgar + yacer + yate + yegua + yema + yerno + yeso + yodo + yoga + yogur + zafiro + zanja + zapato + zarza + zona + zorro + zumo + zurdo + """ + return words.split(separator: "\n").map { String($0) } + }() + +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+TraditionalChinese.swift b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+TraditionalChinese.swift new file mode 100644 index 00000000..0d0e41c4 --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList+TraditionalChinese.swift @@ -0,0 +1,2085 @@ +// +// WordList.swift +// +// Copyright © 2018 Kishikawa Katsumi +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +// swiftlint:disable file_length +public extension WordList { + static var traditionalChinese: [String] = { + let words = + """ + 的 + 一 + 是 + 在 + 不 + 了 + 有 + 和 + 人 + 這 + 中 + 大 + 為 + 上 + 個 + 國 + 我 + 以 + 要 + 他 + 時 + 來 + 用 + 們 + 生 + 到 + 作 + 地 + 於 + 出 + 就 + 分 + 對 + 成 + 會 + 可 + 主 + 發 + 年 + 動 + 同 + 工 + 也 + 能 + 下 + 過 + 子 + 說 + 產 + 種 + 面 + 而 + 方 + 後 + 多 + 定 + 行 + 學 + 法 + 所 + 民 + 得 + 經 + 十 + 三 + 之 + 進 + 著 + 等 + 部 + 度 + 家 + 電 + 力 + 裡 + 如 + 水 + 化 + 高 + 自 + 二 + 理 + 起 + 小 + 物 + 現 + 實 + 加 + 量 + 都 + 兩 + 體 + 制 + 機 + 當 + 使 + 點 + 從 + 業 + 本 + 去 + 把 + 性 + 好 + 應 + 開 + 它 + 合 + 還 + 因 + 由 + 其 + 些 + 然 + 前 + 外 + 天 + 政 + 四 + 日 + 那 + 社 + 義 + 事 + 平 + 形 + 相 + 全 + 表 + 間 + 樣 + 與 + 關 + 各 + 重 + 新 + 線 + 內 + 數 + 正 + 心 + 反 + 你 + 明 + 看 + 原 + 又 + 麼 + 利 + 比 + 或 + 但 + 質 + 氣 + 第 + 向 + 道 + 命 + 此 + 變 + 條 + 只 + 沒 + 結 + 解 + 問 + 意 + 建 + 月 + 公 + 無 + 系 + 軍 + 很 + 情 + 者 + 最 + 立 + 代 + 想 + 已 + 通 + 並 + 提 + 直 + 題 + 黨 + 程 + 展 + 五 + 果 + 料 + 象 + 員 + 革 + 位 + 入 + 常 + 文 + 總 + 次 + 品 + 式 + 活 + 設 + 及 + 管 + 特 + 件 + 長 + 求 + 老 + 頭 + 基 + 資 + 邊 + 流 + 路 + 級 + 少 + 圖 + 山 + 統 + 接 + 知 + 較 + 將 + 組 + 見 + 計 + 別 + 她 + 手 + 角 + 期 + 根 + 論 + 運 + 農 + 指 + 幾 + 九 + 區 + 強 + 放 + 決 + 西 + 被 + 幹 + 做 + 必 + 戰 + 先 + 回 + 則 + 任 + 取 + 據 + 處 + 隊 + 南 + 給 + 色 + 光 + 門 + 即 + 保 + 治 + 北 + 造 + 百 + 規 + 熱 + 領 + 七 + 海 + 口 + 東 + 導 + 器 + 壓 + 志 + 世 + 金 + 增 + 爭 + 濟 + 階 + 油 + 思 + 術 + 極 + 交 + 受 + 聯 + 什 + 認 + 六 + 共 + 權 + 收 + 證 + 改 + 清 + 美 + 再 + 採 + 轉 + 更 + 單 + 風 + 切 + 打 + 白 + 教 + 速 + 花 + 帶 + 安 + 場 + 身 + 車 + 例 + 真 + 務 + 具 + 萬 + 每 + 目 + 至 + 達 + 走 + 積 + 示 + 議 + 聲 + 報 + 鬥 + 完 + 類 + 八 + 離 + 華 + 名 + 確 + 才 + 科 + 張 + 信 + 馬 + 節 + 話 + 米 + 整 + 空 + 元 + 況 + 今 + 集 + 溫 + 傳 + 土 + 許 + 步 + 群 + 廣 + 石 + 記 + 需 + 段 + 研 + 界 + 拉 + 林 + 律 + 叫 + 且 + 究 + 觀 + 越 + 織 + 裝 + 影 + 算 + 低 + 持 + 音 + 眾 + 書 + 布 + 复 + 容 + 兒 + 須 + 際 + 商 + 非 + 驗 + 連 + 斷 + 深 + 難 + 近 + 礦 + 千 + 週 + 委 + 素 + 技 + 備 + 半 + 辦 + 青 + 省 + 列 + 習 + 響 + 約 + 支 + 般 + 史 + 感 + 勞 + 便 + 團 + 往 + 酸 + 歷 + 市 + 克 + 何 + 除 + 消 + 構 + 府 + 稱 + 太 + 準 + 精 + 值 + 號 + 率 + 族 + 維 + 劃 + 選 + 標 + 寫 + 存 + 候 + 毛 + 親 + 快 + 效 + 斯 + 院 + 查 + 江 + 型 + 眼 + 王 + 按 + 格 + 養 + 易 + 置 + 派 + 層 + 片 + 始 + 卻 + 專 + 狀 + 育 + 廠 + 京 + 識 + 適 + 屬 + 圓 + 包 + 火 + 住 + 調 + 滿 + 縣 + 局 + 照 + 參 + 紅 + 細 + 引 + 聽 + 該 + 鐵 + 價 + 嚴 + 首 + 底 + 液 + 官 + 德 + 隨 + 病 + 蘇 + 失 + 爾 + 死 + 講 + 配 + 女 + 黃 + 推 + 顯 + 談 + 罪 + 神 + 藝 + 呢 + 席 + 含 + 企 + 望 + 密 + 批 + 營 + 項 + 防 + 舉 + 球 + 英 + 氧 + 勢 + 告 + 李 + 台 + 落 + 木 + 幫 + 輪 + 破 + 亞 + 師 + 圍 + 注 + 遠 + 字 + 材 + 排 + 供 + 河 + 態 + 封 + 另 + 施 + 減 + 樹 + 溶 + 怎 + 止 + 案 + 言 + 士 + 均 + 武 + 固 + 葉 + 魚 + 波 + 視 + 僅 + 費 + 緊 + 愛 + 左 + 章 + 早 + 朝 + 害 + 續 + 輕 + 服 + 試 + 食 + 充 + 兵 + 源 + 判 + 護 + 司 + 足 + 某 + 練 + 差 + 致 + 板 + 田 + 降 + 黑 + 犯 + 負 + 擊 + 范 + 繼 + 興 + 似 + 餘 + 堅 + 曲 + 輸 + 修 + 故 + 城 + 夫 + 夠 + 送 + 筆 + 船 + 佔 + 右 + 財 + 吃 + 富 + 春 + 職 + 覺 + 漢 + 畫 + 功 + 巴 + 跟 + 雖 + 雜 + 飛 + 檢 + 吸 + 助 + 昇 + 陽 + 互 + 初 + 創 + 抗 + 考 + 投 + 壞 + 策 + 古 + 徑 + 換 + 未 + 跑 + 留 + 鋼 + 曾 + 端 + 責 + 站 + 簡 + 述 + 錢 + 副 + 盡 + 帝 + 射 + 草 + 衝 + 承 + 獨 + 令 + 限 + 阿 + 宣 + 環 + 雙 + 請 + 超 + 微 + 讓 + 控 + 州 + 良 + 軸 + 找 + 否 + 紀 + 益 + 依 + 優 + 頂 + 礎 + 載 + 倒 + 房 + 突 + 坐 + 粉 + 敵 + 略 + 客 + 袁 + 冷 + 勝 + 絕 + 析 + 塊 + 劑 + 測 + 絲 + 協 + 訴 + 念 + 陳 + 仍 + 羅 + 鹽 + 友 + 洋 + 錯 + 苦 + 夜 + 刑 + 移 + 頻 + 逐 + 靠 + 混 + 母 + 短 + 皮 + 終 + 聚 + 汽 + 村 + 雲 + 哪 + 既 + 距 + 衛 + 停 + 烈 + 央 + 察 + 燒 + 迅 + 境 + 若 + 印 + 洲 + 刻 + 括 + 激 + 孔 + 搞 + 甚 + 室 + 待 + 核 + 校 + 散 + 侵 + 吧 + 甲 + 遊 + 久 + 菜 + 味 + 舊 + 模 + 湖 + 貨 + 損 + 預 + 阻 + 毫 + 普 + 穩 + 乙 + 媽 + 植 + 息 + 擴 + 銀 + 語 + 揮 + 酒 + 守 + 拿 + 序 + 紙 + 醫 + 缺 + 雨 + 嗎 + 針 + 劉 + 啊 + 急 + 唱 + 誤 + 訓 + 願 + 審 + 附 + 獲 + 茶 + 鮮 + 糧 + 斤 + 孩 + 脫 + 硫 + 肥 + 善 + 龍 + 演 + 父 + 漸 + 血 + 歡 + 械 + 掌 + 歌 + 沙 + 剛 + 攻 + 謂 + 盾 + 討 + 晚 + 粒 + 亂 + 燃 + 矛 + 乎 + 殺 + 藥 + 寧 + 魯 + 貴 + 鐘 + 煤 + 讀 + 班 + 伯 + 香 + 介 + 迫 + 句 + 豐 + 培 + 握 + 蘭 + 擔 + 弦 + 蛋 + 沉 + 假 + 穿 + 執 + 答 + 樂 + 誰 + 順 + 煙 + 縮 + 徵 + 臉 + 喜 + 松 + 腳 + 困 + 異 + 免 + 背 + 星 + 福 + 買 + 染 + 井 + 概 + 慢 + 怕 + 磁 + 倍 + 祖 + 皇 + 促 + 靜 + 補 + 評 + 翻 + 肉 + 踐 + 尼 + 衣 + 寬 + 揚 + 棉 + 希 + 傷 + 操 + 垂 + 秋 + 宜 + 氫 + 套 + 督 + 振 + 架 + 亮 + 末 + 憲 + 慶 + 編 + 牛 + 觸 + 映 + 雷 + 銷 + 詩 + 座 + 居 + 抓 + 裂 + 胞 + 呼 + 娘 + 景 + 威 + 綠 + 晶 + 厚 + 盟 + 衡 + 雞 + 孫 + 延 + 危 + 膠 + 屋 + 鄉 + 臨 + 陸 + 顧 + 掉 + 呀 + 燈 + 歲 + 措 + 束 + 耐 + 劇 + 玉 + 趙 + 跳 + 哥 + 季 + 課 + 凱 + 胡 + 額 + 款 + 紹 + 卷 + 齊 + 偉 + 蒸 + 殖 + 永 + 宗 + 苗 + 川 + 爐 + 岩 + 弱 + 零 + 楊 + 奏 + 沿 + 露 + 桿 + 探 + 滑 + 鎮 + 飯 + 濃 + 航 + 懷 + 趕 + 庫 + 奪 + 伊 + 靈 + 稅 + 途 + 滅 + 賽 + 歸 + 召 + 鼓 + 播 + 盤 + 裁 + 險 + 康 + 唯 + 錄 + 菌 + 純 + 借 + 糖 + 蓋 + 橫 + 符 + 私 + 努 + 堂 + 域 + 槍 + 潤 + 幅 + 哈 + 竟 + 熟 + 蟲 + 澤 + 腦 + 壤 + 碳 + 歐 + 遍 + 側 + 寨 + 敢 + 徹 + 慮 + 斜 + 薄 + 庭 + 納 + 彈 + 飼 + 伸 + 折 + 麥 + 濕 + 暗 + 荷 + 瓦 + 塞 + 床 + 築 + 惡 + 戶 + 訪 + 塔 + 奇 + 透 + 梁 + 刀 + 旋 + 跡 + 卡 + 氯 + 遇 + 份 + 毒 + 泥 + 退 + 洗 + 擺 + 灰 + 彩 + 賣 + 耗 + 夏 + 擇 + 忙 + 銅 + 獻 + 硬 + 予 + 繁 + 圈 + 雪 + 函 + 亦 + 抽 + 篇 + 陣 + 陰 + 丁 + 尺 + 追 + 堆 + 雄 + 迎 + 泛 + 爸 + 樓 + 避 + 謀 + 噸 + 野 + 豬 + 旗 + 累 + 偏 + 典 + 館 + 索 + 秦 + 脂 + 潮 + 爺 + 豆 + 忽 + 托 + 驚 + 塑 + 遺 + 愈 + 朱 + 替 + 纖 + 粗 + 傾 + 尚 + 痛 + 楚 + 謝 + 奮 + 購 + 磨 + 君 + 池 + 旁 + 碎 + 骨 + 監 + 捕 + 弟 + 暴 + 割 + 貫 + 殊 + 釋 + 詞 + 亡 + 壁 + 頓 + 寶 + 午 + 塵 + 聞 + 揭 + 炮 + 殘 + 冬 + 橋 + 婦 + 警 + 綜 + 招 + 吳 + 付 + 浮 + 遭 + 徐 + 您 + 搖 + 谷 + 贊 + 箱 + 隔 + 訂 + 男 + 吹 + 園 + 紛 + 唐 + 敗 + 宋 + 玻 + 巨 + 耕 + 坦 + 榮 + 閉 + 灣 + 鍵 + 凡 + 駐 + 鍋 + 救 + 恩 + 剝 + 凝 + 鹼 + 齒 + 截 + 煉 + 麻 + 紡 + 禁 + 廢 + 盛 + 版 + 緩 + 淨 + 睛 + 昌 + 婚 + 涉 + 筒 + 嘴 + 插 + 岸 + 朗 + 莊 + 街 + 藏 + 姑 + 貿 + 腐 + 奴 + 啦 + 慣 + 乘 + 夥 + 恢 + 勻 + 紗 + 扎 + 辯 + 耳 + 彪 + 臣 + 億 + 璃 + 抵 + 脈 + 秀 + 薩 + 俄 + 網 + 舞 + 店 + 噴 + 縱 + 寸 + 汗 + 掛 + 洪 + 賀 + 閃 + 柬 + 爆 + 烯 + 津 + 稻 + 牆 + 軟 + 勇 + 像 + 滾 + 厘 + 蒙 + 芳 + 肯 + 坡 + 柱 + 盪 + 腿 + 儀 + 旅 + 尾 + 軋 + 冰 + 貢 + 登 + 黎 + 削 + 鑽 + 勒 + 逃 + 障 + 氨 + 郭 + 峰 + 幣 + 港 + 伏 + 軌 + 畝 + 畢 + 擦 + 莫 + 刺 + 浪 + 秘 + 援 + 株 + 健 + 售 + 股 + 島 + 甘 + 泡 + 睡 + 童 + 鑄 + 湯 + 閥 + 休 + 匯 + 舍 + 牧 + 繞 + 炸 + 哲 + 磷 + 績 + 朋 + 淡 + 尖 + 啟 + 陷 + 柴 + 呈 + 徒 + 顏 + 淚 + 稍 + 忘 + 泵 + 藍 + 拖 + 洞 + 授 + 鏡 + 辛 + 壯 + 鋒 + 貧 + 虛 + 彎 + 摩 + 泰 + 幼 + 廷 + 尊 + 窗 + 綱 + 弄 + 隸 + 疑 + 氏 + 宮 + 姐 + 震 + 瑞 + 怪 + 尤 + 琴 + 循 + 描 + 膜 + 違 + 夾 + 腰 + 緣 + 珠 + 窮 + 森 + 枝 + 竹 + 溝 + 催 + 繩 + 憶 + 邦 + 剩 + 幸 + 漿 + 欄 + 擁 + 牙 + 貯 + 禮 + 濾 + 鈉 + 紋 + 罷 + 拍 + 咱 + 喊 + 袖 + 埃 + 勤 + 罰 + 焦 + 潛 + 伍 + 墨 + 欲 + 縫 + 姓 + 刊 + 飽 + 仿 + 獎 + 鋁 + 鬼 + 麗 + 跨 + 默 + 挖 + 鏈 + 掃 + 喝 + 袋 + 炭 + 污 + 幕 + 諸 + 弧 + 勵 + 梅 + 奶 + 潔 + 災 + 舟 + 鑑 + 苯 + 訟 + 抱 + 毀 + 懂 + 寒 + 智 + 埔 + 寄 + 屆 + 躍 + 渡 + 挑 + 丹 + 艱 + 貝 + 碰 + 拔 + 爹 + 戴 + 碼 + 夢 + 芽 + 熔 + 赤 + 漁 + 哭 + 敬 + 顆 + 奔 + 鉛 + 仲 + 虎 + 稀 + 妹 + 乏 + 珍 + 申 + 桌 + 遵 + 允 + 隆 + 螺 + 倉 + 魏 + 銳 + 曉 + 氮 + 兼 + 隱 + 礙 + 赫 + 撥 + 忠 + 肅 + 缸 + 牽 + 搶 + 博 + 巧 + 殼 + 兄 + 杜 + 訊 + 誠 + 碧 + 祥 + 柯 + 頁 + 巡 + 矩 + 悲 + 灌 + 齡 + 倫 + 票 + 尋 + 桂 + 鋪 + 聖 + 恐 + 恰 + 鄭 + 趣 + 抬 + 荒 + 騰 + 貼 + 柔 + 滴 + 猛 + 闊 + 輛 + 妻 + 填 + 撤 + 儲 + 簽 + 鬧 + 擾 + 紫 + 砂 + 遞 + 戲 + 吊 + 陶 + 伐 + 餵 + 療 + 瓶 + 婆 + 撫 + 臂 + 摸 + 忍 + 蝦 + 蠟 + 鄰 + 胸 + 鞏 + 擠 + 偶 + 棄 + 槽 + 勁 + 乳 + 鄧 + 吉 + 仁 + 爛 + 磚 + 租 + 烏 + 艦 + 伴 + 瓜 + 淺 + 丙 + 暫 + 燥 + 橡 + 柳 + 迷 + 暖 + 牌 + 秧 + 膽 + 詳 + 簧 + 踏 + 瓷 + 譜 + 呆 + 賓 + 糊 + 洛 + 輝 + 憤 + 競 + 隙 + 怒 + 粘 + 乃 + 緒 + 肩 + 籍 + 敏 + 塗 + 熙 + 皆 + 偵 + 懸 + 掘 + 享 + 糾 + 醒 + 狂 + 鎖 + 淀 + 恨 + 牲 + 霸 + 爬 + 賞 + 逆 + 玩 + 陵 + 祝 + 秒 + 浙 + 貌 + 役 + 彼 + 悉 + 鴨 + 趨 + 鳳 + 晨 + 畜 + 輩 + 秩 + 卵 + 署 + 梯 + 炎 + 灘 + 棋 + 驅 + 篩 + 峽 + 冒 + 啥 + 壽 + 譯 + 浸 + 泉 + 帽 + 遲 + 矽 + 疆 + 貸 + 漏 + 稿 + 冠 + 嫩 + 脅 + 芯 + 牢 + 叛 + 蝕 + 奧 + 鳴 + 嶺 + 羊 + 憑 + 串 + 塘 + 繪 + 酵 + 融 + 盆 + 錫 + 廟 + 籌 + 凍 + 輔 + 攝 + 襲 + 筋 + 拒 + 僚 + 旱 + 鉀 + 鳥 + 漆 + 沈 + 眉 + 疏 + 添 + 棒 + 穗 + 硝 + 韓 + 逼 + 扭 + 僑 + 涼 + 挺 + 碗 + 栽 + 炒 + 杯 + 患 + 餾 + 勸 + 豪 + 遼 + 勃 + 鴻 + 旦 + 吏 + 拜 + 狗 + 埋 + 輥 + 掩 + 飲 + 搬 + 罵 + 辭 + 勾 + 扣 + 估 + 蔣 + 絨 + 霧 + 丈 + 朵 + 姆 + 擬 + 宇 + 輯 + 陝 + 雕 + 償 + 蓄 + 崇 + 剪 + 倡 + 廳 + 咬 + 駛 + 薯 + 刷 + 斥 + 番 + 賦 + 奉 + 佛 + 澆 + 漫 + 曼 + 扇 + 鈣 + 桃 + 扶 + 仔 + 返 + 俗 + 虧 + 腔 + 鞋 + 棱 + 覆 + 框 + 悄 + 叔 + 撞 + 騙 + 勘 + 旺 + 沸 + 孤 + 吐 + 孟 + 渠 + 屈 + 疾 + 妙 + 惜 + 仰 + 狠 + 脹 + 諧 + 拋 + 黴 + 桑 + 崗 + 嘛 + 衰 + 盜 + 滲 + 臟 + 賴 + 湧 + 甜 + 曹 + 閱 + 肌 + 哩 + 厲 + 烴 + 緯 + 毅 + 昨 + 偽 + 症 + 煮 + 嘆 + 釘 + 搭 + 莖 + 籠 + 酷 + 偷 + 弓 + 錐 + 恆 + 傑 + 坑 + 鼻 + 翼 + 綸 + 敘 + 獄 + 逮 + 罐 + 絡 + 棚 + 抑 + 膨 + 蔬 + 寺 + 驟 + 穆 + 冶 + 枯 + 冊 + 屍 + 凸 + 紳 + 坯 + 犧 + 焰 + 轟 + 欣 + 晉 + 瘦 + 禦 + 錠 + 錦 + 喪 + 旬 + 鍛 + 壟 + 搜 + 撲 + 邀 + 亭 + 酯 + 邁 + 舒 + 脆 + 酶 + 閒 + 憂 + 酚 + 頑 + 羽 + 漲 + 卸 + 仗 + 陪 + 闢 + 懲 + 杭 + 姚 + 肚 + 捉 + 飄 + 漂 + 昆 + 欺 + 吾 + 郎 + 烷 + 汁 + 呵 + 飾 + 蕭 + 雅 + 郵 + 遷 + 燕 + 撒 + 姻 + 赴 + 宴 + 煩 + 債 + 帳 + 斑 + 鈴 + 旨 + 醇 + 董 + 餅 + 雛 + 姿 + 拌 + 傅 + 腹 + 妥 + 揉 + 賢 + 拆 + 歪 + 葡 + 胺 + 丟 + 浩 + 徽 + 昂 + 墊 + 擋 + 覽 + 貪 + 慰 + 繳 + 汪 + 慌 + 馮 + 諾 + 姜 + 誼 + 兇 + 劣 + 誣 + 耀 + 昏 + 躺 + 盈 + 騎 + 喬 + 溪 + 叢 + 盧 + 抹 + 悶 + 諮 + 刮 + 駕 + 纜 + 悟 + 摘 + 鉺 + 擲 + 頗 + 幻 + 柄 + 惠 + 慘 + 佳 + 仇 + 臘 + 窩 + 滌 + 劍 + 瞧 + 堡 + 潑 + 蔥 + 罩 + 霍 + 撈 + 胎 + 蒼 + 濱 + 倆 + 捅 + 湘 + 砍 + 霞 + 邵 + 萄 + 瘋 + 淮 + 遂 + 熊 + 糞 + 烘 + 宿 + 檔 + 戈 + 駁 + 嫂 + 裕 + 徙 + 箭 + 捐 + 腸 + 撐 + 曬 + 辨 + 殿 + 蓮 + 攤 + 攪 + 醬 + 屏 + 疫 + 哀 + 蔡 + 堵 + 沫 + 皺 + 暢 + 疊 + 閣 + 萊 + 敲 + 轄 + 鉤 + 痕 + 壩 + 巷 + 餓 + 禍 + 丘 + 玄 + 溜 + 曰 + 邏 + 彭 + 嘗 + 卿 + 妨 + 艇 + 吞 + 韋 + 怨 + 矮 + 歇 + """ + return words.split(separator: "\n").map { String($0) } + }() + +} diff --git a/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList.swift b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList.swift new file mode 100644 index 00000000..ab9b1e71 --- /dev/null +++ b/Sources/BitcoinKit/Core/Mnemonic/WordList/WordList.swift @@ -0,0 +1,28 @@ +// +// WordList.swift +// +// Copyright © 2018 Kishikawa Katsumi +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +public enum WordList {} diff --git a/Sources/BitcoinKit/Core/WordList.swift b/Sources/BitcoinKit/Core/WordList.swift deleted file mode 100644 index 57bd4dec..00000000 --- a/Sources/BitcoinKit/Core/WordList.swift +++ /dev/null @@ -1,16463 +0,0 @@ -// -// WordList.swift -// -// Copyright © 2018 Kishikawa Katsumi -// Copyright © 2018 BitcoinKit developers -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -// THE SOFTWARE. -// - -import Foundation - -// swiftlint:disable type_body_length -// swiftlint:disable file_length -class WordList { - static var english: [String.SubSequence] = { - let words = - """ - abandon - ability - able - about - above - absent - absorb - abstract - absurd - abuse - access - accident - account - accuse - achieve - acid - acoustic - acquire - across - act - action - actor - actress - actual - adapt - add - addict - address - adjust - admit - adult - advance - advice - aerobic - affair - afford - afraid - again - age - agent - agree - ahead - aim - air - airport - aisle - alarm - album - alcohol - alert - alien - all - alley - allow - almost - alone - alpha - already - also - alter - always - amateur - amazing - among - amount - amused - analyst - anchor - ancient - anger - angle - angry - animal - ankle - announce - annual - another - answer - antenna - antique - anxiety - any - apart - apology - appear - apple - approve - april - arch - arctic - area - arena - argue - arm - armed - armor - army - around - arrange - arrest - arrive - arrow - art - artefact - artist - artwork - ask - aspect - assault - asset - assist - assume - asthma - athlete - atom - attack - attend - attitude - attract - auction - audit - august - aunt - author - auto - autumn - average - avocado - avoid - awake - aware - away - awesome - awful - awkward - axis - baby - bachelor - bacon - badge - bag - balance - balcony - ball - bamboo - banana - banner - bar - barely - bargain - barrel - base - basic - basket - battle - beach - bean - beauty - because - become - beef - before - begin - behave - behind - believe - below - belt - bench - benefit - best - betray - better - between - beyond - bicycle - bid - bike - bind - biology - bird - birth - bitter - black - blade - blame - blanket - blast - bleak - bless - blind - blood - blossom - blouse - blue - blur - blush - board - boat - body - boil - bomb - bone - bonus - book - boost - border - boring - borrow - boss - bottom - bounce - box - boy - bracket - brain - brand - brass - brave - bread - breeze - brick - bridge - brief - bright - bring - brisk - broccoli - broken - bronze - broom - brother - brown - brush - bubble - buddy - budget - buffalo - build - bulb - bulk - bullet - bundle - bunker - burden - burger - burst - bus - business - busy - butter - buyer - buzz - cabbage - cabin - cable - cactus - cage - cake - call - calm - camera - camp - can - canal - cancel - candy - cannon - canoe - canvas - canyon - capable - capital - captain - car - carbon - card - cargo - carpet - carry - cart - case - cash - casino - castle - casual - cat - catalog - catch - category - cattle - caught - cause - caution - cave - ceiling - celery - cement - census - century - cereal - certain - chair - chalk - champion - change - chaos - chapter - charge - chase - chat - cheap - check - cheese - chef - cherry - chest - chicken - chief - child - chimney - choice - choose - chronic - chuckle - chunk - churn - cigar - cinnamon - circle - citizen - city - civil - claim - clap - clarify - claw - clay - clean - clerk - clever - click - client - cliff - climb - clinic - clip - clock - clog - close - cloth - cloud - clown - club - clump - cluster - clutch - coach - coast - coconut - code - coffee - coil - coin - collect - color - column - combine - come - comfort - comic - common - company - concert - conduct - confirm - congress - connect - consider - control - convince - cook - cool - copper - copy - coral - core - corn - correct - cost - cotton - couch - country - couple - course - cousin - cover - coyote - crack - cradle - craft - cram - crane - crash - crater - crawl - crazy - cream - credit - creek - crew - cricket - crime - crisp - critic - crop - cross - crouch - crowd - crucial - cruel - cruise - crumble - crunch - crush - cry - crystal - cube - culture - cup - cupboard - curious - current - curtain - curve - cushion - custom - cute - cycle - dad - damage - damp - dance - danger - daring - dash - daughter - dawn - day - deal - debate - debris - decade - december - decide - decline - decorate - decrease - deer - defense - define - defy - degree - delay - deliver - demand - demise - denial - dentist - deny - depart - depend - deposit - depth - deputy - derive - describe - desert - design - desk - despair - destroy - detail - detect - develop - device - devote - diagram - dial - diamond - diary - dice - diesel - diet - differ - digital - dignity - dilemma - dinner - dinosaur - direct - dirt - disagree - discover - disease - dish - dismiss - disorder - display - distance - divert - divide - divorce - dizzy - doctor - document - dog - doll - dolphin - domain - donate - donkey - donor - door - dose - double - dove - draft - dragon - drama - drastic - draw - dream - dress - drift - drill - drink - drip - drive - drop - drum - dry - duck - dumb - dune - during - dust - dutch - duty - dwarf - dynamic - eager - eagle - early - earn - earth - easily - east - easy - echo - ecology - economy - edge - edit - educate - effort - egg - eight - either - elbow - elder - electric - elegant - element - elephant - elevator - elite - else - embark - embody - embrace - emerge - emotion - employ - empower - empty - enable - enact - end - endless - endorse - enemy - energy - enforce - engage - engine - enhance - enjoy - enlist - enough - enrich - enroll - ensure - enter - entire - entry - envelope - episode - equal - equip - era - erase - erode - erosion - error - erupt - escape - essay - essence - estate - eternal - ethics - evidence - evil - evoke - evolve - exact - example - excess - exchange - excite - exclude - excuse - execute - exercise - exhaust - exhibit - exile - exist - exit - exotic - expand - expect - expire - explain - expose - express - extend - extra - eye - eyebrow - fabric - face - faculty - fade - faint - faith - fall - false - fame - family - famous - fan - fancy - fantasy - farm - fashion - fat - fatal - father - fatigue - fault - favorite - feature - february - federal - fee - feed - feel - female - fence - festival - fetch - fever - few - fiber - fiction - field - figure - file - film - filter - final - find - fine - finger - finish - fire - firm - first - fiscal - fish - fit - fitness - fix - flag - flame - flash - flat - flavor - flee - flight - flip - float - flock - floor - flower - fluid - flush - fly - foam - focus - fog - foil - fold - follow - food - foot - force - forest - forget - fork - fortune - forum - forward - fossil - foster - found - fox - fragile - frame - frequent - fresh - friend - fringe - frog - front - frost - frown - frozen - fruit - fuel - fun - funny - furnace - fury - future - gadget - gain - galaxy - gallery - game - gap - garage - garbage - garden - garlic - garment - gas - gasp - gate - gather - gauge - gaze - general - genius - genre - gentle - genuine - gesture - ghost - giant - gift - giggle - ginger - giraffe - girl - give - glad - glance - glare - glass - glide - glimpse - globe - gloom - glory - glove - glow - glue - goat - goddess - gold - good - goose - gorilla - gospel - gossip - govern - gown - grab - grace - grain - grant - grape - grass - gravity - great - green - grid - grief - grit - grocery - group - grow - grunt - guard - guess - guide - guilt - guitar - gun - gym - habit - hair - half - hammer - hamster - hand - happy - harbor - hard - harsh - harvest - hat - have - hawk - hazard - head - health - heart - heavy - hedgehog - height - hello - helmet - help - hen - hero - hidden - high - hill - hint - hip - hire - history - hobby - hockey - hold - hole - holiday - hollow - home - honey - hood - hope - horn - horror - horse - hospital - host - hotel - hour - hover - hub - huge - human - humble - humor - hundred - hungry - hunt - hurdle - hurry - hurt - husband - hybrid - ice - icon - idea - identify - idle - ignore - ill - illegal - illness - image - imitate - immense - immune - impact - impose - improve - impulse - inch - include - income - increase - index - indicate - indoor - industry - infant - inflict - inform - inhale - inherit - initial - inject - injury - inmate - inner - innocent - input - inquiry - insane - insect - inside - inspire - install - intact - interest - into - invest - invite - involve - iron - island - isolate - issue - item - ivory - jacket - jaguar - jar - jazz - jealous - jeans - jelly - jewel - job - join - joke - journey - joy - judge - juice - jump - jungle - junior - junk - just - kangaroo - keen - keep - ketchup - key - kick - kid - kidney - kind - kingdom - kiss - kit - kitchen - kite - kitten - kiwi - knee - knife - knock - know - lab - label - labor - ladder - lady - lake - lamp - language - laptop - large - later - latin - laugh - laundry - lava - law - lawn - lawsuit - layer - lazy - leader - leaf - learn - leave - lecture - left - leg - legal - legend - leisure - lemon - lend - length - lens - leopard - lesson - letter - level - liar - liberty - library - license - life - lift - light - like - limb - limit - link - lion - liquid - list - little - live - lizard - load - loan - lobster - local - lock - logic - lonely - long - loop - lottery - loud - lounge - love - loyal - lucky - luggage - lumber - lunar - lunch - luxury - lyrics - machine - mad - magic - magnet - maid - mail - main - major - make - mammal - man - manage - mandate - mango - mansion - manual - maple - marble - march - margin - marine - market - marriage - mask - mass - master - match - material - math - matrix - matter - maximum - maze - meadow - mean - measure - meat - mechanic - medal - media - melody - melt - member - memory - mention - menu - mercy - merge - merit - merry - mesh - message - metal - method - middle - midnight - milk - million - mimic - mind - minimum - minor - minute - miracle - mirror - misery - miss - mistake - mix - mixed - mixture - mobile - model - modify - mom - moment - monitor - monkey - monster - month - moon - moral - more - morning - mosquito - mother - motion - motor - mountain - mouse - move - movie - much - muffin - mule - multiply - muscle - museum - mushroom - music - must - mutual - myself - mystery - myth - naive - name - napkin - narrow - nasty - nation - nature - near - neck - need - negative - neglect - neither - nephew - nerve - nest - net - network - neutral - never - news - next - nice - night - noble - noise - nominee - noodle - normal - north - nose - notable - note - nothing - notice - novel - now - nuclear - number - nurse - nut - oak - obey - object - oblige - obscure - observe - obtain - obvious - occur - ocean - october - odor - off - offer - office - often - oil - okay - old - olive - olympic - omit - once - one - onion - online - only - open - opera - opinion - oppose - option - orange - orbit - orchard - order - ordinary - organ - orient - original - orphan - ostrich - other - outdoor - outer - output - outside - oval - oven - over - own - owner - oxygen - oyster - ozone - pact - paddle - page - pair - palace - palm - panda - panel - panic - panther - paper - parade - parent - park - parrot - party - pass - patch - path - patient - patrol - pattern - pause - pave - payment - peace - peanut - pear - peasant - pelican - pen - penalty - pencil - people - pepper - perfect - permit - person - pet - phone - photo - phrase - physical - piano - picnic - picture - piece - pig - pigeon - pill - pilot - pink - pioneer - pipe - pistol - pitch - pizza - place - planet - plastic - plate - play - please - pledge - pluck - plug - plunge - poem - poet - point - polar - pole - police - pond - pony - pool - popular - portion - position - possible - post - potato - pottery - poverty - powder - power - practice - praise - predict - prefer - prepare - present - pretty - prevent - price - pride - primary - print - priority - prison - private - prize - problem - process - produce - profit - program - project - promote - proof - property - prosper - protect - proud - provide - public - pudding - pull - pulp - pulse - pumpkin - punch - pupil - puppy - purchase - purity - purpose - purse - push - put - puzzle - pyramid - quality - quantum - quarter - question - quick - quit - quiz - quote - rabbit - raccoon - race - rack - radar - radio - rail - rain - raise - rally - ramp - ranch - random - range - rapid - rare - rate - rather - raven - raw - razor - ready - real - reason - rebel - rebuild - recall - receive - recipe - record - recycle - reduce - reflect - reform - refuse - region - regret - regular - reject - relax - release - relief - rely - remain - remember - remind - remove - render - renew - rent - reopen - repair - repeat - replace - report - require - rescue - resemble - resist - resource - response - result - retire - retreat - return - reunion - reveal - review - reward - rhythm - rib - ribbon - rice - rich - ride - ridge - rifle - right - rigid - ring - riot - ripple - risk - ritual - rival - river - road - roast - robot - robust - rocket - romance - roof - rookie - room - rose - rotate - rough - round - route - royal - rubber - rude - rug - rule - run - runway - rural - sad - saddle - sadness - safe - sail - salad - salmon - salon - salt - salute - same - sample - sand - satisfy - satoshi - sauce - sausage - save - say - scale - scan - scare - scatter - scene - scheme - school - science - scissors - scorpion - scout - scrap - screen - script - scrub - sea - search - season - seat - second - secret - section - security - seed - seek - segment - select - sell - seminar - senior - sense - sentence - series - service - session - settle - setup - seven - shadow - shaft - shallow - share - shed - shell - sheriff - shield - shift - shine - ship - shiver - shock - shoe - shoot - shop - short - shoulder - shove - shrimp - shrug - shuffle - shy - sibling - sick - side - siege - sight - sign - silent - silk - silly - silver - similar - simple - since - sing - siren - sister - situate - six - size - skate - sketch - ski - skill - skin - skirt - skull - slab - slam - sleep - slender - slice - slide - slight - slim - slogan - slot - slow - slush - small - smart - smile - smoke - smooth - snack - snake - snap - sniff - snow - soap - soccer - social - sock - soda - soft - solar - soldier - solid - solution - solve - someone - song - soon - sorry - sort - soul - sound - soup - source - south - space - spare - spatial - spawn - speak - special - speed - spell - spend - sphere - spice - spider - spike - spin - spirit - split - spoil - sponsor - spoon - sport - spot - spray - spread - spring - spy - square - squeeze - squirrel - stable - stadium - staff - stage - stairs - stamp - stand - start - state - stay - steak - steel - stem - step - stereo - stick - still - sting - stock - stomach - stone - stool - story - stove - strategy - street - strike - strong - struggle - student - stuff - stumble - style - subject - submit - subway - success - such - sudden - suffer - sugar - suggest - suit - summer - sun - sunny - sunset - super - supply - supreme - sure - surface - surge - surprise - surround - survey - suspect - sustain - swallow - swamp - swap - swarm - swear - sweet - swift - swim - swing - switch - sword - symbol - symptom - syrup - system - table - tackle - tag - tail - talent - talk - tank - tape - target - task - taste - tattoo - taxi - teach - team - tell - ten - tenant - tennis - tent - term - test - text - thank - that - theme - then - theory - there - they - thing - this - thought - three - thrive - throw - thumb - thunder - ticket - tide - tiger - tilt - timber - time - tiny - tip - tired - tissue - title - toast - tobacco - today - toddler - toe - together - toilet - token - tomato - tomorrow - tone - tongue - tonight - tool - tooth - top - topic - topple - torch - tornado - tortoise - toss - total - tourist - toward - tower - town - toy - track - trade - traffic - tragic - train - transfer - trap - trash - travel - tray - treat - tree - trend - trial - tribe - trick - trigger - trim - trip - trophy - trouble - truck - true - truly - trumpet - trust - truth - try - tube - tuition - tumble - tuna - tunnel - turkey - turn - turtle - twelve - twenty - twice - twin - twist - two - type - typical - ugly - umbrella - unable - unaware - uncle - uncover - under - undo - unfair - unfold - unhappy - uniform - unique - unit - universe - unknown - unlock - until - unusual - unveil - update - upgrade - uphold - upon - upper - upset - urban - urge - usage - use - used - useful - useless - usual - utility - vacant - vacuum - vague - valid - valley - valve - van - vanish - vapor - various - vast - vault - vehicle - velvet - vendor - venture - venue - verb - verify - version - very - vessel - veteran - viable - vibrant - vicious - victory - video - view - village - vintage - violin - virtual - virus - visa - visit - visual - vital - vivid - vocal - voice - void - volcano - volume - vote - voyage - wage - wagon - wait - walk - wall - walnut - want - warfare - warm - warrior - wash - wasp - waste - water - wave - way - wealth - weapon - wear - weasel - weather - web - wedding - weekend - weird - welcome - west - wet - whale - what - wheat - wheel - when - where - whip - whisper - wide - width - wife - wild - will - win - window - wine - wing - wink - winner - winter - wire - wisdom - wise - wish - witness - wolf - woman - wonder - wood - wool - word - work - world - worry - worth - wrap - wreck - wrestle - wrist - write - wrong - yard - year - yellow - you - young - youth - zebra - zero - zone - zoo - """ - return words.split(separator: "\n") - }() - static var japanese: [String.SubSequence] = { - let words = - """ - あいこくしん - あいさつ - あいだ - あおぞら - あかちゃん - あきる - あけがた - あける - あこがれる - あさい - あさひ - あしあと - あじわう - あずかる - あずき - あそぶ - あたえる - あたためる - あたりまえ - あたる - あつい - あつかう - あっしゅく - あつまり - あつめる - あてな - あてはまる - あひる - あぶら - あぶる - あふれる - あまい - あまど - あまやかす - あまり - あみもの - あめりか - あやまる - あゆむ - あらいぐま - あらし - あらすじ - あらためる - あらゆる - あらわす - ありがとう - あわせる - あわてる - あんい - あんがい - あんこ - あんぜん - あんてい - あんない - あんまり - いいだす - いおん - いがい - いがく - いきおい - いきなり - いきもの - いきる - いくじ - いくぶん - いけばな - いけん - いこう - いこく - いこつ - いさましい - いさん - いしき - いじゅう - いじょう - いじわる - いずみ - いずれ - いせい - いせえび - いせかい - いせき - いぜん - いそうろう - いそがしい - いだい - いだく - いたずら - いたみ - いたりあ - いちおう - いちじ - いちど - いちば - いちぶ - いちりゅう - いつか - いっしゅん - いっせい - いっそう - いったん - いっち - いってい - いっぽう - いてざ - いてん - いどう - いとこ - いない - いなか - いねむり - いのち - いのる - いはつ - いばる - いはん - いびき - いひん - いふく - いへん - いほう - いみん - いもうと - いもたれ - いもり - いやがる - いやす - いよかん - いよく - いらい - いらすと - いりぐち - いりょう - いれい - いれもの - いれる - いろえんぴつ - いわい - いわう - いわかん - いわば - いわゆる - いんげんまめ - いんさつ - いんしょう - いんよう - うえき - うえる - うおざ - うがい - うかぶ - うかべる - うきわ - うくらいな - うくれれ - うけたまわる - うけつけ - うけとる - うけもつ - うける - うごかす - うごく - うこん - うさぎ - うしなう - うしろがみ - うすい - うすぎ - うすぐらい - うすめる - うせつ - うちあわせ - うちがわ - うちき - うちゅう - うっかり - うつくしい - うったえる - うつる - うどん - うなぎ - うなじ - うなずく - うなる - うねる - うのう - うぶげ - うぶごえ - うまれる - うめる - うもう - うやまう - うよく - うらがえす - うらぐち - うらない - うりあげ - うりきれ - うるさい - うれしい - うれゆき - うれる - うろこ - うわき - うわさ - うんこう - うんちん - うんてん - うんどう - えいえん - えいが - えいきょう - えいご - えいせい - えいぶん - えいよう - えいわ - えおり - えがお - えがく - えきたい - えくせる - えしゃく - えすて - えつらん - えのぐ - えほうまき - えほん - えまき - えもじ - えもの - えらい - えらぶ - えりあ - えんえん - えんかい - えんぎ - えんげき - えんしゅう - えんぜつ - えんそく - えんちょう - えんとつ - おいかける - おいこす - おいしい - おいつく - おうえん - おうさま - おうじ - おうせつ - おうたい - おうふく - おうべい - おうよう - おえる - おおい - おおう - おおどおり - おおや - おおよそ - おかえり - おかず - おがむ - おかわり - おぎなう - おきる - おくさま - おくじょう - おくりがな - おくる - おくれる - おこす - おこなう - おこる - おさえる - おさない - おさめる - おしいれ - おしえる - おじぎ - おじさん - おしゃれ - おそらく - おそわる - おたがい - おたく - おだやか - おちつく - おっと - おつり - おでかけ - おとしもの - おとなしい - おどり - おどろかす - おばさん - おまいり - おめでとう - おもいで - おもう - おもたい - おもちゃ - おやつ - おやゆび - およぼす - おらんだ - おろす - おんがく - おんけい - おんしゃ - おんせん - おんだん - おんちゅう - おんどけい - かあつ - かいが - がいき - がいけん - がいこう - かいさつ - かいしゃ - かいすいよく - かいぜん - かいぞうど - かいつう - かいてん - かいとう - かいふく - がいへき - かいほう - かいよう - がいらい - かいわ - かえる - かおり - かかえる - かがく - かがし - かがみ - かくご - かくとく - かざる - がぞう - かたい - かたち - がちょう - がっきゅう - がっこう - がっさん - がっしょう - かなざわし - かのう - がはく - かぶか - かほう - かほご - かまう - かまぼこ - かめれおん - かゆい - かようび - からい - かるい - かろう - かわく - かわら - がんか - かんけい - かんこう - かんしゃ - かんそう - かんたん - かんち - がんばる - きあい - きあつ - きいろ - ぎいん - きうい - きうん - きえる - きおう - きおく - きおち - きおん - きかい - きかく - きかんしゃ - ききて - きくばり - きくらげ - きけんせい - きこう - きこえる - きこく - きさい - きさく - きさま - きさらぎ - ぎじかがく - ぎしき - ぎじたいけん - ぎじにってい - ぎじゅつしゃ - きすう - きせい - きせき - きせつ - きそう - きぞく - きぞん - きたえる - きちょう - きつえん - ぎっちり - きつつき - きつね - きてい - きどう - きどく - きない - きなが - きなこ - きぬごし - きねん - きのう - きのした - きはく - きびしい - きひん - きふく - きぶん - きぼう - きほん - きまる - きみつ - きむずかしい - きめる - きもだめし - きもち - きもの - きゃく - きやく - ぎゅうにく - きよう - きょうりゅう - きらい - きらく - きりん - きれい - きれつ - きろく - ぎろん - きわめる - ぎんいろ - きんかくじ - きんじょ - きんようび - ぐあい - くいず - くうかん - くうき - くうぐん - くうこう - ぐうせい - くうそう - ぐうたら - くうふく - くうぼ - くかん - くきょう - くげん - ぐこう - くさい - くさき - くさばな - くさる - くしゃみ - くしょう - くすのき - くすりゆび - くせげ - くせん - ぐたいてき - くださる - くたびれる - くちこみ - くちさき - くつした - ぐっすり - くつろぐ - くとうてん - くどく - くなん - くねくね - くのう - くふう - くみあわせ - くみたてる - くめる - くやくしょ - くらす - くらべる - くるま - くれる - くろう - くわしい - ぐんかん - ぐんしょく - ぐんたい - ぐんて - けあな - けいかく - けいけん - けいこ - けいさつ - げいじゅつ - けいたい - げいのうじん - けいれき - けいろ - けおとす - けおりもの - げきか - げきげん - げきだん - げきちん - げきとつ - げきは - げきやく - げこう - げこくじょう - げざい - けさき - げざん - けしき - けしごむ - けしょう - げすと - けたば - けちゃっぷ - けちらす - けつあつ - けつい - けつえき - けっこん - けつじょ - けっせき - けってい - けつまつ - げつようび - げつれい - けつろん - げどく - けとばす - けとる - けなげ - けなす - けなみ - けぬき - げねつ - けねん - けはい - げひん - けぶかい - げぼく - けまり - けみかる - けむし - けむり - けもの - けらい - けろけろ - けわしい - けんい - けんえつ - けんお - けんか - げんき - けんげん - けんこう - けんさく - けんしゅう - けんすう - げんそう - けんちく - けんてい - けんとう - けんない - けんにん - げんぶつ - けんま - けんみん - けんめい - けんらん - けんり - こあくま - こいぬ - こいびと - ごうい - こうえん - こうおん - こうかん - ごうきゅう - ごうけい - こうこう - こうさい - こうじ - こうすい - ごうせい - こうそく - こうたい - こうちゃ - こうつう - こうてい - こうどう - こうない - こうはい - ごうほう - ごうまん - こうもく - こうりつ - こえる - こおり - ごかい - ごがつ - ごかん - こくご - こくさい - こくとう - こくない - こくはく - こぐま - こけい - こける - ここのか - こころ - こさめ - こしつ - こすう - こせい - こせき - こぜん - こそだて - こたい - こたえる - こたつ - こちょう - こっか - こつこつ - こつばん - こつぶ - こてい - こてん - ことがら - ことし - ことば - ことり - こなごな - こねこね - このまま - このみ - このよ - ごはん - こひつじ - こふう - こふん - こぼれる - ごまあぶら - こまかい - ごますり - こまつな - こまる - こむぎこ - こもじ - こもち - こもの - こもん - こやく - こやま - こゆう - こゆび - こよい - こよう - こりる - これくしょん - ころっけ - こわもて - こわれる - こんいん - こんかい - こんき - こんしゅう - こんすい - こんだて - こんとん - こんなん - こんびに - こんぽん - こんまけ - こんや - こんれい - こんわく - ざいえき - さいかい - さいきん - ざいげん - ざいこ - さいしょ - さいせい - ざいたく - ざいちゅう - さいてき - ざいりょう - さうな - さかいし - さがす - さかな - さかみち - さがる - さぎょう - さくし - さくひん - さくら - さこく - さこつ - さずかる - ざせき - さたん - さつえい - ざつおん - ざっか - ざつがく - さっきょく - ざっし - さつじん - ざっそう - さつたば - さつまいも - さてい - さといも - さとう - さとおや - さとし - さとる - さのう - さばく - さびしい - さべつ - さほう - さほど - さます - さみしい - さみだれ - さむけ - さめる - さやえんどう - さゆう - さよう - さよく - さらだ - ざるそば - さわやか - さわる - さんいん - さんか - さんきゃく - さんこう - さんさい - ざんしょ - さんすう - さんせい - さんそ - さんち - さんま - さんみ - さんらん - しあい - しあげ - しあさって - しあわせ - しいく - しいん - しうち - しえい - しおけ - しかい - しかく - じかん - しごと - しすう - じだい - したうけ - したぎ - したて - したみ - しちょう - しちりん - しっかり - しつじ - しつもん - してい - してき - してつ - じてん - じどう - しなぎれ - しなもの - しなん - しねま - しねん - しのぐ - しのぶ - しはい - しばかり - しはつ - しはらい - しはん - しひょう - しふく - じぶん - しへい - しほう - しほん - しまう - しまる - しみん - しむける - じむしょ - しめい - しめる - しもん - しゃいん - しゃうん - しゃおん - じゃがいも - しやくしょ - しゃくほう - しゃけん - しゃこ - しゃざい - しゃしん - しゃせん - しゃそう - しゃたい - しゃちょう - しゃっきん - じゃま - しゃりん - しゃれい - じゆう - じゅうしょ - しゅくはく - じゅしん - しゅっせき - しゅみ - しゅらば - じゅんばん - しょうかい - しょくたく - しょっけん - しょどう - しょもつ - しらせる - しらべる - しんか - しんこう - じんじゃ - しんせいじ - しんちく - しんりん - すあげ - すあし - すあな - ずあん - すいえい - すいか - すいとう - ずいぶん - すいようび - すうがく - すうじつ - すうせん - すおどり - すきま - すくう - すくない - すける - すごい - すこし - ずさん - すずしい - すすむ - すすめる - すっかり - ずっしり - ずっと - すてき - すてる - すねる - すのこ - すはだ - すばらしい - ずひょう - ずぶぬれ - すぶり - すふれ - すべて - すべる - ずほう - すぼん - すまい - すめし - すもう - すやき - すらすら - するめ - すれちがう - すろっと - すわる - すんぜん - すんぽう - せあぶら - せいかつ - せいげん - せいじ - せいよう - せおう - せかいかん - せきにん - せきむ - せきゆ - せきらんうん - せけん - せこう - せすじ - せたい - せたけ - せっかく - せっきゃく - ぜっく - せっけん - せっこつ - せっさたくま - せつぞく - せつだん - せつでん - せっぱん - せつび - せつぶん - せつめい - せつりつ - せなか - せのび - せはば - せびろ - せぼね - せまい - せまる - せめる - せもたれ - せりふ - ぜんあく - せんい - せんえい - せんか - せんきょ - せんく - せんげん - ぜんご - せんさい - せんしゅ - せんすい - せんせい - せんぞ - せんたく - せんちょう - せんてい - せんとう - せんぬき - せんねん - せんぱい - ぜんぶ - ぜんぽう - せんむ - せんめんじょ - せんもん - せんやく - せんゆう - せんよう - ぜんら - ぜんりゃく - せんれい - せんろ - そあく - そいとげる - そいね - そうがんきょう - そうき - そうご - そうしん - そうだん - そうなん - そうび - そうめん - そうり - そえもの - そえん - そがい - そげき - そこう - そこそこ - そざい - そしな - そせい - そせん - そそぐ - そだてる - そつう - そつえん - そっかん - そつぎょう - そっけつ - そっこう - そっせん - そっと - そとがわ - そとづら - そなえる - そなた - そふぼ - そぼく - そぼろ - そまつ - そまる - そむく - そむりえ - そめる - そもそも - そよかぜ - そらまめ - そろう - そんかい - そんけい - そんざい - そんしつ - そんぞく - そんちょう - ぞんび - ぞんぶん - そんみん - たあい - たいいん - たいうん - たいえき - たいおう - だいがく - たいき - たいぐう - たいけん - たいこ - たいざい - だいじょうぶ - だいすき - たいせつ - たいそう - だいたい - たいちょう - たいてい - だいどころ - たいない - たいねつ - たいのう - たいはん - だいひょう - たいふう - たいへん - たいほ - たいまつばな - たいみんぐ - たいむ - たいめん - たいやき - たいよう - たいら - たいりょく - たいる - たいわん - たうえ - たえる - たおす - たおる - たおれる - たかい - たかね - たきび - たくさん - たこく - たこやき - たさい - たしざん - だじゃれ - たすける - たずさわる - たそがれ - たたかう - たたく - ただしい - たたみ - たちばな - だっかい - だっきゃく - だっこ - だっしゅつ - だったい - たてる - たとえる - たなばた - たにん - たぬき - たのしみ - たはつ - たぶん - たべる - たぼう - たまご - たまる - だむる - ためいき - ためす - ためる - たもつ - たやすい - たよる - たらす - たりきほんがん - たりょう - たりる - たると - たれる - たれんと - たろっと - たわむれる - だんあつ - たんい - たんおん - たんか - たんき - たんけん - たんご - たんさん - たんじょうび - だんせい - たんそく - たんたい - だんち - たんてい - たんとう - だんな - たんにん - だんねつ - たんのう - たんぴん - だんぼう - たんまつ - たんめい - だんれつ - だんろ - だんわ - ちあい - ちあん - ちいき - ちいさい - ちえん - ちかい - ちから - ちきゅう - ちきん - ちけいず - ちけん - ちこく - ちさい - ちしき - ちしりょう - ちせい - ちそう - ちたい - ちたん - ちちおや - ちつじょ - ちてき - ちてん - ちぬき - ちぬり - ちのう - ちひょう - ちへいせん - ちほう - ちまた - ちみつ - ちみどろ - ちめいど - ちゃんこなべ - ちゅうい - ちゆりょく - ちょうし - ちょさくけん - ちらし - ちらみ - ちりがみ - ちりょう - ちるど - ちわわ - ちんたい - ちんもく - ついか - ついたち - つうか - つうじょう - つうはん - つうわ - つかう - つかれる - つくね - つくる - つけね - つける - つごう - つたえる - つづく - つつじ - つつむ - つとめる - つながる - つなみ - つねづね - つのる - つぶす - つまらない - つまる - つみき - つめたい - つもり - つもる - つよい - つるぼ - つるみく - つわもの - つわり - てあし - てあて - てあみ - ていおん - ていか - ていき - ていけい - ていこく - ていさつ - ていし - ていせい - ていたい - ていど - ていねい - ていひょう - ていへん - ていぼう - てうち - ておくれ - てきとう - てくび - でこぼこ - てさぎょう - てさげ - てすり - てそう - てちがい - てちょう - てつがく - てつづき - でっぱ - てつぼう - てつや - でぬかえ - てぬき - てぬぐい - てのひら - てはい - てぶくろ - てふだ - てほどき - てほん - てまえ - てまきずし - てみじか - てみやげ - てらす - てれび - てわけ - てわたし - でんあつ - てんいん - てんかい - てんき - てんぐ - てんけん - てんごく - てんさい - てんし - てんすう - でんち - てんてき - てんとう - てんない - てんぷら - てんぼうだい - てんめつ - てんらんかい - でんりょく - でんわ - どあい - といれ - どうかん - とうきゅう - どうぐ - とうし - とうむぎ - とおい - とおか - とおく - とおす - とおる - とかい - とかす - ときおり - ときどき - とくい - とくしゅう - とくてん - とくに - とくべつ - とけい - とける - とこや - とさか - としょかん - とそう - とたん - とちゅう - とっきゅう - とっくん - とつぜん - とつにゅう - とどける - ととのえる - とない - となえる - となり - とのさま - とばす - どぶがわ - とほう - とまる - とめる - ともだち - ともる - どようび - とらえる - とんかつ - どんぶり - ないかく - ないこう - ないしょ - ないす - ないせん - ないそう - なおす - ながい - なくす - なげる - なこうど - なさけ - なたでここ - なっとう - なつやすみ - ななおし - なにごと - なにもの - なにわ - なのか - なふだ - なまいき - なまえ - なまみ - なみだ - なめらか - なめる - なやむ - ならう - ならび - ならぶ - なれる - なわとび - なわばり - にあう - にいがた - にうけ - におい - にかい - にがて - にきび - にくしみ - にくまん - にげる - にさんかたんそ - にしき - にせもの - にちじょう - にちようび - にっか - にっき - にっけい - にっこう - にっさん - にっしょく - にっすう - にっせき - にってい - になう - にほん - にまめ - にもつ - にやり - にゅういん - にりんしゃ - にわとり - にんい - にんか - にんき - にんげん - にんしき - にんずう - にんそう - にんたい - にんち - にんてい - にんにく - にんぷ - にんまり - にんむ - にんめい - にんよう - ぬいくぎ - ぬかす - ぬぐいとる - ぬぐう - ぬくもり - ぬすむ - ぬまえび - ぬめり - ぬらす - ぬんちゃく - ねあげ - ねいき - ねいる - ねいろ - ねぐせ - ねくたい - ねくら - ねこぜ - ねこむ - ねさげ - ねすごす - ねそべる - ねだん - ねつい - ねっしん - ねつぞう - ねったいぎょ - ねぶそく - ねふだ - ねぼう - ねほりはほり - ねまき - ねまわし - ねみみ - ねむい - ねむたい - ねもと - ねらう - ねわざ - ねんいり - ねんおし - ねんかん - ねんきん - ねんぐ - ねんざ - ねんし - ねんちゃく - ねんど - ねんぴ - ねんぶつ - ねんまつ - ねんりょう - ねんれい - のいず - のおづま - のがす - のきなみ - のこぎり - のこす - のこる - のせる - のぞく - のぞむ - のたまう - のちほど - のっく - のばす - のはら - のべる - のぼる - のみもの - のやま - のらいぬ - のらねこ - のりもの - のりゆき - のれん - のんき - ばあい - はあく - ばあさん - ばいか - ばいく - はいけん - はいご - はいしん - はいすい - はいせん - はいそう - はいち - ばいばい - はいれつ - はえる - はおる - はかい - ばかり - はかる - はくしゅ - はけん - はこぶ - はさみ - はさん - はしご - ばしょ - はしる - はせる - ぱそこん - はそん - はたん - はちみつ - はつおん - はっかく - はづき - はっきり - はっくつ - はっけん - はっこう - はっさん - はっしん - はったつ - はっちゅう - はってん - はっぴょう - はっぽう - はなす - はなび - はにかむ - はぶらし - はみがき - はむかう - はめつ - はやい - はやし - はらう - はろうぃん - はわい - はんい - はんえい - はんおん - はんかく - はんきょう - ばんぐみ - はんこ - はんしゃ - はんすう - はんだん - ぱんち - ぱんつ - はんてい - はんとし - はんのう - はんぱ - はんぶん - はんぺん - はんぼうき - はんめい - はんらん - はんろん - ひいき - ひうん - ひえる - ひかく - ひかり - ひかる - ひかん - ひくい - ひけつ - ひこうき - ひこく - ひさい - ひさしぶり - ひさん - びじゅつかん - ひしょ - ひそか - ひそむ - ひたむき - ひだり - ひたる - ひつぎ - ひっこし - ひっし - ひつじゅひん - ひっす - ひつぜん - ぴったり - ぴっちり - ひつよう - ひてい - ひとごみ - ひなまつり - ひなん - ひねる - ひはん - ひびく - ひひょう - ひほう - ひまわり - ひまん - ひみつ - ひめい - ひめじし - ひやけ - ひやす - ひよう - びょうき - ひらがな - ひらく - ひりつ - ひりょう - ひるま - ひるやすみ - ひれい - ひろい - ひろう - ひろき - ひろゆき - ひんかく - ひんけつ - ひんこん - ひんしゅ - ひんそう - ぴんち - ひんぱん - びんぼう - ふあん - ふいうち - ふうけい - ふうせん - ぷうたろう - ふうとう - ふうふ - ふえる - ふおん - ふかい - ふきん - ふくざつ - ふくぶくろ - ふこう - ふさい - ふしぎ - ふじみ - ふすま - ふせい - ふせぐ - ふそく - ぶたにく - ふたん - ふちょう - ふつう - ふつか - ふっかつ - ふっき - ふっこく - ぶどう - ふとる - ふとん - ふのう - ふはい - ふひょう - ふへん - ふまん - ふみん - ふめつ - ふめん - ふよう - ふりこ - ふりる - ふるい - ふんいき - ぶんがく - ぶんぐ - ふんしつ - ぶんせき - ふんそう - ぶんぽう - へいあん - へいおん - へいがい - へいき - へいげん - へいこう - へいさ - へいしゃ - へいせつ - へいそ - へいたく - へいてん - へいねつ - へいわ - へきが - へこむ - べにいろ - べにしょうが - へらす - へんかん - べんきょう - べんごし - へんさい - へんたい - べんり - ほあん - ほいく - ぼうぎょ - ほうこく - ほうそう - ほうほう - ほうもん - ほうりつ - ほえる - ほおん - ほかん - ほきょう - ぼきん - ほくろ - ほけつ - ほけん - ほこう - ほこる - ほしい - ほしつ - ほしゅ - ほしょう - ほせい - ほそい - ほそく - ほたて - ほたる - ぽちぶくろ - ほっきょく - ほっさ - ほったん - ほとんど - ほめる - ほんい - ほんき - ほんけ - ほんしつ - ほんやく - まいにち - まかい - まかせる - まがる - まける - まこと - まさつ - まじめ - ますく - まぜる - まつり - まとめ - まなぶ - まぬけ - まねく - まほう - まもる - まゆげ - まよう - まろやか - まわす - まわり - まわる - まんが - まんきつ - まんぞく - まんなか - みいら - みうち - みえる - みがく - みかた - みかん - みけん - みこん - みじかい - みすい - みすえる - みせる - みっか - みつかる - みつける - みてい - みとめる - みなと - みなみかさい - みねらる - みのう - みのがす - みほん - みもと - みやげ - みらい - みりょく - みわく - みんか - みんぞく - むいか - むえき - むえん - むかい - むかう - むかえ - むかし - むぎちゃ - むける - むげん - むさぼる - むしあつい - むしば - むじゅん - むしろ - むすう - むすこ - むすぶ - むすめ - むせる - むせん - むちゅう - むなしい - むのう - むやみ - むよう - むらさき - むりょう - むろん - めいあん - めいうん - めいえん - めいかく - めいきょく - めいさい - めいし - めいそう - めいぶつ - めいれい - めいわく - めぐまれる - めざす - めした - めずらしい - めだつ - めまい - めやす - めんきょ - めんせき - めんどう - もうしあげる - もうどうけん - もえる - もくし - もくてき - もくようび - もちろん - もどる - もらう - もんく - もんだい - やおや - やける - やさい - やさしい - やすい - やすたろう - やすみ - やせる - やそう - やたい - やちん - やっと - やっぱり - やぶる - やめる - ややこしい - やよい - やわらかい - ゆうき - ゆうびんきょく - ゆうべ - ゆうめい - ゆけつ - ゆしゅつ - ゆせん - ゆそう - ゆたか - ゆちゃく - ゆでる - ゆにゅう - ゆびわ - ゆらい - ゆれる - ようい - ようか - ようきゅう - ようじ - ようす - ようちえん - よかぜ - よかん - よきん - よくせい - よくぼう - よけい - よごれる - よさん - よしゅう - よそう - よそく - よっか - よてい - よどがわく - よねつ - よやく - よゆう - よろこぶ - よろしい - らいう - らくがき - らくご - らくさつ - らくだ - らしんばん - らせん - らぞく - らたい - らっか - られつ - りえき - りかい - りきさく - りきせつ - りくぐん - りくつ - りけん - りこう - りせい - りそう - りそく - りてん - りねん - りゆう - りゅうがく - りよう - りょうり - りょかん - りょくちゃ - りょこう - りりく - りれき - りろん - りんご - るいけい - るいさい - るいじ - るいせき - るすばん - るりがわら - れいかん - れいぎ - れいせい - れいぞうこ - れいとう - れいぼう - れきし - れきだい - れんあい - れんけい - れんこん - れんさい - れんしゅう - れんぞく - れんらく - ろうか - ろうご - ろうじん - ろうそく - ろくが - ろこつ - ろじうら - ろしゅつ - ろせん - ろてん - ろめん - ろれつ - ろんぎ - ろんぱ - ろんぶん - ろんり - わかす - わかめ - わかやま - わかれる - わしつ - わじまし - わすれもの - わらう - われる - """ - return words.split(separator: "\n") - }() - static var korean: [String.SubSequence] = { - let words = - """ - 가격 - 가끔 - 가난 - 가능 - 가득 - 가르침 - 가뭄 - 가방 - 가상 - 가슴 - 가운데 - 가을 - 가이드 - 가입 - 가장 - 가정 - 가족 - 가죽 - 각오 - 각자 - 간격 - 간부 - 간섭 - 간장 - 간접 - 간판 - 갈등 - 갈비 - 갈색 - 갈증 - 감각 - 감기 - 감소 - 감수성 - 감자 - 감정 - 갑자기 - 강남 - 강당 - 강도 - 강력히 - 강변 - 강북 - 강사 - 강수량 - 강아지 - 강원도 - 강의 - 강제 - 강조 - 같이 - 개구리 - 개나리 - 개방 - 개별 - 개선 - 개성 - 개인 - 객관적 - 거실 - 거액 - 거울 - 거짓 - 거품 - 걱정 - 건강 - 건물 - 건설 - 건조 - 건축 - 걸음 - 검사 - 검토 - 게시판 - 게임 - 겨울 - 견해 - 결과 - 결국 - 결론 - 결석 - 결승 - 결심 - 결정 - 결혼 - 경계 - 경고 - 경기 - 경력 - 경복궁 - 경비 - 경상도 - 경영 - 경우 - 경쟁 - 경제 - 경주 - 경찰 - 경치 - 경향 - 경험 - 계곡 - 계단 - 계란 - 계산 - 계속 - 계약 - 계절 - 계층 - 계획 - 고객 - 고구려 - 고궁 - 고급 - 고등학생 - 고무신 - 고민 - 고양이 - 고장 - 고전 - 고집 - 고춧가루 - 고통 - 고향 - 곡식 - 골목 - 골짜기 - 골프 - 공간 - 공개 - 공격 - 공군 - 공급 - 공기 - 공동 - 공무원 - 공부 - 공사 - 공식 - 공업 - 공연 - 공원 - 공장 - 공짜 - 공책 - 공통 - 공포 - 공항 - 공휴일 - 과목 - 과일 - 과장 - 과정 - 과학 - 관객 - 관계 - 관광 - 관념 - 관람 - 관련 - 관리 - 관습 - 관심 - 관점 - 관찰 - 광경 - 광고 - 광장 - 광주 - 괴로움 - 굉장히 - 교과서 - 교문 - 교복 - 교실 - 교양 - 교육 - 교장 - 교직 - 교통 - 교환 - 교훈 - 구경 - 구름 - 구멍 - 구별 - 구분 - 구석 - 구성 - 구속 - 구역 - 구입 - 구청 - 구체적 - 국가 - 국기 - 국내 - 국립 - 국물 - 국민 - 국수 - 국어 - 국왕 - 국적 - 국제 - 국회 - 군대 - 군사 - 군인 - 궁극적 - 권리 - 권위 - 권투 - 귀국 - 귀신 - 규정 - 규칙 - 균형 - 그날 - 그냥 - 그늘 - 그러나 - 그룹 - 그릇 - 그림 - 그제서야 - 그토록 - 극복 - 극히 - 근거 - 근교 - 근래 - 근로 - 근무 - 근본 - 근원 - 근육 - 근처 - 글씨 - 글자 - 금강산 - 금고 - 금년 - 금메달 - 금액 - 금연 - 금요일 - 금지 - 긍정적 - 기간 - 기관 - 기념 - 기능 - 기독교 - 기둥 - 기록 - 기름 - 기법 - 기본 - 기분 - 기쁨 - 기숙사 - 기술 - 기억 - 기업 - 기온 - 기운 - 기원 - 기적 - 기준 - 기침 - 기혼 - 기획 - 긴급 - 긴장 - 길이 - 김밥 - 김치 - 김포공항 - 깍두기 - 깜빡 - 깨달음 - 깨소금 - 껍질 - 꼭대기 - 꽃잎 - 나들이 - 나란히 - 나머지 - 나물 - 나침반 - 나흘 - 낙엽 - 난방 - 날개 - 날씨 - 날짜 - 남녀 - 남대문 - 남매 - 남산 - 남자 - 남편 - 남학생 - 낭비 - 낱말 - 내년 - 내용 - 내일 - 냄비 - 냄새 - 냇물 - 냉동 - 냉면 - 냉방 - 냉장고 - 넥타이 - 넷째 - 노동 - 노란색 - 노력 - 노인 - 녹음 - 녹차 - 녹화 - 논리 - 논문 - 논쟁 - 놀이 - 농구 - 농담 - 농민 - 농부 - 농업 - 농장 - 농촌 - 높이 - 눈동자 - 눈물 - 눈썹 - 뉴욕 - 느낌 - 늑대 - 능동적 - 능력 - 다방 - 다양성 - 다음 - 다이어트 - 다행 - 단계 - 단골 - 단독 - 단맛 - 단순 - 단어 - 단위 - 단점 - 단체 - 단추 - 단편 - 단풍 - 달걀 - 달러 - 달력 - 달리 - 닭고기 - 담당 - 담배 - 담요 - 담임 - 답변 - 답장 - 당근 - 당분간 - 당연히 - 당장 - 대규모 - 대낮 - 대단히 - 대답 - 대도시 - 대략 - 대량 - 대륙 - 대문 - 대부분 - 대신 - 대응 - 대장 - 대전 - 대접 - 대중 - 대책 - 대출 - 대충 - 대통령 - 대학 - 대한민국 - 대합실 - 대형 - 덩어리 - 데이트 - 도대체 - 도덕 - 도둑 - 도망 - 도서관 - 도심 - 도움 - 도입 - 도자기 - 도저히 - 도전 - 도중 - 도착 - 독감 - 독립 - 독서 - 독일 - 독창적 - 동화책 - 뒷모습 - 뒷산 - 딸아이 - 마누라 - 마늘 - 마당 - 마라톤 - 마련 - 마무리 - 마사지 - 마약 - 마요네즈 - 마을 - 마음 - 마이크 - 마중 - 마지막 - 마찬가지 - 마찰 - 마흔 - 막걸리 - 막내 - 막상 - 만남 - 만두 - 만세 - 만약 - 만일 - 만점 - 만족 - 만화 - 많이 - 말기 - 말씀 - 말투 - 맘대로 - 망원경 - 매년 - 매달 - 매력 - 매번 - 매스컴 - 매일 - 매장 - 맥주 - 먹이 - 먼저 - 먼지 - 멀리 - 메일 - 며느리 - 며칠 - 면담 - 멸치 - 명단 - 명령 - 명예 - 명의 - 명절 - 명칭 - 명함 - 모금 - 모니터 - 모델 - 모든 - 모범 - 모습 - 모양 - 모임 - 모조리 - 모집 - 모퉁이 - 목걸이 - 목록 - 목사 - 목소리 - 목숨 - 목적 - 목표 - 몰래 - 몸매 - 몸무게 - 몸살 - 몸속 - 몸짓 - 몸통 - 몹시 - 무관심 - 무궁화 - 무더위 - 무덤 - 무릎 - 무슨 - 무엇 - 무역 - 무용 - 무조건 - 무지개 - 무척 - 문구 - 문득 - 문법 - 문서 - 문제 - 문학 - 문화 - 물가 - 물건 - 물결 - 물고기 - 물론 - 물리학 - 물음 - 물질 - 물체 - 미국 - 미디어 - 미사일 - 미술 - 미역 - 미용실 - 미움 - 미인 - 미팅 - 미혼 - 민간 - 민족 - 민주 - 믿음 - 밀가루 - 밀리미터 - 밑바닥 - 바가지 - 바구니 - 바나나 - 바늘 - 바닥 - 바닷가 - 바람 - 바이러스 - 바탕 - 박물관 - 박사 - 박수 - 반대 - 반드시 - 반말 - 반발 - 반성 - 반응 - 반장 - 반죽 - 반지 - 반찬 - 받침 - 발가락 - 발걸음 - 발견 - 발달 - 발레 - 발목 - 발바닥 - 발생 - 발음 - 발자국 - 발전 - 발톱 - 발표 - 밤하늘 - 밥그릇 - 밥맛 - 밥상 - 밥솥 - 방금 - 방면 - 방문 - 방바닥 - 방법 - 방송 - 방식 - 방안 - 방울 - 방지 - 방학 - 방해 - 방향 - 배경 - 배꼽 - 배달 - 배드민턴 - 백두산 - 백색 - 백성 - 백인 - 백제 - 백화점 - 버릇 - 버섯 - 버튼 - 번개 - 번역 - 번지 - 번호 - 벌금 - 벌레 - 벌써 - 범위 - 범인 - 범죄 - 법률 - 법원 - 법적 - 법칙 - 베이징 - 벨트 - 변경 - 변동 - 변명 - 변신 - 변호사 - 변화 - 별도 - 별명 - 별일 - 병실 - 병아리 - 병원 - 보관 - 보너스 - 보라색 - 보람 - 보름 - 보상 - 보안 - 보자기 - 보장 - 보전 - 보존 - 보통 - 보편적 - 보험 - 복도 - 복사 - 복숭아 - 복습 - 볶음 - 본격적 - 본래 - 본부 - 본사 - 본성 - 본인 - 본질 - 볼펜 - 봉사 - 봉지 - 봉투 - 부근 - 부끄러움 - 부담 - 부동산 - 부문 - 부분 - 부산 - 부상 - 부엌 - 부인 - 부작용 - 부장 - 부정 - 부족 - 부지런히 - 부친 - 부탁 - 부품 - 부회장 - 북부 - 북한 - 분노 - 분량 - 분리 - 분명 - 분석 - 분야 - 분위기 - 분필 - 분홍색 - 불고기 - 불과 - 불교 - 불꽃 - 불만 - 불법 - 불빛 - 불안 - 불이익 - 불행 - 브랜드 - 비극 - 비난 - 비닐 - 비둘기 - 비디오 - 비로소 - 비만 - 비명 - 비밀 - 비바람 - 비빔밥 - 비상 - 비용 - 비율 - 비중 - 비타민 - 비판 - 빌딩 - 빗물 - 빗방울 - 빗줄기 - 빛깔 - 빨간색 - 빨래 - 빨리 - 사건 - 사계절 - 사나이 - 사냥 - 사람 - 사랑 - 사립 - 사모님 - 사물 - 사방 - 사상 - 사생활 - 사설 - 사슴 - 사실 - 사업 - 사용 - 사월 - 사장 - 사전 - 사진 - 사촌 - 사춘기 - 사탕 - 사투리 - 사흘 - 산길 - 산부인과 - 산업 - 산책 - 살림 - 살인 - 살짝 - 삼계탕 - 삼국 - 삼십 - 삼월 - 삼촌 - 상관 - 상금 - 상대 - 상류 - 상반기 - 상상 - 상식 - 상업 - 상인 - 상자 - 상점 - 상처 - 상추 - 상태 - 상표 - 상품 - 상황 - 새벽 - 색깔 - 색연필 - 생각 - 생명 - 생물 - 생방송 - 생산 - 생선 - 생신 - 생일 - 생활 - 서랍 - 서른 - 서명 - 서민 - 서비스 - 서양 - 서울 - 서적 - 서점 - 서쪽 - 서클 - 석사 - 석유 - 선거 - 선물 - 선배 - 선생 - 선수 - 선원 - 선장 - 선전 - 선택 - 선풍기 - 설거지 - 설날 - 설렁탕 - 설명 - 설문 - 설사 - 설악산 - 설치 - 설탕 - 섭씨 - 성공 - 성당 - 성명 - 성별 - 성인 - 성장 - 성적 - 성질 - 성함 - 세금 - 세미나 - 세상 - 세월 - 세종대왕 - 세탁 - 센터 - 센티미터 - 셋째 - 소규모 - 소극적 - 소금 - 소나기 - 소년 - 소득 - 소망 - 소문 - 소설 - 소속 - 소아과 - 소용 - 소원 - 소음 - 소중히 - 소지품 - 소질 - 소풍 - 소형 - 속담 - 속도 - 속옷 - 손가락 - 손길 - 손녀 - 손님 - 손등 - 손목 - 손뼉 - 손실 - 손질 - 손톱 - 손해 - 솔직히 - 솜씨 - 송아지 - 송이 - 송편 - 쇠고기 - 쇼핑 - 수건 - 수년 - 수단 - 수돗물 - 수동적 - 수면 - 수명 - 수박 - 수상 - 수석 - 수술 - 수시로 - 수업 - 수염 - 수영 - 수입 - 수준 - 수집 - 수출 - 수컷 - 수필 - 수학 - 수험생 - 수화기 - 숙녀 - 숙소 - 숙제 - 순간 - 순서 - 순수 - 순식간 - 순위 - 숟가락 - 술병 - 술집 - 숫자 - 스님 - 스물 - 스스로 - 스승 - 스웨터 - 스위치 - 스케이트 - 스튜디오 - 스트레스 - 스포츠 - 슬쩍 - 슬픔 - 습관 - 습기 - 승객 - 승리 - 승부 - 승용차 - 승진 - 시각 - 시간 - 시골 - 시금치 - 시나리오 - 시댁 - 시리즈 - 시멘트 - 시민 - 시부모 - 시선 - 시설 - 시스템 - 시아버지 - 시어머니 - 시월 - 시인 - 시일 - 시작 - 시장 - 시절 - 시점 - 시중 - 시즌 - 시집 - 시청 - 시합 - 시험 - 식구 - 식기 - 식당 - 식량 - 식료품 - 식물 - 식빵 - 식사 - 식생활 - 식초 - 식탁 - 식품 - 신고 - 신규 - 신념 - 신문 - 신발 - 신비 - 신사 - 신세 - 신용 - 신제품 - 신청 - 신체 - 신화 - 실감 - 실내 - 실력 - 실례 - 실망 - 실수 - 실습 - 실시 - 실장 - 실정 - 실질적 - 실천 - 실체 - 실컷 - 실태 - 실패 - 실험 - 실현 - 심리 - 심부름 - 심사 - 심장 - 심정 - 심판 - 쌍둥이 - 씨름 - 씨앗 - 아가씨 - 아나운서 - 아드님 - 아들 - 아쉬움 - 아스팔트 - 아시아 - 아울러 - 아저씨 - 아줌마 - 아직 - 아침 - 아파트 - 아프리카 - 아픔 - 아홉 - 아흔 - 악기 - 악몽 - 악수 - 안개 - 안경 - 안과 - 안내 - 안녕 - 안동 - 안방 - 안부 - 안주 - 알루미늄 - 알코올 - 암시 - 암컷 - 압력 - 앞날 - 앞문 - 애인 - 애정 - 액수 - 앨범 - 야간 - 야단 - 야옹 - 약간 - 약국 - 약속 - 약수 - 약점 - 약품 - 약혼녀 - 양념 - 양력 - 양말 - 양배추 - 양주 - 양파 - 어둠 - 어려움 - 어른 - 어젯밤 - 어쨌든 - 어쩌다가 - 어쩐지 - 언니 - 언덕 - 언론 - 언어 - 얼굴 - 얼른 - 얼음 - 얼핏 - 엄마 - 업무 - 업종 - 업체 - 엉덩이 - 엉망 - 엉터리 - 엊그제 - 에너지 - 에어컨 - 엔진 - 여건 - 여고생 - 여관 - 여군 - 여권 - 여대생 - 여덟 - 여동생 - 여든 - 여론 - 여름 - 여섯 - 여성 - 여왕 - 여인 - 여전히 - 여직원 - 여학생 - 여행 - 역사 - 역시 - 역할 - 연결 - 연구 - 연극 - 연기 - 연락 - 연설 - 연세 - 연속 - 연습 - 연애 - 연예인 - 연인 - 연장 - 연주 - 연출 - 연필 - 연합 - 연휴 - 열기 - 열매 - 열쇠 - 열심히 - 열정 - 열차 - 열흘 - 염려 - 엽서 - 영국 - 영남 - 영상 - 영양 - 영역 - 영웅 - 영원히 - 영하 - 영향 - 영혼 - 영화 - 옆구리 - 옆방 - 옆집 - 예감 - 예금 - 예방 - 예산 - 예상 - 예선 - 예술 - 예습 - 예식장 - 예약 - 예전 - 예절 - 예정 - 예컨대 - 옛날 - 오늘 - 오락 - 오랫동안 - 오렌지 - 오로지 - 오른발 - 오븐 - 오십 - 오염 - 오월 - 오전 - 오직 - 오징어 - 오페라 - 오피스텔 - 오히려 - 옥상 - 옥수수 - 온갖 - 온라인 - 온몸 - 온종일 - 온통 - 올가을 - 올림픽 - 올해 - 옷차림 - 와이셔츠 - 와인 - 완성 - 완전 - 왕비 - 왕자 - 왜냐하면 - 왠지 - 외갓집 - 외국 - 외로움 - 외삼촌 - 외출 - 외침 - 외할머니 - 왼발 - 왼손 - 왼쪽 - 요금 - 요일 - 요즘 - 요청 - 용기 - 용서 - 용어 - 우산 - 우선 - 우승 - 우연히 - 우정 - 우체국 - 우편 - 운동 - 운명 - 운반 - 운전 - 운행 - 울산 - 울음 - 움직임 - 웃어른 - 웃음 - 워낙 - 원고 - 원래 - 원서 - 원숭이 - 원인 - 원장 - 원피스 - 월급 - 월드컵 - 월세 - 월요일 - 웨이터 - 위반 - 위법 - 위성 - 위원 - 위험 - 위협 - 윗사람 - 유난히 - 유럽 - 유명 - 유물 - 유산 - 유적 - 유치원 - 유학 - 유행 - 유형 - 육군 - 육상 - 육십 - 육체 - 은행 - 음력 - 음료 - 음반 - 음성 - 음식 - 음악 - 음주 - 의견 - 의논 - 의문 - 의복 - 의식 - 의심 - 의외로 - 의욕 - 의원 - 의학 - 이것 - 이곳 - 이념 - 이놈 - 이달 - 이대로 - 이동 - 이렇게 - 이력서 - 이론적 - 이름 - 이민 - 이발소 - 이별 - 이불 - 이빨 - 이상 - 이성 - 이슬 - 이야기 - 이용 - 이웃 - 이월 - 이윽고 - 이익 - 이전 - 이중 - 이튿날 - 이틀 - 이혼 - 인간 - 인격 - 인공 - 인구 - 인근 - 인기 - 인도 - 인류 - 인물 - 인생 - 인쇄 - 인연 - 인원 - 인재 - 인종 - 인천 - 인체 - 인터넷 - 인하 - 인형 - 일곱 - 일기 - 일단 - 일대 - 일등 - 일반 - 일본 - 일부 - 일상 - 일생 - 일손 - 일요일 - 일월 - 일정 - 일종 - 일주일 - 일찍 - 일체 - 일치 - 일행 - 일회용 - 임금 - 임무 - 입대 - 입력 - 입맛 - 입사 - 입술 - 입시 - 입원 - 입장 - 입학 - 자가용 - 자격 - 자극 - 자동 - 자랑 - 자부심 - 자식 - 자신 - 자연 - 자원 - 자율 - 자전거 - 자정 - 자존심 - 자판 - 작가 - 작년 - 작성 - 작업 - 작용 - 작은딸 - 작품 - 잔디 - 잔뜩 - 잔치 - 잘못 - 잠깐 - 잠수함 - 잠시 - 잠옷 - 잠자리 - 잡지 - 장관 - 장군 - 장기간 - 장래 - 장례 - 장르 - 장마 - 장면 - 장모 - 장미 - 장비 - 장사 - 장소 - 장식 - 장애인 - 장인 - 장점 - 장차 - 장학금 - 재능 - 재빨리 - 재산 - 재생 - 재작년 - 재정 - 재채기 - 재판 - 재학 - 재활용 - 저것 - 저고리 - 저곳 - 저녁 - 저런 - 저렇게 - 저번 - 저울 - 저절로 - 저축 - 적극 - 적당히 - 적성 - 적용 - 적응 - 전개 - 전공 - 전기 - 전달 - 전라도 - 전망 - 전문 - 전반 - 전부 - 전세 - 전시 - 전용 - 전자 - 전쟁 - 전주 - 전철 - 전체 - 전통 - 전혀 - 전후 - 절대 - 절망 - 절반 - 절약 - 절차 - 점검 - 점수 - 점심 - 점원 - 점점 - 점차 - 접근 - 접시 - 접촉 - 젓가락 - 정거장 - 정도 - 정류장 - 정리 - 정말 - 정면 - 정문 - 정반대 - 정보 - 정부 - 정비 - 정상 - 정성 - 정오 - 정원 - 정장 - 정지 - 정치 - 정확히 - 제공 - 제과점 - 제대로 - 제목 - 제발 - 제법 - 제삿날 - 제안 - 제일 - 제작 - 제주도 - 제출 - 제품 - 제한 - 조각 - 조건 - 조금 - 조깅 - 조명 - 조미료 - 조상 - 조선 - 조용히 - 조절 - 조정 - 조직 - 존댓말 - 존재 - 졸업 - 졸음 - 종교 - 종로 - 종류 - 종소리 - 종업원 - 종종 - 종합 - 좌석 - 죄인 - 주관적 - 주름 - 주말 - 주머니 - 주먹 - 주문 - 주민 - 주방 - 주변 - 주식 - 주인 - 주일 - 주장 - 주전자 - 주택 - 준비 - 줄거리 - 줄기 - 줄무늬 - 중간 - 중계방송 - 중국 - 중년 - 중단 - 중독 - 중반 - 중부 - 중세 - 중소기업 - 중순 - 중앙 - 중요 - 중학교 - 즉석 - 즉시 - 즐거움 - 증가 - 증거 - 증권 - 증상 - 증세 - 지각 - 지갑 - 지경 - 지극히 - 지금 - 지급 - 지능 - 지름길 - 지리산 - 지방 - 지붕 - 지식 - 지역 - 지우개 - 지원 - 지적 - 지점 - 지진 - 지출 - 직선 - 직업 - 직원 - 직장 - 진급 - 진동 - 진로 - 진료 - 진리 - 진짜 - 진찰 - 진출 - 진통 - 진행 - 질문 - 질병 - 질서 - 짐작 - 집단 - 집안 - 집중 - 짜증 - 찌꺼기 - 차남 - 차라리 - 차량 - 차림 - 차별 - 차선 - 차츰 - 착각 - 찬물 - 찬성 - 참가 - 참기름 - 참새 - 참석 - 참여 - 참외 - 참조 - 찻잔 - 창가 - 창고 - 창구 - 창문 - 창밖 - 창작 - 창조 - 채널 - 채점 - 책가방 - 책방 - 책상 - 책임 - 챔피언 - 처벌 - 처음 - 천국 - 천둥 - 천장 - 천재 - 천천히 - 철도 - 철저히 - 철학 - 첫날 - 첫째 - 청년 - 청바지 - 청소 - 청춘 - 체계 - 체력 - 체온 - 체육 - 체중 - 체험 - 초등학생 - 초반 - 초밥 - 초상화 - 초순 - 초여름 - 초원 - 초저녁 - 초점 - 초청 - 초콜릿 - 촛불 - 총각 - 총리 - 총장 - 촬영 - 최근 - 최상 - 최선 - 최신 - 최악 - 최종 - 추석 - 추억 - 추진 - 추천 - 추측 - 축구 - 축소 - 축제 - 축하 - 출근 - 출발 - 출산 - 출신 - 출연 - 출입 - 출장 - 출판 - 충격 - 충고 - 충돌 - 충분히 - 충청도 - 취업 - 취직 - 취향 - 치약 - 친구 - 친척 - 칠십 - 칠월 - 칠판 - 침대 - 침묵 - 침실 - 칫솔 - 칭찬 - 카메라 - 카운터 - 칼국수 - 캐릭터 - 캠퍼스 - 캠페인 - 커튼 - 컨디션 - 컬러 - 컴퓨터 - 코끼리 - 코미디 - 콘서트 - 콜라 - 콤플렉스 - 콩나물 - 쾌감 - 쿠데타 - 크림 - 큰길 - 큰딸 - 큰소리 - 큰아들 - 큰어머니 - 큰일 - 큰절 - 클래식 - 클럽 - 킬로 - 타입 - 타자기 - 탁구 - 탁자 - 탄생 - 태권도 - 태양 - 태풍 - 택시 - 탤런트 - 터널 - 터미널 - 테니스 - 테스트 - 테이블 - 텔레비전 - 토론 - 토마토 - 토요일 - 통계 - 통과 - 통로 - 통신 - 통역 - 통일 - 통장 - 통제 - 통증 - 통합 - 통화 - 퇴근 - 퇴원 - 퇴직금 - 튀김 - 트럭 - 특급 - 특별 - 특성 - 특수 - 특징 - 특히 - 튼튼히 - 티셔츠 - 파란색 - 파일 - 파출소 - 판결 - 판단 - 판매 - 판사 - 팔십 - 팔월 - 팝송 - 패션 - 팩스 - 팩시밀리 - 팬티 - 퍼센트 - 페인트 - 편견 - 편의 - 편지 - 편히 - 평가 - 평균 - 평생 - 평소 - 평양 - 평일 - 평화 - 포스터 - 포인트 - 포장 - 포함 - 표면 - 표정 - 표준 - 표현 - 품목 - 품질 - 풍경 - 풍속 - 풍습 - 프랑스 - 프린터 - 플라스틱 - 피곤 - 피망 - 피아노 - 필름 - 필수 - 필요 - 필자 - 필통 - 핑계 - 하느님 - 하늘 - 하드웨어 - 하룻밤 - 하반기 - 하숙집 - 하순 - 하여튼 - 하지만 - 하천 - 하품 - 하필 - 학과 - 학교 - 학급 - 학기 - 학년 - 학력 - 학번 - 학부모 - 학비 - 학생 - 학술 - 학습 - 학용품 - 학원 - 학위 - 학자 - 학점 - 한계 - 한글 - 한꺼번에 - 한낮 - 한눈 - 한동안 - 한때 - 한라산 - 한마디 - 한문 - 한번 - 한복 - 한식 - 한여름 - 한쪽 - 할머니 - 할아버지 - 할인 - 함께 - 함부로 - 합격 - 합리적 - 항공 - 항구 - 항상 - 항의 - 해결 - 해군 - 해답 - 해당 - 해물 - 해석 - 해설 - 해수욕장 - 해안 - 핵심 - 핸드백 - 햄버거 - 햇볕 - 햇살 - 행동 - 행복 - 행사 - 행운 - 행위 - 향기 - 향상 - 향수 - 허락 - 허용 - 헬기 - 현관 - 현금 - 현대 - 현상 - 현실 - 현장 - 현재 - 현지 - 혈액 - 협력 - 형부 - 형사 - 형수 - 형식 - 형제 - 형태 - 형편 - 혜택 - 호기심 - 호남 - 호랑이 - 호박 - 호텔 - 호흡 - 혹시 - 홀로 - 홈페이지 - 홍보 - 홍수 - 홍차 - 화면 - 화분 - 화살 - 화요일 - 화장 - 화학 - 확보 - 확인 - 확장 - 확정 - 환갑 - 환경 - 환영 - 환율 - 환자 - 활기 - 활동 - 활발히 - 활용 - 활짝 - 회견 - 회관 - 회복 - 회색 - 회원 - 회장 - 회전 - 횟수 - 횡단보도 - 효율적 - 후반 - 후춧가루 - 훈련 - 훨씬 - 휴식 - 휴일 - 흉내 - 흐름 - 흑백 - 흑인 - 흔적 - 흔히 - 흥미 - 흥분 - 희곡 - 희망 - 희생 - 흰색 - 힘껏 - """ - return words.split(separator: "\n") - }() - static var spanish: [String.SubSequence] = { - let words = - """ - ábaco - abdomen - abeja - abierto - abogado - abono - aborto - abrazo - abrir - abuelo - abuso - acabar - academia - acceso - acción - aceite - acelga - acento - aceptar - ácido - aclarar - acné - acoger - acoso - activo - acto - actriz - actuar - acudir - acuerdo - acusar - adicto - admitir - adoptar - adorno - aduana - adulto - aéreo - afectar - afición - afinar - afirmar - ágil - agitar - agonía - agosto - agotar - agregar - agrio - agua - agudo - águila - aguja - ahogo - ahorro - aire - aislar - ajedrez - ajeno - ajuste - alacrán - alambre - alarma - alba - álbum - alcalde - aldea - alegre - alejar - alerta - aleta - alfiler - alga - algodón - aliado - aliento - alivio - alma - almeja - almíbar - altar - alteza - altivo - alto - altura - alumno - alzar - amable - amante - amapola - amargo - amasar - ámbar - ámbito - ameno - amigo - amistad - amor - amparo - amplio - ancho - anciano - ancla - andar - andén - anemia - ángulo - anillo - ánimo - anís - anotar - antena - antiguo - antojo - anual - anular - anuncio - añadir - añejo - año - apagar - aparato - apetito - apio - aplicar - apodo - aporte - apoyo - aprender - aprobar - apuesta - apuro - arado - araña - arar - árbitro - árbol - arbusto - archivo - arco - arder - ardilla - arduo - área - árido - aries - armonía - arnés - aroma - arpa - arpón - arreglo - arroz - arruga - arte - artista - asa - asado - asalto - ascenso - asegurar - aseo - asesor - asiento - asilo - asistir - asno - asombro - áspero - astilla - astro - astuto - asumir - asunto - atajo - ataque - atar - atento - ateo - ático - atleta - átomo - atraer - atroz - atún - audaz - audio - auge - aula - aumento - ausente - autor - aval - avance - avaro - ave - avellana - avena - avestruz - avión - aviso - ayer - ayuda - ayuno - azafrán - azar - azote - azúcar - azufre - azul - baba - babor - bache - bahía - baile - bajar - balanza - balcón - balde - bambú - banco - banda - baño - barba - barco - barniz - barro - báscula - bastón - basura - batalla - batería - batir - batuta - baúl - bazar - bebé - bebida - bello - besar - beso - bestia - bicho - bien - bingo - blanco - bloque - blusa - boa - bobina - bobo - boca - bocina - boda - bodega - boina - bola - bolero - bolsa - bomba - bondad - bonito - bono - bonsái - borde - borrar - bosque - bote - botín - bóveda - bozal - bravo - brazo - brecha - breve - brillo - brinco - brisa - broca - broma - bronce - brote - bruja - brusco - bruto - buceo - bucle - bueno - buey - bufanda - bufón - búho - buitre - bulto - burbuja - burla - burro - buscar - butaca - buzón - caballo - cabeza - cabina - cabra - cacao - cadáver - cadena - caer - café - caída - caimán - caja - cajón - cal - calamar - calcio - caldo - calidad - calle - calma - calor - calvo - cama - cambio - camello - camino - campo - cáncer - candil - canela - canguro - canica - canto - caña - cañón - caoba - caos - capaz - capitán - capote - captar - capucha - cara - carbón - cárcel - careta - carga - cariño - carne - carpeta - carro - carta - casa - casco - casero - caspa - castor - catorce - catre - caudal - causa - cazo - cebolla - ceder - cedro - celda - célebre - celoso - célula - cemento - ceniza - centro - cerca - cerdo - cereza - cero - cerrar - certeza - césped - cetro - chacal - chaleco - champú - chancla - chapa - charla - chico - chiste - chivo - choque - choza - chuleta - chupar - ciclón - ciego - cielo - cien - cierto - cifra - cigarro - cima - cinco - cine - cinta - ciprés - circo - ciruela - cisne - cita - ciudad - clamor - clan - claro - clase - clave - cliente - clima - clínica - cobre - cocción - cochino - cocina - coco - código - codo - cofre - coger - cohete - cojín - cojo - cola - colcha - colegio - colgar - colina - collar - colmo - columna - combate - comer - comida - cómodo - compra - conde - conejo - conga - conocer - consejo - contar - copa - copia - corazón - corbata - corcho - cordón - corona - correr - coser - cosmos - costa - cráneo - cráter - crear - crecer - creído - crema - cría - crimen - cripta - crisis - cromo - crónica - croqueta - crudo - cruz - cuadro - cuarto - cuatro - cubo - cubrir - cuchara - cuello - cuento - cuerda - cuesta - cueva - cuidar - culebra - culpa - culto - cumbre - cumplir - cuna - cuneta - cuota - cupón - cúpula - curar - curioso - curso - curva - cutis - dama - danza - dar - dardo - dátil - deber - débil - década - decir - dedo - defensa - definir - dejar - delfín - delgado - delito - demora - denso - dental - deporte - derecho - derrota - desayuno - deseo - desfile - desnudo - destino - desvío - detalle - detener - deuda - día - diablo - diadema - diamante - diana - diario - dibujo - dictar - diente - dieta - diez - difícil - digno - dilema - diluir - dinero - directo - dirigir - disco - diseño - disfraz - diva - divino - doble - doce - dolor - domingo - don - donar - dorado - dormir - dorso - dos - dosis - dragón - droga - ducha - duda - duelo - dueño - dulce - dúo - duque - durar - dureza - duro - ébano - ebrio - echar - eco - ecuador - edad - edición - edificio - editor - educar - efecto - eficaz - eje - ejemplo - elefante - elegir - elemento - elevar - elipse - élite - elixir - elogio - eludir - embudo - emitir - emoción - empate - empeño - empleo - empresa - enano - encargo - enchufe - encía - enemigo - enero - enfado - enfermo - engaño - enigma - enlace - enorme - enredo - ensayo - enseñar - entero - entrar - envase - envío - época - equipo - erizo - escala - escena - escolar - escribir - escudo - esencia - esfera - esfuerzo - espada - espejo - espía - esposa - espuma - esquí - estar - este - estilo - estufa - etapa - eterno - ética - etnia - evadir - evaluar - evento - evitar - exacto - examen - exceso - excusa - exento - exigir - exilio - existir - éxito - experto - explicar - exponer - extremo - fábrica - fábula - fachada - fácil - factor - faena - faja - falda - fallo - falso - faltar - fama - familia - famoso - faraón - farmacia - farol - farsa - fase - fatiga - fauna - favor - fax - febrero - fecha - feliz - feo - feria - feroz - fértil - fervor - festín - fiable - fianza - fiar - fibra - ficción - ficha - fideo - fiebre - fiel - fiera - fiesta - figura - fijar - fijo - fila - filete - filial - filtro - fin - finca - fingir - finito - firma - flaco - flauta - flecha - flor - flota - fluir - flujo - flúor - fobia - foca - fogata - fogón - folio - folleto - fondo - forma - forro - fortuna - forzar - fosa - foto - fracaso - frágil - franja - frase - fraude - freír - freno - fresa - frío - frito - fruta - fuego - fuente - fuerza - fuga - fumar - función - funda - furgón - furia - fusil - fútbol - futuro - gacela - gafas - gaita - gajo - gala - galería - gallo - gamba - ganar - gancho - ganga - ganso - garaje - garza - gasolina - gastar - gato - gavilán - gemelo - gemir - gen - género - genio - gente - geranio - gerente - germen - gesto - gigante - gimnasio - girar - giro - glaciar - globo - gloria - gol - golfo - goloso - golpe - goma - gordo - gorila - gorra - gota - goteo - gozar - grada - gráfico - grano - grasa - gratis - grave - grieta - grillo - gripe - gris - grito - grosor - grúa - grueso - grumo - grupo - guante - guapo - guardia - guerra - guía - guiño - guion - guiso - guitarra - gusano - gustar - haber - hábil - hablar - hacer - hacha - hada - hallar - hamaca - harina - haz - hazaña - hebilla - hebra - hecho - helado - helio - hembra - herir - hermano - héroe - hervir - hielo - hierro - hígado - higiene - hijo - himno - historia - hocico - hogar - hoguera - hoja - hombre - hongo - honor - honra - hora - hormiga - horno - hostil - hoyo - hueco - huelga - huerta - hueso - huevo - huida - huir - humano - húmedo - humilde - humo - hundir - huracán - hurto - icono - ideal - idioma - ídolo - iglesia - iglú - igual - ilegal - ilusión - imagen - imán - imitar - impar - imperio - imponer - impulso - incapaz - índice - inerte - infiel - informe - ingenio - inicio - inmenso - inmune - innato - insecto - instante - interés - íntimo - intuir - inútil - invierno - ira - iris - ironía - isla - islote - jabalí - jabón - jamón - jarabe - jardín - jarra - jaula - jazmín - jefe - jeringa - jinete - jornada - joroba - joven - joya - juerga - jueves - juez - jugador - jugo - juguete - juicio - junco - jungla - junio - juntar - júpiter - jurar - justo - juvenil - juzgar - kilo - koala - labio - lacio - lacra - lado - ladrón - lagarto - lágrima - laguna - laico - lamer - lámina - lámpara - lana - lancha - langosta - lanza - lápiz - largo - larva - lástima - lata - látex - latir - laurel - lavar - lazo - leal - lección - leche - lector - leer - legión - legumbre - lejano - lengua - lento - leña - león - leopardo - lesión - letal - letra - leve - leyenda - libertad - libro - licor - líder - lidiar - lienzo - liga - ligero - lima - límite - limón - limpio - lince - lindo - línea - lingote - lino - linterna - líquido - liso - lista - litera - litio - litro - llaga - llama - llanto - llave - llegar - llenar - llevar - llorar - llover - lluvia - lobo - loción - loco - locura - lógica - logro - lombriz - lomo - lonja - lote - lucha - lucir - lugar - lujo - luna - lunes - lupa - lustro - luto - luz - maceta - macho - madera - madre - maduro - maestro - mafia - magia - mago - maíz - maldad - maleta - malla - malo - mamá - mambo - mamut - manco - mando - manejar - manga - maniquí - manjar - mano - manso - manta - mañana - mapa - máquina - mar - marco - marea - marfil - margen - marido - mármol - marrón - martes - marzo - masa - máscara - masivo - matar - materia - matiz - matriz - máximo - mayor - mazorca - mecha - medalla - medio - médula - mejilla - mejor - melena - melón - memoria - menor - mensaje - mente - menú - mercado - merengue - mérito - mes - mesón - meta - meter - método - metro - mezcla - miedo - miel - miembro - miga - mil - milagro - militar - millón - mimo - mina - minero - mínimo - minuto - miope - mirar - misa - miseria - misil - mismo - mitad - mito - mochila - moción - moda - modelo - moho - mojar - molde - moler - molino - momento - momia - monarca - moneda - monja - monto - moño - morada - morder - moreno - morir - morro - morsa - mortal - mosca - mostrar - motivo - mover - móvil - mozo - mucho - mudar - mueble - muela - muerte - muestra - mugre - mujer - mula - muleta - multa - mundo - muñeca - mural - muro - músculo - museo - musgo - música - muslo - nácar - nación - nadar - naipe - naranja - nariz - narrar - nasal - natal - nativo - natural - náusea - naval - nave - navidad - necio - néctar - negar - negocio - negro - neón - nervio - neto - neutro - nevar - nevera - nicho - nido - niebla - nieto - niñez - niño - nítido - nivel - nobleza - noche - nómina - noria - norma - norte - nota - noticia - novato - novela - novio - nube - nuca - núcleo - nudillo - nudo - nuera - nueve - nuez - nulo - número - nutria - oasis - obeso - obispo - objeto - obra - obrero - observar - obtener - obvio - oca - ocaso - océano - ochenta - ocho - ocio - ocre - octavo - octubre - oculto - ocupar - ocurrir - odiar - odio - odisea - oeste - ofensa - oferta - oficio - ofrecer - ogro - oído - oír - ojo - ola - oleada - olfato - olivo - olla - olmo - olor - olvido - ombligo - onda - onza - opaco - opción - ópera - opinar - oponer - optar - óptica - opuesto - oración - orador - oral - órbita - orca - orden - oreja - órgano - orgía - orgullo - oriente - origen - orilla - oro - orquesta - oruga - osadía - oscuro - osezno - oso - ostra - otoño - otro - oveja - óvulo - óxido - oxígeno - oyente - ozono - pacto - padre - paella - página - pago - país - pájaro - palabra - palco - paleta - pálido - palma - paloma - palpar - pan - panal - pánico - pantera - pañuelo - papá - papel - papilla - paquete - parar - parcela - pared - parir - paro - párpado - parque - párrafo - parte - pasar - paseo - pasión - paso - pasta - pata - patio - patria - pausa - pauta - pavo - payaso - peatón - pecado - pecera - pecho - pedal - pedir - pegar - peine - pelar - peldaño - pelea - peligro - pellejo - pelo - peluca - pena - pensar - peñón - peón - peor - pepino - pequeño - pera - percha - perder - pereza - perfil - perico - perla - permiso - perro - persona - pesa - pesca - pésimo - pestaña - pétalo - petróleo - pez - pezuña - picar - pichón - pie - piedra - pierna - pieza - pijama - pilar - piloto - pimienta - pino - pintor - pinza - piña - piojo - pipa - pirata - pisar - piscina - piso - pista - pitón - pizca - placa - plan - plata - playa - plaza - pleito - pleno - plomo - pluma - plural - pobre - poco - poder - podio - poema - poesía - poeta - polen - policía - pollo - polvo - pomada - pomelo - pomo - pompa - poner - porción - portal - posada - poseer - posible - poste - potencia - potro - pozo - prado - precoz - pregunta - premio - prensa - preso - previo - primo - príncipe - prisión - privar - proa - probar - proceso - producto - proeza - profesor - programa - prole - promesa - pronto - propio - próximo - prueba - público - puchero - pudor - pueblo - puerta - puesto - pulga - pulir - pulmón - pulpo - pulso - puma - punto - puñal - puño - pupa - pupila - puré - quedar - queja - quemar - querer - queso - quieto - química - quince - quitar - rábano - rabia - rabo - ración - radical - raíz - rama - rampa - rancho - rango - rapaz - rápido - rapto - rasgo - raspa - rato - rayo - raza - razón - reacción - realidad - rebaño - rebote - recaer - receta - rechazo - recoger - recreo - recto - recurso - red - redondo - reducir - reflejo - reforma - refrán - refugio - regalo - regir - regla - regreso - rehén - reino - reír - reja - relato - relevo - relieve - relleno - reloj - remar - remedio - remo - rencor - rendir - renta - reparto - repetir - reposo - reptil - res - rescate - resina - respeto - resto - resumen - retiro - retorno - retrato - reunir - revés - revista - rey - rezar - rico - riego - rienda - riesgo - rifa - rígido - rigor - rincón - riñón - río - riqueza - risa - ritmo - rito - rizo - roble - roce - rociar - rodar - rodeo - rodilla - roer - rojizo - rojo - romero - romper - ron - ronco - ronda - ropa - ropero - rosa - rosca - rostro - rotar - rubí - rubor - rudo - rueda - rugir - ruido - ruina - ruleta - rulo - rumbo - rumor - ruptura - ruta - rutina - sábado - saber - sabio - sable - sacar - sagaz - sagrado - sala - saldo - salero - salir - salmón - salón - salsa - salto - salud - salvar - samba - sanción - sandía - sanear - sangre - sanidad - sano - santo - sapo - saque - sardina - sartén - sastre - satán - sauna - saxofón - sección - seco - secreto - secta - sed - seguir - seis - sello - selva - semana - semilla - senda - sensor - señal - señor - separar - sepia - sequía - ser - serie - sermón - servir - sesenta - sesión - seta - setenta - severo - sexo - sexto - sidra - siesta - siete - siglo - signo - sílaba - silbar - silencio - silla - símbolo - simio - sirena - sistema - sitio - situar - sobre - socio - sodio - sol - solapa - soldado - soledad - sólido - soltar - solución - sombra - sondeo - sonido - sonoro - sonrisa - sopa - soplar - soporte - sordo - sorpresa - sorteo - sostén - sótano - suave - subir - suceso - sudor - suegra - suelo - sueño - suerte - sufrir - sujeto - sultán - sumar - superar - suplir - suponer - supremo - sur - surco - sureño - surgir - susto - sutil - tabaco - tabique - tabla - tabú - taco - tacto - tajo - talar - talco - talento - talla - talón - tamaño - tambor - tango - tanque - tapa - tapete - tapia - tapón - taquilla - tarde - tarea - tarifa - tarjeta - tarot - tarro - tarta - tatuaje - tauro - taza - tazón - teatro - techo - tecla - técnica - tejado - tejer - tejido - tela - teléfono - tema - temor - templo - tenaz - tender - tener - tenis - tenso - teoría - terapia - terco - término - ternura - terror - tesis - tesoro - testigo - tetera - texto - tez - tibio - tiburón - tiempo - tienda - tierra - tieso - tigre - tijera - tilde - timbre - tímido - timo - tinta - tío - típico - tipo - tira - tirón - titán - títere - título - tiza - toalla - tobillo - tocar - tocino - todo - toga - toldo - tomar - tono - tonto - topar - tope - toque - tórax - torero - tormenta - torneo - toro - torpedo - torre - torso - tortuga - tos - tosco - toser - tóxico - trabajo - tractor - traer - tráfico - trago - traje - tramo - trance - trato - trauma - trazar - trébol - tregua - treinta - tren - trepar - tres - tribu - trigo - tripa - triste - triunfo - trofeo - trompa - tronco - tropa - trote - trozo - truco - trueno - trufa - tubería - tubo - tuerto - tumba - tumor - túnel - túnica - turbina - turismo - turno - tutor - ubicar - úlcera - umbral - unidad - unir - universo - uno - untar - uña - urbano - urbe - urgente - urna - usar - usuario - útil - utopía - uva - vaca - vacío - vacuna - vagar - vago - vaina - vajilla - vale - válido - valle - valor - válvula - vampiro - vara - variar - varón - vaso - vecino - vector - vehículo - veinte - vejez - vela - velero - veloz - vena - vencer - venda - veneno - vengar - venir - venta - venus - ver - verano - verbo - verde - vereda - verja - verso - verter - vía - viaje - vibrar - vicio - víctima - vida - vídeo - vidrio - viejo - viernes - vigor - vil - villa - vinagre - vino - viñedo - violín - viral - virgo - virtud - visor - víspera - vista - vitamina - viudo - vivaz - vivero - vivir - vivo - volcán - volumen - volver - voraz - votar - voto - voz - vuelo - vulgar - yacer - yate - yegua - yema - yerno - yeso - yodo - yoga - yogur - zafiro - zanja - zapato - zarza - zona - zorro - zumo - zurdo - """ - return words.split(separator: "\n") - }() - static var simplifiedChinese: [String.SubSequence] = { - let words = - """ - 的 - 一 - 是 - 在 - 不 - 了 - 有 - 和 - 人 - 这 - 中 - 大 - 为 - 上 - 个 - 国 - 我 - 以 - 要 - 他 - 时 - 来 - 用 - 们 - 生 - 到 - 作 - 地 - 于 - 出 - 就 - 分 - 对 - 成 - 会 - 可 - 主 - 发 - 年 - 动 - 同 - 工 - 也 - 能 - 下 - 过 - 子 - 说 - 产 - 种 - 面 - 而 - 方 - 后 - 多 - 定 - 行 - 学 - 法 - 所 - 民 - 得 - 经 - 十 - 三 - 之 - 进 - 着 - 等 - 部 - 度 - 家 - 电 - 力 - 里 - 如 - 水 - 化 - 高 - 自 - 二 - 理 - 起 - 小 - 物 - 现 - 实 - 加 - 量 - 都 - 两 - 体 - 制 - 机 - 当 - 使 - 点 - 从 - 业 - 本 - 去 - 把 - 性 - 好 - 应 - 开 - 它 - 合 - 还 - 因 - 由 - 其 - 些 - 然 - 前 - 外 - 天 - 政 - 四 - 日 - 那 - 社 - 义 - 事 - 平 - 形 - 相 - 全 - 表 - 间 - 样 - 与 - 关 - 各 - 重 - 新 - 线 - 内 - 数 - 正 - 心 - 反 - 你 - 明 - 看 - 原 - 又 - 么 - 利 - 比 - 或 - 但 - 质 - 气 - 第 - 向 - 道 - 命 - 此 - 变 - 条 - 只 - 没 - 结 - 解 - 问 - 意 - 建 - 月 - 公 - 无 - 系 - 军 - 很 - 情 - 者 - 最 - 立 - 代 - 想 - 已 - 通 - 并 - 提 - 直 - 题 - 党 - 程 - 展 - 五 - 果 - 料 - 象 - 员 - 革 - 位 - 入 - 常 - 文 - 总 - 次 - 品 - 式 - 活 - 设 - 及 - 管 - 特 - 件 - 长 - 求 - 老 - 头 - 基 - 资 - 边 - 流 - 路 - 级 - 少 - 图 - 山 - 统 - 接 - 知 - 较 - 将 - 组 - 见 - 计 - 别 - 她 - 手 - 角 - 期 - 根 - 论 - 运 - 农 - 指 - 几 - 九 - 区 - 强 - 放 - 决 - 西 - 被 - 干 - 做 - 必 - 战 - 先 - 回 - 则 - 任 - 取 - 据 - 处 - 队 - 南 - 给 - 色 - 光 - 门 - 即 - 保 - 治 - 北 - 造 - 百 - 规 - 热 - 领 - 七 - 海 - 口 - 东 - 导 - 器 - 压 - 志 - 世 - 金 - 增 - 争 - 济 - 阶 - 油 - 思 - 术 - 极 - 交 - 受 - 联 - 什 - 认 - 六 - 共 - 权 - 收 - 证 - 改 - 清 - 美 - 再 - 采 - 转 - 更 - 单 - 风 - 切 - 打 - 白 - 教 - 速 - 花 - 带 - 安 - 场 - 身 - 车 - 例 - 真 - 务 - 具 - 万 - 每 - 目 - 至 - 达 - 走 - 积 - 示 - 议 - 声 - 报 - 斗 - 完 - 类 - 八 - 离 - 华 - 名 - 确 - 才 - 科 - 张 - 信 - 马 - 节 - 话 - 米 - 整 - 空 - 元 - 况 - 今 - 集 - 温 - 传 - 土 - 许 - 步 - 群 - 广 - 石 - 记 - 需 - 段 - 研 - 界 - 拉 - 林 - 律 - 叫 - 且 - 究 - 观 - 越 - 织 - 装 - 影 - 算 - 低 - 持 - 音 - 众 - 书 - 布 - 复 - 容 - 儿 - 须 - 际 - 商 - 非 - 验 - 连 - 断 - 深 - 难 - 近 - 矿 - 千 - 周 - 委 - 素 - 技 - 备 - 半 - 办 - 青 - 省 - 列 - 习 - 响 - 约 - 支 - 般 - 史 - 感 - 劳 - 便 - 团 - 往 - 酸 - 历 - 市 - 克 - 何 - 除 - 消 - 构 - 府 - 称 - 太 - 准 - 精 - 值 - 号 - 率 - 族 - 维 - 划 - 选 - 标 - 写 - 存 - 候 - 毛 - 亲 - 快 - 效 - 斯 - 院 - 查 - 江 - 型 - 眼 - 王 - 按 - 格 - 养 - 易 - 置 - 派 - 层 - 片 - 始 - 却 - 专 - 状 - 育 - 厂 - 京 - 识 - 适 - 属 - 圆 - 包 - 火 - 住 - 调 - 满 - 县 - 局 - 照 - 参 - 红 - 细 - 引 - 听 - 该 - 铁 - 价 - 严 - 首 - 底 - 液 - 官 - 德 - 随 - 病 - 苏 - 失 - 尔 - 死 - 讲 - 配 - 女 - 黄 - 推 - 显 - 谈 - 罪 - 神 - 艺 - 呢 - 席 - 含 - 企 - 望 - 密 - 批 - 营 - 项 - 防 - 举 - 球 - 英 - 氧 - 势 - 告 - 李 - 台 - 落 - 木 - 帮 - 轮 - 破 - 亚 - 师 - 围 - 注 - 远 - 字 - 材 - 排 - 供 - 河 - 态 - 封 - 另 - 施 - 减 - 树 - 溶 - 怎 - 止 - 案 - 言 - 士 - 均 - 武 - 固 - 叶 - 鱼 - 波 - 视 - 仅 - 费 - 紧 - 爱 - 左 - 章 - 早 - 朝 - 害 - 续 - 轻 - 服 - 试 - 食 - 充 - 兵 - 源 - 判 - 护 - 司 - 足 - 某 - 练 - 差 - 致 - 板 - 田 - 降 - 黑 - 犯 - 负 - 击 - 范 - 继 - 兴 - 似 - 余 - 坚 - 曲 - 输 - 修 - 故 - 城 - 夫 - 够 - 送 - 笔 - 船 - 占 - 右 - 财 - 吃 - 富 - 春 - 职 - 觉 - 汉 - 画 - 功 - 巴 - 跟 - 虽 - 杂 - 飞 - 检 - 吸 - 助 - 升 - 阳 - 互 - 初 - 创 - 抗 - 考 - 投 - 坏 - 策 - 古 - 径 - 换 - 未 - 跑 - 留 - 钢 - 曾 - 端 - 责 - 站 - 简 - 述 - 钱 - 副 - 尽 - 帝 - 射 - 草 - 冲 - 承 - 独 - 令 - 限 - 阿 - 宣 - 环 - 双 - 请 - 超 - 微 - 让 - 控 - 州 - 良 - 轴 - 找 - 否 - 纪 - 益 - 依 - 优 - 顶 - 础 - 载 - 倒 - 房 - 突 - 坐 - 粉 - 敌 - 略 - 客 - 袁 - 冷 - 胜 - 绝 - 析 - 块 - 剂 - 测 - 丝 - 协 - 诉 - 念 - 陈 - 仍 - 罗 - 盐 - 友 - 洋 - 错 - 苦 - 夜 - 刑 - 移 - 频 - 逐 - 靠 - 混 - 母 - 短 - 皮 - 终 - 聚 - 汽 - 村 - 云 - 哪 - 既 - 距 - 卫 - 停 - 烈 - 央 - 察 - 烧 - 迅 - 境 - 若 - 印 - 洲 - 刻 - 括 - 激 - 孔 - 搞 - 甚 - 室 - 待 - 核 - 校 - 散 - 侵 - 吧 - 甲 - 游 - 久 - 菜 - 味 - 旧 - 模 - 湖 - 货 - 损 - 预 - 阻 - 毫 - 普 - 稳 - 乙 - 妈 - 植 - 息 - 扩 - 银 - 语 - 挥 - 酒 - 守 - 拿 - 序 - 纸 - 医 - 缺 - 雨 - 吗 - 针 - 刘 - 啊 - 急 - 唱 - 误 - 训 - 愿 - 审 - 附 - 获 - 茶 - 鲜 - 粮 - 斤 - 孩 - 脱 - 硫 - 肥 - 善 - 龙 - 演 - 父 - 渐 - 血 - 欢 - 械 - 掌 - 歌 - 沙 - 刚 - 攻 - 谓 - 盾 - 讨 - 晚 - 粒 - 乱 - 燃 - 矛 - 乎 - 杀 - 药 - 宁 - 鲁 - 贵 - 钟 - 煤 - 读 - 班 - 伯 - 香 - 介 - 迫 - 句 - 丰 - 培 - 握 - 兰 - 担 - 弦 - 蛋 - 沉 - 假 - 穿 - 执 - 答 - 乐 - 谁 - 顺 - 烟 - 缩 - 征 - 脸 - 喜 - 松 - 脚 - 困 - 异 - 免 - 背 - 星 - 福 - 买 - 染 - 井 - 概 - 慢 - 怕 - 磁 - 倍 - 祖 - 皇 - 促 - 静 - 补 - 评 - 翻 - 肉 - 践 - 尼 - 衣 - 宽 - 扬 - 棉 - 希 - 伤 - 操 - 垂 - 秋 - 宜 - 氢 - 套 - 督 - 振 - 架 - 亮 - 末 - 宪 - 庆 - 编 - 牛 - 触 - 映 - 雷 - 销 - 诗 - 座 - 居 - 抓 - 裂 - 胞 - 呼 - 娘 - 景 - 威 - 绿 - 晶 - 厚 - 盟 - 衡 - 鸡 - 孙 - 延 - 危 - 胶 - 屋 - 乡 - 临 - 陆 - 顾 - 掉 - 呀 - 灯 - 岁 - 措 - 束 - 耐 - 剧 - 玉 - 赵 - 跳 - 哥 - 季 - 课 - 凯 - 胡 - 额 - 款 - 绍 - 卷 - 齐 - 伟 - 蒸 - 殖 - 永 - 宗 - 苗 - 川 - 炉 - 岩 - 弱 - 零 - 杨 - 奏 - 沿 - 露 - 杆 - 探 - 滑 - 镇 - 饭 - 浓 - 航 - 怀 - 赶 - 库 - 夺 - 伊 - 灵 - 税 - 途 - 灭 - 赛 - 归 - 召 - 鼓 - 播 - 盘 - 裁 - 险 - 康 - 唯 - 录 - 菌 - 纯 - 借 - 糖 - 盖 - 横 - 符 - 私 - 努 - 堂 - 域 - 枪 - 润 - 幅 - 哈 - 竟 - 熟 - 虫 - 泽 - 脑 - 壤 - 碳 - 欧 - 遍 - 侧 - 寨 - 敢 - 彻 - 虑 - 斜 - 薄 - 庭 - 纳 - 弹 - 饲 - 伸 - 折 - 麦 - 湿 - 暗 - 荷 - 瓦 - 塞 - 床 - 筑 - 恶 - 户 - 访 - 塔 - 奇 - 透 - 梁 - 刀 - 旋 - 迹 - 卡 - 氯 - 遇 - 份 - 毒 - 泥 - 退 - 洗 - 摆 - 灰 - 彩 - 卖 - 耗 - 夏 - 择 - 忙 - 铜 - 献 - 硬 - 予 - 繁 - 圈 - 雪 - 函 - 亦 - 抽 - 篇 - 阵 - 阴 - 丁 - 尺 - 追 - 堆 - 雄 - 迎 - 泛 - 爸 - 楼 - 避 - 谋 - 吨 - 野 - 猪 - 旗 - 累 - 偏 - 典 - 馆 - 索 - 秦 - 脂 - 潮 - 爷 - 豆 - 忽 - 托 - 惊 - 塑 - 遗 - 愈 - 朱 - 替 - 纤 - 粗 - 倾 - 尚 - 痛 - 楚 - 谢 - 奋 - 购 - 磨 - 君 - 池 - 旁 - 碎 - 骨 - 监 - 捕 - 弟 - 暴 - 割 - 贯 - 殊 - 释 - 词 - 亡 - 壁 - 顿 - 宝 - 午 - 尘 - 闻 - 揭 - 炮 - 残 - 冬 - 桥 - 妇 - 警 - 综 - 招 - 吴 - 付 - 浮 - 遭 - 徐 - 您 - 摇 - 谷 - 赞 - 箱 - 隔 - 订 - 男 - 吹 - 园 - 纷 - 唐 - 败 - 宋 - 玻 - 巨 - 耕 - 坦 - 荣 - 闭 - 湾 - 键 - 凡 - 驻 - 锅 - 救 - 恩 - 剥 - 凝 - 碱 - 齿 - 截 - 炼 - 麻 - 纺 - 禁 - 废 - 盛 - 版 - 缓 - 净 - 睛 - 昌 - 婚 - 涉 - 筒 - 嘴 - 插 - 岸 - 朗 - 庄 - 街 - 藏 - 姑 - 贸 - 腐 - 奴 - 啦 - 惯 - 乘 - 伙 - 恢 - 匀 - 纱 - 扎 - 辩 - 耳 - 彪 - 臣 - 亿 - 璃 - 抵 - 脉 - 秀 - 萨 - 俄 - 网 - 舞 - 店 - 喷 - 纵 - 寸 - 汗 - 挂 - 洪 - 贺 - 闪 - 柬 - 爆 - 烯 - 津 - 稻 - 墙 - 软 - 勇 - 像 - 滚 - 厘 - 蒙 - 芳 - 肯 - 坡 - 柱 - 荡 - 腿 - 仪 - 旅 - 尾 - 轧 - 冰 - 贡 - 登 - 黎 - 削 - 钻 - 勒 - 逃 - 障 - 氨 - 郭 - 峰 - 币 - 港 - 伏 - 轨 - 亩 - 毕 - 擦 - 莫 - 刺 - 浪 - 秘 - 援 - 株 - 健 - 售 - 股 - 岛 - 甘 - 泡 - 睡 - 童 - 铸 - 汤 - 阀 - 休 - 汇 - 舍 - 牧 - 绕 - 炸 - 哲 - 磷 - 绩 - 朋 - 淡 - 尖 - 启 - 陷 - 柴 - 呈 - 徒 - 颜 - 泪 - 稍 - 忘 - 泵 - 蓝 - 拖 - 洞 - 授 - 镜 - 辛 - 壮 - 锋 - 贫 - 虚 - 弯 - 摩 - 泰 - 幼 - 廷 - 尊 - 窗 - 纲 - 弄 - 隶 - 疑 - 氏 - 宫 - 姐 - 震 - 瑞 - 怪 - 尤 - 琴 - 循 - 描 - 膜 - 违 - 夹 - 腰 - 缘 - 珠 - 穷 - 森 - 枝 - 竹 - 沟 - 催 - 绳 - 忆 - 邦 - 剩 - 幸 - 浆 - 栏 - 拥 - 牙 - 贮 - 礼 - 滤 - 钠 - 纹 - 罢 - 拍 - 咱 - 喊 - 袖 - 埃 - 勤 - 罚 - 焦 - 潜 - 伍 - 墨 - 欲 - 缝 - 姓 - 刊 - 饱 - 仿 - 奖 - 铝 - 鬼 - 丽 - 跨 - 默 - 挖 - 链 - 扫 - 喝 - 袋 - 炭 - 污 - 幕 - 诸 - 弧 - 励 - 梅 - 奶 - 洁 - 灾 - 舟 - 鉴 - 苯 - 讼 - 抱 - 毁 - 懂 - 寒 - 智 - 埔 - 寄 - 届 - 跃 - 渡 - 挑 - 丹 - 艰 - 贝 - 碰 - 拔 - 爹 - 戴 - 码 - 梦 - 芽 - 熔 - 赤 - 渔 - 哭 - 敬 - 颗 - 奔 - 铅 - 仲 - 虎 - 稀 - 妹 - 乏 - 珍 - 申 - 桌 - 遵 - 允 - 隆 - 螺 - 仓 - 魏 - 锐 - 晓 - 氮 - 兼 - 隐 - 碍 - 赫 - 拨 - 忠 - 肃 - 缸 - 牵 - 抢 - 博 - 巧 - 壳 - 兄 - 杜 - 讯 - 诚 - 碧 - 祥 - 柯 - 页 - 巡 - 矩 - 悲 - 灌 - 龄 - 伦 - 票 - 寻 - 桂 - 铺 - 圣 - 恐 - 恰 - 郑 - 趣 - 抬 - 荒 - 腾 - 贴 - 柔 - 滴 - 猛 - 阔 - 辆 - 妻 - 填 - 撤 - 储 - 签 - 闹 - 扰 - 紫 - 砂 - 递 - 戏 - 吊 - 陶 - 伐 - 喂 - 疗 - 瓶 - 婆 - 抚 - 臂 - 摸 - 忍 - 虾 - 蜡 - 邻 - 胸 - 巩 - 挤 - 偶 - 弃 - 槽 - 劲 - 乳 - 邓 - 吉 - 仁 - 烂 - 砖 - 租 - 乌 - 舰 - 伴 - 瓜 - 浅 - 丙 - 暂 - 燥 - 橡 - 柳 - 迷 - 暖 - 牌 - 秧 - 胆 - 详 - 簧 - 踏 - 瓷 - 谱 - 呆 - 宾 - 糊 - 洛 - 辉 - 愤 - 竞 - 隙 - 怒 - 粘 - 乃 - 绪 - 肩 - 籍 - 敏 - 涂 - 熙 - 皆 - 侦 - 悬 - 掘 - 享 - 纠 - 醒 - 狂 - 锁 - 淀 - 恨 - 牲 - 霸 - 爬 - 赏 - 逆 - 玩 - 陵 - 祝 - 秒 - 浙 - 貌 - 役 - 彼 - 悉 - 鸭 - 趋 - 凤 - 晨 - 畜 - 辈 - 秩 - 卵 - 署 - 梯 - 炎 - 滩 - 棋 - 驱 - 筛 - 峡 - 冒 - 啥 - 寿 - 译 - 浸 - 泉 - 帽 - 迟 - 硅 - 疆 - 贷 - 漏 - 稿 - 冠 - 嫩 - 胁 - 芯 - 牢 - 叛 - 蚀 - 奥 - 鸣 - 岭 - 羊 - 凭 - 串 - 塘 - 绘 - 酵 - 融 - 盆 - 锡 - 庙 - 筹 - 冻 - 辅 - 摄 - 袭 - 筋 - 拒 - 僚 - 旱 - 钾 - 鸟 - 漆 - 沈 - 眉 - 疏 - 添 - 棒 - 穗 - 硝 - 韩 - 逼 - 扭 - 侨 - 凉 - 挺 - 碗 - 栽 - 炒 - 杯 - 患 - 馏 - 劝 - 豪 - 辽 - 勃 - 鸿 - 旦 - 吏 - 拜 - 狗 - 埋 - 辊 - 掩 - 饮 - 搬 - 骂 - 辞 - 勾 - 扣 - 估 - 蒋 - 绒 - 雾 - 丈 - 朵 - 姆 - 拟 - 宇 - 辑 - 陕 - 雕 - 偿 - 蓄 - 崇 - 剪 - 倡 - 厅 - 咬 - 驶 - 薯 - 刷 - 斥 - 番 - 赋 - 奉 - 佛 - 浇 - 漫 - 曼 - 扇 - 钙 - 桃 - 扶 - 仔 - 返 - 俗 - 亏 - 腔 - 鞋 - 棱 - 覆 - 框 - 悄 - 叔 - 撞 - 骗 - 勘 - 旺 - 沸 - 孤 - 吐 - 孟 - 渠 - 屈 - 疾 - 妙 - 惜 - 仰 - 狠 - 胀 - 谐 - 抛 - 霉 - 桑 - 岗 - 嘛 - 衰 - 盗 - 渗 - 脏 - 赖 - 涌 - 甜 - 曹 - 阅 - 肌 - 哩 - 厉 - 烃 - 纬 - 毅 - 昨 - 伪 - 症 - 煮 - 叹 - 钉 - 搭 - 茎 - 笼 - 酷 - 偷 - 弓 - 锥 - 恒 - 杰 - 坑 - 鼻 - 翼 - 纶 - 叙 - 狱 - 逮 - 罐 - 络 - 棚 - 抑 - 膨 - 蔬 - 寺 - 骤 - 穆 - 冶 - 枯 - 册 - 尸 - 凸 - 绅 - 坯 - 牺 - 焰 - 轰 - 欣 - 晋 - 瘦 - 御 - 锭 - 锦 - 丧 - 旬 - 锻 - 垄 - 搜 - 扑 - 邀 - 亭 - 酯 - 迈 - 舒 - 脆 - 酶 - 闲 - 忧 - 酚 - 顽 - 羽 - 涨 - 卸 - 仗 - 陪 - 辟 - 惩 - 杭 - 姚 - 肚 - 捉 - 飘 - 漂 - 昆 - 欺 - 吾 - 郎 - 烷 - 汁 - 呵 - 饰 - 萧 - 雅 - 邮 - 迁 - 燕 - 撒 - 姻 - 赴 - 宴 - 烦 - 债 - 帐 - 斑 - 铃 - 旨 - 醇 - 董 - 饼 - 雏 - 姿 - 拌 - 傅 - 腹 - 妥 - 揉 - 贤 - 拆 - 歪 - 葡 - 胺 - 丢 - 浩 - 徽 - 昂 - 垫 - 挡 - 览 - 贪 - 慰 - 缴 - 汪 - 慌 - 冯 - 诺 - 姜 - 谊 - 凶 - 劣 - 诬 - 耀 - 昏 - 躺 - 盈 - 骑 - 乔 - 溪 - 丛 - 卢 - 抹 - 闷 - 咨 - 刮 - 驾 - 缆 - 悟 - 摘 - 铒 - 掷 - 颇 - 幻 - 柄 - 惠 - 惨 - 佳 - 仇 - 腊 - 窝 - 涤 - 剑 - 瞧 - 堡 - 泼 - 葱 - 罩 - 霍 - 捞 - 胎 - 苍 - 滨 - 俩 - 捅 - 湘 - 砍 - 霞 - 邵 - 萄 - 疯 - 淮 - 遂 - 熊 - 粪 - 烘 - 宿 - 档 - 戈 - 驳 - 嫂 - 裕 - 徙 - 箭 - 捐 - 肠 - 撑 - 晒 - 辨 - 殿 - 莲 - 摊 - 搅 - 酱 - 屏 - 疫 - 哀 - 蔡 - 堵 - 沫 - 皱 - 畅 - 叠 - 阁 - 莱 - 敲 - 辖 - 钩 - 痕 - 坝 - 巷 - 饿 - 祸 - 丘 - 玄 - 溜 - 曰 - 逻 - 彭 - 尝 - 卿 - 妨 - 艇 - 吞 - 韦 - 怨 - 矮 - 歇 - """ - return words.split(separator: "\n") - }() - static var traditionalChinese: [String.SubSequence] = { - let words = - """ - 的 - 一 - 是 - 在 - 不 - 了 - 有 - 和 - 人 - 這 - 中 - 大 - 為 - 上 - 個 - 國 - 我 - 以 - 要 - 他 - 時 - 來 - 用 - 們 - 生 - 到 - 作 - 地 - 於 - 出 - 就 - 分 - 對 - 成 - 會 - 可 - 主 - 發 - 年 - 動 - 同 - 工 - 也 - 能 - 下 - 過 - 子 - 說 - 產 - 種 - 面 - 而 - 方 - 後 - 多 - 定 - 行 - 學 - 法 - 所 - 民 - 得 - 經 - 十 - 三 - 之 - 進 - 著 - 等 - 部 - 度 - 家 - 電 - 力 - 裡 - 如 - 水 - 化 - 高 - 自 - 二 - 理 - 起 - 小 - 物 - 現 - 實 - 加 - 量 - 都 - 兩 - 體 - 制 - 機 - 當 - 使 - 點 - 從 - 業 - 本 - 去 - 把 - 性 - 好 - 應 - 開 - 它 - 合 - 還 - 因 - 由 - 其 - 些 - 然 - 前 - 外 - 天 - 政 - 四 - 日 - 那 - 社 - 義 - 事 - 平 - 形 - 相 - 全 - 表 - 間 - 樣 - 與 - 關 - 各 - 重 - 新 - 線 - 內 - 數 - 正 - 心 - 反 - 你 - 明 - 看 - 原 - 又 - 麼 - 利 - 比 - 或 - 但 - 質 - 氣 - 第 - 向 - 道 - 命 - 此 - 變 - 條 - 只 - 沒 - 結 - 解 - 問 - 意 - 建 - 月 - 公 - 無 - 系 - 軍 - 很 - 情 - 者 - 最 - 立 - 代 - 想 - 已 - 通 - 並 - 提 - 直 - 題 - 黨 - 程 - 展 - 五 - 果 - 料 - 象 - 員 - 革 - 位 - 入 - 常 - 文 - 總 - 次 - 品 - 式 - 活 - 設 - 及 - 管 - 特 - 件 - 長 - 求 - 老 - 頭 - 基 - 資 - 邊 - 流 - 路 - 級 - 少 - 圖 - 山 - 統 - 接 - 知 - 較 - 將 - 組 - 見 - 計 - 別 - 她 - 手 - 角 - 期 - 根 - 論 - 運 - 農 - 指 - 幾 - 九 - 區 - 強 - 放 - 決 - 西 - 被 - 幹 - 做 - 必 - 戰 - 先 - 回 - 則 - 任 - 取 - 據 - 處 - 隊 - 南 - 給 - 色 - 光 - 門 - 即 - 保 - 治 - 北 - 造 - 百 - 規 - 熱 - 領 - 七 - 海 - 口 - 東 - 導 - 器 - 壓 - 志 - 世 - 金 - 增 - 爭 - 濟 - 階 - 油 - 思 - 術 - 極 - 交 - 受 - 聯 - 什 - 認 - 六 - 共 - 權 - 收 - 證 - 改 - 清 - 美 - 再 - 採 - 轉 - 更 - 單 - 風 - 切 - 打 - 白 - 教 - 速 - 花 - 帶 - 安 - 場 - 身 - 車 - 例 - 真 - 務 - 具 - 萬 - 每 - 目 - 至 - 達 - 走 - 積 - 示 - 議 - 聲 - 報 - 鬥 - 完 - 類 - 八 - 離 - 華 - 名 - 確 - 才 - 科 - 張 - 信 - 馬 - 節 - 話 - 米 - 整 - 空 - 元 - 況 - 今 - 集 - 溫 - 傳 - 土 - 許 - 步 - 群 - 廣 - 石 - 記 - 需 - 段 - 研 - 界 - 拉 - 林 - 律 - 叫 - 且 - 究 - 觀 - 越 - 織 - 裝 - 影 - 算 - 低 - 持 - 音 - 眾 - 書 - 布 - 复 - 容 - 兒 - 須 - 際 - 商 - 非 - 驗 - 連 - 斷 - 深 - 難 - 近 - 礦 - 千 - 週 - 委 - 素 - 技 - 備 - 半 - 辦 - 青 - 省 - 列 - 習 - 響 - 約 - 支 - 般 - 史 - 感 - 勞 - 便 - 團 - 往 - 酸 - 歷 - 市 - 克 - 何 - 除 - 消 - 構 - 府 - 稱 - 太 - 準 - 精 - 值 - 號 - 率 - 族 - 維 - 劃 - 選 - 標 - 寫 - 存 - 候 - 毛 - 親 - 快 - 效 - 斯 - 院 - 查 - 江 - 型 - 眼 - 王 - 按 - 格 - 養 - 易 - 置 - 派 - 層 - 片 - 始 - 卻 - 專 - 狀 - 育 - 廠 - 京 - 識 - 適 - 屬 - 圓 - 包 - 火 - 住 - 調 - 滿 - 縣 - 局 - 照 - 參 - 紅 - 細 - 引 - 聽 - 該 - 鐵 - 價 - 嚴 - 首 - 底 - 液 - 官 - 德 - 隨 - 病 - 蘇 - 失 - 爾 - 死 - 講 - 配 - 女 - 黃 - 推 - 顯 - 談 - 罪 - 神 - 藝 - 呢 - 席 - 含 - 企 - 望 - 密 - 批 - 營 - 項 - 防 - 舉 - 球 - 英 - 氧 - 勢 - 告 - 李 - 台 - 落 - 木 - 幫 - 輪 - 破 - 亞 - 師 - 圍 - 注 - 遠 - 字 - 材 - 排 - 供 - 河 - 態 - 封 - 另 - 施 - 減 - 樹 - 溶 - 怎 - 止 - 案 - 言 - 士 - 均 - 武 - 固 - 葉 - 魚 - 波 - 視 - 僅 - 費 - 緊 - 愛 - 左 - 章 - 早 - 朝 - 害 - 續 - 輕 - 服 - 試 - 食 - 充 - 兵 - 源 - 判 - 護 - 司 - 足 - 某 - 練 - 差 - 致 - 板 - 田 - 降 - 黑 - 犯 - 負 - 擊 - 范 - 繼 - 興 - 似 - 餘 - 堅 - 曲 - 輸 - 修 - 故 - 城 - 夫 - 夠 - 送 - 筆 - 船 - 佔 - 右 - 財 - 吃 - 富 - 春 - 職 - 覺 - 漢 - 畫 - 功 - 巴 - 跟 - 雖 - 雜 - 飛 - 檢 - 吸 - 助 - 昇 - 陽 - 互 - 初 - 創 - 抗 - 考 - 投 - 壞 - 策 - 古 - 徑 - 換 - 未 - 跑 - 留 - 鋼 - 曾 - 端 - 責 - 站 - 簡 - 述 - 錢 - 副 - 盡 - 帝 - 射 - 草 - 衝 - 承 - 獨 - 令 - 限 - 阿 - 宣 - 環 - 雙 - 請 - 超 - 微 - 讓 - 控 - 州 - 良 - 軸 - 找 - 否 - 紀 - 益 - 依 - 優 - 頂 - 礎 - 載 - 倒 - 房 - 突 - 坐 - 粉 - 敵 - 略 - 客 - 袁 - 冷 - 勝 - 絕 - 析 - 塊 - 劑 - 測 - 絲 - 協 - 訴 - 念 - 陳 - 仍 - 羅 - 鹽 - 友 - 洋 - 錯 - 苦 - 夜 - 刑 - 移 - 頻 - 逐 - 靠 - 混 - 母 - 短 - 皮 - 終 - 聚 - 汽 - 村 - 雲 - 哪 - 既 - 距 - 衛 - 停 - 烈 - 央 - 察 - 燒 - 迅 - 境 - 若 - 印 - 洲 - 刻 - 括 - 激 - 孔 - 搞 - 甚 - 室 - 待 - 核 - 校 - 散 - 侵 - 吧 - 甲 - 遊 - 久 - 菜 - 味 - 舊 - 模 - 湖 - 貨 - 損 - 預 - 阻 - 毫 - 普 - 穩 - 乙 - 媽 - 植 - 息 - 擴 - 銀 - 語 - 揮 - 酒 - 守 - 拿 - 序 - 紙 - 醫 - 缺 - 雨 - 嗎 - 針 - 劉 - 啊 - 急 - 唱 - 誤 - 訓 - 願 - 審 - 附 - 獲 - 茶 - 鮮 - 糧 - 斤 - 孩 - 脫 - 硫 - 肥 - 善 - 龍 - 演 - 父 - 漸 - 血 - 歡 - 械 - 掌 - 歌 - 沙 - 剛 - 攻 - 謂 - 盾 - 討 - 晚 - 粒 - 亂 - 燃 - 矛 - 乎 - 殺 - 藥 - 寧 - 魯 - 貴 - 鐘 - 煤 - 讀 - 班 - 伯 - 香 - 介 - 迫 - 句 - 豐 - 培 - 握 - 蘭 - 擔 - 弦 - 蛋 - 沉 - 假 - 穿 - 執 - 答 - 樂 - 誰 - 順 - 煙 - 縮 - 徵 - 臉 - 喜 - 松 - 腳 - 困 - 異 - 免 - 背 - 星 - 福 - 買 - 染 - 井 - 概 - 慢 - 怕 - 磁 - 倍 - 祖 - 皇 - 促 - 靜 - 補 - 評 - 翻 - 肉 - 踐 - 尼 - 衣 - 寬 - 揚 - 棉 - 希 - 傷 - 操 - 垂 - 秋 - 宜 - 氫 - 套 - 督 - 振 - 架 - 亮 - 末 - 憲 - 慶 - 編 - 牛 - 觸 - 映 - 雷 - 銷 - 詩 - 座 - 居 - 抓 - 裂 - 胞 - 呼 - 娘 - 景 - 威 - 綠 - 晶 - 厚 - 盟 - 衡 - 雞 - 孫 - 延 - 危 - 膠 - 屋 - 鄉 - 臨 - 陸 - 顧 - 掉 - 呀 - 燈 - 歲 - 措 - 束 - 耐 - 劇 - 玉 - 趙 - 跳 - 哥 - 季 - 課 - 凱 - 胡 - 額 - 款 - 紹 - 卷 - 齊 - 偉 - 蒸 - 殖 - 永 - 宗 - 苗 - 川 - 爐 - 岩 - 弱 - 零 - 楊 - 奏 - 沿 - 露 - 桿 - 探 - 滑 - 鎮 - 飯 - 濃 - 航 - 懷 - 趕 - 庫 - 奪 - 伊 - 靈 - 稅 - 途 - 滅 - 賽 - 歸 - 召 - 鼓 - 播 - 盤 - 裁 - 險 - 康 - 唯 - 錄 - 菌 - 純 - 借 - 糖 - 蓋 - 橫 - 符 - 私 - 努 - 堂 - 域 - 槍 - 潤 - 幅 - 哈 - 竟 - 熟 - 蟲 - 澤 - 腦 - 壤 - 碳 - 歐 - 遍 - 側 - 寨 - 敢 - 徹 - 慮 - 斜 - 薄 - 庭 - 納 - 彈 - 飼 - 伸 - 折 - 麥 - 濕 - 暗 - 荷 - 瓦 - 塞 - 床 - 築 - 惡 - 戶 - 訪 - 塔 - 奇 - 透 - 梁 - 刀 - 旋 - 跡 - 卡 - 氯 - 遇 - 份 - 毒 - 泥 - 退 - 洗 - 擺 - 灰 - 彩 - 賣 - 耗 - 夏 - 擇 - 忙 - 銅 - 獻 - 硬 - 予 - 繁 - 圈 - 雪 - 函 - 亦 - 抽 - 篇 - 陣 - 陰 - 丁 - 尺 - 追 - 堆 - 雄 - 迎 - 泛 - 爸 - 樓 - 避 - 謀 - 噸 - 野 - 豬 - 旗 - 累 - 偏 - 典 - 館 - 索 - 秦 - 脂 - 潮 - 爺 - 豆 - 忽 - 托 - 驚 - 塑 - 遺 - 愈 - 朱 - 替 - 纖 - 粗 - 傾 - 尚 - 痛 - 楚 - 謝 - 奮 - 購 - 磨 - 君 - 池 - 旁 - 碎 - 骨 - 監 - 捕 - 弟 - 暴 - 割 - 貫 - 殊 - 釋 - 詞 - 亡 - 壁 - 頓 - 寶 - 午 - 塵 - 聞 - 揭 - 炮 - 殘 - 冬 - 橋 - 婦 - 警 - 綜 - 招 - 吳 - 付 - 浮 - 遭 - 徐 - 您 - 搖 - 谷 - 贊 - 箱 - 隔 - 訂 - 男 - 吹 - 園 - 紛 - 唐 - 敗 - 宋 - 玻 - 巨 - 耕 - 坦 - 榮 - 閉 - 灣 - 鍵 - 凡 - 駐 - 鍋 - 救 - 恩 - 剝 - 凝 - 鹼 - 齒 - 截 - 煉 - 麻 - 紡 - 禁 - 廢 - 盛 - 版 - 緩 - 淨 - 睛 - 昌 - 婚 - 涉 - 筒 - 嘴 - 插 - 岸 - 朗 - 莊 - 街 - 藏 - 姑 - 貿 - 腐 - 奴 - 啦 - 慣 - 乘 - 夥 - 恢 - 勻 - 紗 - 扎 - 辯 - 耳 - 彪 - 臣 - 億 - 璃 - 抵 - 脈 - 秀 - 薩 - 俄 - 網 - 舞 - 店 - 噴 - 縱 - 寸 - 汗 - 掛 - 洪 - 賀 - 閃 - 柬 - 爆 - 烯 - 津 - 稻 - 牆 - 軟 - 勇 - 像 - 滾 - 厘 - 蒙 - 芳 - 肯 - 坡 - 柱 - 盪 - 腿 - 儀 - 旅 - 尾 - 軋 - 冰 - 貢 - 登 - 黎 - 削 - 鑽 - 勒 - 逃 - 障 - 氨 - 郭 - 峰 - 幣 - 港 - 伏 - 軌 - 畝 - 畢 - 擦 - 莫 - 刺 - 浪 - 秘 - 援 - 株 - 健 - 售 - 股 - 島 - 甘 - 泡 - 睡 - 童 - 鑄 - 湯 - 閥 - 休 - 匯 - 舍 - 牧 - 繞 - 炸 - 哲 - 磷 - 績 - 朋 - 淡 - 尖 - 啟 - 陷 - 柴 - 呈 - 徒 - 顏 - 淚 - 稍 - 忘 - 泵 - 藍 - 拖 - 洞 - 授 - 鏡 - 辛 - 壯 - 鋒 - 貧 - 虛 - 彎 - 摩 - 泰 - 幼 - 廷 - 尊 - 窗 - 綱 - 弄 - 隸 - 疑 - 氏 - 宮 - 姐 - 震 - 瑞 - 怪 - 尤 - 琴 - 循 - 描 - 膜 - 違 - 夾 - 腰 - 緣 - 珠 - 窮 - 森 - 枝 - 竹 - 溝 - 催 - 繩 - 憶 - 邦 - 剩 - 幸 - 漿 - 欄 - 擁 - 牙 - 貯 - 禮 - 濾 - 鈉 - 紋 - 罷 - 拍 - 咱 - 喊 - 袖 - 埃 - 勤 - 罰 - 焦 - 潛 - 伍 - 墨 - 欲 - 縫 - 姓 - 刊 - 飽 - 仿 - 獎 - 鋁 - 鬼 - 麗 - 跨 - 默 - 挖 - 鏈 - 掃 - 喝 - 袋 - 炭 - 污 - 幕 - 諸 - 弧 - 勵 - 梅 - 奶 - 潔 - 災 - 舟 - 鑑 - 苯 - 訟 - 抱 - 毀 - 懂 - 寒 - 智 - 埔 - 寄 - 屆 - 躍 - 渡 - 挑 - 丹 - 艱 - 貝 - 碰 - 拔 - 爹 - 戴 - 碼 - 夢 - 芽 - 熔 - 赤 - 漁 - 哭 - 敬 - 顆 - 奔 - 鉛 - 仲 - 虎 - 稀 - 妹 - 乏 - 珍 - 申 - 桌 - 遵 - 允 - 隆 - 螺 - 倉 - 魏 - 銳 - 曉 - 氮 - 兼 - 隱 - 礙 - 赫 - 撥 - 忠 - 肅 - 缸 - 牽 - 搶 - 博 - 巧 - 殼 - 兄 - 杜 - 訊 - 誠 - 碧 - 祥 - 柯 - 頁 - 巡 - 矩 - 悲 - 灌 - 齡 - 倫 - 票 - 尋 - 桂 - 鋪 - 聖 - 恐 - 恰 - 鄭 - 趣 - 抬 - 荒 - 騰 - 貼 - 柔 - 滴 - 猛 - 闊 - 輛 - 妻 - 填 - 撤 - 儲 - 簽 - 鬧 - 擾 - 紫 - 砂 - 遞 - 戲 - 吊 - 陶 - 伐 - 餵 - 療 - 瓶 - 婆 - 撫 - 臂 - 摸 - 忍 - 蝦 - 蠟 - 鄰 - 胸 - 鞏 - 擠 - 偶 - 棄 - 槽 - 勁 - 乳 - 鄧 - 吉 - 仁 - 爛 - 磚 - 租 - 烏 - 艦 - 伴 - 瓜 - 淺 - 丙 - 暫 - 燥 - 橡 - 柳 - 迷 - 暖 - 牌 - 秧 - 膽 - 詳 - 簧 - 踏 - 瓷 - 譜 - 呆 - 賓 - 糊 - 洛 - 輝 - 憤 - 競 - 隙 - 怒 - 粘 - 乃 - 緒 - 肩 - 籍 - 敏 - 塗 - 熙 - 皆 - 偵 - 懸 - 掘 - 享 - 糾 - 醒 - 狂 - 鎖 - 淀 - 恨 - 牲 - 霸 - 爬 - 賞 - 逆 - 玩 - 陵 - 祝 - 秒 - 浙 - 貌 - 役 - 彼 - 悉 - 鴨 - 趨 - 鳳 - 晨 - 畜 - 輩 - 秩 - 卵 - 署 - 梯 - 炎 - 灘 - 棋 - 驅 - 篩 - 峽 - 冒 - 啥 - 壽 - 譯 - 浸 - 泉 - 帽 - 遲 - 矽 - 疆 - 貸 - 漏 - 稿 - 冠 - 嫩 - 脅 - 芯 - 牢 - 叛 - 蝕 - 奧 - 鳴 - 嶺 - 羊 - 憑 - 串 - 塘 - 繪 - 酵 - 融 - 盆 - 錫 - 廟 - 籌 - 凍 - 輔 - 攝 - 襲 - 筋 - 拒 - 僚 - 旱 - 鉀 - 鳥 - 漆 - 沈 - 眉 - 疏 - 添 - 棒 - 穗 - 硝 - 韓 - 逼 - 扭 - 僑 - 涼 - 挺 - 碗 - 栽 - 炒 - 杯 - 患 - 餾 - 勸 - 豪 - 遼 - 勃 - 鴻 - 旦 - 吏 - 拜 - 狗 - 埋 - 輥 - 掩 - 飲 - 搬 - 罵 - 辭 - 勾 - 扣 - 估 - 蔣 - 絨 - 霧 - 丈 - 朵 - 姆 - 擬 - 宇 - 輯 - 陝 - 雕 - 償 - 蓄 - 崇 - 剪 - 倡 - 廳 - 咬 - 駛 - 薯 - 刷 - 斥 - 番 - 賦 - 奉 - 佛 - 澆 - 漫 - 曼 - 扇 - 鈣 - 桃 - 扶 - 仔 - 返 - 俗 - 虧 - 腔 - 鞋 - 棱 - 覆 - 框 - 悄 - 叔 - 撞 - 騙 - 勘 - 旺 - 沸 - 孤 - 吐 - 孟 - 渠 - 屈 - 疾 - 妙 - 惜 - 仰 - 狠 - 脹 - 諧 - 拋 - 黴 - 桑 - 崗 - 嘛 - 衰 - 盜 - 滲 - 臟 - 賴 - 湧 - 甜 - 曹 - 閱 - 肌 - 哩 - 厲 - 烴 - 緯 - 毅 - 昨 - 偽 - 症 - 煮 - 嘆 - 釘 - 搭 - 莖 - 籠 - 酷 - 偷 - 弓 - 錐 - 恆 - 傑 - 坑 - 鼻 - 翼 - 綸 - 敘 - 獄 - 逮 - 罐 - 絡 - 棚 - 抑 - 膨 - 蔬 - 寺 - 驟 - 穆 - 冶 - 枯 - 冊 - 屍 - 凸 - 紳 - 坯 - 犧 - 焰 - 轟 - 欣 - 晉 - 瘦 - 禦 - 錠 - 錦 - 喪 - 旬 - 鍛 - 壟 - 搜 - 撲 - 邀 - 亭 - 酯 - 邁 - 舒 - 脆 - 酶 - 閒 - 憂 - 酚 - 頑 - 羽 - 漲 - 卸 - 仗 - 陪 - 闢 - 懲 - 杭 - 姚 - 肚 - 捉 - 飄 - 漂 - 昆 - 欺 - 吾 - 郎 - 烷 - 汁 - 呵 - 飾 - 蕭 - 雅 - 郵 - 遷 - 燕 - 撒 - 姻 - 赴 - 宴 - 煩 - 債 - 帳 - 斑 - 鈴 - 旨 - 醇 - 董 - 餅 - 雛 - 姿 - 拌 - 傅 - 腹 - 妥 - 揉 - 賢 - 拆 - 歪 - 葡 - 胺 - 丟 - 浩 - 徽 - 昂 - 墊 - 擋 - 覽 - 貪 - 慰 - 繳 - 汪 - 慌 - 馮 - 諾 - 姜 - 誼 - 兇 - 劣 - 誣 - 耀 - 昏 - 躺 - 盈 - 騎 - 喬 - 溪 - 叢 - 盧 - 抹 - 悶 - 諮 - 刮 - 駕 - 纜 - 悟 - 摘 - 鉺 - 擲 - 頗 - 幻 - 柄 - 惠 - 慘 - 佳 - 仇 - 臘 - 窩 - 滌 - 劍 - 瞧 - 堡 - 潑 - 蔥 - 罩 - 霍 - 撈 - 胎 - 蒼 - 濱 - 倆 - 捅 - 湘 - 砍 - 霞 - 邵 - 萄 - 瘋 - 淮 - 遂 - 熊 - 糞 - 烘 - 宿 - 檔 - 戈 - 駁 - 嫂 - 裕 - 徙 - 箭 - 捐 - 腸 - 撐 - 曬 - 辨 - 殿 - 蓮 - 攤 - 攪 - 醬 - 屏 - 疫 - 哀 - 蔡 - 堵 - 沫 - 皺 - 暢 - 疊 - 閣 - 萊 - 敲 - 轄 - 鉤 - 痕 - 壩 - 巷 - 餓 - 禍 - 丘 - 玄 - 溜 - 曰 - 邏 - 彭 - 嘗 - 卿 - 妨 - 艇 - 吞 - 韋 - 怨 - 矮 - 歇 - """ - return words.split(separator: "\n") - }() - static var french: [String.SubSequence] = { - let words = - """ - abaisser - abandon - abdiquer - abeille - abolir - aborder - aboutir - aboyer - abrasif - abreuver - abriter - abroger - abrupt - absence - absolu - absurde - abusif - abyssal - académie - acajou - acarien - accabler - accepter - acclamer - accolade - accroche - accuser - acerbe - achat - acheter - aciduler - acier - acompte - acquérir - acronyme - acteur - actif - actuel - adepte - adéquat - adhésif - adjectif - adjuger - admettre - admirer - adopter - adorer - adoucir - adresse - adroit - adulte - adverbe - aérer - aéronef - affaire - affecter - affiche - affreux - affubler - agacer - agencer - agile - agiter - agrafer - agréable - agrume - aider - aiguille - ailier - aimable - aisance - ajouter - ajuster - alarmer - alchimie - alerte - algèbre - algue - aliéner - aliment - alléger - alliage - allouer - allumer - alourdir - alpaga - altesse - alvéole - amateur - ambigu - ambre - aménager - amertume - amidon - amiral - amorcer - amour - amovible - amphibie - ampleur - amusant - analyse - anaphore - anarchie - anatomie - ancien - anéantir - angle - angoisse - anguleux - animal - annexer - annonce - annuel - anodin - anomalie - anonyme - anormal - antenne - antidote - anxieux - apaiser - apéritif - aplanir - apologie - appareil - appeler - apporter - appuyer - aquarium - aqueduc - arbitre - arbuste - ardeur - ardoise - argent - arlequin - armature - armement - armoire - armure - arpenter - arracher - arriver - arroser - arsenic - artériel - article - aspect - asphalte - aspirer - assaut - asservir - assiette - associer - assurer - asticot - astre - astuce - atelier - atome - atrium - atroce - attaque - attentif - attirer - attraper - aubaine - auberge - audace - audible - augurer - aurore - automne - autruche - avaler - avancer - avarice - avenir - averse - aveugle - aviateur - avide - avion - aviser - avoine - avouer - avril - axial - axiome - badge - bafouer - bagage - baguette - baignade - balancer - balcon - baleine - balisage - bambin - bancaire - bandage - banlieue - bannière - banquier - barbier - baril - baron - barque - barrage - bassin - bastion - bataille - bateau - batterie - baudrier - bavarder - belette - bélier - belote - bénéfice - berceau - berger - berline - bermuda - besace - besogne - bétail - beurre - biberon - bicycle - bidule - bijou - bilan - bilingue - billard - binaire - biologie - biopsie - biotype - biscuit - bison - bistouri - bitume - bizarre - blafard - blague - blanchir - blessant - blinder - blond - bloquer - blouson - bobard - bobine - boire - boiser - bolide - bonbon - bondir - bonheur - bonifier - bonus - bordure - borne - botte - boucle - boueux - bougie - boulon - bouquin - bourse - boussole - boutique - boxeur - branche - brasier - brave - brebis - brèche - breuvage - bricoler - brigade - brillant - brioche - brique - brochure - broder - bronzer - brousse - broyeur - brume - brusque - brutal - bruyant - buffle - buisson - bulletin - bureau - burin - bustier - butiner - butoir - buvable - buvette - cabanon - cabine - cachette - cadeau - cadre - caféine - caillou - caisson - calculer - calepin - calibre - calmer - calomnie - calvaire - camarade - caméra - camion - campagne - canal - caneton - canon - cantine - canular - capable - caporal - caprice - capsule - capter - capuche - carabine - carbone - caresser - caribou - carnage - carotte - carreau - carton - cascade - casier - casque - cassure - causer - caution - cavalier - caverne - caviar - cédille - ceinture - céleste - cellule - cendrier - censurer - central - cercle - cérébral - cerise - cerner - cerveau - cesser - chagrin - chaise - chaleur - chambre - chance - chapitre - charbon - chasseur - chaton - chausson - chavirer - chemise - chenille - chéquier - chercher - cheval - chien - chiffre - chignon - chimère - chiot - chlorure - chocolat - choisir - chose - chouette - chrome - chute - cigare - cigogne - cimenter - cinéma - cintrer - circuler - cirer - cirque - citerne - citoyen - citron - civil - clairon - clameur - claquer - classe - clavier - client - cligner - climat - clivage - cloche - clonage - cloporte - cobalt - cobra - cocasse - cocotier - coder - codifier - coffre - cogner - cohésion - coiffer - coincer - colère - colibri - colline - colmater - colonel - combat - comédie - commande - compact - concert - conduire - confier - congeler - connoter - consonne - contact - convexe - copain - copie - corail - corbeau - cordage - corniche - corpus - correct - cortège - cosmique - costume - coton - coude - coupure - courage - couteau - couvrir - coyote - crabe - crainte - cravate - crayon - créature - créditer - crémeux - creuser - crevette - cribler - crier - cristal - critère - croire - croquer - crotale - crucial - cruel - crypter - cubique - cueillir - cuillère - cuisine - cuivre - culminer - cultiver - cumuler - cupide - curatif - curseur - cyanure - cycle - cylindre - cynique - daigner - damier - danger - danseur - dauphin - débattre - débiter - déborder - débrider - débutant - décaler - décembre - déchirer - décider - déclarer - décorer - décrire - décupler - dédale - déductif - déesse - défensif - défiler - défrayer - dégager - dégivrer - déglutir - dégrafer - déjeuner - délice - déloger - demander - demeurer - démolir - dénicher - dénouer - dentelle - dénuder - départ - dépenser - déphaser - déplacer - déposer - déranger - dérober - désastre - descente - désert - désigner - désobéir - dessiner - destrier - détacher - détester - détourer - détresse - devancer - devenir - deviner - devoir - diable - dialogue - diamant - dicter - différer - digérer - digital - digne - diluer - dimanche - diminuer - dioxyde - directif - diriger - discuter - disposer - dissiper - distance - divertir - diviser - docile - docteur - dogme - doigt - domaine - domicile - dompter - donateur - donjon - donner - dopamine - dortoir - dorure - dosage - doseur - dossier - dotation - douanier - double - douceur - douter - doyen - dragon - draper - dresser - dribbler - droiture - duperie - duplexe - durable - durcir - dynastie - éblouir - écarter - écharpe - échelle - éclairer - éclipse - éclore - écluse - école - économie - écorce - écouter - écraser - écrémer - écrivain - écrou - écume - écureuil - édifier - éduquer - effacer - effectif - effigie - effort - effrayer - effusion - égaliser - égarer - éjecter - élaborer - élargir - électron - élégant - éléphant - élève - éligible - élitisme - éloge - élucider - éluder - emballer - embellir - embryon - émeraude - émission - emmener - émotion - émouvoir - empereur - employer - emporter - emprise - émulsion - encadrer - enchère - enclave - encoche - endiguer - endosser - endroit - enduire - énergie - enfance - enfermer - enfouir - engager - engin - englober - énigme - enjamber - enjeu - enlever - ennemi - ennuyeux - enrichir - enrobage - enseigne - entasser - entendre - entier - entourer - entraver - énumérer - envahir - enviable - envoyer - enzyme - éolien - épaissir - épargne - épatant - épaule - épicerie - épidémie - épier - épilogue - épine - épisode - épitaphe - époque - épreuve - éprouver - épuisant - équerre - équipe - ériger - érosion - erreur - éruption - escalier - espadon - espèce - espiègle - espoir - esprit - esquiver - essayer - essence - essieu - essorer - estime - estomac - estrade - étagère - étaler - étanche - étatique - éteindre - étendoir - éternel - éthanol - éthique - ethnie - étirer - étoffer - étoile - étonnant - étourdir - étrange - étroit - étude - euphorie - évaluer - évasion - éventail - évidence - éviter - évolutif - évoquer - exact - exagérer - exaucer - exceller - excitant - exclusif - excuse - exécuter - exemple - exercer - exhaler - exhorter - exigence - exiler - exister - exotique - expédier - explorer - exposer - exprimer - exquis - extensif - extraire - exulter - fable - fabuleux - facette - facile - facture - faiblir - falaise - fameux - famille - farceur - farfelu - farine - farouche - fasciner - fatal - fatigue - faucon - fautif - faveur - favori - fébrile - féconder - fédérer - félin - femme - fémur - fendoir - féodal - fermer - féroce - ferveur - festival - feuille - feutre - février - fiasco - ficeler - fictif - fidèle - figure - filature - filetage - filière - filleul - filmer - filou - filtrer - financer - finir - fiole - firme - fissure - fixer - flairer - flamme - flasque - flatteur - fléau - flèche - fleur - flexion - flocon - flore - fluctuer - fluide - fluvial - folie - fonderie - fongible - fontaine - forcer - forgeron - formuler - fortune - fossile - foudre - fougère - fouiller - foulure - fourmi - fragile - fraise - franchir - frapper - frayeur - frégate - freiner - frelon - frémir - frénésie - frère - friable - friction - frisson - frivole - froid - fromage - frontal - frotter - fruit - fugitif - fuite - fureur - furieux - furtif - fusion - futur - gagner - galaxie - galerie - gambader - garantir - gardien - garnir - garrigue - gazelle - gazon - géant - gélatine - gélule - gendarme - général - génie - genou - gentil - géologie - géomètre - géranium - germe - gestuel - geyser - gibier - gicler - girafe - givre - glace - glaive - glisser - globe - gloire - glorieux - golfeur - gomme - gonfler - gorge - gorille - goudron - gouffre - goulot - goupille - gourmand - goutte - graduel - graffiti - graine - grand - grappin - gratuit - gravir - grenat - griffure - griller - grimper - grogner - gronder - grotte - groupe - gruger - grutier - gruyère - guépard - guerrier - guide - guimauve - guitare - gustatif - gymnaste - gyrostat - habitude - hachoir - halte - hameau - hangar - hanneton - haricot - harmonie - harpon - hasard - hélium - hématome - herbe - hérisson - hermine - héron - hésiter - heureux - hiberner - hibou - hilarant - histoire - hiver - homard - hommage - homogène - honneur - honorer - honteux - horde - horizon - horloge - hormone - horrible - houleux - housse - hublot - huileux - humain - humble - humide - humour - hurler - hydromel - hygiène - hymne - hypnose - idylle - ignorer - iguane - illicite - illusion - image - imbiber - imiter - immense - immobile - immuable - impact - impérial - implorer - imposer - imprimer - imputer - incarner - incendie - incident - incliner - incolore - indexer - indice - inductif - inédit - ineptie - inexact - infini - infliger - informer - infusion - ingérer - inhaler - inhiber - injecter - injure - innocent - inoculer - inonder - inscrire - insecte - insigne - insolite - inspirer - instinct - insulter - intact - intense - intime - intrigue - intuitif - inutile - invasion - inventer - inviter - invoquer - ironique - irradier - irréel - irriter - isoler - ivoire - ivresse - jaguar - jaillir - jambe - janvier - jardin - jauger - jaune - javelot - jetable - jeton - jeudi - jeunesse - joindre - joncher - jongler - joueur - jouissif - journal - jovial - joyau - joyeux - jubiler - jugement - junior - jupon - juriste - justice - juteux - juvénile - kayak - kimono - kiosque - label - labial - labourer - lacérer - lactose - lagune - laine - laisser - laitier - lambeau - lamelle - lampe - lanceur - langage - lanterne - lapin - largeur - larme - laurier - lavabo - lavoir - lecture - légal - léger - légume - lessive - lettre - levier - lexique - lézard - liasse - libérer - libre - licence - licorne - liège - lièvre - ligature - ligoter - ligue - limer - limite - limonade - limpide - linéaire - lingot - lionceau - liquide - lisière - lister - lithium - litige - littoral - livreur - logique - lointain - loisir - lombric - loterie - louer - lourd - loutre - louve - loyal - lubie - lucide - lucratif - lueur - lugubre - luisant - lumière - lunaire - lundi - luron - lutter - luxueux - machine - magasin - magenta - magique - maigre - maillon - maintien - mairie - maison - majorer - malaxer - maléfice - malheur - malice - mallette - mammouth - mandater - maniable - manquant - manteau - manuel - marathon - marbre - marchand - mardi - maritime - marqueur - marron - marteler - mascotte - massif - matériel - matière - matraque - maudire - maussade - mauve - maximal - méchant - méconnu - médaille - médecin - méditer - méduse - meilleur - mélange - mélodie - membre - mémoire - menacer - mener - menhir - mensonge - mentor - mercredi - mérite - merle - messager - mesure - métal - météore - méthode - métier - meuble - miauler - microbe - miette - mignon - migrer - milieu - million - mimique - mince - minéral - minimal - minorer - minute - miracle - miroiter - missile - mixte - mobile - moderne - moelleux - mondial - moniteur - monnaie - monotone - monstre - montagne - monument - moqueur - morceau - morsure - mortier - moteur - motif - mouche - moufle - moulin - mousson - mouton - mouvant - multiple - munition - muraille - murène - murmure - muscle - muséum - musicien - mutation - muter - mutuel - myriade - myrtille - mystère - mythique - nageur - nappe - narquois - narrer - natation - nation - nature - naufrage - nautique - navire - nébuleux - nectar - néfaste - négation - négliger - négocier - neige - nerveux - nettoyer - neurone - neutron - neveu - niche - nickel - nitrate - niveau - noble - nocif - nocturne - noirceur - noisette - nomade - nombreux - nommer - normatif - notable - notifier - notoire - nourrir - nouveau - novateur - novembre - novice - nuage - nuancer - nuire - nuisible - numéro - nuptial - nuque - nutritif - obéir - objectif - obliger - obscur - observer - obstacle - obtenir - obturer - occasion - occuper - océan - octobre - octroyer - octupler - oculaire - odeur - odorant - offenser - officier - offrir - ogive - oiseau - oisillon - olfactif - olivier - ombrage - omettre - onctueux - onduler - onéreux - onirique - opale - opaque - opérer - opinion - opportun - opprimer - opter - optique - orageux - orange - orbite - ordonner - oreille - organe - orgueil - orifice - ornement - orque - ortie - osciller - osmose - ossature - otarie - ouragan - ourson - outil - outrager - ouvrage - ovation - oxyde - oxygène - ozone - paisible - palace - palmarès - palourde - palper - panache - panda - pangolin - paniquer - panneau - panorama - pantalon - papaye - papier - papoter - papyrus - paradoxe - parcelle - paresse - parfumer - parler - parole - parrain - parsemer - partager - parure - parvenir - passion - pastèque - paternel - patience - patron - pavillon - pavoiser - payer - paysage - peigne - peintre - pelage - pélican - pelle - pelouse - peluche - pendule - pénétrer - pénible - pensif - pénurie - pépite - péplum - perdrix - perforer - période - permuter - perplexe - persil - perte - peser - pétale - petit - pétrir - peuple - pharaon - phobie - phoque - photon - phrase - physique - piano - pictural - pièce - pierre - pieuvre - pilote - pinceau - pipette - piquer - pirogue - piscine - piston - pivoter - pixel - pizza - placard - plafond - plaisir - planer - plaque - plastron - plateau - pleurer - plexus - pliage - plomb - plonger - pluie - plumage - pochette - poésie - poète - pointe - poirier - poisson - poivre - polaire - policier - pollen - polygone - pommade - pompier - ponctuel - pondérer - poney - portique - position - posséder - posture - potager - poteau - potion - pouce - poulain - poumon - pourpre - poussin - pouvoir - prairie - pratique - précieux - prédire - préfixe - prélude - prénom - présence - prétexte - prévoir - primitif - prince - prison - priver - problème - procéder - prodige - profond - progrès - proie - projeter - prologue - promener - propre - prospère - protéger - prouesse - proverbe - prudence - pruneau - psychose - public - puceron - puiser - pulpe - pulsar - punaise - punitif - pupitre - purifier - puzzle - pyramide - quasar - querelle - question - quiétude - quitter - quotient - racine - raconter - radieux - ragondin - raideur - raisin - ralentir - rallonge - ramasser - rapide - rasage - ratisser - ravager - ravin - rayonner - réactif - réagir - réaliser - réanimer - recevoir - réciter - réclamer - récolter - recruter - reculer - recycler - rédiger - redouter - refaire - réflexe - réformer - refrain - refuge - régalien - région - réglage - régulier - réitérer - rejeter - rejouer - relatif - relever - relief - remarque - remède - remise - remonter - remplir - remuer - renard - renfort - renifler - renoncer - rentrer - renvoi - replier - reporter - reprise - reptile - requin - réserve - résineux - résoudre - respect - rester - résultat - rétablir - retenir - réticule - retomber - retracer - réunion - réussir - revanche - revivre - révolte - révulsif - richesse - rideau - rieur - rigide - rigoler - rincer - riposter - risible - risque - rituel - rival - rivière - rocheux - romance - rompre - ronce - rondin - roseau - rosier - rotatif - rotor - rotule - rouge - rouille - rouleau - routine - royaume - ruban - rubis - ruche - ruelle - rugueux - ruiner - ruisseau - ruser - rustique - rythme - sabler - saboter - sabre - sacoche - safari - sagesse - saisir - salade - salive - salon - saluer - samedi - sanction - sanglier - sarcasme - sardine - saturer - saugrenu - saumon - sauter - sauvage - savant - savonner - scalpel - scandale - scélérat - scénario - sceptre - schéma - science - scinder - score - scrutin - sculpter - séance - sécable - sécher - secouer - sécréter - sédatif - séduire - seigneur - séjour - sélectif - semaine - sembler - semence - séminal - sénateur - sensible - sentence - séparer - séquence - serein - sergent - sérieux - serrure - sérum - service - sésame - sévir - sevrage - sextuple - sidéral - siècle - siéger - siffler - sigle - signal - silence - silicium - simple - sincère - sinistre - siphon - sirop - sismique - situer - skier - social - socle - sodium - soigneux - soldat - soleil - solitude - soluble - sombre - sommeil - somnoler - sonde - songeur - sonnette - sonore - sorcier - sortir - sosie - sottise - soucieux - soudure - souffle - soulever - soupape - source - soutirer - souvenir - spacieux - spatial - spécial - sphère - spiral - stable - station - sternum - stimulus - stipuler - strict - studieux - stupeur - styliste - sublime - substrat - subtil - subvenir - succès - sucre - suffixe - suggérer - suiveur - sulfate - superbe - supplier - surface - suricate - surmener - surprise - sursaut - survie - suspect - syllabe - symbole - symétrie - synapse - syntaxe - système - tabac - tablier - tactile - tailler - talent - talisman - talonner - tambour - tamiser - tangible - tapis - taquiner - tarder - tarif - tartine - tasse - tatami - tatouage - taupe - taureau - taxer - témoin - temporel - tenaille - tendre - teneur - tenir - tension - terminer - terne - terrible - tétine - texte - thème - théorie - thérapie - thorax - tibia - tiède - timide - tirelire - tiroir - tissu - titane - titre - tituber - toboggan - tolérant - tomate - tonique - tonneau - toponyme - torche - tordre - tornade - torpille - torrent - torse - tortue - totem - toucher - tournage - tousser - toxine - traction - trafic - tragique - trahir - train - trancher - travail - trèfle - tremper - trésor - treuil - triage - tribunal - tricoter - trilogie - triomphe - tripler - triturer - trivial - trombone - tronc - tropical - troupeau - tuile - tulipe - tumulte - tunnel - turbine - tuteur - tutoyer - tuyau - tympan - typhon - typique - tyran - ubuesque - ultime - ultrason - unanime - unifier - union - unique - unitaire - univers - uranium - urbain - urticant - usage - usine - usuel - usure - utile - utopie - vacarme - vaccin - vagabond - vague - vaillant - vaincre - vaisseau - valable - valise - vallon - valve - vampire - vanille - vapeur - varier - vaseux - vassal - vaste - vecteur - vedette - végétal - véhicule - veinard - véloce - vendredi - vénérer - venger - venimeux - ventouse - verdure - vérin - vernir - verrou - verser - vertu - veston - vétéran - vétuste - vexant - vexer - viaduc - viande - victoire - vidange - vidéo - vignette - vigueur - vilain - village - vinaigre - violon - vipère - virement - virtuose - virus - visage - viseur - vision - visqueux - visuel - vital - vitesse - viticole - vitrine - vivace - vivipare - vocation - voguer - voile - voisin - voiture - volaille - volcan - voltiger - volume - vorace - vortex - voter - vouloir - voyage - voyelle - wagon - xénon - yacht - zèbre - zénith - zeste - zoologie - """ - return words.split(separator: "\n") - }() - static var italian: [String.SubSequence] = { - let words = - """ - abaco - abbaglio - abbinato - abete - abisso - abolire - abrasivo - abrogato - accadere - accenno - accusato - acetone - achille - acido - acqua - acre - acrilico - acrobata - acuto - adagio - addebito - addome - adeguato - aderire - adipe - adottare - adulare - affabile - affetto - affisso - affranto - aforisma - afoso - africano - agave - agente - agevole - aggancio - agire - agitare - agonismo - agricolo - agrumeto - aguzzo - alabarda - alato - albatro - alberato - albo - albume - alce - alcolico - alettone - alfa - algebra - aliante - alibi - alimento - allagato - allegro - allievo - allodola - allusivo - almeno - alogeno - alpaca - alpestre - altalena - alterno - alticcio - altrove - alunno - alveolo - alzare - amalgama - amanita - amarena - ambito - ambrato - ameba - america - ametista - amico - ammasso - ammenda - ammirare - ammonito - amore - ampio - ampliare - amuleto - anacardo - anagrafe - analista - anarchia - anatra - anca - ancella - ancora - andare - andrea - anello - angelo - angolare - angusto - anima - annegare - annidato - anno - annuncio - anonimo - anticipo - anzi - apatico - apertura - apode - apparire - appetito - appoggio - approdo - appunto - aprile - arabica - arachide - aragosta - araldica - arancio - aratura - arazzo - arbitro - archivio - ardito - arenile - argento - argine - arguto - aria - armonia - arnese - arredato - arringa - arrosto - arsenico - arso - artefice - arzillo - asciutto - ascolto - asepsi - asettico - asfalto - asino - asola - aspirato - aspro - assaggio - asse - assoluto - assurdo - asta - astenuto - astice - astratto - atavico - ateismo - atomico - atono - attesa - attivare - attorno - attrito - attuale - ausilio - austria - autista - autonomo - autunno - avanzato - avere - avvenire - avviso - avvolgere - azione - azoto - azzimo - azzurro - babele - baccano - bacino - baco - badessa - badilata - bagnato - baita - balcone - baldo - balena - ballata - balzano - bambino - bandire - baraonda - barbaro - barca - baritono - barlume - barocco - basilico - basso - batosta - battuto - baule - bava - bavosa - becco - beffa - belgio - belva - benda - benevole - benigno - benzina - bere - berlina - beta - bibita - bici - bidone - bifido - biga - bilancia - bimbo - binocolo - biologo - bipede - bipolare - birbante - birra - biscotto - bisesto - bisnonno - bisonte - bisturi - bizzarro - blando - blatta - bollito - bonifico - bordo - bosco - botanico - bottino - bozzolo - braccio - bradipo - brama - branca - bravura - bretella - brevetto - brezza - briglia - brillante - brindare - broccolo - brodo - bronzina - brullo - bruno - bubbone - buca - budino - buffone - buio - bulbo - buono - burlone - burrasca - bussola - busta - cadetto - caduco - calamaro - calcolo - calesse - calibro - calmo - caloria - cambusa - camerata - camicia - cammino - camola - campale - canapa - candela - cane - canino - canotto - cantina - capace - capello - capitolo - capogiro - cappero - capra - capsula - carapace - carcassa - cardo - carisma - carovana - carretto - cartolina - casaccio - cascata - caserma - caso - cassone - castello - casuale - catasta - catena - catrame - cauto - cavillo - cedibile - cedrata - cefalo - celebre - cellulare - cena - cenone - centesimo - ceramica - cercare - certo - cerume - cervello - cesoia - cespo - ceto - chela - chiaro - chicca - chiedere - chimera - china - chirurgo - chitarra - ciao - ciclismo - cifrare - cigno - cilindro - ciottolo - circa - cirrosi - citrico - cittadino - ciuffo - civetta - civile - classico - clinica - cloro - cocco - codardo - codice - coerente - cognome - collare - colmato - colore - colposo - coltivato - colza - coma - cometa - commando - comodo - computer - comune - conciso - condurre - conferma - congelare - coniuge - connesso - conoscere - consumo - continuo - convegno - coperto - copione - coppia - copricapo - corazza - cordata - coricato - cornice - corolla - corpo - corredo - corsia - cortese - cosmico - costante - cottura - covato - cratere - cravatta - creato - credere - cremoso - crescita - creta - criceto - crinale - crisi - critico - croce - cronaca - crostata - cruciale - crusca - cucire - cuculo - cugino - cullato - cupola - curatore - cursore - curvo - cuscino - custode - dado - daino - dalmata - damerino - daniela - dannoso - danzare - datato - davanti - davvero - debutto - decennio - deciso - declino - decollo - decreto - dedicato - definito - deforme - degno - delegare - delfino - delirio - delta - demenza - denotato - dentro - deposito - derapata - derivare - deroga - descritto - deserto - desiderio - desumere - detersivo - devoto - diametro - dicembre - diedro - difeso - diffuso - digerire - digitale - diluvio - dinamico - dinnanzi - dipinto - diploma - dipolo - diradare - dire - dirotto - dirupo - disagio - discreto - disfare - disgelo - disposto - distanza - disumano - dito - divano - divelto - dividere - divorato - doblone - docente - doganale - dogma - dolce - domato - domenica - dominare - dondolo - dono - dormire - dote - dottore - dovuto - dozzina - drago - druido - dubbio - dubitare - ducale - duna - duomo - duplice - duraturo - ebano - eccesso - ecco - eclissi - economia - edera - edicola - edile - editoria - educare - egemonia - egli - egoismo - egregio - elaborato - elargire - elegante - elencato - eletto - elevare - elfico - elica - elmo - elsa - eluso - emanato - emblema - emesso - emiro - emotivo - emozione - empirico - emulo - endemico - enduro - energia - enfasi - enoteca - entrare - enzima - epatite - epilogo - episodio - epocale - eppure - equatore - erario - erba - erboso - erede - eremita - erigere - ermetico - eroe - erosivo - errante - esagono - esame - esanime - esaudire - esca - esempio - esercito - esibito - esigente - esistere - esito - esofago - esortato - esoso - espanso - espresso - essenza - esso - esteso - estimare - estonia - estroso - esultare - etilico - etnico - etrusco - etto - euclideo - europa - evaso - evidenza - evitato - evoluto - evviva - fabbrica - faccenda - fachiro - falco - famiglia - fanale - fanfara - fango - fantasma - fare - farfalla - farinoso - farmaco - fascia - fastoso - fasullo - faticare - fato - favoloso - febbre - fecola - fede - fegato - felpa - feltro - femmina - fendere - fenomeno - fermento - ferro - fertile - fessura - festivo - fetta - feudo - fiaba - fiducia - fifa - figurato - filo - finanza - finestra - finire - fiore - fiscale - fisico - fiume - flacone - flamenco - flebo - flemma - florido - fluente - fluoro - fobico - focaccia - focoso - foderato - foglio - folata - folclore - folgore - fondente - fonetico - fonia - fontana - forbito - forchetta - foresta - formica - fornaio - foro - fortezza - forzare - fosfato - fosso - fracasso - frana - frassino - fratello - freccetta - frenata - fresco - frigo - frollino - fronde - frugale - frutta - fucilata - fucsia - fuggente - fulmine - fulvo - fumante - fumetto - fumoso - fune - funzione - fuoco - furbo - furgone - furore - fuso - futile - gabbiano - gaffe - galateo - gallina - galoppo - gambero - gamma - garanzia - garbo - garofano - garzone - gasdotto - gasolio - gastrico - gatto - gaudio - gazebo - gazzella - geco - gelatina - gelso - gemello - gemmato - gene - genitore - gennaio - genotipo - gergo - ghepardo - ghiaccio - ghisa - giallo - gilda - ginepro - giocare - gioiello - giorno - giove - girato - girone - gittata - giudizio - giurato - giusto - globulo - glutine - gnomo - gobba - golf - gomito - gommone - gonfio - gonna - governo - gracile - grado - grafico - grammo - grande - grattare - gravoso - grazia - greca - gregge - grifone - grigio - grinza - grotta - gruppo - guadagno - guaio - guanto - guardare - gufo - guidare - ibernato - icona - identico - idillio - idolo - idra - idrico - idrogeno - igiene - ignaro - ignorato - ilare - illeso - illogico - illudere - imballo - imbevuto - imbocco - imbuto - immane - immerso - immolato - impacco - impeto - impiego - importo - impronta - inalare - inarcare - inattivo - incanto - incendio - inchino - incisivo - incluso - incontro - incrocio - incubo - indagine - india - indole - inedito - infatti - infilare - inflitto - ingaggio - ingegno - inglese - ingordo - ingrosso - innesco - inodore - inoltrare - inondato - insano - insetto - insieme - insonnia - insulina - intasato - intero - intonaco - intuito - inumidire - invalido - invece - invito - iperbole - ipnotico - ipotesi - ippica - iride - irlanda - ironico - irrigato - irrorare - isolato - isotopo - isterico - istituto - istrice - italia - iterare - labbro - labirinto - lacca - lacerato - lacrima - lacuna - laddove - lago - lampo - lancetta - lanterna - lardoso - larga - laringe - lastra - latenza - latino - lattuga - lavagna - lavoro - legale - leggero - lembo - lentezza - lenza - leone - lepre - lesivo - lessato - lesto - letterale - leva - levigato - libero - lido - lievito - lilla - limatura - limitare - limpido - lineare - lingua - liquido - lira - lirica - lisca - lite - litigio - livrea - locanda - lode - logica - lombare - londra - longevo - loquace - lorenzo - loto - lotteria - luce - lucidato - lumaca - luminoso - lungo - lupo - luppolo - lusinga - lusso - lutto - macabro - macchina - macero - macinato - madama - magico - maglia - magnete - magro - maiolica - malafede - malgrado - malinteso - malsano - malto - malumore - mana - mancia - mandorla - mangiare - manifesto - mannaro - manovra - mansarda - mantide - manubrio - mappa - maratona - marcire - maretta - marmo - marsupio - maschera - massaia - mastino - materasso - matricola - mattone - maturo - mazurca - meandro - meccanico - mecenate - medesimo - meditare - mega - melassa - melis - melodia - meninge - meno - mensola - mercurio - merenda - merlo - meschino - mese - messere - mestolo - metallo - metodo - mettere - miagolare - mica - micelio - michele - microbo - midollo - miele - migliore - milano - milite - mimosa - minerale - mini - minore - mirino - mirtillo - miscela - missiva - misto - misurare - mitezza - mitigare - mitra - mittente - mnemonico - modello - modifica - modulo - mogano - mogio - mole - molosso - monastero - monco - mondina - monetario - monile - monotono - monsone - montato - monviso - mora - mordere - morsicato - mostro - motivato - motosega - motto - movenza - movimento - mozzo - mucca - mucosa - muffa - mughetto - mugnaio - mulatto - mulinello - multiplo - mummia - munto - muovere - murale - musa - muscolo - musica - mutevole - muto - nababbo - nafta - nanometro - narciso - narice - narrato - nascere - nastrare - naturale - nautica - naviglio - nebulosa - necrosi - negativo - negozio - nemmeno - neofita - neretto - nervo - nessuno - nettuno - neutrale - neve - nevrotico - nicchia - ninfa - nitido - nobile - nocivo - nodo - nome - nomina - nordico - normale - norvegese - nostrano - notare - notizia - notturno - novella - nucleo - nulla - numero - nuovo - nutrire - nuvola - nuziale - oasi - obbedire - obbligo - obelisco - oblio - obolo - obsoleto - occasione - occhio - occidente - occorrere - occultare - ocra - oculato - odierno - odorare - offerta - offrire - offuscato - oggetto - oggi - ognuno - olandese - olfatto - oliato - oliva - ologramma - oltre - omaggio - ombelico - ombra - omega - omissione - ondoso - onere - onice - onnivoro - onorevole - onta - operato - opinione - opposto - oracolo - orafo - ordine - orecchino - orefice - orfano - organico - origine - orizzonte - orma - ormeggio - ornativo - orologio - orrendo - orribile - ortensia - ortica - orzata - orzo - osare - oscurare - osmosi - ospedale - ospite - ossa - ossidare - ostacolo - oste - otite - otre - ottagono - ottimo - ottobre - ovale - ovest - ovino - oviparo - ovocito - ovunque - ovviare - ozio - pacchetto - pace - pacifico - padella - padrone - paese - paga - pagina - palazzina - palesare - pallido - palo - palude - pandoro - pannello - paolo - paonazzo - paprica - parabola - parcella - parere - pargolo - pari - parlato - parola - partire - parvenza - parziale - passivo - pasticca - patacca - patologia - pattume - pavone - peccato - pedalare - pedonale - peggio - peloso - penare - pendice - penisola - pennuto - penombra - pensare - pentola - pepe - pepita - perbene - percorso - perdonato - perforare - pergamena - periodo - permesso - perno - perplesso - persuaso - pertugio - pervaso - pesatore - pesista - peso - pestifero - petalo - pettine - petulante - pezzo - piacere - pianta - piattino - piccino - picozza - piega - pietra - piffero - pigiama - pigolio - pigro - pila - pilifero - pillola - pilota - pimpante - pineta - pinna - pinolo - pioggia - piombo - piramide - piretico - pirite - pirolisi - pitone - pizzico - placebo - planare - plasma - platano - plenario - pochezza - poderoso - podismo - poesia - poggiare - polenta - poligono - pollice - polmonite - polpetta - polso - poltrona - polvere - pomice - pomodoro - ponte - popoloso - porfido - poroso - porpora - porre - portata - posa - positivo - possesso - postulato - potassio - potere - pranzo - prassi - pratica - precluso - predica - prefisso - pregiato - prelievo - premere - prenotare - preparato - presenza - pretesto - prevalso - prima - principe - privato - problema - procura - produrre - profumo - progetto - prolunga - promessa - pronome - proposta - proroga - proteso - prova - prudente - prugna - prurito - psiche - pubblico - pudica - pugilato - pugno - pulce - pulito - pulsante - puntare - pupazzo - pupilla - puro - quadro - qualcosa - quasi - querela - quota - raccolto - raddoppio - radicale - radunato - raffica - ragazzo - ragione - ragno - ramarro - ramingo - ramo - randagio - rantolare - rapato - rapina - rappreso - rasatura - raschiato - rasente - rassegna - rastrello - rata - ravveduto - reale - recepire - recinto - recluta - recondito - recupero - reddito - redimere - regalato - registro - regola - regresso - relazione - remare - remoto - renna - replica - reprimere - reputare - resa - residente - responso - restauro - rete - retina - retorica - rettifica - revocato - riassunto - ribadire - ribelle - ribrezzo - ricarica - ricco - ricevere - riciclato - ricordo - ricreduto - ridicolo - ridurre - rifasare - riflesso - riforma - rifugio - rigare - rigettato - righello - rilassato - rilevato - rimanere - rimbalzo - rimedio - rimorchio - rinascita - rincaro - rinforzo - rinnovo - rinomato - rinsavito - rintocco - rinuncia - rinvenire - riparato - ripetuto - ripieno - riportare - ripresa - ripulire - risata - rischio - riserva - risibile - riso - rispetto - ristoro - risultato - risvolto - ritardo - ritegno - ritmico - ritrovo - riunione - riva - riverso - rivincita - rivolto - rizoma - roba - robotico - robusto - roccia - roco - rodaggio - rodere - roditore - rogito - rollio - romantico - rompere - ronzio - rosolare - rospo - rotante - rotondo - rotula - rovescio - rubizzo - rubrica - ruga - rullino - rumine - rumoroso - ruolo - rupe - russare - rustico - sabato - sabbiare - sabotato - sagoma - salasso - saldatura - salgemma - salivare - salmone - salone - saltare - saluto - salvo - sapere - sapido - saporito - saraceno - sarcasmo - sarto - sassoso - satellite - satira - satollo - saturno - savana - savio - saziato - sbadiglio - sbalzo - sbancato - sbarra - sbattere - sbavare - sbendare - sbirciare - sbloccato - sbocciato - sbrinare - sbruffone - sbuffare - scabroso - scadenza - scala - scambiare - scandalo - scapola - scarso - scatenare - scavato - scelto - scenico - scettro - scheda - schiena - sciarpa - scienza - scindere - scippo - sciroppo - scivolo - sclerare - scodella - scolpito - scomparto - sconforto - scoprire - scorta - scossone - scozzese - scriba - scrollare - scrutinio - scuderia - scultore - scuola - scuro - scusare - sdebitare - sdoganare - seccatura - secondo - sedano - seggiola - segnalato - segregato - seguito - selciato - selettivo - sella - selvaggio - semaforo - sembrare - seme - seminato - sempre - senso - sentire - sepolto - sequenza - serata - serbato - sereno - serio - serpente - serraglio - servire - sestina - setola - settimana - sfacelo - sfaldare - sfamato - sfarzoso - sfaticato - sfera - sfida - sfilato - sfinge - sfocato - sfoderare - sfogo - sfoltire - sforzato - sfratto - sfruttato - sfuggito - sfumare - sfuso - sgabello - sgarbato - sgonfiare - sgorbio - sgrassato - sguardo - sibilo - siccome - sierra - sigla - signore - silenzio - sillaba - simbolo - simpatico - simulato - sinfonia - singolo - sinistro - sino - sintesi - sinusoide - sipario - sisma - sistole - situato - slitta - slogatura - sloveno - smarrito - smemorato - smentito - smeraldo - smilzo - smontare - smottato - smussato - snellire - snervato - snodo - sobbalzo - sobrio - soccorso - sociale - sodale - soffitto - sogno - soldato - solenne - solido - sollazzo - solo - solubile - solvente - somatico - somma - sonda - sonetto - sonnifero - sopire - soppeso - sopra - sorgere - sorpasso - sorriso - sorso - sorteggio - sorvolato - sospiro - sosta - sottile - spada - spalla - spargere - spatola - spavento - spazzola - specie - spedire - spegnere - spelatura - speranza - spessore - spettrale - spezzato - spia - spigoloso - spillato - spinoso - spirale - splendido - sportivo - sposo - spranga - sprecare - spronato - spruzzo - spuntino - squillo - sradicare - srotolato - stabile - stacco - staffa - stagnare - stampato - stantio - starnuto - stasera - statuto - stelo - steppa - sterzo - stiletto - stima - stirpe - stivale - stizzoso - stonato - storico - strappo - stregato - stridulo - strozzare - strutto - stuccare - stufo - stupendo - subentro - succoso - sudore - suggerito - sugo - sultano - suonare - superbo - supporto - surgelato - surrogato - sussurro - sutura - svagare - svedese - sveglio - svelare - svenuto - svezia - sviluppo - svista - svizzera - svolta - svuotare - tabacco - tabulato - tacciare - taciturno - tale - talismano - tampone - tannino - tara - tardivo - targato - tariffa - tarpare - tartaruga - tasto - tattico - taverna - tavolata - tazza - teca - tecnico - telefono - temerario - tempo - temuto - tendone - tenero - tensione - tentacolo - teorema - terme - terrazzo - terzetto - tesi - tesserato - testato - tetro - tettoia - tifare - tigella - timbro - tinto - tipico - tipografo - tiraggio - tiro - titanio - titolo - titubante - tizio - tizzone - toccare - tollerare - tolto - tombola - tomo - tonfo - tonsilla - topazio - topologia - toppa - torba - tornare - torrone - tortora - toscano - tossire - tostatura - totano - trabocco - trachea - trafila - tragedia - tralcio - tramonto - transito - trapano - trarre - trasloco - trattato - trave - treccia - tremolio - trespolo - tributo - tricheco - trifoglio - trillo - trincea - trio - tristezza - triturato - trivella - tromba - trono - troppo - trottola - trovare - truccato - tubatura - tuffato - tulipano - tumulto - tunisia - turbare - turchino - tuta - tutela - ubicato - uccello - uccisore - udire - uditivo - uffa - ufficio - uguale - ulisse - ultimato - umano - umile - umorismo - uncinetto - ungere - ungherese - unicorno - unificato - unisono - unitario - unte - uovo - upupa - uragano - urgenza - urlo - usanza - usato - uscito - usignolo - usuraio - utensile - utilizzo - utopia - vacante - vaccinato - vagabondo - vagliato - valanga - valgo - valico - valletta - valoroso - valutare - valvola - vampata - vangare - vanitoso - vano - vantaggio - vanvera - vapore - varano - varcato - variante - vasca - vedetta - vedova - veduto - vegetale - veicolo - velcro - velina - velluto - veloce - venato - vendemmia - vento - verace - verbale - vergogna - verifica - vero - verruca - verticale - vescica - vessillo - vestale - veterano - vetrina - vetusto - viandante - vibrante - vicenda - vichingo - vicinanza - vidimare - vigilia - vigneto - vigore - vile - villano - vimini - vincitore - viola - vipera - virgola - virologo - virulento - viscoso - visione - vispo - vissuto - visura - vita - vitello - vittima - vivanda - vivido - viziare - voce - voga - volatile - volere - volpe - voragine - vulcano - zampogna - zanna - zappato - zattera - zavorra - zefiro - zelante - zelo - zenzero - zerbino - zibetto - zinco - zircone - zitto - zolla - zotico - zucchero - zufolo - zulu - zuppa - """ - return words.split(separator: "\n") - }() -} diff --git a/Sources/BitcoinKit/Extensions/Data_Extensions.swift b/Sources/BitcoinKit/Extensions/Data_Extensions.swift new file mode 100644 index 00000000..25270185 --- /dev/null +++ b/Sources/BitcoinKit/Extensions/Data_Extensions.swift @@ -0,0 +1,38 @@ +// +// Data_Extensions.swift +// +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +extension Data { + var binaryString: String { + var result: [String] = [] + for byte in self { + let byteString = String(byte, radix: 2) + let padding = String(repeating: "0", + count: 8 - byteString.count) + result.append(padding + byteString) + } + return result.joined() + } +} diff --git a/Sources/BitcoinKit/Extensions/FixedWidthInteger_Extensions.swift b/Sources/BitcoinKit/Extensions/FixedWidthInteger_Extensions.swift new file mode 100644 index 00000000..5a8ad613 --- /dev/null +++ b/Sources/BitcoinKit/Extensions/FixedWidthInteger_Extensions.swift @@ -0,0 +1,39 @@ +// +// FixedWidthInteger_Extensions.swift +// +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// + +import Foundation + +extension FixedWidthInteger { + var binaryString: String { + var result: [String] = [] + for i in 0..<(Self.bitWidth / 8) { + let byte = UInt8(truncatingIfNeeded: self >> (i * 8)) + let byteString = String(byte, radix: 2) + let padding = String(repeating: "0", + count: 8 - byteString.count) + result.append(padding + byteString) + } + return result.reversed().joined() + } +} diff --git a/Sources/BitcoinKit/Extensions/RangeReplaceableCollection_Extensions.swift b/Sources/BitcoinKit/Extensions/RangeReplaceableCollection_Extensions.swift new file mode 100644 index 00000000..50e7cb4f --- /dev/null +++ b/Sources/BitcoinKit/Extensions/RangeReplaceableCollection_Extensions.swift @@ -0,0 +1,57 @@ +// +// RangeReplaceableCollection_Extensions.swift +// +// Copyright © 2018 BitcoinKit developers +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. +// +import Foundation + +extension RangeReplaceableCollection { + + mutating func prepend(element: Element, toLength expectedLength: Int?) { + self = prepending(element: element, toLength: expectedLength) + } + + func prepending(element: Element, toLength expectedLength: Int?) -> Self { + guard let expectedLength = expectedLength else { + return self + } + var modified = self + while modified.count < expectedLength { + modified = [element] + modified + } + return modified + } + + mutating func append(element: Element, toLength expectedLength: Int?) { + self = appending(element: element, toLength: expectedLength) + } + + func appending(element: Element, toLength expectedLength: Int?) -> Self { + guard let expectedLength = expectedLength else { + return self + } + var modified = self + while modified.count < expectedLength { + modified.append(element) + } + return modified + } +} diff --git a/Tests/BitcoinKitTests/MnemonicTests.swift b/Tests/BitcoinKitTests/MnemonicTests.swift index 01c3943a..8cc0b5e1 100644 --- a/Tests/BitcoinKitTests/MnemonicTests.swift +++ b/Tests/BitcoinKitTests/MnemonicTests.swift @@ -26,6 +26,12 @@ import XCTest @testable import BitcoinKit class MnemonicTests: XCTestCase { + + override func setUp() { + super.setUp() + continueAfterFailure = false + } + func testMnemonic1() { let testVectors = """ { @@ -177,26 +183,26 @@ class MnemonicTests: XCTestCase { ] } """ - + let vectors = try! JSONSerialization.jsonObject(with: testVectors.data(using: .utf8)!, options: []) as! [String: [[String]]] for vector in vectors["english"]! { let expected = (entropy: vector[0], mnemonic: vector[1], seed: vector[2], key: vector[3]) - + let entropy = Data(hex: expected.entropy)! - let mnemonic = Mnemonic.generate(entropy: entropy) + let mnemonic = try! Mnemonic.generate(entropy: entropy) XCTAssertEqual(mnemonic.joined(separator: " "), expected.mnemonic) - - let seed = Mnemonic.seed(mnemonic: mnemonic, passphrase: "TREZOR") + + let seed = try! Mnemonic.seed(mnemonic: mnemonic, passphrase: "TREZOR") XCTAssertEqual(seed.hex, expected.seed) - + let privateKey = HDPrivateKey(seed: seed, network: .mainnet) XCTAssertEqual(privateKey.extended(), expected.key) } } - + func testMnemonic2() { let testVectors = """ [ @@ -393,7 +399,7 @@ class MnemonicTests: XCTestCase { } ] """ - + let vectors = try! JSONSerialization.jsonObject(with: testVectors.data(using: .utf8)!, options: []) as! [[String: String]] for vector in vectors { let expected = (entropy: vector["entropy"]!, @@ -401,16 +407,153 @@ class MnemonicTests: XCTestCase { passphrase: vector["passphrase"]!, seed: vector["seed"]!, bip32_xprv: vector["bip32_xprv"]!) - + let entropy = Data(hex: expected.entropy)! - let mnemonic = Mnemonic.generate(entropy: entropy, language: .japanese) + let mnemonic = try! Mnemonic.generate(entropy: entropy, language: .japanese) XCTAssertEqual(mnemonic.joined(separator: " "), expected.mnemonic) - - let seed = Mnemonic.seed(mnemonic: mnemonic, passphrase: expected.passphrase) + + let seed = try! Mnemonic.seed(mnemonic: mnemonic, passphrase: expected.passphrase) XCTAssertEqual(seed.hex, expected.seed) - + let privateKey = HDPrivateKey(seed: seed, network: .mainnet) XCTAssertEqual(privateKey.extended(), expected.bip32_xprv) } } + + func testChecksummedVectorsWordCountOf12() { + for vector in checksumVectorsWordCountOf12 { + doTest(checksumVector: vector) + } + } + + func testChecksummedVectorsWordCountOf24() { + for vector in checksumVectorsWordCountOf24 { + doTest(checksumVector: vector) + } + } + + func testGenerateManyAndVerifyChecksummed() { + for strength in Mnemonic.Strength.allCases { + for language in Mnemonic.Language.allCases { + for _ in 0..<10 { + XCTAssertNoThrow( + try Mnemonic.generate(strength: strength, language: language) + ) + } + } + } + } + + func testChecksumValidation() { + let mnemonic = "gown pulp squeeze squeeze chuckle glance skill glare force dog absurd tennis" + let words: [String] = mnemonic.split(separator: " ").map { String($0) } + let lastWordReplaced: [String] = { var tmp = words; tmp[11] = "cat"; return tmp }() + XCTAssertNoThrow(try Mnemonic.seed(mnemonic: words)) + XCTAssertThrowsError(try Mnemonic.seed(mnemonic: lastWordReplaced)) + XCTAssertNoThrow(Mnemonic.seed(mnemonic: lastWordReplaced, validateChecksum: { _ in })) + } +} + +private extension MnemonicTests { + func doTest(checksumVector vector: ChecksumVector) { + let words: [String] = vector.checksummed.split(separator: " ").map { String($0) } + do { + let seed = try Mnemonic.seed(mnemonic: words) + XCTAssertEqual(seed.hex, vector.expectedBIP39SeedHex) + let hdWallet = HDWallet.init(seed: seed, network: .mainnetBTC) + let privateKey = try! hdWallet.privateKey(index: UInt32(0)) + XCTAssertEqual(privateKey.toWIF(), vector.bip44BTCMainnetIndex0PrivateKeyWIF) + } catch { + XCTFail("Error: \(error)") + } + XCTAssertNoThrow(try Mnemonic.validateChecksumOf(mnemonic: words, language: .english), "validation of vector with mnemonic failed: '\(words)'") + + let firstWordInVocabulary = WordList.english.first! + XCTAssertNotEqual(words[0], firstWordInVocabulary) // assert that we dont have such bad luck that the first + let mnemonicFirstWordReplaced: [String] = { var tmp = words; tmp[0] = firstWordInVocabulary; return tmp }() + + XCTAssertThrowsError(try Mnemonic.validateChecksumOf(mnemonic: mnemonicFirstWordReplaced, language: .english), "mnemonic with non checksummed words should throw error") { error in + guard let mnemonicError = error as? MnemonicError else { return XCTFail("wrong error type") } + guard case MnemonicError.invalid(.checksumMismatch) = mnemonicError else { return XCTFail("wrong error") } + // ok! + } + } +} + +private struct ChecksumVector { + let checksummed: String + let expectedBIP39SeedHex: String + let bip44BTCMainnetIndex0PrivateKeyWIF: String } + +// MARK: - VECTORS +// generated using https://iancoleman.io/bip39/ +private typealias V = ChecksumVector +private let checksumVectorsWordCountOf12: [ChecksumVector] = [ + V( + checksummed: "gown pulp squeeze squeeze chuckle glance skill glare force dog absurd tennis", + expectedBIP39SeedHex: "920bbfce06a01e8016145c3bbcd351b8d1d4c4cc2b407487c740bc6d5eec39db5143e814377e4a4b0f6323599f5e07c9258f245e7346ae53758d8ca03864d7eb", + bip44BTCMainnetIndex0PrivateKeyWIF: "L4M7RJaw3jQpevpi7xUzEyEx4o5thCXDtgsWwgNB4ubijmkLZCkb" + ), + + V( + checksummed: "nose order abuse element oven eager cable mom woman gun way forest", + expectedBIP39SeedHex: "37f5f2702cf56dec144267e9dae2cb998ebdb64eef881b3b06d50f8ce8fc4e5c4bb0809c6d021c1e5d1faa5547aa8ebda5af0f6c6c0b4bd3911d863207bc2772", + bip44BTCMainnetIndex0PrivateKeyWIF: "L5B2chkFwkb8YwZ6HD1n9FVqkXJKPeHBjfURzWFbQ3J2Po4PGsqQ" + ), + + V( + checksummed: "chaos bachelor bread brown palm little cube toy reveal tone legal mushroom", + expectedBIP39SeedHex: "efa9a923fbc3b9b0825d4f73a8620046ba03c75145c774183820c4e729f603b1d29471ad4d9a38f5cfffb7ae7eddeada4e7428a2c0d8f35df0dc882b2ec20556", + bip44BTCMainnetIndex0PrivateKeyWIF: "KyZ2jCAwGa2QmekquQAqp7aSBYGMo2RDcFDAsE3vyBX224CYQAdP" + ), + + V( + checksummed: "history repair able sun resemble health remind gloom put hunt bridge cause", + expectedBIP39SeedHex: "24ad1ea7a8a21f3c8a9a9b65b0bcf34369502ed2b5a6c4b2d6c81556775b9f2ff02ab3a528c4f67d55145d0a713fd0f8b9d94bfb6f172470b5d4a5ee168f4720", + bip44BTCMainnetIndex0PrivateKeyWIF: "Kx3Ap21MCouj1mXrZ62Lc2gvo3srs5H8MDa5kezjuLMukBJM7ScM" + ), + + V( + checksummed: "quit roast phone very umbrella settle gasp barely risk junior idea dignity", + expectedBIP39SeedHex: "b149811563a2d128b81f0f450bc96223d0514e24ade0b9946b61f062368a0ccf120101921b3c6d869c49df1389494444807abd3be425166d6ea016714fe125c6", + bip44BTCMainnetIndex0PrivateKeyWIF: "L21oetMcVJGpzYNFLGarzAvt3pFT9dcCSDNLSoEDPpJuH2ATJ1Ez" + ) +] + +private let checksumVectorsWordCountOf24: [ChecksumVector] = [ + V( + checksummed: "captain much tragic grocery rotate leg survey smile core diagram assist fossil today cattle collect history honey rent share fever dice addict joy void", + expectedBIP39SeedHex: "5a96eca608c3bf9be506a4b37ba85d745bb6be5d78f20e2fb1d925d68319810bdb0050f8cb6d4251a236ee5936b33fb988847ca10aba7f9ba92f794a73985194", bip44BTCMainnetIndex0PrivateKeyWIF: "Kxi3Rx52oNGPfFCxRiPhX58uJi4dJrBEVCQdTUuequqLZAfCzqg1" + ), + + V( + checksummed: "donor lemon suffer industry defy mutual aim age veteran slab narrow hurry use valid prize pool remember puzzle glance odor fantasy boat hurry clay", + expectedBIP39SeedHex: "4cf3acfc36695f33f88acb00485e7a10c1f6ba9820ced490c791121f952de840c951bed834a741460744a9f7b773bda23ff0639722f609505a6ff7f422743ffe", + bip44BTCMainnetIndex0PrivateKeyWIF: "KxtCtF2PhDcB7M7cWVR8bqdFWn29dB27D3Z9PGcoLnmc4sR9dPi4" + ), + + V( + checksummed: "nothing dune rabbit usual shadow prosper connect matter lawn material order theory evil broom peasant tilt impose obey obvious awake chat alpha excuse head", + expectedBIP39SeedHex: "fb5e08d07f3c5f46bfb26447ff8603b6202b8056089a3ef76a6bdca504451696c8149865c1082f2d8d1e3a607ef25ae329dbd960c1949a0bb0daf15499ce2dbe", + bip44BTCMainnetIndex0PrivateKeyWIF: "KydtUZprrGGPumDKnEgePChqULVpa5PBxzys4HcegTUZ9Pz796rT" + ), + + V( + checksummed: "donor animal damage before jacket erase alien sudden vendor insane tool unknown romance utility globe reflect rabbit cereal tongue economy change pony voyage rotate", + expectedBIP39SeedHex: "48a2c40c76d49c4803d39bc805bd356af9b48a7f2a62390751a08d7be442459a043d4b8ddf2cd82b899dabab45fda10c426f59c559555e5a0e53e4a1ef9a3876", + bip44BTCMainnetIndex0PrivateKeyWIF: "KwQywGberRy3f7882st9T6LZWm3u264qCfX26EH4eY562vnUnkNP" + ), + + V( + checksummed: "main toilet mask tail globe draft split harvest grape view outer athlete flash profit space gauge design air next replace ceiling enemy tackle cup", + expectedBIP39SeedHex: "6d1bc19a93614f549361dc22baf6aec769a10b661b22b7d90ccb721249b921e009b353604fbbc700bed329fe29e79d1cbcffa5e496996c5af0b652824135eb7b", + bip44BTCMainnetIndex0PrivateKeyWIF: "Kztw1M419yGo6gtPZTqhtuEHxqBLtFENpgiTAFpuzvZPBNWeVXrv" + ), + + V( + checksummed: "dad moon dice soon wrap fine receive forward sponsor honey exit reduce between distance noise swallow cupboard carpet sea skull security grocery call shiver", + expectedBIP39SeedHex: "fe47a5d32c254c4b89f6ab2e36d9dff1a43bea65017b984cf1a987f58ec68f2f9bdfd35a262c76144732e688fcef71192153f85cc2ffd8573757fc135b598c98", + bip44BTCMainnetIndex0PrivateKeyWIF: "L54KpSZwiiv8ZcSJLZyHVab1Brwm19qhcBhkAQstSq4wxZw23rNj" + ) +]