cardano-addresses 4.0.0 → 4.0.1
raw patch · 30 files changed
+13289/−329 lines, 30 filesdep ~cardano-cryptodep ~optparse-applicativePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: cardano-crypto, optparse-applicative
API changes (from Hackage documentation)
- Cardano.Address.Style.Byron: ($sel:derivationPath:Byron) :: Byron depth key -> DerivationPath depth
- Cardano.Address.Style.Byron: ($sel:getKey:Byron) :: Byron depth key -> key
- Cardano.Address.Style.Byron: ($sel:payloadPassphrase:Byron) :: Byron depth key -> ScrubbedBytes
- Cardano.Address.Style.Byron: [$sel:infoAddressRoot:AddressInfo] :: AddressInfo -> !ByteString
- Cardano.Address.Style.Byron: [$sel:infoNetworkTag:AddressInfo] :: AddressInfo -> !Maybe NetworkTag
- Cardano.Address.Style.Byron: [$sel:infoPayload:AddressInfo] :: AddressInfo -> !PayloadInfo
- Cardano.Address.Style.Shelley: [$sel:infoAddressType:AddressInfo] :: AddressInfo -> !Word8
- Cardano.Address.Style.Shelley: [$sel:infoNetworkTag:AddressInfo] :: AddressInfo -> !NetworkTag
- Cardano.Address.Style.Shelley: [$sel:infoSpendingKeyHash:AddressInfo] :: AddressInfo -> !Maybe ByteString
- Cardano.Address.Style.Shelley: [$sel:infoSpendingScriptHash:AddressInfo] :: AddressInfo -> !Maybe ByteString
- Cardano.Address.Style.Shelley: [$sel:infoStakeKeyHash:AddressInfo] :: AddressInfo -> !Maybe ByteString
- Cardano.Address.Style.Shelley: [$sel:infoStakeReference:AddressInfo] :: AddressInfo -> !Maybe ReferenceInfo
- Cardano.Address.Style.Shelley: [$sel:infoStakeScriptHash:AddressInfo] :: AddressInfo -> !Maybe ByteString
+ Cardano.Address.Style.Byron: [infoAddressRoot] :: AddressInfo -> !ByteString
+ Cardano.Address.Style.Byron: [infoNetworkTag] :: AddressInfo -> !Maybe NetworkTag
+ Cardano.Address.Style.Byron: [infoPayload] :: AddressInfo -> !PayloadInfo
+ Cardano.Address.Style.Byron: derivationPath :: Byron depth key -> DerivationPath depth
+ Cardano.Address.Style.Byron: getKey :: Byron depth key -> key
+ Cardano.Address.Style.Byron: payloadPassphrase :: Byron depth key -> ScrubbedBytes
+ Cardano.Address.Style.Shelley: [infoAddressType] :: AddressInfo -> !Word8
+ Cardano.Address.Style.Shelley: [infoNetworkTag] :: AddressInfo -> !NetworkTag
+ Cardano.Address.Style.Shelley: [infoSpendingKeyHash] :: AddressInfo -> !Maybe ByteString
+ Cardano.Address.Style.Shelley: [infoSpendingScriptHash] :: AddressInfo -> !Maybe ByteString
+ Cardano.Address.Style.Shelley: [infoStakeKeyHash] :: AddressInfo -> !Maybe ByteString
+ Cardano.Address.Style.Shelley: [infoStakeReference] :: AddressInfo -> !Maybe ReferenceInfo
+ Cardano.Address.Style.Shelley: [infoStakeScriptHash] :: AddressInfo -> !Maybe ByteString
+ Cardano.Mnemonic: data Dictionary
+ Cardano.Mnemonic: mkMnemonicWithDict :: forall (mw :: Nat) (ent :: Nat) (csz :: Nat). (ConsistentEntropy ent mw csz, EntropySize mw ~ ent) => [Text] -> Dictionary -> Either (MkMnemonicError csz) (Mnemonic mw)
+ Cardano.Mnemonic: mnemonicToTextWithDict :: forall (mw :: Nat). Mnemonic mw -> Dictionary -> [Text]
- Cardano.Address: class PaymentAddress key => DelegationAddress key
+ Cardano.Address: class PaymentAddress key => DelegationAddress (key :: Depth -> Type -> Type)
- Cardano.Address: class HasNetworkDiscriminant key => PaymentAddress key
+ Cardano.Address: class HasNetworkDiscriminant key => PaymentAddress (key :: Depth -> Type -> Type)
- Cardano.Address: class PaymentAddress key => PointerAddress key
+ Cardano.Address: class PaymentAddress key => PointerAddress (key :: Depth -> Type -> Type)
- Cardano.Address: class HasNetworkDiscriminant key => StakeAddress key
+ Cardano.Address: class HasNetworkDiscriminant key => StakeAddress (key :: Depth -> Type -> Type)
- Cardano.Address.Derivation: coerceWholeDomainIndex :: Index ty depth0 -> Index 'WholeDomain depth1
+ Cardano.Address.Derivation: coerceWholeDomainIndex :: forall (ty :: DerivationType) (depth0 :: Depth) (depth1 :: Depth). Index ty depth0 -> Index 'WholeDomain depth1
- Cardano.Address.Derivation: indexFromWord32 :: forall ix derivationType depth. (ix ~ Index derivationType depth, Bounded ix) => Word32 -> Maybe ix
+ Cardano.Address.Derivation: indexFromWord32 :: forall ix (derivationType :: DerivationType) (depth :: Depth). (ix ~ Index derivationType depth, Bounded ix) => Word32 -> Maybe ix
- Cardano.Address.Derivation: nextIndex :: forall ix derivationType depth. (ix ~ Index derivationType depth, Bounded ix) => ix -> Maybe ix
+ Cardano.Address.Derivation: nextIndex :: forall ix (derivationType :: DerivationType) (depth :: Depth). (ix ~ Index derivationType depth, Bounded ix) => ix -> Maybe ix
- Cardano.Address.Derivation: type AccountIndexDerivationType key :: DerivationType;
+ Cardano.Address.Derivation: type AccountIndexDerivationType (key :: Depth -> Type -> Type) :: DerivationType;
- Cardano.Address.Derivation: type AddressIndexDerivationType key :: DerivationType;
+ Cardano.Address.Derivation: type AddressIndexDerivationType (key :: Depth -> Type -> Type) :: DerivationType;
- Cardano.Address.Derivation: type SecondFactor key :: Type;
+ Cardano.Address.Derivation: type SecondFactor (key :: Depth -> Type -> Type);
- Cardano.Address.Derivation: type WithRole key :: Type;
+ Cardano.Address.Derivation: type WithRole (key :: Depth -> Type -> Type);
- Cardano.Address.Derivation: wholeDomainIndex :: Word32 -> Index 'WholeDomain depth
+ Cardano.Address.Derivation: wholeDomainIndex :: forall (depth :: Depth). Word32 -> Index 'WholeDomain depth
- Cardano.Address.Internal: data () => DeserialiseFailure
+ Cardano.Address.Internal: data DeserialiseFailure
- Cardano.Address.Script: ActiveFromSlot :: Natural -> Script (elem :: Type)
+ Cardano.Address.Script: ActiveFromSlot :: Natural -> Script elem
- Cardano.Address.Script: ActiveUntilSlot :: Natural -> Script (elem :: Type)
+ Cardano.Address.Script: ActiveUntilSlot :: Natural -> Script elem
- Cardano.Address.Script: RequireAllOf :: ![Script elem] -> Script (elem :: Type)
+ Cardano.Address.Script: RequireAllOf :: ![Script elem] -> Script elem
- Cardano.Address.Script: RequireAnyOf :: ![Script elem] -> Script (elem :: Type)
+ Cardano.Address.Script: RequireAnyOf :: ![Script elem] -> Script elem
- Cardano.Address.Script: RequireSignatureOf :: !elem -> Script (elem :: Type)
+ Cardano.Address.Script: RequireSignatureOf :: !elem -> Script elem
- Cardano.Address.Script: RequireSomeOf :: Word8 -> ![Script elem] -> Script (elem :: Type)
+ Cardano.Address.Script: RequireSomeOf :: Word8 -> ![Script elem] -> Script elem
- Cardano.Address.Script: data Script (elem :: Type)
+ Cardano.Address.Script: data Script elem
- Cardano.Address.Style.Byron: inspectAddress :: forall m. MonadThrow m => Maybe XPub -> Address -> m Value
+ Cardano.Address.Style.Byron: inspectAddress :: MonadThrow m => Maybe XPub -> Address -> m Value
- Cardano.Address.Style.Byron: inspectByronAddress :: forall m. MonadThrow m => Maybe XPub -> Address -> m Value
+ Cardano.Address.Style.Byron: inspectByronAddress :: MonadThrow m => Maybe XPub -> Address -> m Value
- Cardano.Address.Style.Byron: liftXPrv :: XPub -> DerivationPath depth -> XPrv -> Byron depth XPrv
+ Cardano.Address.Style.Byron: liftXPrv :: forall (depth :: Depth). XPub -> DerivationPath depth -> XPrv -> Byron depth XPrv
- Cardano.Address.Style.Byron: liftXPub :: XPub -> DerivationPath depth -> XPub -> Byron depth XPub
+ Cardano.Address.Style.Byron: liftXPub :: forall (depth :: Depth). XPub -> DerivationPath depth -> XPub -> Byron depth XPub
- Cardano.Address.Style.Byron: type family DerivationPath (depth :: Depth) :: Type
+ Cardano.Address.Style.Byron: type family DerivationPath (depth :: Depth)
- Cardano.Address.Style.Icarus: liftXPrv :: XPrv -> Icarus depth XPrv
+ Cardano.Address.Style.Icarus: liftXPrv :: forall (depth :: Depth). XPrv -> Icarus depth XPrv
- Cardano.Address.Style.Icarus: liftXPub :: XPub -> Icarus depth XPub
+ Cardano.Address.Style.Icarus: liftXPub :: forall (depth :: Depth). XPub -> Icarus depth XPub
- Cardano.Address.Style.Shared: liftXPrv :: XPrv -> Shared depth XPrv
+ Cardano.Address.Style.Shared: liftXPrv :: forall (depth :: Depth). XPrv -> Shared depth XPrv
- Cardano.Address.Style.Shared: liftXPub :: XPub -> Shared depth XPub
+ Cardano.Address.Style.Shared: liftXPub :: forall (depth :: Depth). XPub -> Shared depth XPub
- Cardano.Address.Style.Shelley: liftPub :: Pub -> Shelley depth Pub
+ Cardano.Address.Style.Shelley: liftPub :: forall (depth :: Depth). Pub -> Shelley depth Pub
- Cardano.Address.Style.Shelley: liftXPrv :: XPrv -> Shelley depth XPrv
+ Cardano.Address.Style.Shelley: liftXPrv :: forall (depth :: Depth). XPrv -> Shelley depth XPrv
- Cardano.Address.Style.Shelley: liftXPub :: XPub -> Shelley depth XPub
+ Cardano.Address.Style.Shelley: liftXPub :: forall (depth :: Depth). XPub -> Shelley depth XPub
- Cardano.Codec.Cbor: deserialiseCbor :: (forall s. Decoder s a) -> ByteString -> Either DeserialiseFailure a
+ Cardano.Codec.Cbor: deserialiseCbor :: (forall s. () => Decoder s a) -> ByteString -> Either DeserialiseFailure a
- Cardano.Codec.Cbor: unsafeDeserialiseCbor :: HasCallStack => (forall s. Decoder s a) -> ByteString -> a
+ Cardano.Codec.Cbor: unsafeDeserialiseCbor :: HasCallStack => (forall s. () => Decoder s a) -> ByteString -> a
- Cardano.Mnemonic: ErrDictionary :: DictionaryError -> MkMnemonicError csz
+ Cardano.Mnemonic: ErrDictionary :: DictionaryError -> MkMnemonicError (csz :: Nat)
- Cardano.Mnemonic: ErrEntropy :: EntropyError csz -> MkMnemonicError csz
+ Cardano.Mnemonic: ErrEntropy :: EntropyError csz -> MkMnemonicError (csz :: Nat)
- Cardano.Mnemonic: ErrMnemonicWords :: MnemonicWordsError -> MkMnemonicError csz
+ Cardano.Mnemonic: ErrMnemonicWords :: MnemonicWordsError -> MkMnemonicError (csz :: Nat)
- Cardano.Mnemonic: UnexpectedEntropyError :: EntropyError csz -> MnemonicException csz
+ Cardano.Mnemonic: UnexpectedEntropyError :: EntropyError csz -> MnemonicException (csz :: Nat)
- Cardano.Mnemonic: [SomeMnemonic] :: forall mw. KnownNat mw => Mnemonic mw -> SomeMnemonic
+ Cardano.Mnemonic: [SomeMnemonic] :: forall (mw :: Nat). KnownNat mw => Mnemonic mw -> SomeMnemonic
- Cardano.Mnemonic: data () => Entropy (n :: Nat)
+ Cardano.Mnemonic: data Entropy (n :: Nat)
- Cardano.Mnemonic: data MkMnemonicError csz
+ Cardano.Mnemonic: data MkMnemonicError (csz :: Nat)
- Cardano.Mnemonic: entropyToBytes :: Entropy n -> ScrubbedBytes
+ Cardano.Mnemonic: entropyToBytes :: forall (n :: Nat). Entropy n -> ScrubbedBytes
- Cardano.Mnemonic: entropyToMnemonic :: forall mw ent csz. (ValidMnemonicSentence mw, ValidEntropySize ent, ValidChecksumSize ent csz, ent ~ EntropySize mw, mw ~ MnemonicWords ent) => Entropy ent -> Mnemonic mw
+ Cardano.Mnemonic: entropyToMnemonic :: forall (mw :: Nat) (ent :: Nat) (csz :: Nat). (ValidMnemonicSentence mw, ValidEntropySize ent, ValidChecksumSize ent csz, ent ~ EntropySize mw, mw ~ MnemonicWords ent) => Entropy ent -> Mnemonic mw
- Cardano.Mnemonic: genEntropy :: forall (ent :: Nat) csz. (ValidEntropySize ent, ValidChecksumSize ent csz) => IO (Entropy ent)
+ Cardano.Mnemonic: genEntropy :: forall (ent :: Nat) (csz :: Nat). (ValidEntropySize ent, ValidChecksumSize ent csz) => IO (Entropy ent)
- Cardano.Mnemonic: mkEntropy :: forall (ent :: Nat) csz. (ValidEntropySize ent, ValidChecksumSize ent csz) => ScrubbedBytes -> Either (EntropyError csz) (Entropy ent)
+ Cardano.Mnemonic: mkEntropy :: forall (ent :: Nat) (csz :: Nat). (ValidEntropySize ent, ValidChecksumSize ent csz) => ScrubbedBytes -> Either (EntropyError csz) (Entropy ent)
- Cardano.Mnemonic: mkMnemonic :: forall (mw :: Nat) (ent :: Nat) csz. (ConsistentEntropy ent mw csz, EntropySize mw ~ ent) => [Text] -> Either (MkMnemonicError csz) (Mnemonic mw)
+ Cardano.Mnemonic: mkMnemonic :: forall (mw :: Nat) (ent :: Nat) (csz :: Nat). (ConsistentEntropy ent mw csz, EntropySize mw ~ ent) => [Text] -> Either (MkMnemonicError csz) (Mnemonic mw)
- Cardano.Mnemonic: mnemonicToText :: Mnemonic mw -> [Text]
+ Cardano.Mnemonic: mnemonicToText :: forall (mw :: Nat). Mnemonic mw -> [Text]
- Cardano.Mnemonic: newtype MnemonicException csz
+ Cardano.Mnemonic: newtype MnemonicException (csz :: Nat)
Files
- CONTRIBUTING.md +8/−2
- ChangeLog.md +7/−0
- README.md +19/−2
- cardano-addresses.cabal +11/−2
- lib/Cardano/Address.hs +3/−3
- lib/Cardano/Address/Derivation.hs +2/−2
- lib/Cardano/Address/KeyHash.hs +35/−9
- lib/Cardano/Address/Script.hs +10/−5
- lib/Cardano/Address/Script/Parser.hs +15/−11
- lib/Cardano/Address/Style/Byron.hs +40/−30
- lib/Cardano/Address/Style/Icarus.hs +92/−69
- lib/Cardano/Address/Style/Shared.hs +24/−18
- lib/Cardano/Address/Style/Shelley.hs +92/−80
- lib/Cardano/Codec/Bech32/Prefixes.hs +67/−3
- lib/Cardano/Codec/Cbor.hs +48/−48
- lib/Cardano/Dictionary.hs +57/−0
- lib/Cardano/Dictionary/English.hs +2079/−0
- lib/Cardano/Dictionary/French.hs +2079/−0
- lib/Cardano/Dictionary/Generic.hs +46/−0
- lib/Cardano/Dictionary/Italian.hs +2079/−0
- lib/Cardano/Dictionary/Japanese.hs +2079/−0
- lib/Cardano/Dictionary/Korean.hs +2079/−0
- lib/Cardano/Dictionary/Spanish.hs +2079/−0
- lib/Cardano/Mnemonic.hs +73/−27
- lib/Command/RecoveryPhrase/Generate.hs +17/−11
- lib/Data/Word7.hs +1/−0
- lib/Options/Applicative/MnemonicLanguage.hs +81/−0
- test/Cardano/Address/Style/ByronSpec.hs +2/−2
- test/Cardano/MnemonicSpec.hs +34/−0
- test/Test/Arbitrary.hs +31/−5
CONTRIBUTING.md view
@@ -15,13 +15,19 @@ The following people hold key responsibilities: * @disassembler is responsible for releases-* @Crypto2099 is responsible for compilation to JavaScript and CI+* @Crypto2099 is responsible for CI * @paweljakubas is responsible for the Haskell components Regular contributors for the Haskell components are -* @Anviking @HeinrichApfelmus @jonathanknowles @paweljakubas @paolino+* @Anviking @paweljakubas @paolino all of whom can merge PRs and be asked to review them. In addition, the CODEOWNERS file identifies specific reviewers who are required for PRs that affect specific components.++## Versioning standard+**Semantic Versioning** is adopted in the repository. This means that if we have, for example, version *0.4.1*, then+public API exposed by `cardano-addresses` is ensured to stay the same until *0.5.0* version.+Hence, versions *0.4.2*, *0.4.3*,... *0.4.x* are patches+with regards to *0.4.1* and client code of `cardano-addresses` is expected to stay intact and functioning correctly.
ChangeLog.md view
@@ -1,3 +1,10 @@+## [4.0.1] - 2025-10-30++### Added++- Support for other languages, i.e., `spanish`, `italian`, `french`, `korean` and `japanese` in mnemonic generation+- Extend upper bound `optparse-applicative` to `< 0.20`+ ## [4.0.0] - 2025-02-04 ### Added
README.md view
@@ -4,7 +4,6 @@ <p align="center"> <a href="https://github.com/IntersectMBO/cardano-addresses/releases"><img src="https://img.shields.io/github/v/release/IntersectMBO/cardano-addresses?color=%239b59b6&label=RELEASE&sort=semver&style=for-the-badge"/></a>- <a href="https://www.npmjs.com/package/cardano-addresses"><img src="https://img.shields.io/npm/v/cardano-addresses?color=%239b59b6&style=for-the-badge"/></a> <a href="https://IntersectMBO.github.io/cardano-addresses/coverage/hpc_index.html"><img src="https://IntersectMBO.github.io/cardano-addresses/coverage/badge.svg" /></a> <br> </p>@@ -39,6 +38,24 @@ ```console $ cardano-address recovery-phrase generate --size 15 > phrase.prv exercise club noble adult miracle awkward problem olympic puppy private goddess piano fatal fashion vacuum++$ cardano-address recovery-phrase generate --size 15 --language en+joke someone lesson napkin cloud crush cattle machine toddler auction until dumb nephew atom nest++$ cardano-address recovery-phrase generate --size 15 --language it+tetro assoluto velcro cullato prassi perdonato rifugio esercito placebo zanna sogno mitezza valoroso neutrale pranzo++$ cardano-address recovery-phrase generate --size 15 --language fr+maximal saisir gendarme gazon libre cinéma maigre sabre inexact brusque légal patience étude fable tronc++$ cardano-address recovery-phrase generate --size 15 --language es+freno taza luz ciego votar tabla ilusión pomada rasgo droga alga ocio flúor resumen tiempo++$ cardano-address recovery-phrase generate --size 15 --language ja+さつたば ようちえん せめる にさんかたんそ さめる おんだん ひんぱん いおん げどく ふいうち こうさい だんな もちろん のらねこ さつたば++$ cardano-address recovery-phrase generate --size 15 --language ko+번역 자연 수건 확인 양념 가장 운동 장점 주인 망원경 전자 한문 대응 진료 시즌 ``` @@ -933,7 +950,7 @@ 1. [MeshJS](https://github.com/MeshJS/mesh) 2. [blaze-cardano](https://github.com/butaneprotocol/blaze-cardano) -Alternatively one could lean back on release [4.0.0](https://github.com/IntersectMBO/cardano-addresses/releases/tag/4.0.0)+Alternatively one could lean back on release [3.9.0](https://github.com/IntersectMBO/cardano-addresses/releases/tag/3.9.0) where Javascript was still present. ## Contributing
cardano-addresses.cabal view
@@ -1,7 +1,7 @@ cabal-version: 1.12 name: cardano-addresses-version: 4.0.0+version: 4.0.1 synopsis: Utils for constructing a command-line on top of cardano-addresses. description: Please see the README on GitHub at <https://github.com/IntersectMBO/cardano-addresses> category: Cardano@@ -45,6 +45,14 @@ Cardano.Address.Style.Shelley Cardano.Codec.Bech32.Prefixes Cardano.Codec.Cbor+ Cardano.Dictionary+ Cardano.Dictionary.English+ Cardano.Dictionary.French+ Cardano.Dictionary.Generic+ Cardano.Dictionary.Italian+ Cardano.Dictionary.Japanese+ Cardano.Dictionary.Korean+ Cardano.Dictionary.Spanish Cardano.Mnemonic Codec.Binary.Encoding Command@@ -75,6 +83,7 @@ Options.Applicative.Derivation Options.Applicative.Discrimination Options.Applicative.Governance+ Options.Applicative.MnemonicLanguage Options.Applicative.MnemonicSize Options.Applicative.Public Options.Applicative.Script@@ -114,7 +123,7 @@ , hashable , memory >= 0.18.0 && < 0.19 , mtl >= 2.2.2- , optparse-applicative >= 0.18.1.0 && < 0.19+ , optparse-applicative >= 0.18.1.0 && < 0.20 , process >= 1.6.13.2 && < 1.7 , safe >= 0.3.19 && < 0.4 , template-haskell >= 2.16.0.0 && < 2.24
lib/Cardano/Address.hs view
@@ -90,9 +90,9 @@ } deriving stock (Generic, Show, Eq, Ord) instance NFData Address --- Unsafe constructor for easily lifting bytes inside an 'Address'.+-- | Unsafe constructor for easily lifting bytes inside an 'Address'. ----- /!\ Use at your own risks.+-- __Use at your own risks.__ unsafeMkAddress :: ByteString -> Address unsafeMkAddress = Address @@ -230,7 +230,7 @@ addressDiscrimination :: NetworkDiscriminant key -> AddressDiscrimination networkTag :: NetworkDiscriminant key -> NetworkTag --- Magic constant associated with a given network. This is mainly used in two+-- | Magic constant associated with a given network. This is mainly used in two -- places: -- -- (1) In 'Address' payloads, to discriminate addresses between networks.
lib/Cardano/Address/Derivation.hs view
@@ -356,10 +356,10 @@ -- Key Derivation -- --- | Key Depth in the derivation path, according to BIP-0039 / BIP-0044+-- | Key Depth in the derivation path, according to [BIP-0039](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki) and [BIP-0044](https://github.com/bitcoin/bips/blob/master/bip-0044.mediawiki). -- -- @--- root | purpose' | cointype' | account' | role | address@+-- root | purpose' | cointype' | account' | role | address -- 0th 1st 2nd 3rd 4th 5th -- @ --
lib/Cardano/Address/KeyHash.hs view
@@ -18,12 +18,17 @@ module Cardano.Address.KeyHash (+ -- * Types KeyHash (..) , KeyRole (..) , GovernanceType (..)++ -- * Conversions , keyHashFromBytes , keyHashFromText , keyHashToText++ -- * Errors , ErrKeyHashFromText , prettyErrKeyHashFromText ) where@@ -54,30 +59,51 @@ import qualified Data.ByteString as BS import qualified Data.Text.Encoding as T --- | Determines if one asks for deprecated HRP prefixes, '*_vkh' and '*_script'--- in accordance to CIP-0105 (on demand when flag 'cip-0105' is used) or uses default format--- specified in CIP-0129 (where additional byte is prepended to 28-byte hash).+-- | Determines if one asks for deprecated HRP prefixes, __*_vkh__ and __*_script__+-- in accordance to [CIP-0105](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0105) (on demand when flag 'cip-0105' is used) or uses default format+-- specified in [CIP-0129](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0129) (where additional byte is prepended to 28-byte hash). data GovernanceType = NoGovernance | CIP0129 | CIP0105 deriving (Eq, Show) --- | Determines the role a given key plays. The role basically can be mapped into derivation path+-- | Determines the role a given key plays.+--+-- The role basically can be mapped into derivation path -- which was used to derive it from the parent. Also it has a dedicated user facing HRP -- when presented in bech32 format - see 'keyHashToText' for more details.+-- -- Take notice that purpose/role (except 'Policy') are as defined below in derivation path:+--+-- @ -- m / purpose' / coin_type' / account_ix' / role / index+-- @+-- -- 'Policy' has a dedicated derivation path as follows:+--+-- @ -- m / purpose' / coin_type' / policy_ix'+-- @ --+--+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | KeyRole | purpose | role | CIP |--- ------------------------------------------------------------------------------------------------------------------------|+-- +==================+============+========+==============================================================================+ -- | PaymentShared | 1854H | 0,1 | [CIP-1854](https://github.com/cardano-foundation/CIPs/tree/master/CIP-1854) |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | DelegationShared | 1854H | 2 | [CIP-1854](https://github.com/cardano-foundation/CIPs/tree/master/CIP-1854) |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | Payment | 1852H | 0,1 | [CIP-1852](https://github.com/cardano-foundation/CIPs/tree/master/CIP-1852) |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | Delegation | 1852H | 2 | [CIP-0011](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0011) |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | Representative | 1852H | 3 | [CIP-0105](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0105) |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | CommitteeCold | 1852H | 4 | [CIP-0105](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0105) |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | CommitteeHot | 1852H | 5 | [CIP-0105](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0105) |+-- +------------------+------------+--------+------------------------------------------------------------------------------+ -- | Policy | 1855H | - | [CIP-1855](https://github.com/cardano-foundation/CIPs/tree/master/CIP-1855) |+-- +------------------+------------+--------+------------------------------------------------------------------------------++-- data KeyRole = PaymentShared | DelegationShared@@ -169,7 +195,7 @@ -- | Construct a 'KeyHash' from 'Text'. It should be -- Bech32 encoded text with one of following hrp:-+-- -- - `addr_shared_vkh` -- - `stake_shared_vkh` -- - `addr_vkh`@@ -196,7 +222,7 @@ -- - `drep_xvk` -- - `cc_cold_xvk` -- - `cc_hot_xvk`-+-- -- Raw keys will be hashed on the fly, whereas hash that are directly -- provided will remain as such. -- If if hex is encountered 'Unknown' policy key is assumed.@@ -306,7 +332,7 @@ checkBSLength bytes expLength = BS.length bytes == expLength --- Possible errors when deserializing a key hash from text.+-- | Possible errors when deserializing a key hash from text. -- -- @since 3.0.0 data ErrKeyHashFromText@@ -317,7 +343,7 @@ | ErrKeyHashFromTextInvalidHex Int deriving (Show, Eq) --- Possible errors when deserializing a key hash from text.+-- | Possible errors when deserializing a key hash from text. -- -- @since 3.0.0 prettyErrKeyHashFromText :: ErrKeyHashFromText -> String
lib/Cardano/Address/Script.hs view
@@ -238,13 +238,15 @@ -- One byte is prepended to script hash only in governance context. The rules how to contruct it are summarized -- below --+-- @ -- drep 0010.... -- hot 0000.... key type -- cold 0001.... -- -- scripthash ....0011 credential type+-- @ ----- This is on top of X_script, where X={drep, cc_hot, cc_hot}, which lacks the additional byte.+-- This is on top of @X_script@, where @X={drep, cc_hot, cc_hot}@, which lacks the additional byte. -- In `scriptHashFromText` we additionally -- support reading legacy X which also lacks the additional byte, and has the same payload as -- as the corresponding X_script.@@ -280,7 +282,9 @@ _ -> Nothing -- | Construct a 'ScriptHash' from 'Text'. It should be+-- -- Bech32 encoded text with one of following hrp:+-- -- - `script` -- - `drep` -- - `cc_cold`@@ -288,6 +292,7 @@ -- - `drep_script` -- - `cc_cold_script` -- - `cc_hot_script`+-- -- If if hex is encountered it is converted in rawly fashion -- -- @since 4.0.0@@ -345,7 +350,7 @@ checkBSLength bytes expLength = BS.length bytes == expLength --- Validation level. Required level does basic check that will make sure the script+-- | Validation level. Required level does basic check that will make sure the script -- is accepted in ledger. Recommended level collects a number of checks that will -- warn about dangerous, unwise and redundant things present in the script. --@@ -354,7 +359,7 @@ deriving (Show, Eq, Generic) instance NFData ValidationLevel --- Possible errors when deserializing a script hash from text.+-- | Possible errors when deserializing a script hash from text. -- -- @since 4.0.0 data ErrScriptHashFromText@@ -365,7 +370,7 @@ | ErrScriptHashFromTextInvalidHex deriving (Show, Eq) --- Possible errors when deserializing a script hash from text.+-- | Possible errors when deserializing a script hash from text. -- -- @since 4.0.0 prettyErrScriptHashFromText :: ErrScriptHashFromText -> String@@ -646,7 +651,7 @@ -- Internal -- --- Examples of Script jsons:+ -- Examples of Script jsons: --"addr_shared_vkh1zxt0uvrza94h3hv4jpv0ttddgnwkvdgeyq8jf9w30mcs6y8w3nq" --"stake_shared_vkh1nqc00hvlc6cq0sfhretk0rmzw8dywmusp8retuqnnxzajtzhjg5" --{ "all" : [ "addr_shared_vkh1zxt0uvrza94h3hv4jpv0ttddgnwkvdgeyq8jf9w30mcs6y8w3nq"
lib/Cardano/Address/Script/Parser.hs view
@@ -82,26 +82,30 @@ -- it valid. We assume here that the script could -- delivered from standard input. The examples below are self-explanatory: --+-- __Example__:+--+-- @ -- 1. requiring signature--- 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe+-- 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe ----- 2. 'any' for signature required--- any [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1]+-- 2. any for signature required+-- any [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1] ----- 3. 'all' signatures required--- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1]+-- 3. all signatures required+-- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1] ----- 4. 'at_least' 1 signature required--- at_least 1 [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1]+-- 4. at_least 1 signature required+-- at_least 1 [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1] -- -- 5. Nested script are supported--- at_least 1 [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1]]+-- at_least 1 [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1, 3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3f1]] -- 6. 1 signature required after slot number 120--- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_from 120]+-- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_from 120] -- 7. 1 signature required until slot number 150--- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_until 150]+-- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_until 150] -- 8. 1 signature required in slot interval <145, 150)--- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_from 145, active_until 150]+-- all [3c07030e36bfffe67e2e2ec09e5293d384637cd2f004356ef320f3fe, active_from 145, active_until 150]+-- @ -- -- Parser is insensitive to whitespaces. --
lib/Cardano/Address/Style/Byron.hs view
@@ -155,7 +155,7 @@ -- it was recommended and enforced to use Hardened for account derivation and Soft for payment -- key derivation from 2019 onwards. To sum up both account index and payment index can assume -- values from 0 to 4294967295 (ie. 0xFFFFFFFF)-+-- -- == Deprecation Notice -- -- Unless you have good reason to do so (like writing backward-compatible code@@ -206,36 +206,46 @@ (Index 'WholeDomain 'AccountK, Index 'WholeDomain 'PaymentK) {-# DEPRECATED DerivationPath "see 'Cardano.Address.Style.Icarus.Icarus'" #-} ++-- | Key Derivation ----- Key Derivation+-- __Example__: ----- === Generating a root key from 'SomeMnemonic'--- > :set -XOverloadedStrings--- > :set -XTypeApplications--- > :set -XDataKinds--- > :set -XFlexibleContexts--- > import Cardano.Mnemonic ( mkSomeMnemonic )--- > import Cardano.Address ( base58 )--- > import Cardano.Address.Derivation ( toXPub )--- > import qualified Cardano.Address.Style.Byron as Byron--- >--- > let (Right mw) = mkSomeMnemonic @'[12] ["moon","fox","ostrich","quick","cactus","raven","wasp","intact","first","ring","crumble","error"]--- > let rootK = Byron.genMasterKeyFromMnemonic mw :: Byron 'RootK XPrv+-- ==== Generating a root key from 'SomeMnemonic' ----- === Deriving child keys--- === Both accIx and addIx assume values from 0 to 4294967295 (ie. 0xFFFFFFFF)--- === In case of account one can get this bound via--- === let accIxMin = minBound @(Index 'WholeDomain 'AccountK)--- === let accIxMax = maxBound @(Index 'WholeDomain 'AccountK)--- > let Just accIx = wholeDomainIndex 0x80000000--- > let acctK = Byron.deriveAccountPrivateKey rootK accIx--- >--- > let Just addIx = wholeDomainIndex 0x80000014--- > let addrK = Byron.deriveAddressPrivateKey acctK addIx--- >--- > base58 $ Byron.paymentAddress Byron.byronMainnet (toXPub <$> addrK)--- > "DdzFFzCqrhsq3KjLtT51mESbZ4RepiHPzLqEhamexVFTJpGbCXmh7qSxnHvaL88QmtVTD1E1sjx8Z1ZNDhYmcBV38ZjDST9kYVxSkhcw"-+-- @+-- >>> :set -XOverloadedStrings+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> :set -XFlexibleContexts+-- >>> import Cardano.Mnemonic ( mkSomeMnemonic )+-- >>> import Cardano.Address ( base58 )+-- >>> import Cardano.Address.Derivation ( toXPub )+-- >>> import qualified Cardano.Address.Style.Byron as Byron+--+-- >>> let (Right mw) = mkSomeMnemonic @'[12] ["moon","fox","ostrich","quick","cactus","raven","wasp","intact","first","ring","crumble","error"]+-- >>> let rootK = Byron.genMasterKeyFromMnemonic mw :: Byron 'RootK XPrv+-- @+--+-- ==== Deriving child keys+--+-- Both `accIx` and `addIx` assume values from 0 to 4294967295 (ie. 0xFFFFFFFF)+-- In case of account one can get this bound via+--+-- @+-- let accIxMin = minBound @(Index 'WholeDomain 'AccountK)+-- let accIxMax = maxBound @(Index 'WholeDomain 'AccountK)+--+-- >>> let Just accIx = wholeDomainIndex 0x80000000+-- >>> let acctK = Byron.deriveAccountPrivateKey rootK accIx+--+-- >>> let Just addIx = wholeDomainIndex 0x80000014+-- >>> let addrK = Byron.deriveAddressPrivateKey acctK addIx+--+-- >>> base58 $ Byron.paymentAddress Byron.byronMainnet (toXPub <$> addrK)+-- "DdzFFzCqrhsq3KjLtT51mESbZ4RepiHPzLqEhamexVFTJpGbCXmh7qSxnHvaL88QmtVTD1E1sjx8Z1ZNDhYmcBV38ZjDST9kYVxSkhcw"+-- @+-- instance Internal.GenMasterKey Byron where type SecondFactor Byron = () @@ -318,8 +328,8 @@ -- Addresses -- -- $addresses--- === Generating a 'PaymentAddress' --+ -- | Possible errors from inspecting a Byron address -- -- @since 3.0.0@@ -345,7 +355,7 @@ FailedToDecryptPath -> "Failed to decrypt derivation path" --- Determines whether an 'Address' is a Byron address.+-- | Determines whether an 'Address' is a Byron address. -- -- Returns a JSON object with information about the address, or throws -- 'ErrInspectAddress' if the address isn't a byron address.
lib/Cardano/Address/Style/Icarus.hs view
@@ -94,7 +94,12 @@ import Cardano.Address.Style.Byron ( byronMainnet, byronPreprod, byronPreview, byronStaging, byronTestnet ) import Cardano.Mnemonic- ( SomeMnemonic (..), entropyToBytes, mnemonicToEntropy, mnemonicToText )+ ( SomeMnemonic (..)+ , english+ , entropyToBytes+ , mnemonicToEntropy+ , mnemonicToTextWithDict+ ) import Codec.Binary.Encoding ( AbstractEncoding (..), encode ) import Control.DeepSeq@@ -155,8 +160,8 @@ -- We call 'Icarus' addresses the new format of Cardano addresses which came -- after 'Cardano.Address.Style.Byron.Byron'. This is the format initially used in /Yoroi/ -- and now also used by /Daedalus/.---- | A cryptographic key for sequential-scheme address derivation, with+--+-- A cryptographic key for sequential-scheme address derivation, with -- phantom-types to disambiguate key types. -- -- @@@ -177,6 +182,9 @@ deriving instance (Functor (Icarus depth)) instance (NFData key) => NFData (Icarus depth key) +-- | Role the key assumes+--+-- @since 1.0.0 data Role = UTxOExternal | UTxOInternal@@ -195,41 +203,45 @@ UTxOExternal -> 0 UTxOInternal -> 1 ------ Key Derivation+-- | Key Derivation -- -- $keyDerivation ----- === Generating a root key from 'SomeMnemonic'--- > :set -XOverloadedStrings--- > :set -XTypeApplications--- > :set -XDataKinds--- > :set -XFlexibleContexts--- > import Cardano.Mnemonic ( mkSomeMnemonic )--- > import Cardano.Address ( base58 )--- > import Cardano.Address.Derivation ( toXPub )--- > import qualified Cardano.Address.Style.Icarus as Icarus--- >--- > let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]--- > let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes--- > let rootK = Icarus.genMasterKeyFromMnemonic mw sndFactor :: Icarus 'RootK XPrv+-- __Example__: ----- === Deriving child keys+-- ==== Generating a root key from 'SomeMnemonic' --+-- @+-- >>> :set -XOverloadedStrings+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> :set -XFlexibleContexts+-- >>> import Cardano.Mnemonic ( mkSomeMnemonic )+-- >>> import Cardano.Address ( base58 )+-- >>> import Cardano.Address.Derivation ( toXPub )+-- >>> import qualified Cardano.Address.Style.Icarus as Icarus+-- >>>+-- >>> let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]+-- >>> let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes+-- >>> let rootK = Icarus.genMasterKeyFromMnemonic mw sndFactor :: Icarus 'RootK XPrv+-- @+--+-- ==== Deriving child keys+-- -- Let's consider the following 3rd, 4th and 5th derivation paths @0'\/0\/14@--- === accIx assumes values from 2147483648 (ie. 0x80000000) to 4294967295 (ie. 0xFFFFFFFF)--- === addIx assume values from 0 to 2147483647 (ie. 7FFFFFFF)--- > let Just accIx = indexFromWord32 0x80000000--- === this is the same as--- > let accIx = minBound @(Index 'Hardened 'AccountK)--- > let acctK = Icarus.deriveAccountPrivateKey rootK accIx--- >--- > let Just addIx = indexFromWord32 0x00000014--- > let addrK = Icarus.deriveAddressPrivateKey acctK Icarus.UTxOExternal addIx--- >--- > base58 $ Icarus.paymentAddress Icarus.icarusMainnet (toXPub <$> addrK)--- >"Ae2tdPwUPEZ8XpsjgQPH2cJdtohkYrxJ3i5y6mVsrkZZkdpdn6mnr4Rt6wG"-+-- accIx assumes values from 2147483648 (ie. 0x80000000) to 4294967295 (ie. 0xFFFFFFFF)+-- addIx assume values from 0 to 2147483647 (ie. 7FFFFFFF)+--+-- @+-- >>> let Just accIx = indexFromWord32 0x80000000+-- // this is the same as+-- >>> let accIx = minBound @(Index 'Hardened 'AccountK)+-- >>> let acctK = Icarus.deriveAccountPrivateKey rootK accIx+-- >>> let Just addIx = indexFromWord32 0x00000014+-- >>> let addrK = Icarus.deriveAddressPrivateKey acctK Icarus.UTxOExternal addIx+-- >>> base58 $ Icarus.paymentAddress Icarus.icarusMainnet (toXPub <$> addrK)+-- >>>"Ae2tdPwUPEZ8XpsjgQPH2cJdtohkYrxJ3i5y6mVsrkZZkdpdn6mnr4Rt6wG"+-- @ instance Internal.GenMasterKey Icarus where type SecondFactor Icarus = ScrubbedBytes @@ -349,8 +361,8 @@ -- Addresses -- -- $addresses--- === Generating a 'PaymentAddress' --+ -- | Possible errors from inspecting a Shelley address -- -- @since 3.0.0@@ -373,7 +385,7 @@ DeserialiseError e -> format "Deserialisation error (was: {})" (show e) --- Determines whether an 'Address' is an Icarus address.+-- | Determines whether an 'Address' is an Icarus address. -- -- Returns a JSON object with information about the address, or throws -- 'ErrInspectAddress' if the address isn't an icarus address.@@ -383,52 +395,63 @@ inspectIcarusAddress = inspectAddress {-# DEPRECATED inspectIcarusAddress "use qualified 'inspectAddress' instead." #-} --- | Determines whether an 'Address' is an Icarus address.+-- | How to go from address root and the payment address ----- Returns a JSON object with information about the address, or throws--- 'ErrInspectAddress' if the address isn't an icarus address.--- λ> :set -XOverloadedStrings--- λ> :set -XTypeApplications--- λ> :set -XDataKinds--- λ> :set -XFlexibleContexts--- λ> import Cardano.Mnemonic ( mkSomeMnemonic )--- λ> import qualified Cardano.Address.Style.Icarus as Icarus--- λ> import Cardano.Address.Derivation ( toXPub )--- λ> import Cardano.Address ( base58 )--- λ> let (Right mw) = mkSomeMnemonic @'[12] ["moon","fox","ostrich","quick","cactus","raven","wasp","intact","first","ring","crumble","error"]--- λ> let sndFactor = mempty--- λ> let rootK = Icarus.genMasterKeyFromMnemonic mw sndFactor :: Icarus 'RootK XPrv--- λ> let Just accIx = indexFromWord32 0x80000000--- λ> let acctK = Icarus.deriveAccountPrivateKey rootK accIx--- λ> let Just addIx = indexFromWord32 0x00000014--- λ> let addrK = Icarus.deriveAddressPrivateKey acctK Icarus.UTxOExternal addIx--- λ> (toXPub <$> addrK)+-- ==== __Example__:+--+-- @+-- >>> :set -XOverloadedStrings+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> :set -XFlexibleContexts+-- >>> import Cardano.Mnemonic ( mkSomeMnemonic )+-- >>> import qualified Cardano.Address.Style.Icarus as Icarus+-- >>> import Cardano.Address.Derivation ( toXPub )+-- >>> import Cardano.Address ( base58 )+-- >>> let (Right mw) = mkSomeMnemonic @'[12] ["moon","fox","ostrich","quick","cactus","raven","wasp","intact","first","ring","crumble","error"]+-- >>> let sndFactor = mempty+-- >>> let rootK = Icarus.genMasterKeyFromMnemonic mw sndFactor :: Icarus 'RootK XPrv+-- >>> let Just accIx = indexFromWord32 0x80000000+-- >>> let acctK = Icarus.deriveAccountPrivateKey rootK accIx+-- >>> let Just addIx = indexFromWord32 0x00000014+-- >>> let addrK = Icarus.deriveAddressPrivateKey acctK Icarus.UTxOExternal addIx+-- >>> (toXPub <$> addrK) -- Icarus {getKey = XPub {xpubPublicKey = "\223\148\230\206\187\135\253\SO\151\216\183\210]}s:\151\134\174q\173\207\184\202\EM\176\170\220\216\235\&1\243", xpubChaincode = ChainCode "\\\160\196\&8~\208\165\241\138\SOH\222\ETX*\150&\214\185\196 \153\DC2\167\165\243\155\136\228\255\229~d\253"}}--- λ> base58 $ Icarus.paymentAddress icarusMainnet (toXPub <$> addrK)+-- >>> base58 $ Icarus.paymentAddress icarusMainnet (toXPub <$> addrK) -- "Ae2tdPwUPEYyzBcNXkFWKywMiZ9eSd96dQxhBQd371foiH16Y7gFgLBj9G5" ----- λ> import Cardano.Codec.Cbor--- λ> import Crypto.Hash.Algorithms (Blake2b_224, SHA3_256)--- λ> import Crypto.Hash (hash)--- λ> let blake2b224 = hash @_ @Blake2b_224--- λ> let sha3256 = hash @_ @SHA3_256--- λ> import qualified Codec.CBOR.Encoding as CBOR--- λ> let encodeXPub = CBOR.encodeBytes (xpubToBytes . Icarus.getKey $ icarusAddrKPub)--- λ> let encodeSpendingData = CBOR.encodeListLen 2 <> CBOR.encodeWord8 0 <> encodeXPub--- λ> let encodeAttrs = CBOR.encodeMapLen 0--- λ> import qualified Data.ByteArray as BA--- λ> let rootAddr = BA.convert $ blake2b224 $ sha3256 $ CBOR.toStrictByteString $ mempty <> CBOR.encodeListLen 3 <> CBOR.encodeWord8 0 <> encodeSpendingData <> encodeAttrs--- λ> encode EBase16 rootAddr+-- >>> import Cardano.Codec.Cbor+-- >>> import Crypto.Hash.Algorithms (Blake2b_224, SHA3_256)+-- >>> import Crypto.Hash (hash)+-- >>> let blake2b224 = hash @_ @Blake2b_224+-- >>> let sha3256 = hash @_ @SHA3_256+-- >>> import qualified Codec.CBOR.Encoding as CBOR+-- >>> let encodeXPub = CBOR.encodeBytes (xpubToBytes . Icarus.getKey $ icarusAddrKPub)+-- >>> let encodeSpendingData = CBOR.encodeListLen 2 <> CBOR.encodeWord8 0 <> encodeXPub+-- >>> let encodeAttrs = CBOR.encodeMapLen 0+-- >>> import qualified Data.ByteArray as BA+-- >>> let rootAddr = BA.convert $ blake2b224 $ sha3256 $ CBOR.toStrictByteString $ mempty <> CBOR.encodeListLen 3 <> CBOR.encodeWord8 0 <> encodeSpendingData <> encodeAttrs+-- >>> encode EBase16 rootAddr -- "1fdde02c9e087474aa7ab0a46ae2f6d316a92cd0fa2d4e8b1c2eebdf"+-- @ ----- $ echo Ae2tdPwUPEYyzBcNXkFWKywMiZ9eSd96dQxhBQd371foiH16Y7gFgLBj9G5 | cardano-address address inspect+-- Usage from the command-line:+--+-- @+-- echo Ae2tdPwUPEYyzBcNXkFWKywMiZ9eSd96dQxhBQd371foiH16Y7gFgLBj9G5 | cardano-address address inspect -- { -- "stake_reference": "none", -- "address_style": "Icarus", -- "address_root": "1fdde02c9e087474aa7ab0a46ae2f6d316a92cd0fa2d4e8b1c2eebdf", -- "network_tag": null, -- "address_type": 8---}+-- }+-- @++-- | Determines whether an 'Address' is an Icarus address.+--+-- Returns a JSON object with information about the address, or throws+-- 'ErrInspectAddress' if the address isn't an icarus address. -- @since 2.0.0 inspectAddress :: MonadThrow m => Address -> m Json.Value inspectAddress = either throwM (pure . toJSON) . eitherInspectAddress@@ -619,7 +642,7 @@ let seed = pbkdf2HmacSha512 $ T.encodeUtf8 $ T.intercalate " "- $ mnemonicToText mw+ $ mnemonicToTextWithDict mw english -- NOTE -- SLIP-0010 refers to `iR` as the chain code. Here however, the chain code
@@ -123,28 +123,34 @@ -- -- $keyDerivation ----- === Generating a root key from 'SomeMnemonic'--- > :set -XOverloadedStrings--- > :set -XTypeApplications--- > :set -XDataKinds--- > import Cardano.Mnemonic ( mkSomeMnemonic )--- >--- > let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]--- > let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes--- > let rootK = genMasterKeyFromMnemonic mw sndFactor :: Shared 'RootK XPrv+-- ==== Generating a root key from 'SomeMnemonic' ----- === Deriving child keys+-- @+-- >>> :set -XOverloadedStrings+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> import Cardano.Mnemonic ( mkSomeMnemonic )+-- @ --+-- @+-- >>> let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]+-- >>> let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes+-- >>> let rootK = genMasterKeyFromMnemonic mw sndFactor :: Shared 'RootK XPrv+-- @+--+-- ==== Deriving child keys+-- -- Let's consider the following 3rd, 4th and 5th derivation paths @0'\/0\/14@ ----- > let Just accIx = indexFromWord32 0x80000000--- > let acctK = deriveAccountPrivateKey rootK accIx--- >--- > let Just addIx = indexFromWord32 0x00000014--- > let addrK = deriveAddressPrivateKey acctK UTxOExternal addIx+-- @+-- >>> let Just accIx = indexFromWord32 0x80000000+-- >>> let acctK = deriveAccountPrivateKey rootK accIx+-- >>>+-- >>> let Just addIx = indexFromWord32 0x00000014+-- >>> let addrK = deriveAddressPrivateKey acctK UTxOExternal addIx ----- > let stakeK = deriveDelegationPrivateKey acctK-+-- >>> let stakeK = deriveDelegationPrivateKey acctK+-- @ instance Internal.GenMasterKey Shared where type SecondFactor Shared = ScrubbedBytes @@ -302,7 +308,7 @@ hashKey :: KeyRole -> Shared key XPub -> KeyHash hashKey cred = KeyHash cred . hashCredential . xpubPublicKey . getKey --- Purpose is a constant set to 1854' (or 0x8000073e) following the+-- | Purpose is a constant set to 1854' (or 0x8000073e) following the -- CIP-1854 Multi-signatures HD Wallets -- -- Hardened derivation is used at this level.
lib/Cardano/Address/Style/Shelley.hs view
@@ -190,21 +190,20 @@ -- - 'pointerAddress': for constructing delegation addresses from payment credential (public key or script) and chain pointer -- - 'stakeAddress': for constructing reward accounts from stake credential (public key or script) --- | A cryptographic key for sequential-scheme address derivation, with--- phantom-types to disambiguate key types.------ @--- let rootPrivateKey = Shelley 'RootK XPrv--- let accountPubKey = Shelley 'AccountK XPub--- let addressPubKey = Shelley 'PaymentK XPub--- @------ @since 2.0.0+{- | A cryptographic key for sequential-scheme address derivation, with+ phantom-types to disambiguate key types.++@+let rootPrivateKey = Shelley 'RootK XPrv+let accountPubKey = Shelley 'AccountK XPub+let addressPubKey = Shelley 'PaymentK XPub+@++@since 2.0.0+-} newtype Shelley (depth :: Depth) key = Shelley- { getKey :: key- -- ^ Extract the raw 'XPrv' or 'XPub' wrapped by this type.- --- -- @since 1.0.0+ {+ getKey :: key } deriving stock (Generic, Show, Eq) @@ -213,21 +212,20 @@ -- | Describe what the keys within an account are used for. ----- - UTxOExternal: used for public addresses sent to other parties for receiving money.--- - UTxOInternal: generated by wallet software to send change back to the wallet.--- - Stake: used for stake key(s) and delegation.--- - DRep: used for DRep key derivation--- - CCCold: used for constitutional committee cold key derivation--- - CCHot: used for constitutional committee hot key derivation--- -- @since 3.0.0 data Role = UTxOExternal+ -- ^Used for public addresses sent to other parties for receiving money. | UTxOInternal+ -- ^Generated by wallet software to send change back to the wallet. | Stake+ -- ^Used for stake key(s) and delegation. | DRep+ -- ^Used for DRep key derivation. | CCCold+ -- ^Used for constitutional committee cold key derivation | CCHot+ -- ^Used for constitutional committee hot key derivation deriving (Generic, Typeable, Show, Eq, Ord, Bounded) instance NFData Role@@ -256,28 +254,32 @@ -- -- $keyDerivation ----- === Generating a root key from 'SomeMnemonic'--- > :set -XOverloadedStrings--- > :set -XTypeApplications--- > :set -XDataKinds--- > import Cardano.Mnemonic ( mkSomeMnemonic )--- >--- > let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]--- > let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes--- > let rootK = genMasterKeyFromMnemonic mw sndFactor :: Shelley 'RootK XPrv+-- ==== Generating a root key from 'SomeMnemonic' ----- === Deriving child keys+-- @+-- >>> :set -XOverloadedStrings+-- >>> :set -XTypeApplications+-- >>> :set -XDataKinds+-- >>> import Cardano.Mnemonic ( mkSomeMnemonic ) --+-- >>> let (Right mw) = mkSomeMnemonic @'[15] ["network","empty","cause","mean","expire","private","finger","accident","session","problem","absurd","banner","stage","void","what"]+-- >>> let sndFactor = mempty -- Or alternatively, a second factor mnemonic transformed to bytes via someMnemonicToBytes+-- >>> let rootK = genMasterKeyFromMnemonic mw sndFactor :: Shelley 'RootK XPrv+-- @+--+-- ==== Deriving child keys+-- -- Let's consider the following 3rd, 4th and 5th derivation paths @0'\/0\/14@ ----- > let Just accIx = indexFromWord32 0x80000000--- > let acctK = deriveAccountPrivateKey rootK accIx--- >--- > let Just addIx = indexFromWord32 0x00000014--- > let addrK = deriveAddressPrivateKey acctK UTxOExternal addIx+-- @+-- >>> let Just accIx = indexFromWord32 0x80000000+-- >>> let acctK = deriveAccountPrivateKey rootK accIx ----- > let stakeK = deriveDelegationPrivateKey acctK-+-- >>> let Just addIx = indexFromWord32 0x00000014+-- >>> let addrK = deriveAddressPrivateKey acctK UTxOExternal addIx+--+-- >>> let stakeK = deriveDelegationPrivateKey acctK+-- @ instance Internal.GenMasterKey Shelley where type SecondFactor Shelley = ScrubbedBytes @@ -447,56 +449,66 @@ -- Addresses -- -- $addresses--- === Generating a 'PaymentAddress' from public key credential ----- > import Cardano.Address ( bech32 )--- > import Cardano.Address.Derivation ( toXPub )--- >--- > let (Right tag) = mkNetworkDiscriminant 1--- > let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)--- > bech32 $ paymentAddress tag paymentCredential--- > "addr1vxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdncxsce5t"+-- ==== Generating a 'PaymentAddress' from public key credential ----- === Generating a 'PaymentAddress' from script credential+-- @+-- >>> import Cardano.Address ( bech32 )+-- >>> import Cardano.Address.Derivation ( toXPub )+-- >>> let (Right tag) = mkNetworkDiscriminant 1+-- >>> let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)+-- >>> bech32 $ paymentAddress tag paymentCredential+-- >>> "addr1vxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdncxsce5t"+-- @ ----- > import Cardano.Address.Script.Parser ( scriptFromString )--- > import Cardano.Address.Script ( toScriptHash )--- > import Codec.Binary.Encoding ( encode )--- > import Data.Text.Encoding ( decodeUtf8 )--- >--- > let (Right tag) = mkNetworkDiscriminant 1--- > let verKey1 = "script_vkh18srsxr3khll7vl3w9mqfu55n6wzxxlxj7qzr2mhnyreluzt36ms"--- > let verKey2 = "script_vkh18srsxr3khll7vl3w9mqfu55n6wzxxlxj7qzr2mhnyrenxv223vj"--- > let scriptStr = "all [" ++ verKey1 ++ ", " ++ verKey2 ++ "]"--- > let (Right script) = scriptFromString scriptStr--- > let infoSpendingScriptHash@(ScriptHash bytes) = toScriptHash script--- > decodeUtf8 (encode EBase16 bytes)--- > "a015ae61075e25c3d9250bdcbc35c6557272127927ecf2a2d716e29f"--- > bech32 $ paymentAddress tag (PaymentFromScriptHash infoSpendingScriptHash)--- > "addr1wxspttnpqa0zts7ey59ae0p4ce2hyusj0yn7eu4z6utw98c9uxm83"+-- ==== Generating a 'PaymentAddress' from script credential ----- === Generating a 'DelegationAddress'+-- @+-- >>> import Cardano.Address.Script.Parser ( scriptFromString )+-- >>> import Cardano.Address.Script ( toScriptHash )+-- >>> import Codec.Binary.Encoding ( encode )+-- >>> import Data.Text.Encoding ( decodeUtf8 )+-- >>> let (Right tag) = mkNetworkDiscriminant 1+-- >>> let verKey1 = "script_vkh18srsxr3khll7vl3w9mqfu55n6wzxxlxj7qzr2mhnyreluzt36ms"+-- >>> let verKey2 = "script_vkh18srsxr3khll7vl3w9mqfu55n6wzxxlxj7qzr2mhnyrenxv223vj"+-- >>> let scriptStr = "all [" ++ verKey1 ++ ", " ++ verKey2 ++ "]"+-- >>> let (Right script) = scriptFromString scriptStr+-- >>> let infoSpendingScriptHash@(ScriptHash bytes) = toScriptHash script+-- >>> decodeUtf8 (encode EBase16 bytes)+-- "a015ae61075e25c3d9250bdcbc35c6557272127927ecf2a2d716e29f"+-- >>> bech32 $ paymentAddress tag (PaymentFromScriptHash infoSpendingScriptHash)+-- "addr1wxspttnpqa0zts7ey59ae0p4ce2hyusj0yn7eu4z6utw98c9uxm83"+-- @ ----- > let (Right tag) = mkNetworkDiscriminant 1--- > let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)--- > let delegationCredential = DelegationFromExtendedKey $ (toXPub <$> stakeK)--- > bech32 $ delegationAddress tag paymentCredential delegationCredential--- > "addr1qxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdn7nudck0fzve4346yytz3wpwv9yhlxt7jwuc7ytwx2vfkyqmkc5xa"+-- ==== Generating a 'DelegationAddress' ----- === Generating a 'PointerAddress'+-- @+-- >>> let (Right tag) = mkNetworkDiscriminant 1+-- >>> let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)+-- >>> let delegationCredential = DelegationFromExtendedKey $ (toXPub <$> stakeK)+-- >>> bech32 $ delegationAddress tag paymentCredential delegationCredential+-- "addr1qxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdn7nudck0fzve4346yytz3wpwv9yhlxt7jwuc7ytwx2vfkyqmkc5xa"+-- @ ----- > import Cardano.Address ( ChainPointer (..) )--- >--- > let (Right tag) = mkNetworkDiscriminant 1--- > let ptr = ChainPointer 123 1 2--- > let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)--- > bech32 $ pointerAddress tag paymentCredential ptr--- > "addr1gxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdnmmqypqfcp5um"+-- ==== Generating a 'PointerAddress' ----- === Generating a 'DelegationAddress' from using the same script credential in both payment and delegation--- > bech32 $ delegationAddress tag (PaymentFromScriptHash infoSpendingScriptHash) (DelegationFromScript infoSpendingScriptHash)--- > "addr1xxspttnpqa0zts7ey59ae0p4ce2hyusj0yn7eu4z6utw98aqzkhxzp67yhpajfgtmj7rt3j4wfepy7f8ane294cku20swucnrl"+-- @+-- >>> import Cardano.Address ( ChainPointer (..) )+-- >>> let (Right tag) = mkNetworkDiscriminant 1+-- >>> let ptr = ChainPointer 123 1 2+-- >>> let paymentCredential = PaymentFromExtendedKey $ (toXPub <$> addrK)+-- >>> bech32 $ pointerAddress tag paymentCredential ptr+-- "addr1gxpfffuj3zkp5g7ct6h4va89caxx9ayq2gvkyfvww48sdnmmqypqfcp5um"+-- @+--+-- ==== Generating a 'DelegationAddress' from using the same script credential in both payment and delegation+--+-- @+-- >>> bech32 $ delegationAddress tag (PaymentFromScriptHash infoSpendingScriptHash) (DelegationFromScript infoSpendingScriptHash)+-- "addr1xxspttnpqa0zts7ey59ae0p4ce2hyusj0yn7eu4z6utw98aqzkhxzp67yhpajfgtmj7rt3j4wfepy7f8ane294cku20swucnrl"+-- @ + -- | Possible errors from inspecting a Shelley, Icarus, or Byron address. -- -- @since 3.4.0@@ -546,7 +558,7 @@ ErrByron e -> "Invalid Byron address: " <> Byron.prettyErrInspectAddress e --- Determines whether an 'Address' a Shelley address.+-- | Determines whether an 'Address' a Shelley address. -- -- Throws 'AddrError' if it's not a valid Shelley address, or a ready-to-print -- string giving details about the 'Address'.
lib/Cardano/Codec/Bech32/Prefixes.hs view
@@ -102,211 +102,275 @@ -- Addresses-+-- | addr addr :: HumanReadablePart addr = [humanReadablePart|addr|] +-- | addr_test addr_test :: HumanReadablePart addr_test = [humanReadablePart|addr_test|] +-- | script script :: HumanReadablePart script = [humanReadablePart|script|] +-- | stake stake :: HumanReadablePart stake = [humanReadablePart|stake|] +-- | stake_test stake_test :: HumanReadablePart stake_test = [humanReadablePart|stake_test|] -- Keys-+-- | addr_vk addr_vk :: HumanReadablePart addr_vk = [humanReadablePart|addr_vk|] +-- | addr_sk addr_sk :: HumanReadablePart addr_sk = [humanReadablePart|addr_sk|] +-- | addr_xvk addr_xvk :: HumanReadablePart addr_xvk = [humanReadablePart|addr_xvk|] +-- | addr_xsk addr_xsk :: HumanReadablePart addr_xsk = [humanReadablePart|addr_xsk|] +-- | acct_vk acct_vk :: HumanReadablePart acct_vk = [humanReadablePart|acct_vk|] +-- | acct_sk acct_sk :: HumanReadablePart acct_sk = [humanReadablePart|acct_sk|] +-- | acct_xvk acct_xvk :: HumanReadablePart acct_xvk = [humanReadablePart|acct_xvk|] +-- | acct_xsk acct_xsk :: HumanReadablePart acct_xsk = [humanReadablePart|acct_xsk|] +-- | root_vk root_vk :: HumanReadablePart root_vk = [humanReadablePart|root_vk|] +-- | root_sk root_sk :: HumanReadablePart root_sk = [humanReadablePart|root_sk|] +-- | root_xvk root_xvk :: HumanReadablePart root_xvk = [humanReadablePart|root_xvk|] +-- | root_xsk root_xsk :: HumanReadablePart root_xsk = [humanReadablePart|root_xsk|] +-- | stake_vk stake_vk :: HumanReadablePart stake_vk = [humanReadablePart|stake_vk|] +-- | stake_sk stake_sk :: HumanReadablePart stake_sk = [humanReadablePart|stake_sk|] +-- | stake_xvk stake_xvk :: HumanReadablePart stake_xvk = [humanReadablePart|stake_xvk|] +-- | stake_xsk stake_xsk :: HumanReadablePart stake_xsk = [humanReadablePart|stake_xsk|] +-- | addr_shared_vk addr_shared_vk :: HumanReadablePart addr_shared_vk = [humanReadablePart|addr_shared_vk|] +-- | addr_shared_sk addr_shared_sk :: HumanReadablePart addr_shared_sk = [humanReadablePart|addr_shared_sk|] +-- | addr_shared_xvk addr_shared_xvk :: HumanReadablePart addr_shared_xvk = [humanReadablePart|addr_shared_xvk|] +-- | addr_shared_xsk addr_shared_xsk :: HumanReadablePart addr_shared_xsk = [humanReadablePart|addr_shared_xsk|] +-- | acct_shared_vk acct_shared_vk :: HumanReadablePart acct_shared_vk = [humanReadablePart|acct_shared_vk|] +-- | acct_shared_sk acct_shared_sk :: HumanReadablePart acct_shared_sk = [humanReadablePart|acct_shared_sk|] +-- | acct_shared_xvk acct_shared_xvk :: HumanReadablePart acct_shared_xvk = [humanReadablePart|acct_shared_xvk|] +-- | acct_shared_xsk acct_shared_xsk :: HumanReadablePart acct_shared_xsk = [humanReadablePart|acct_shared_xsk|] +-- | root_shared_vk root_shared_vk :: HumanReadablePart root_shared_vk = [humanReadablePart|root_shared_vk|] +-- | root_shared_sk root_shared_sk :: HumanReadablePart root_shared_sk = [humanReadablePart|root_shared_sk|] +-- | root_shared_xvk root_shared_xvk :: HumanReadablePart root_shared_xvk = [humanReadablePart|root_shared_xvk|] +-- | root_shared_xsk root_shared_xsk :: HumanReadablePart root_shared_xsk = [humanReadablePart|root_shared_xsk|] +-- | stake_shared_vk stake_shared_vk :: HumanReadablePart stake_shared_vk = [humanReadablePart|stake_shared_vk|] +-- | stake_shared_sk stake_shared_sk :: HumanReadablePart stake_shared_sk = [humanReadablePart|stake_shared_sk|] +-- | stake_shared_xvk stake_shared_xvk :: HumanReadablePart stake_shared_xvk = [humanReadablePart|stake_shared_xvk|] +-- | stake_shared_xsk stake_shared_xsk :: HumanReadablePart stake_shared_xsk = [humanReadablePart|stake_shared_xsk|] -- Hashes-+-- | addr_vkh addr_vkh :: HumanReadablePart addr_vkh = [humanReadablePart|addr_vkh|] +-- | stake_vkh stake_vkh :: HumanReadablePart stake_vkh = [humanReadablePart|stake_vkh|] +-- | addr_shared_vkh addr_shared_vkh :: HumanReadablePart addr_shared_vkh = [humanReadablePart|addr_shared_vkh|] +-- | stake_shared_vkh stake_shared_vkh :: HumanReadablePart stake_shared_vkh = [humanReadablePart|stake_shared_vkh|] -- Policy+-- | policy_vk policy_vk :: HumanReadablePart policy_vk = [humanReadablePart|policy_vk|] +-- | policy_xvk policy_xvk :: HumanReadablePart policy_xvk = [humanReadablePart|policy_xvk|] +-- | policy_vkh policy_vkh :: HumanReadablePart policy_vkh = [humanReadablePart|policy_vkh|] +-- | policy_xsk policy_xsk :: HumanReadablePart policy_xsk = [humanReadablePart|policy_xsk|] +-- | policy_sk policy_sk :: HumanReadablePart policy_sk = [humanReadablePart|policy_sk|] -- Keys/hashes for CIP-0105+-- | drep_vk drep_vk :: HumanReadablePart drep_vk = [humanReadablePart|drep_vk|] +-- | drep_sk drep_sk :: HumanReadablePart drep_sk = [humanReadablePart|drep_sk|] +-- | drep_xvk drep_xvk :: HumanReadablePart drep_xvk = [humanReadablePart|drep_xvk|] +-- | drep_xsk drep_xsk :: HumanReadablePart drep_xsk = [humanReadablePart|drep_xsk|] +-- | drep_vkh drep_vkh :: HumanReadablePart drep_vkh = [humanReadablePart|drep_vkh|] +-- | drep drep :: HumanReadablePart drep = [humanReadablePart|drep|] +-- | drep_script drep_script :: HumanReadablePart drep_script = [humanReadablePart|drep_script|] +-- | cc_cold_vk cc_cold_vk :: HumanReadablePart cc_cold_vk = [humanReadablePart|cc_cold_vk|] +-- | cc_cold_sk cc_cold_sk :: HumanReadablePart cc_cold_sk = [humanReadablePart|cc_cold_sk|] +-- | cc_cold_xvk cc_cold_xvk :: HumanReadablePart cc_cold_xvk = [humanReadablePart|cc_cold_xvk|] +-- | cc_cold_vkh cc_cold_vkh :: HumanReadablePart cc_cold_vkh = [humanReadablePart|cc_cold_vkh|] +-- | cc_cold_xsk cc_cold_xsk :: HumanReadablePart cc_cold_xsk = [humanReadablePart|cc_cold_xsk|] +-- | cc_cold cc_cold :: HumanReadablePart cc_cold = [humanReadablePart|cc_cold|] +-- | cc_cold_script cc_cold_script :: HumanReadablePart cc_cold_script = [humanReadablePart|cc_cold_script|] +-- | cc_hot_vk cc_hot_vk :: HumanReadablePart cc_hot_vk = [humanReadablePart|cc_hot_vk|] +-- | cc_hot_sk cc_hot_sk :: HumanReadablePart cc_hot_sk = [humanReadablePart|cc_hot_sk|] +-- | cc_hot_xvk cc_hot_xvk :: HumanReadablePart cc_hot_xvk = [humanReadablePart|cc_hot_xvk|] +-- | cc_hot_xsk cc_hot_xsk :: HumanReadablePart cc_hot_xsk = [humanReadablePart|cc_hot_xsk|] +-- | cc_hot_vkh cc_hot_vkh :: HumanReadablePart cc_hot_vkh = [humanReadablePart|cc_hot_vkh|] +-- | cc_hot cc_hot :: HumanReadablePart cc_hot = [humanReadablePart|cc_hot|] +-- | cc_hot_script cc_hot_script :: HumanReadablePart cc_hot_script = [humanReadablePart|cc_hot_script|]
lib/Cardano/Codec/Cbor.hs view
@@ -6,7 +6,7 @@ {-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeFamilies #-} -{-# OPTIONS_HADDOCK hide #-}+{-# OPTIONS_HADDOCK prune #-} -- | -- Copyright: 2020 Input Output (Hong Kong) Ltd., 2021-2022 Input Output Global Inc. (IOG), 2023-2025 Intersect@@ -35,7 +35,7 @@ , deserialiseCbor , unsafeDeserialiseCbor - -- * Reexports from CBOR+ -- * Re-exports from CBOR , CBOR.encodeBytes , CBOR.toStrictByteString , CBOR.toLazyByteString@@ -75,52 +75,52 @@ import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as BL -{-------------------------------------------------------------------------------- Byron Address Binary Format -In the composition of a Cardano address, the following functions concern the-"Derivation Path" box.--+-------------------------------------------------------------------------------+-| |-| CBOR-Serialized Object with CRC¹ |-| |-+-------------------------------------------------------------------------------+- |- |- v-+-------------------------------------------------------------------------------+-| Address Root | Address Attributes | AddrType |-| | | |-| Hash (224 bits) | Der. Path² + Stake + NM | PubKey | (Script) | Redeem |-| | (open for extension) | (open for extension) |-+-------------------------------------------------------------------------------+- | |- | | +----------------------------------+- v | | Derivation Path |-+---------------------------+ |---->| |-| SHA3-256 | | | ChaChaPoly⁴ AccountIx/AddressIx |-| |> Blake2b 224 | | +----------------------------------+-| |> CBOR | |-| | |-| -AddrType | | +----------------------------------+-| -ASD³ (~AddrType+PubKey) | | | Stake Distribution |-| -Address Attributes | | | |-+---------------------------+ |---->| BootstrapEra | (Single | Multi) |- | +----------------------------------+- |- |- | +----------------------------------+- | | Network Magic |- |---->| |- | Addr Discr: MainNet vs TestNet |- +----------------------------------+---------------------------------------------------------------------------------}---- * Encoding---- | Encode a public key to a corresponding Cardano Address. The encoding of the+-- |+-- @+-- __Byron Address Binary Format__+--+--+-- In the composition of a Cardano address, the following functions concern the+-- "Derivation Path" box.+--+-- +-------------------------------------------------------------------------------++-- | |+-- | CBOR-Serialized Object with CRC¹ |+-- | |+-- +-------------------------------------------------------------------------------++-- |+-- |+-- v+-- +-------------------------------------------------------------------------------++-- | Address Root | Address Attributes | AddrType |+-- | | | |+-- | Hash (224 bits) | Der. Path² + Stake + NM | PubKey | (Script) | Redeem |+-- | | (open for extension) | (open for extension) |+-- +-------------------------------------------------------------------------------++-- | |+-- | | +----------------------------------++-- v | | Derivation Path |+-- +---------------------------+ |---->| |+-- | SHA3-256 | | | ChaChaPoly⁴ AccountIx/AddressIx |+-- | |> Blake2b 224 | | +----------------------------------++-- | |> CBOR | |+-- | | |+-- | -AddrType | | +----------------------------------++-- | -ASD³ (~AddrType+PubKey) | | | Stake Distribution |+-- | -Address Attributes | | | |+-- +---------------------------+ |---->| BootstrapEra | (Single | Multi) |+-- | +----------------------------------++-- |+-- |+-- | +----------------------------------++-- | | Network Magic |+-- |---->| |+-- | Addr Discr: MainNet vs TestNet |+-- +----------------------------------++-- @+--+-- Encode a public key to a corresponding Cardano Address. The encoding of the -- attributes part of an address is left out to the caller; This allows for -- distinguishing between Sequential and Random addresses (the former doesn't -- have any attributes to encode).@@ -187,7 +187,7 @@ <> CBOR.encodeWord 2 -- Tag for 'ProtocolMagic' attribute <> CBOR.encodeBytes (CBOR.toStrictByteString $ CBOR.encodeWord32 pm) --- This is the opposite of 'decodeDerivationPathAttr'.+-- | This is the opposite of 'decodeDerivationPathAttr'. -- -- NOTE: The caller must ensure that the passphrase length is 32 bytes. encodeDerivationPathAttr
+ lib/Cardano/Dictionary.hs view
@@ -0,0 +1,57 @@+{-# LANGUAGE DeriveGeneric #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE LambdaCase #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0++module Cardano.Dictionary+ (+ -- * Type+ SupportedDictionary (..)++ -- * Helper+ , dictionaryFromLanguage++ ) where++import Prelude++import Cardano.Dictionary.English+ ( english )+import Cardano.Dictionary.French+ ( french )+import Cardano.Dictionary.Italian+ ( italian )+import Cardano.Dictionary.Japanese+ ( japanese )+import Cardano.Dictionary.Korean+ ( korean )+import Cardano.Dictionary.Spanish+ ( spanish )+import Crypto.Encoding.BIP39.Dictionary+ ( Dictionary )+import GHC.Generics+ ( Generic )+++data SupportedDictionary =+ English+ | Italian+ | Japanese+ | French+ | Korean+ | Spanish+ deriving (Generic, Show, Bounded, Enum, Eq)++dictionaryFromLanguage :: SupportedDictionary -> Dictionary+dictionaryFromLanguage = \case+ English -> english+ Italian -> italian+ Japanese -> japanese+ French -> french+ Korean -> korean+ Spanish -> spanish
+ lib/Cardano/Dictionary/English.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/IntersectMBO/cardano-crypto/blob/develop/src/Crypto/Encoding/BIP39/english.hs++module Cardano.Dictionary.English+ (+ -- * dictionary value+ english+ ) where++import Basement.String+ ( String )+import Cardano.Dictionary.Generic+ ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+ ( Dictionary )++english :: Dictionary+english = toDictionary wordList+ where+ wordList :: [String]+ wordList =+ [ "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"+ ]
+ lib/Cardano/Dictionary/French.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/bloxbean/cardano-client-lib/blob/master/crypto/src/main/resources/mnemonic/wordlist/french.txt++module Cardano.Dictionary.French+ (+ -- * dictionary value+ french+ ) where++import Basement.String+ ( String )+import Cardano.Dictionary.Generic+ ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+ ( Dictionary )++french :: Dictionary+french = toDictionary wordList+ where+ wordList :: [String]+ wordList =+ ["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"+ ]
+ lib/Cardano/Dictionary/Generic.hs view
@@ -0,0 +1,46 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0++module Cardano.Dictionary.Generic+ (+ -- * Helper+ toDictionary+ ) where++import Basement.Imports+ ( Bounded (..), Either (..), Maybe (..), error, flip, fromList, ($), (.) )+import Basement.Sized.Vect+ ( Vect (..), index, toVect )+import Basement.String+ ( String )+import Crypto.Encoding.BIP39.Dictionary+ ( Dictionary (..), DictionaryError (..), WordIndex, unWordIndex )+import Data.Maybe+ ( fromMaybe )++import qualified Data.List as L+++toDictionary :: [String] -> Dictionary+toDictionary wordList = Dictionary+ { dictionaryWordToIndex =+ \word -> case L.lookup word wordsWithIxs of+ Just x -> Right x+ Nothing -> Left $ ErrInvalidDictionaryWord word+ , dictionaryTestWord = flip L.elem wordList+ , dictionaryIndexToWord = index words . unWordIndex+ , dictionaryWordSeparator = " "+ }+ where+ wordsWithIxs :: [(String, WordIndex)]+ wordsWithIxs = L.zip wordList [minBound..maxBound]++ words :: Vect 2048 String+ words = fromMaybe (error "invalid vector length") $ toVect $ fromList wordList
+ lib/Cardano/Dictionary/Italian.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/bloxbean/cardano-client-lib/blob/master/crypto/src/main/resources/mnemonic/wordlist/italian.txt++module Cardano.Dictionary.Italian+ (+ -- * dictionary value+ italian+ ) where++import Basement.String+ ( String )+import Cardano.Dictionary.Generic+ ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+ ( Dictionary )++italian :: Dictionary+italian = toDictionary wordList+ where+ wordList :: [String]+ wordList =+ ["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"+ ]
+ lib/Cardano/Dictionary/Japanese.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/bloxbean/cardano-client-lib/blob/master/crypto/src/main/resources/mnemonic/wordlist/japanese.txt++module Cardano.Dictionary.Japanese+ (+ -- * dictionary value+ japanese+ ) where++import Basement.String+ ( String )+import Cardano.Dictionary.Generic+ ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+ ( Dictionary )++japanese :: Dictionary+japanese = toDictionary wordList+ where+ wordList :: [String]+ wordList =+ ["あいこくしん"+ ,"あいさつ"+ ,"あいだ"+ ,"あおぞら"+ ,"あかちゃん"+ ,"あきる"+ ,"あけがた"+ ,"あける"+ ,"あこがれる"+ ,"あさい"+ ,"あさひ"+ ,"あしあと"+ ,"あじわう"+ ,"あずかる"+ ,"あずき"+ ,"あそぶ"+ ,"あたえる"+ ,"あたためる"+ ,"あたりまえ"+ ,"あたる"+ ,"あつい"+ ,"あつかう"+ ,"あっしゅく"+ ,"あつまり"+ ,"あつめる"+ ,"あてな"+ ,"あてはまる"+ ,"あひる"+ ,"あぶら"+ ,"あぶる"+ ,"あふれる"+ ,"あまい"+ ,"あまど"+ ,"あまやかす"+ ,"あまり"+ ,"あみもの"+ ,"あめりか"+ ,"あやまる"+ ,"あゆむ"+ ,"あらいぐま"+ ,"あらし"+ ,"あらすじ"+ ,"あらためる"+ ,"あらゆる"+ ,"あらわす"+ ,"ありがとう"+ ,"あわせる"+ ,"あわてる"+ ,"あんい"+ ,"あんがい"+ ,"あんこ"+ ,"あんぜん"+ ,"あんてい"+ ,"あんない"+ ,"あんまり"+ ,"いいだす"+ ,"いおん"+ ,"いがい"+ ,"いがく"+ ,"いきおい"+ ,"いきなり"+ ,"いきもの"+ ,"いきる"+ ,"いくじ"+ ,"いくぶん"+ ,"いけばな"+ ,"いけん"+ ,"いこう"+ ,"いこく"+ ,"いこつ"+ ,"いさましい"+ ,"いさん"+ ,"いしき"+ ,"いじゅう"+ ,"いじょう"+ ,"いじわる"+ ,"いずみ"+ ,"いずれ"+ ,"いせい"+ ,"いせえび"+ ,"いせかい"+ ,"いせき"+ ,"いぜん"+ ,"いそうろう"+ ,"いそがしい"+ ,"いだい"+ ,"いだく"+ ,"いたずら"+ ,"いたみ"+ ,"いたりあ"+ ,"いちおう"+ ,"いちじ"+ ,"いちど"+ ,"いちば"+ ,"いちぶ"+ ,"いちりゅう"+ ,"いつか"+ ,"いっしゅん"+ ,"いっせい"+ ,"いっそう"+ ,"いったん"+ ,"いっち"+ ,"いってい"+ ,"いっぽう"+ ,"いてざ"+ ,"いてん"+ ,"いどう"+ ,"いとこ"+ ,"いない"+ ,"いなか"+ ,"いねむり"+ ,"いのち"+ ,"いのる"+ ,"いはつ"+ ,"いばる"+ ,"いはん"+ ,"いびき"+ ,"いひん"+ ,"いふく"+ ,"いへん"+ ,"いほう"+ ,"いみん"+ ,"いもうと"+ ,"いもたれ"+ ,"いもり"+ ,"いやがる"+ ,"いやす"+ ,"いよかん"+ ,"いよく"+ ,"いらい"+ ,"いらすと"+ ,"いりぐち"+ ,"いりょう"+ ,"いれい"+ ,"いれもの"+ ,"いれる"+ ,"いろえんぴつ"+ ,"いわい"+ ,"いわう"+ ,"いわかん"+ ,"いわば"+ ,"いわゆる"+ ,"いんげんまめ"+ ,"いんさつ"+ ,"いんしょう"+ ,"いんよう"+ ,"うえき"+ ,"うえる"+ ,"うおざ"+ ,"うがい"+ ,"うかぶ"+ ,"うかべる"+ ,"うきわ"+ ,"うくらいな"+ ,"うくれれ"+ ,"うけたまわる"+ ,"うけつけ"+ ,"うけとる"+ ,"うけもつ"+ ,"うける"+ ,"うごかす"+ ,"うごく"+ ,"うこん"+ ,"うさぎ"+ ,"うしなう"+ ,"うしろがみ"+ ,"うすい"+ ,"うすぎ"+ ,"うすぐらい"+ ,"うすめる"+ ,"うせつ"+ ,"うちあわせ"+ ,"うちがわ"+ ,"うちき"+ ,"うちゅう"+ ,"うっかり"+ ,"うつくしい"+ ,"うったえる"+ ,"うつる"+ ,"うどん"+ ,"うなぎ"+ ,"うなじ"+ ,"うなずく"+ ,"うなる"+ ,"うねる"+ ,"うのう"+ ,"うぶげ"+ ,"うぶごえ"+ ,"うまれる"+ ,"うめる"+ ,"うもう"+ ,"うやまう"+ ,"うよく"+ ,"うらがえす"+ ,"うらぐち"+ ,"うらない"+ ,"うりあげ"+ ,"うりきれ"+ ,"うるさい"+ ,"うれしい"+ ,"うれゆき"+ ,"うれる"+ ,"うろこ"+ ,"うわき"+ ,"うわさ"+ ,"うんこう"+ ,"うんちん"+ ,"うんてん"+ ,"うんどう"+ ,"えいえん"+ ,"えいが"+ ,"えいきょう"+ ,"えいご"+ ,"えいせい"+ ,"えいぶん"+ ,"えいよう"+ ,"えいわ"+ ,"えおり"+ ,"えがお"+ ,"えがく"+ ,"えきたい"+ ,"えくせる"+ ,"えしゃく"+ ,"えすて"+ ,"えつらん"+ ,"えのぐ"+ ,"えほうまき"+ ,"えほん"+ ,"えまき"+ ,"えもじ"+ ,"えもの"+ ,"えらい"+ ,"えらぶ"+ ,"えりあ"+ ,"えんえん"+ ,"えんかい"+ ,"えんぎ"+ ,"えんげき"+ ,"えんしゅう"+ ,"えんぜつ"+ ,"えんそく"+ ,"えんちょう"+ ,"えんとつ"+ ,"おいかける"+ ,"おいこす"+ ,"おいしい"+ ,"おいつく"+ ,"おうえん"+ ,"おうさま"+ ,"おうじ"+ ,"おうせつ"+ ,"おうたい"+ ,"おうふく"+ ,"おうべい"+ ,"おうよう"+ ,"おえる"+ ,"おおい"+ ,"おおう"+ ,"おおどおり"+ ,"おおや"+ ,"おおよそ"+ ,"おかえり"+ ,"おかず"+ ,"おがむ"+ ,"おかわり"+ ,"おぎなう"+ ,"おきる"+ ,"おくさま"+ ,"おくじょう"+ ,"おくりがな"+ ,"おくる"+ ,"おくれる"+ ,"おこす"+ ,"おこなう"+ ,"おこる"+ ,"おさえる"+ ,"おさない"+ ,"おさめる"+ ,"おしいれ"+ ,"おしえる"+ ,"おじぎ"+ ,"おじさん"+ ,"おしゃれ"+ ,"おそらく"+ ,"おそわる"+ ,"おたがい"+ ,"おたく"+ ,"おだやか"+ ,"おちつく"+ ,"おっと"+ ,"おつり"+ ,"おでかけ"+ ,"おとしもの"+ ,"おとなしい"+ ,"おどり"+ ,"おどろかす"+ ,"おばさん"+ ,"おまいり"+ ,"おめでとう"+ ,"おもいで"+ ,"おもう"+ ,"おもたい"+ ,"おもちゃ"+ ,"おやつ"+ ,"おやゆび"+ ,"およぼす"+ ,"おらんだ"+ ,"おろす"+ ,"おんがく"+ ,"おんけい"+ ,"おんしゃ"+ ,"おんせん"+ ,"おんだん"+ ,"おんちゅう"+ ,"おんどけい"+ ,"かあつ"+ ,"かいが"+ ,"がいき"+ ,"がいけん"+ ,"がいこう"+ ,"かいさつ"+ ,"かいしゃ"+ ,"かいすいよく"+ ,"かいぜん"+ ,"かいぞうど"+ ,"かいつう"+ ,"かいてん"+ ,"かいとう"+ ,"かいふく"+ ,"がいへき"+ ,"かいほう"+ ,"かいよう"+ ,"がいらい"+ ,"かいわ"+ ,"かえる"+ ,"かおり"+ ,"かかえる"+ ,"かがく"+ ,"かがし"+ ,"かがみ"+ ,"かくご"+ ,"かくとく"+ ,"かざる"+ ,"がぞう"+ ,"かたい"+ ,"かたち"+ ,"がちょう"+ ,"がっきゅう"+ ,"がっこう"+ ,"がっさん"+ ,"がっしょう"+ ,"かなざわし"+ ,"かのう"+ ,"がはく"+ ,"かぶか"+ ,"かほう"+ ,"かほご"+ ,"かまう"+ ,"かまぼこ"+ ,"かめれおん"+ ,"かゆい"+ ,"かようび"+ ,"からい"+ ,"かるい"+ ,"かろう"+ ,"かわく"+ ,"かわら"+ ,"がんか"+ ,"かんけい"+ ,"かんこう"+ ,"かんしゃ"+ ,"かんそう"+ ,"かんたん"+ ,"かんち"+ ,"がんばる"+ ,"きあい"+ ,"きあつ"+ ,"きいろ"+ ,"ぎいん"+ ,"きうい"+ ,"きうん"+ ,"きえる"+ ,"きおう"+ ,"きおく"+ ,"きおち"+ ,"きおん"+ ,"きかい"+ ,"きかく"+ ,"きかんしゃ"+ ,"ききて"+ ,"きくばり"+ ,"きくらげ"+ ,"きけんせい"+ ,"きこう"+ ,"きこえる"+ ,"きこく"+ ,"きさい"+ ,"きさく"+ ,"きさま"+ ,"きさらぎ"+ ,"ぎじかがく"+ ,"ぎしき"+ ,"ぎじたいけん"+ ,"ぎじにってい"+ ,"ぎじゅつしゃ"+ ,"きすう"+ ,"きせい"+ ,"きせき"+ ,"きせつ"+ ,"きそう"+ ,"きぞく"+ ,"きぞん"+ ,"きたえる"+ ,"きちょう"+ ,"きつえん"+ ,"ぎっちり"+ ,"きつつき"+ ,"きつね"+ ,"きてい"+ ,"きどう"+ ,"きどく"+ ,"きない"+ ,"きなが"+ ,"きなこ"+ ,"きぬごし"+ ,"きねん"+ ,"きのう"+ ,"きのした"+ ,"きはく"+ ,"きびしい"+ ,"きひん"+ ,"きふく"+ ,"きぶん"+ ,"きぼう"+ ,"きほん"+ ,"きまる"+ ,"きみつ"+ ,"きむずかしい"+ ,"きめる"+ ,"きもだめし"+ ,"きもち"+ ,"きもの"+ ,"きゃく"+ ,"きやく"+ ,"ぎゅうにく"+ ,"きよう"+ ,"きょうりゅう"+ ,"きらい"+ ,"きらく"+ ,"きりん"+ ,"きれい"+ ,"きれつ"+ ,"きろく"+ ,"ぎろん"+ ,"きわめる"+ ,"ぎんいろ"+ ,"きんかくじ"+ ,"きんじょ"+ ,"きんようび"+ ,"ぐあい"+ ,"くいず"+ ,"くうかん"+ ,"くうき"+ ,"くうぐん"+ ,"くうこう"+ ,"ぐうせい"+ ,"くうそう"+ ,"ぐうたら"+ ,"くうふく"+ ,"くうぼ"+ ,"くかん"+ ,"くきょう"+ ,"くげん"+ ,"ぐこう"+ ,"くさい"+ ,"くさき"+ ,"くさばな"+ ,"くさる"+ ,"くしゃみ"+ ,"くしょう"+ ,"くすのき"+ ,"くすりゆび"+ ,"くせげ"+ ,"くせん"+ ,"ぐたいてき"+ ,"くださる"+ ,"くたびれる"+ ,"くちこみ"+ ,"くちさき"+ ,"くつした"+ ,"ぐっすり"+ ,"くつろぐ"+ ,"くとうてん"+ ,"くどく"+ ,"くなん"+ ,"くねくね"+ ,"くのう"+ ,"くふう"+ ,"くみあわせ"+ ,"くみたてる"+ ,"くめる"+ ,"くやくしょ"+ ,"くらす"+ ,"くらべる"+ ,"くるま"+ ,"くれる"+ ,"くろう"+ ,"くわしい"+ ,"ぐんかん"+ ,"ぐんしょく"+ ,"ぐんたい"+ ,"ぐんて"+ ,"けあな"+ ,"けいかく"+ ,"けいけん"+ ,"けいこ"+ ,"けいさつ"+ ,"げいじゅつ"+ ,"けいたい"+ ,"げいのうじん"+ ,"けいれき"+ ,"けいろ"+ ,"けおとす"+ ,"けおりもの"+ ,"げきか"+ ,"げきげん"+ ,"げきだん"+ ,"げきちん"+ ,"げきとつ"+ ,"げきは"+ ,"げきやく"+ ,"げこう"+ ,"げこくじょう"+ ,"げざい"+ ,"けさき"+ ,"げざん"+ ,"けしき"+ ,"けしごむ"+ ,"けしょう"+ ,"げすと"+ ,"けたば"+ ,"けちゃっぷ"+ ,"けちらす"+ ,"けつあつ"+ ,"けつい"+ ,"けつえき"+ ,"けっこん"+ ,"けつじょ"+ ,"けっせき"+ ,"けってい"+ ,"けつまつ"+ ,"げつようび"+ ,"げつれい"+ ,"けつろん"+ ,"げどく"+ ,"けとばす"+ ,"けとる"+ ,"けなげ"+ ,"けなす"+ ,"けなみ"+ ,"けぬき"+ ,"げねつ"+ ,"けねん"+ ,"けはい"+ ,"げひん"+ ,"けぶかい"+ ,"げぼく"+ ,"けまり"+ ,"けみかる"+ ,"けむし"+ ,"けむり"+ ,"けもの"+ ,"けらい"+ ,"けろけろ"+ ,"けわしい"+ ,"けんい"+ ,"けんえつ"+ ,"けんお"+ ,"けんか"+ ,"げんき"+ ,"けんげん"+ ,"けんこう"+ ,"けんさく"+ ,"けんしゅう"+ ,"けんすう"+ ,"げんそう"+ ,"けんちく"+ ,"けんてい"+ ,"けんとう"+ ,"けんない"+ ,"けんにん"+ ,"げんぶつ"+ ,"けんま"+ ,"けんみん"+ ,"けんめい"+ ,"けんらん"+ ,"けんり"+ ,"こあくま"+ ,"こいぬ"+ ,"こいびと"+ ,"ごうい"+ ,"こうえん"+ ,"こうおん"+ ,"こうかん"+ ,"ごうきゅう"+ ,"ごうけい"+ ,"こうこう"+ ,"こうさい"+ ,"こうじ"+ ,"こうすい"+ ,"ごうせい"+ ,"こうそく"+ ,"こうたい"+ ,"こうちゃ"+ ,"こうつう"+ ,"こうてい"+ ,"こうどう"+ ,"こうない"+ ,"こうはい"+ ,"ごうほう"+ ,"ごうまん"+ ,"こうもく"+ ,"こうりつ"+ ,"こえる"+ ,"こおり"+ ,"ごかい"+ ,"ごがつ"+ ,"ごかん"+ ,"こくご"+ ,"こくさい"+ ,"こくとう"+ ,"こくない"+ ,"こくはく"+ ,"こぐま"+ ,"こけい"+ ,"こける"+ ,"ここのか"+ ,"こころ"+ ,"こさめ"+ ,"こしつ"+ ,"こすう"+ ,"こせい"+ ,"こせき"+ ,"こぜん"+ ,"こそだて"+ ,"こたい"+ ,"こたえる"+ ,"こたつ"+ ,"こちょう"+ ,"こっか"+ ,"こつこつ"+ ,"こつばん"+ ,"こつぶ"+ ,"こてい"+ ,"こてん"+ ,"ことがら"+ ,"ことし"+ ,"ことば"+ ,"ことり"+ ,"こなごな"+ ,"こねこね"+ ,"このまま"+ ,"このみ"+ ,"このよ"+ ,"ごはん"+ ,"こひつじ"+ ,"こふう"+ ,"こふん"+ ,"こぼれる"+ ,"ごまあぶら"+ ,"こまかい"+ ,"ごますり"+ ,"こまつな"+ ,"こまる"+ ,"こむぎこ"+ ,"こもじ"+ ,"こもち"+ ,"こもの"+ ,"こもん"+ ,"こやく"+ ,"こやま"+ ,"こゆう"+ ,"こゆび"+ ,"こよい"+ ,"こよう"+ ,"こりる"+ ,"これくしょん"+ ,"ころっけ"+ ,"こわもて"+ ,"こわれる"+ ,"こんいん"+ ,"こんかい"+ ,"こんき"+ ,"こんしゅう"+ ,"こんすい"+ ,"こんだて"+ ,"こんとん"+ ,"こんなん"+ ,"こんびに"+ ,"こんぽん"+ ,"こんまけ"+ ,"こんや"+ ,"こんれい"+ ,"こんわく"+ ,"ざいえき"+ ,"さいかい"+ ,"さいきん"+ ,"ざいげん"+ ,"ざいこ"+ ,"さいしょ"+ ,"さいせい"+ ,"ざいたく"+ ,"ざいちゅう"+ ,"さいてき"+ ,"ざいりょう"+ ,"さうな"+ ,"さかいし"+ ,"さがす"+ ,"さかな"+ ,"さかみち"+ ,"さがる"+ ,"さぎょう"+ ,"さくし"+ ,"さくひん"+ ,"さくら"+ ,"さこく"+ ,"さこつ"+ ,"さずかる"+ ,"ざせき"+ ,"さたん"+ ,"さつえい"+ ,"ざつおん"+ ,"ざっか"+ ,"ざつがく"+ ,"さっきょく"+ ,"ざっし"+ ,"さつじん"+ ,"ざっそう"+ ,"さつたば"+ ,"さつまいも"+ ,"さてい"+ ,"さといも"+ ,"さとう"+ ,"さとおや"+ ,"さとし"+ ,"さとる"+ ,"さのう"+ ,"さばく"+ ,"さびしい"+ ,"さべつ"+ ,"さほう"+ ,"さほど"+ ,"さます"+ ,"さみしい"+ ,"さみだれ"+ ,"さむけ"+ ,"さめる"+ ,"さやえんどう"+ ,"さゆう"+ ,"さよう"+ ,"さよく"+ ,"さらだ"+ ,"ざるそば"+ ,"さわやか"+ ,"さわる"+ ,"さんいん"+ ,"さんか"+ ,"さんきゃく"+ ,"さんこう"+ ,"さんさい"+ ,"ざんしょ"+ ,"さんすう"+ ,"さんせい"+ ,"さんそ"+ ,"さんち"+ ,"さんま"+ ,"さんみ"+ ,"さんらん"+ ,"しあい"+ ,"しあげ"+ ,"しあさって"+ ,"しあわせ"+ ,"しいく"+ ,"しいん"+ ,"しうち"+ ,"しえい"+ ,"しおけ"+ ,"しかい"+ ,"しかく"+ ,"じかん"+ ,"しごと"+ ,"しすう"+ ,"じだい"+ ,"したうけ"+ ,"したぎ"+ ,"したて"+ ,"したみ"+ ,"しちょう"+ ,"しちりん"+ ,"しっかり"+ ,"しつじ"+ ,"しつもん"+ ,"してい"+ ,"してき"+ ,"してつ"+ ,"じてん"+ ,"じどう"+ ,"しなぎれ"+ ,"しなもの"+ ,"しなん"+ ,"しねま"+ ,"しねん"+ ,"しのぐ"+ ,"しのぶ"+ ,"しはい"+ ,"しばかり"+ ,"しはつ"+ ,"しはらい"+ ,"しはん"+ ,"しひょう"+ ,"しふく"+ ,"じぶん"+ ,"しへい"+ ,"しほう"+ ,"しほん"+ ,"しまう"+ ,"しまる"+ ,"しみん"+ ,"しむける"+ ,"じむしょ"+ ,"しめい"+ ,"しめる"+ ,"しもん"+ ,"しゃいん"+ ,"しゃうん"+ ,"しゃおん"+ ,"じゃがいも"+ ,"しやくしょ"+ ,"しゃくほう"+ ,"しゃけん"+ ,"しゃこ"+ ,"しゃざい"+ ,"しゃしん"+ ,"しゃせん"+ ,"しゃそう"+ ,"しゃたい"+ ,"しゃちょう"+ ,"しゃっきん"+ ,"じゃま"+ ,"しゃりん"+ ,"しゃれい"+ ,"じゆう"+ ,"じゅうしょ"+ ,"しゅくはく"+ ,"じゅしん"+ ,"しゅっせき"+ ,"しゅみ"+ ,"しゅらば"+ ,"じゅんばん"+ ,"しょうかい"+ ,"しょくたく"+ ,"しょっけん"+ ,"しょどう"+ ,"しょもつ"+ ,"しらせる"+ ,"しらべる"+ ,"しんか"+ ,"しんこう"+ ,"じんじゃ"+ ,"しんせいじ"+ ,"しんちく"+ ,"しんりん"+ ,"すあげ"+ ,"すあし"+ ,"すあな"+ ,"ずあん"+ ,"すいえい"+ ,"すいか"+ ,"すいとう"+ ,"ずいぶん"+ ,"すいようび"+ ,"すうがく"+ ,"すうじつ"+ ,"すうせん"+ ,"すおどり"+ ,"すきま"+ ,"すくう"+ ,"すくない"+ ,"すける"+ ,"すごい"+ ,"すこし"+ ,"ずさん"+ ,"すずしい"+ ,"すすむ"+ ,"すすめる"+ ,"すっかり"+ ,"ずっしり"+ ,"ずっと"+ ,"すてき"+ ,"すてる"+ ,"すねる"+ ,"すのこ"+ ,"すはだ"+ ,"すばらしい"+ ,"ずひょう"+ ,"ずぶぬれ"+ ,"すぶり"+ ,"すふれ"+ ,"すべて"+ ,"すべる"+ ,"ずほう"+ ,"すぼん"+ ,"すまい"+ ,"すめし"+ ,"すもう"+ ,"すやき"+ ,"すらすら"+ ,"するめ"+ ,"すれちがう"+ ,"すろっと"+ ,"すわる"+ ,"すんぜん"+ ,"すんぽう"+ ,"せあぶら"+ ,"せいかつ"+ ,"せいげん"+ ,"せいじ"+ ,"せいよう"+ ,"せおう"+ ,"せかいかん"+ ,"せきにん"+ ,"せきむ"+ ,"せきゆ"+ ,"せきらんうん"+ ,"せけん"+ ,"せこう"+ ,"せすじ"+ ,"せたい"+ ,"せたけ"+ ,"せっかく"+ ,"せっきゃく"+ ,"ぜっく"+ ,"せっけん"+ ,"せっこつ"+ ,"せっさたくま"+ ,"せつぞく"+ ,"せつだん"+ ,"せつでん"+ ,"せっぱん"+ ,"せつび"+ ,"せつぶん"+ ,"せつめい"+ ,"せつりつ"+ ,"せなか"+ ,"せのび"+ ,"せはば"+ ,"せびろ"+ ,"せぼね"+ ,"せまい"+ ,"せまる"+ ,"せめる"+ ,"せもたれ"+ ,"せりふ"+ ,"ぜんあく"+ ,"せんい"+ ,"せんえい"+ ,"せんか"+ ,"せんきょ"+ ,"せんく"+ ,"せんげん"+ ,"ぜんご"+ ,"せんさい"+ ,"せんしゅ"+ ,"せんすい"+ ,"せんせい"+ ,"せんぞ"+ ,"せんたく"+ ,"せんちょう"+ ,"せんてい"+ ,"せんとう"+ ,"せんぬき"+ ,"せんねん"+ ,"せんぱい"+ ,"ぜんぶ"+ ,"ぜんぽう"+ ,"せんむ"+ ,"せんめんじょ"+ ,"せんもん"+ ,"せんやく"+ ,"せんゆう"+ ,"せんよう"+ ,"ぜんら"+ ,"ぜんりゃく"+ ,"せんれい"+ ,"せんろ"+ ,"そあく"+ ,"そいとげる"+ ,"そいね"+ ,"そうがんきょう"+ ,"そうき"+ ,"そうご"+ ,"そうしん"+ ,"そうだん"+ ,"そうなん"+ ,"そうび"+ ,"そうめん"+ ,"そうり"+ ,"そえもの"+ ,"そえん"+ ,"そがい"+ ,"そげき"+ ,"そこう"+ ,"そこそこ"+ ,"そざい"+ ,"そしな"+ ,"そせい"+ ,"そせん"+ ,"そそぐ"+ ,"そだてる"+ ,"そつう"+ ,"そつえん"+ ,"そっかん"+ ,"そつぎょう"+ ,"そっけつ"+ ,"そっこう"+ ,"そっせん"+ ,"そっと"+ ,"そとがわ"+ ,"そとづら"+ ,"そなえる"+ ,"そなた"+ ,"そふぼ"+ ,"そぼく"+ ,"そぼろ"+ ,"そまつ"+ ,"そまる"+ ,"そむく"+ ,"そむりえ"+ ,"そめる"+ ,"そもそも"+ ,"そよかぜ"+ ,"そらまめ"+ ,"そろう"+ ,"そんかい"+ ,"そんけい"+ ,"そんざい"+ ,"そんしつ"+ ,"そんぞく"+ ,"そんちょう"+ ,"ぞんび"+ ,"ぞんぶん"+ ,"そんみん"+ ,"たあい"+ ,"たいいん"+ ,"たいうん"+ ,"たいえき"+ ,"たいおう"+ ,"だいがく"+ ,"たいき"+ ,"たいぐう"+ ,"たいけん"+ ,"たいこ"+ ,"たいざい"+ ,"だいじょうぶ"+ ,"だいすき"+ ,"たいせつ"+ ,"たいそう"+ ,"だいたい"+ ,"たいちょう"+ ,"たいてい"+ ,"だいどころ"+ ,"たいない"+ ,"たいねつ"+ ,"たいのう"+ ,"たいはん"+ ,"だいひょう"+ ,"たいふう"+ ,"たいへん"+ ,"たいほ"+ ,"たいまつばな"+ ,"たいみんぐ"+ ,"たいむ"+ ,"たいめん"+ ,"たいやき"+ ,"たいよう"+ ,"たいら"+ ,"たいりょく"+ ,"たいる"+ ,"たいわん"+ ,"たうえ"+ ,"たえる"+ ,"たおす"+ ,"たおる"+ ,"たおれる"+ ,"たかい"+ ,"たかね"+ ,"たきび"+ ,"たくさん"+ ,"たこく"+ ,"たこやき"+ ,"たさい"+ ,"たしざん"+ ,"だじゃれ"+ ,"たすける"+ ,"たずさわる"+ ,"たそがれ"+ ,"たたかう"+ ,"たたく"+ ,"ただしい"+ ,"たたみ"+ ,"たちばな"+ ,"だっかい"+ ,"だっきゃく"+ ,"だっこ"+ ,"だっしゅつ"+ ,"だったい"+ ,"たてる"+ ,"たとえる"+ ,"たなばた"+ ,"たにん"+ ,"たぬき"+ ,"たのしみ"+ ,"たはつ"+ ,"たぶん"+ ,"たべる"+ ,"たぼう"+ ,"たまご"+ ,"たまる"+ ,"だむる"+ ,"ためいき"+ ,"ためす"+ ,"ためる"+ ,"たもつ"+ ,"たやすい"+ ,"たよる"+ ,"たらす"+ ,"たりきほんがん"+ ,"たりょう"+ ,"たりる"+ ,"たると"+ ,"たれる"+ ,"たれんと"+ ,"たろっと"+ ,"たわむれる"+ ,"だんあつ"+ ,"たんい"+ ,"たんおん"+ ,"たんか"+ ,"たんき"+ ,"たんけん"+ ,"たんご"+ ,"たんさん"+ ,"たんじょうび"+ ,"だんせい"+ ,"たんそく"+ ,"たんたい"+ ,"だんち"+ ,"たんてい"+ ,"たんとう"+ ,"だんな"+ ,"たんにん"+ ,"だんねつ"+ ,"たんのう"+ ,"たんぴん"+ ,"だんぼう"+ ,"たんまつ"+ ,"たんめい"+ ,"だんれつ"+ ,"だんろ"+ ,"だんわ"+ ,"ちあい"+ ,"ちあん"+ ,"ちいき"+ ,"ちいさい"+ ,"ちえん"+ ,"ちかい"+ ,"ちから"+ ,"ちきゅう"+ ,"ちきん"+ ,"ちけいず"+ ,"ちけん"+ ,"ちこく"+ ,"ちさい"+ ,"ちしき"+ ,"ちしりょう"+ ,"ちせい"+ ,"ちそう"+ ,"ちたい"+ ,"ちたん"+ ,"ちちおや"+ ,"ちつじょ"+ ,"ちてき"+ ,"ちてん"+ ,"ちぬき"+ ,"ちぬり"+ ,"ちのう"+ ,"ちひょう"+ ,"ちへいせん"+ ,"ちほう"+ ,"ちまた"+ ,"ちみつ"+ ,"ちみどろ"+ ,"ちめいど"+ ,"ちゃんこなべ"+ ,"ちゅうい"+ ,"ちゆりょく"+ ,"ちょうし"+ ,"ちょさくけん"+ ,"ちらし"+ ,"ちらみ"+ ,"ちりがみ"+ ,"ちりょう"+ ,"ちるど"+ ,"ちわわ"+ ,"ちんたい"+ ,"ちんもく"+ ,"ついか"+ ,"ついたち"+ ,"つうか"+ ,"つうじょう"+ ,"つうはん"+ ,"つうわ"+ ,"つかう"+ ,"つかれる"+ ,"つくね"+ ,"つくる"+ ,"つけね"+ ,"つける"+ ,"つごう"+ ,"つたえる"+ ,"つづく"+ ,"つつじ"+ ,"つつむ"+ ,"つとめる"+ ,"つながる"+ ,"つなみ"+ ,"つねづね"+ ,"つのる"+ ,"つぶす"+ ,"つまらない"+ ,"つまる"+ ,"つみき"+ ,"つめたい"+ ,"つもり"+ ,"つもる"+ ,"つよい"+ ,"つるぼ"+ ,"つるみく"+ ,"つわもの"+ ,"つわり"+ ,"てあし"+ ,"てあて"+ ,"てあみ"+ ,"ていおん"+ ,"ていか"+ ,"ていき"+ ,"ていけい"+ ,"ていこく"+ ,"ていさつ"+ ,"ていし"+ ,"ていせい"+ ,"ていたい"+ ,"ていど"+ ,"ていねい"+ ,"ていひょう"+ ,"ていへん"+ ,"ていぼう"+ ,"てうち"+ ,"ておくれ"+ ,"てきとう"+ ,"てくび"+ ,"でこぼこ"+ ,"てさぎょう"+ ,"てさげ"+ ,"てすり"+ ,"てそう"+ ,"てちがい"+ ,"てちょう"+ ,"てつがく"+ ,"てつづき"+ ,"でっぱ"+ ,"てつぼう"+ ,"てつや"+ ,"でぬかえ"+ ,"てぬき"+ ,"てぬぐい"+ ,"てのひら"+ ,"てはい"+ ,"てぶくろ"+ ,"てふだ"+ ,"てほどき"+ ,"てほん"+ ,"てまえ"+ ,"てまきずし"+ ,"てみじか"+ ,"てみやげ"+ ,"てらす"+ ,"てれび"+ ,"てわけ"+ ,"てわたし"+ ,"でんあつ"+ ,"てんいん"+ ,"てんかい"+ ,"てんき"+ ,"てんぐ"+ ,"てんけん"+ ,"てんごく"+ ,"てんさい"+ ,"てんし"+ ,"てんすう"+ ,"でんち"+ ,"てんてき"+ ,"てんとう"+ ,"てんない"+ ,"てんぷら"+ ,"てんぼうだい"+ ,"てんめつ"+ ,"てんらんかい"+ ,"でんりょく"+ ,"でんわ"+ ,"どあい"+ ,"といれ"+ ,"どうかん"+ ,"とうきゅう"+ ,"どうぐ"+ ,"とうし"+ ,"とうむぎ"+ ,"とおい"+ ,"とおか"+ ,"とおく"+ ,"とおす"+ ,"とおる"+ ,"とかい"+ ,"とかす"+ ,"ときおり"+ ,"ときどき"+ ,"とくい"+ ,"とくしゅう"+ ,"とくてん"+ ,"とくに"+ ,"とくべつ"+ ,"とけい"+ ,"とける"+ ,"とこや"+ ,"とさか"+ ,"としょかん"+ ,"とそう"+ ,"とたん"+ ,"とちゅう"+ ,"とっきゅう"+ ,"とっくん"+ ,"とつぜん"+ ,"とつにゅう"+ ,"とどける"+ ,"ととのえる"+ ,"とない"+ ,"となえる"+ ,"となり"+ ,"とのさま"+ ,"とばす"+ ,"どぶがわ"+ ,"とほう"+ ,"とまる"+ ,"とめる"+ ,"ともだち"+ ,"ともる"+ ,"どようび"+ ,"とらえる"+ ,"とんかつ"+ ,"どんぶり"+ ,"ないかく"+ ,"ないこう"+ ,"ないしょ"+ ,"ないす"+ ,"ないせん"+ ,"ないそう"+ ,"なおす"+ ,"ながい"+ ,"なくす"+ ,"なげる"+ ,"なこうど"+ ,"なさけ"+ ,"なたでここ"+ ,"なっとう"+ ,"なつやすみ"+ ,"ななおし"+ ,"なにごと"+ ,"なにもの"+ ,"なにわ"+ ,"なのか"+ ,"なふだ"+ ,"なまいき"+ ,"なまえ"+ ,"なまみ"+ ,"なみだ"+ ,"なめらか"+ ,"なめる"+ ,"なやむ"+ ,"ならう"+ ,"ならび"+ ,"ならぶ"+ ,"なれる"+ ,"なわとび"+ ,"なわばり"+ ,"にあう"+ ,"にいがた"+ ,"にうけ"+ ,"におい"+ ,"にかい"+ ,"にがて"+ ,"にきび"+ ,"にくしみ"+ ,"にくまん"+ ,"にげる"+ ,"にさんかたんそ"+ ,"にしき"+ ,"にせもの"+ ,"にちじょう"+ ,"にちようび"+ ,"にっか"+ ,"にっき"+ ,"にっけい"+ ,"にっこう"+ ,"にっさん"+ ,"にっしょく"+ ,"にっすう"+ ,"にっせき"+ ,"にってい"+ ,"になう"+ ,"にほん"+ ,"にまめ"+ ,"にもつ"+ ,"にやり"+ ,"にゅういん"+ ,"にりんしゃ"+ ,"にわとり"+ ,"にんい"+ ,"にんか"+ ,"にんき"+ ,"にんげん"+ ,"にんしき"+ ,"にんずう"+ ,"にんそう"+ ,"にんたい"+ ,"にんち"+ ,"にんてい"+ ,"にんにく"+ ,"にんぷ"+ ,"にんまり"+ ,"にんむ"+ ,"にんめい"+ ,"にんよう"+ ,"ぬいくぎ"+ ,"ぬかす"+ ,"ぬぐいとる"+ ,"ぬぐう"+ ,"ぬくもり"+ ,"ぬすむ"+ ,"ぬまえび"+ ,"ぬめり"+ ,"ぬらす"+ ,"ぬんちゃく"+ ,"ねあげ"+ ,"ねいき"+ ,"ねいる"+ ,"ねいろ"+ ,"ねぐせ"+ ,"ねくたい"+ ,"ねくら"+ ,"ねこぜ"+ ,"ねこむ"+ ,"ねさげ"+ ,"ねすごす"+ ,"ねそべる"+ ,"ねだん"+ ,"ねつい"+ ,"ねっしん"+ ,"ねつぞう"+ ,"ねったいぎょ"+ ,"ねぶそく"+ ,"ねふだ"+ ,"ねぼう"+ ,"ねほりはほり"+ ,"ねまき"+ ,"ねまわし"+ ,"ねみみ"+ ,"ねむい"+ ,"ねむたい"+ ,"ねもと"+ ,"ねらう"+ ,"ねわざ"+ ,"ねんいり"+ ,"ねんおし"+ ,"ねんかん"+ ,"ねんきん"+ ,"ねんぐ"+ ,"ねんざ"+ ,"ねんし"+ ,"ねんちゃく"+ ,"ねんど"+ ,"ねんぴ"+ ,"ねんぶつ"+ ,"ねんまつ"+ ,"ねんりょう"+ ,"ねんれい"+ ,"のいず"+ ,"のおづま"+ ,"のがす"+ ,"のきなみ"+ ,"のこぎり"+ ,"のこす"+ ,"のこる"+ ,"のせる"+ ,"のぞく"+ ,"のぞむ"+ ,"のたまう"+ ,"のちほど"+ ,"のっく"+ ,"のばす"+ ,"のはら"+ ,"のべる"+ ,"のぼる"+ ,"のみもの"+ ,"のやま"+ ,"のらいぬ"+ ,"のらねこ"+ ,"のりもの"+ ,"のりゆき"+ ,"のれん"+ ,"のんき"+ ,"ばあい"+ ,"はあく"+ ,"ばあさん"+ ,"ばいか"+ ,"ばいく"+ ,"はいけん"+ ,"はいご"+ ,"はいしん"+ ,"はいすい"+ ,"はいせん"+ ,"はいそう"+ ,"はいち"+ ,"ばいばい"+ ,"はいれつ"+ ,"はえる"+ ,"はおる"+ ,"はかい"+ ,"ばかり"+ ,"はかる"+ ,"はくしゅ"+ ,"はけん"+ ,"はこぶ"+ ,"はさみ"+ ,"はさん"+ ,"はしご"+ ,"ばしょ"+ ,"はしる"+ ,"はせる"+ ,"ぱそこん"+ ,"はそん"+ ,"はたん"+ ,"はちみつ"+ ,"はつおん"+ ,"はっかく"+ ,"はづき"+ ,"はっきり"+ ,"はっくつ"+ ,"はっけん"+ ,"はっこう"+ ,"はっさん"+ ,"はっしん"+ ,"はったつ"+ ,"はっちゅう"+ ,"はってん"+ ,"はっぴょう"+ ,"はっぽう"+ ,"はなす"+ ,"はなび"+ ,"はにかむ"+ ,"はぶらし"+ ,"はみがき"+ ,"はむかう"+ ,"はめつ"+ ,"はやい"+ ,"はやし"+ ,"はらう"+ ,"はろうぃん"+ ,"はわい"+ ,"はんい"+ ,"はんえい"+ ,"はんおん"+ ,"はんかく"+ ,"はんきょう"+ ,"ばんぐみ"+ ,"はんこ"+ ,"はんしゃ"+ ,"はんすう"+ ,"はんだん"+ ,"ぱんち"+ ,"ぱんつ"+ ,"はんてい"+ ,"はんとし"+ ,"はんのう"+ ,"はんぱ"+ ,"はんぶん"+ ,"はんぺん"+ ,"はんぼうき"+ ,"はんめい"+ ,"はんらん"+ ,"はんろん"+ ,"ひいき"+ ,"ひうん"+ ,"ひえる"+ ,"ひかく"+ ,"ひかり"+ ,"ひかる"+ ,"ひかん"+ ,"ひくい"+ ,"ひけつ"+ ,"ひこうき"+ ,"ひこく"+ ,"ひさい"+ ,"ひさしぶり"+ ,"ひさん"+ ,"びじゅつかん"+ ,"ひしょ"+ ,"ひそか"+ ,"ひそむ"+ ,"ひたむき"+ ,"ひだり"+ ,"ひたる"+ ,"ひつぎ"+ ,"ひっこし"+ ,"ひっし"+ ,"ひつじゅひん"+ ,"ひっす"+ ,"ひつぜん"+ ,"ぴったり"+ ,"ぴっちり"+ ,"ひつよう"+ ,"ひてい"+ ,"ひとごみ"+ ,"ひなまつり"+ ,"ひなん"+ ,"ひねる"+ ,"ひはん"+ ,"ひびく"+ ,"ひひょう"+ ,"ひほう"+ ,"ひまわり"+ ,"ひまん"+ ,"ひみつ"+ ,"ひめい"+ ,"ひめじし"+ ,"ひやけ"+ ,"ひやす"+ ,"ひよう"+ ,"びょうき"+ ,"ひらがな"+ ,"ひらく"+ ,"ひりつ"+ ,"ひりょう"+ ,"ひるま"+ ,"ひるやすみ"+ ,"ひれい"+ ,"ひろい"+ ,"ひろう"+ ,"ひろき"+ ,"ひろゆき"+ ,"ひんかく"+ ,"ひんけつ"+ ,"ひんこん"+ ,"ひんしゅ"+ ,"ひんそう"+ ,"ぴんち"+ ,"ひんぱん"+ ,"びんぼう"+ ,"ふあん"+ ,"ふいうち"+ ,"ふうけい"+ ,"ふうせん"+ ,"ぷうたろう"+ ,"ふうとう"+ ,"ふうふ"+ ,"ふえる"+ ,"ふおん"+ ,"ふかい"+ ,"ふきん"+ ,"ふくざつ"+ ,"ふくぶくろ"+ ,"ふこう"+ ,"ふさい"+ ,"ふしぎ"+ ,"ふじみ"+ ,"ふすま"+ ,"ふせい"+ ,"ふせぐ"+ ,"ふそく"+ ,"ぶたにく"+ ,"ふたん"+ ,"ふちょう"+ ,"ふつう"+ ,"ふつか"+ ,"ふっかつ"+ ,"ふっき"+ ,"ふっこく"+ ,"ぶどう"+ ,"ふとる"+ ,"ふとん"+ ,"ふのう"+ ,"ふはい"+ ,"ふひょう"+ ,"ふへん"+ ,"ふまん"+ ,"ふみん"+ ,"ふめつ"+ ,"ふめん"+ ,"ふよう"+ ,"ふりこ"+ ,"ふりる"+ ,"ふるい"+ ,"ふんいき"+ ,"ぶんがく"+ ,"ぶんぐ"+ ,"ふんしつ"+ ,"ぶんせき"+ ,"ふんそう"+ ,"ぶんぽう"+ ,"へいあん"+ ,"へいおん"+ ,"へいがい"+ ,"へいき"+ ,"へいげん"+ ,"へいこう"+ ,"へいさ"+ ,"へいしゃ"+ ,"へいせつ"+ ,"へいそ"+ ,"へいたく"+ ,"へいてん"+ ,"へいねつ"+ ,"へいわ"+ ,"へきが"+ ,"へこむ"+ ,"べにいろ"+ ,"べにしょうが"+ ,"へらす"+ ,"へんかん"+ ,"べんきょう"+ ,"べんごし"+ ,"へんさい"+ ,"へんたい"+ ,"べんり"+ ,"ほあん"+ ,"ほいく"+ ,"ぼうぎょ"+ ,"ほうこく"+ ,"ほうそう"+ ,"ほうほう"+ ,"ほうもん"+ ,"ほうりつ"+ ,"ほえる"+ ,"ほおん"+ ,"ほかん"+ ,"ほきょう"+ ,"ぼきん"+ ,"ほくろ"+ ,"ほけつ"+ ,"ほけん"+ ,"ほこう"+ ,"ほこる"+ ,"ほしい"+ ,"ほしつ"+ ,"ほしゅ"+ ,"ほしょう"+ ,"ほせい"+ ,"ほそい"+ ,"ほそく"+ ,"ほたて"+ ,"ほたる"+ ,"ぽちぶくろ"+ ,"ほっきょく"+ ,"ほっさ"+ ,"ほったん"+ ,"ほとんど"+ ,"ほめる"+ ,"ほんい"+ ,"ほんき"+ ,"ほんけ"+ ,"ほんしつ"+ ,"ほんやく"+ ,"まいにち"+ ,"まかい"+ ,"まかせる"+ ,"まがる"+ ,"まける"+ ,"まこと"+ ,"まさつ"+ ,"まじめ"+ ,"ますく"+ ,"まぜる"+ ,"まつり"+ ,"まとめ"+ ,"まなぶ"+ ,"まぬけ"+ ,"まねく"+ ,"まほう"+ ,"まもる"+ ,"まゆげ"+ ,"まよう"+ ,"まろやか"+ ,"まわす"+ ,"まわり"+ ,"まわる"+ ,"まんが"+ ,"まんきつ"+ ,"まんぞく"+ ,"まんなか"+ ,"みいら"+ ,"みうち"+ ,"みえる"+ ,"みがく"+ ,"みかた"+ ,"みかん"+ ,"みけん"+ ,"みこん"+ ,"みじかい"+ ,"みすい"+ ,"みすえる"+ ,"みせる"+ ,"みっか"+ ,"みつかる"+ ,"みつける"+ ,"みてい"+ ,"みとめる"+ ,"みなと"+ ,"みなみかさい"+ ,"みねらる"+ ,"みのう"+ ,"みのがす"+ ,"みほん"+ ,"みもと"+ ,"みやげ"+ ,"みらい"+ ,"みりょく"+ ,"みわく"+ ,"みんか"+ ,"みんぞく"+ ,"むいか"+ ,"むえき"+ ,"むえん"+ ,"むかい"+ ,"むかう"+ ,"むかえ"+ ,"むかし"+ ,"むぎちゃ"+ ,"むける"+ ,"むげん"+ ,"むさぼる"+ ,"むしあつい"+ ,"むしば"+ ,"むじゅん"+ ,"むしろ"+ ,"むすう"+ ,"むすこ"+ ,"むすぶ"+ ,"むすめ"+ ,"むせる"+ ,"むせん"+ ,"むちゅう"+ ,"むなしい"+ ,"むのう"+ ,"むやみ"+ ,"むよう"+ ,"むらさき"+ ,"むりょう"+ ,"むろん"+ ,"めいあん"+ ,"めいうん"+ ,"めいえん"+ ,"めいかく"+ ,"めいきょく"+ ,"めいさい"+ ,"めいし"+ ,"めいそう"+ ,"めいぶつ"+ ,"めいれい"+ ,"めいわく"+ ,"めぐまれる"+ ,"めざす"+ ,"めした"+ ,"めずらしい"+ ,"めだつ"+ ,"めまい"+ ,"めやす"+ ,"めんきょ"+ ,"めんせき"+ ,"めんどう"+ ,"もうしあげる"+ ,"もうどうけん"+ ,"もえる"+ ,"もくし"+ ,"もくてき"+ ,"もくようび"+ ,"もちろん"+ ,"もどる"+ ,"もらう"+ ,"もんく"+ ,"もんだい"+ ,"やおや"+ ,"やける"+ ,"やさい"+ ,"やさしい"+ ,"やすい"+ ,"やすたろう"+ ,"やすみ"+ ,"やせる"+ ,"やそう"+ ,"やたい"+ ,"やちん"+ ,"やっと"+ ,"やっぱり"+ ,"やぶる"+ ,"やめる"+ ,"ややこしい"+ ,"やよい"+ ,"やわらかい"+ ,"ゆうき"+ ,"ゆうびんきょく"+ ,"ゆうべ"+ ,"ゆうめい"+ ,"ゆけつ"+ ,"ゆしゅつ"+ ,"ゆせん"+ ,"ゆそう"+ ,"ゆたか"+ ,"ゆちゃく"+ ,"ゆでる"+ ,"ゆにゅう"+ ,"ゆびわ"+ ,"ゆらい"+ ,"ゆれる"+ ,"ようい"+ ,"ようか"+ ,"ようきゅう"+ ,"ようじ"+ ,"ようす"+ ,"ようちえん"+ ,"よかぜ"+ ,"よかん"+ ,"よきん"+ ,"よくせい"+ ,"よくぼう"+ ,"よけい"+ ,"よごれる"+ ,"よさん"+ ,"よしゅう"+ ,"よそう"+ ,"よそく"+ ,"よっか"+ ,"よてい"+ ,"よどがわく"+ ,"よねつ"+ ,"よやく"+ ,"よゆう"+ ,"よろこぶ"+ ,"よろしい"+ ,"らいう"+ ,"らくがき"+ ,"らくご"+ ,"らくさつ"+ ,"らくだ"+ ,"らしんばん"+ ,"らせん"+ ,"らぞく"+ ,"らたい"+ ,"らっか"+ ,"られつ"+ ,"りえき"+ ,"りかい"+ ,"りきさく"+ ,"りきせつ"+ ,"りくぐん"+ ,"りくつ"+ ,"りけん"+ ,"りこう"+ ,"りせい"+ ,"りそう"+ ,"りそく"+ ,"りてん"+ ,"りねん"+ ,"りゆう"+ ,"りゅうがく"+ ,"りよう"+ ,"りょうり"+ ,"りょかん"+ ,"りょくちゃ"+ ,"りょこう"+ ,"りりく"+ ,"りれき"+ ,"りろん"+ ,"りんご"+ ,"るいけい"+ ,"るいさい"+ ,"るいじ"+ ,"るいせき"+ ,"るすばん"+ ,"るりがわら"+ ,"れいかん"+ ,"れいぎ"+ ,"れいせい"+ ,"れいぞうこ"+ ,"れいとう"+ ,"れいぼう"+ ,"れきし"+ ,"れきだい"+ ,"れんあい"+ ,"れんけい"+ ,"れんこん"+ ,"れんさい"+ ,"れんしゅう"+ ,"れんぞく"+ ,"れんらく"+ ,"ろうか"+ ,"ろうご"+ ,"ろうじん"+ ,"ろうそく"+ ,"ろくが"+ ,"ろこつ"+ ,"ろじうら"+ ,"ろしゅつ"+ ,"ろせん"+ ,"ろてん"+ ,"ろめん"+ ,"ろれつ"+ ,"ろんぎ"+ ,"ろんぱ"+ ,"ろんぶん"+ ,"ろんり"+ ,"わかす"+ ,"わかめ"+ ,"わかやま"+ ,"わかれる"+ ,"わしつ"+ ,"わじまし"+ ,"わすれもの"+ ,"わらう"+ ,"われる"+ ]
+ lib/Cardano/Dictionary/Korean.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/bloxbean/cardano-client-lib/blob/master/crypto/src/main/resources/mnemonic/wordlist/korean.txt++module Cardano.Dictionary.Korean+ (+ -- * dictionary value+ korean+ ) where++import Basement.String+ ( String )+import Cardano.Dictionary.Generic+ ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+ ( Dictionary )++korean :: Dictionary+korean = toDictionary wordList+ where+ wordList :: [String]+ wordList =+ ["가격"+ ,"가끔"+ ,"가난"+ ,"가능"+ ,"가득"+ ,"가르침"+ ,"가뭄"+ ,"가방"+ ,"가상"+ ,"가슴"+ ,"가운데"+ ,"가을"+ ,"가이드"+ ,"가입"+ ,"가장"+ ,"가정"+ ,"가족"+ ,"가죽"+ ,"각오"+ ,"각자"+ ,"간격"+ ,"간부"+ ,"간섭"+ ,"간장"+ ,"간접"+ ,"간판"+ ,"갈등"+ ,"갈비"+ ,"갈색"+ ,"갈증"+ ,"감각"+ ,"감기"+ ,"감소"+ ,"감수성"+ ,"감자"+ ,"감정"+ ,"갑자기"+ ,"강남"+ ,"강당"+ ,"강도"+ ,"강력히"+ ,"강변"+ ,"강북"+ ,"강사"+ ,"강수량"+ ,"강아지"+ ,"강원도"+ ,"강의"+ ,"강제"+ ,"강조"+ ,"같이"+ ,"개구리"+ ,"개나리"+ ,"개방"+ ,"개별"+ ,"개선"+ ,"개성"+ ,"개인"+ ,"객관적"+ ,"거실"+ ,"거액"+ ,"거울"+ ,"거짓"+ ,"거품"+ ,"걱정"+ ,"건강"+ ,"건물"+ ,"건설"+ ,"건조"+ ,"건축"+ ,"걸음"+ ,"검사"+ ,"검토"+ ,"게시판"+ ,"게임"+ ,"겨울"+ ,"견해"+ ,"결과"+ ,"결국"+ ,"결론"+ ,"결석"+ ,"결승"+ ,"결심"+ ,"결정"+ ,"결혼"+ ,"경계"+ ,"경고"+ ,"경기"+ ,"경력"+ ,"경복궁"+ ,"경비"+ ,"경상도"+ ,"경영"+ ,"경우"+ ,"경쟁"+ ,"경제"+ ,"경주"+ ,"경찰"+ ,"경치"+ ,"경향"+ ,"경험"+ ,"계곡"+ ,"계단"+ ,"계란"+ ,"계산"+ ,"계속"+ ,"계약"+ ,"계절"+ ,"계층"+ ,"계획"+ ,"고객"+ ,"고구려"+ ,"고궁"+ ,"고급"+ ,"고등학생"+ ,"고무신"+ ,"고민"+ ,"고양이"+ ,"고장"+ ,"고전"+ ,"고집"+ ,"고춧가루"+ ,"고통"+ ,"고향"+ ,"곡식"+ ,"골목"+ ,"골짜기"+ ,"골프"+ ,"공간"+ ,"공개"+ ,"공격"+ ,"공군"+ ,"공급"+ ,"공기"+ ,"공동"+ ,"공무원"+ ,"공부"+ ,"공사"+ ,"공식"+ ,"공업"+ ,"공연"+ ,"공원"+ ,"공장"+ ,"공짜"+ ,"공책"+ ,"공통"+ ,"공포"+ ,"공항"+ ,"공휴일"+ ,"과목"+ ,"과일"+ ,"과장"+ ,"과정"+ ,"과학"+ ,"관객"+ ,"관계"+ ,"관광"+ ,"관념"+ ,"관람"+ ,"관련"+ ,"관리"+ ,"관습"+ ,"관심"+ ,"관점"+ ,"관찰"+ ,"광경"+ ,"광고"+ ,"광장"+ ,"광주"+ ,"괴로움"+ ,"굉장히"+ ,"교과서"+ ,"교문"+ ,"교복"+ ,"교실"+ ,"교양"+ ,"교육"+ ,"교장"+ ,"교직"+ ,"교통"+ ,"교환"+ ,"교훈"+ ,"구경"+ ,"구름"+ ,"구멍"+ ,"구별"+ ,"구분"+ ,"구석"+ ,"구성"+ ,"구속"+ ,"구역"+ ,"구입"+ ,"구청"+ ,"구체적"+ ,"국가"+ ,"국기"+ ,"국내"+ ,"국립"+ ,"국물"+ ,"국민"+ ,"국수"+ ,"국어"+ ,"국왕"+ ,"국적"+ ,"국제"+ ,"국회"+ ,"군대"+ ,"군사"+ ,"군인"+ ,"궁극적"+ ,"권리"+ ,"권위"+ ,"권투"+ ,"귀국"+ ,"귀신"+ ,"규정"+ ,"규칙"+ ,"균형"+ ,"그날"+ ,"그냥"+ ,"그늘"+ ,"그러나"+ ,"그룹"+ ,"그릇"+ ,"그림"+ ,"그제서야"+ ,"그토록"+ ,"극복"+ ,"극히"+ ,"근거"+ ,"근교"+ ,"근래"+ ,"근로"+ ,"근무"+ ,"근본"+ ,"근원"+ ,"근육"+ ,"근처"+ ,"글씨"+ ,"글자"+ ,"금강산"+ ,"금고"+ ,"금년"+ ,"금메달"+ ,"금액"+ ,"금연"+ ,"금요일"+ ,"금지"+ ,"긍정적"+ ,"기간"+ ,"기관"+ ,"기념"+ ,"기능"+ ,"기독교"+ ,"기둥"+ ,"기록"+ ,"기름"+ ,"기법"+ ,"기본"+ ,"기분"+ ,"기쁨"+ ,"기숙사"+ ,"기술"+ ,"기억"+ ,"기업"+ ,"기온"+ ,"기운"+ ,"기원"+ ,"기적"+ ,"기준"+ ,"기침"+ ,"기혼"+ ,"기획"+ ,"긴급"+ ,"긴장"+ ,"길이"+ ,"김밥"+ ,"김치"+ ,"김포공항"+ ,"깍두기"+ ,"깜빡"+ ,"깨달음"+ ,"깨소금"+ ,"껍질"+ ,"꼭대기"+ ,"꽃잎"+ ,"나들이"+ ,"나란히"+ ,"나머지"+ ,"나물"+ ,"나침반"+ ,"나흘"+ ,"낙엽"+ ,"난방"+ ,"날개"+ ,"날씨"+ ,"날짜"+ ,"남녀"+ ,"남대문"+ ,"남매"+ ,"남산"+ ,"남자"+ ,"남편"+ ,"남학생"+ ,"낭비"+ ,"낱말"+ ,"내년"+ ,"내용"+ ,"내일"+ ,"냄비"+ ,"냄새"+ ,"냇물"+ ,"냉동"+ ,"냉면"+ ,"냉방"+ ,"냉장고"+ ,"넥타이"+ ,"넷째"+ ,"노동"+ ,"노란색"+ ,"노력"+ ,"노인"+ ,"녹음"+ ,"녹차"+ ,"녹화"+ ,"논리"+ ,"논문"+ ,"논쟁"+ ,"놀이"+ ,"농구"+ ,"농담"+ ,"농민"+ ,"농부"+ ,"농업"+ ,"농장"+ ,"농촌"+ ,"높이"+ ,"눈동자"+ ,"눈물"+ ,"눈썹"+ ,"뉴욕"+ ,"느낌"+ ,"늑대"+ ,"능동적"+ ,"능력"+ ,"다방"+ ,"다양성"+ ,"다음"+ ,"다이어트"+ ,"다행"+ ,"단계"+ ,"단골"+ ,"단독"+ ,"단맛"+ ,"단순"+ ,"단어"+ ,"단위"+ ,"단점"+ ,"단체"+ ,"단추"+ ,"단편"+ ,"단풍"+ ,"달걀"+ ,"달러"+ ,"달력"+ ,"달리"+ ,"닭고기"+ ,"담당"+ ,"담배"+ ,"담요"+ ,"담임"+ ,"답변"+ ,"답장"+ ,"당근"+ ,"당분간"+ ,"당연히"+ ,"당장"+ ,"대규모"+ ,"대낮"+ ,"대단히"+ ,"대답"+ ,"대도시"+ ,"대략"+ ,"대량"+ ,"대륙"+ ,"대문"+ ,"대부분"+ ,"대신"+ ,"대응"+ ,"대장"+ ,"대전"+ ,"대접"+ ,"대중"+ ,"대책"+ ,"대출"+ ,"대충"+ ,"대통령"+ ,"대학"+ ,"대한민국"+ ,"대합실"+ ,"대형"+ ,"덩어리"+ ,"데이트"+ ,"도대체"+ ,"도덕"+ ,"도둑"+ ,"도망"+ ,"도서관"+ ,"도심"+ ,"도움"+ ,"도입"+ ,"도자기"+ ,"도저히"+ ,"도전"+ ,"도중"+ ,"도착"+ ,"독감"+ ,"독립"+ ,"독서"+ ,"독일"+ ,"독창적"+ ,"동화책"+ ,"뒷모습"+ ,"뒷산"+ ,"딸아이"+ ,"마누라"+ ,"마늘"+ ,"마당"+ ,"마라톤"+ ,"마련"+ ,"마무리"+ ,"마사지"+ ,"마약"+ ,"마요네즈"+ ,"마을"+ ,"마음"+ ,"마이크"+ ,"마중"+ ,"마지막"+ ,"마찬가지"+ ,"마찰"+ ,"마흔"+ ,"막걸리"+ ,"막내"+ ,"막상"+ ,"만남"+ ,"만두"+ ,"만세"+ ,"만약"+ ,"만일"+ ,"만점"+ ,"만족"+ ,"만화"+ ,"많이"+ ,"말기"+ ,"말씀"+ ,"말투"+ ,"맘대로"+ ,"망원경"+ ,"매년"+ ,"매달"+ ,"매력"+ ,"매번"+ ,"매스컴"+ ,"매일"+ ,"매장"+ ,"맥주"+ ,"먹이"+ ,"먼저"+ ,"먼지"+ ,"멀리"+ ,"메일"+ ,"며느리"+ ,"며칠"+ ,"면담"+ ,"멸치"+ ,"명단"+ ,"명령"+ ,"명예"+ ,"명의"+ ,"명절"+ ,"명칭"+ ,"명함"+ ,"모금"+ ,"모니터"+ ,"모델"+ ,"모든"+ ,"모범"+ ,"모습"+ ,"모양"+ ,"모임"+ ,"모조리"+ ,"모집"+ ,"모퉁이"+ ,"목걸이"+ ,"목록"+ ,"목사"+ ,"목소리"+ ,"목숨"+ ,"목적"+ ,"목표"+ ,"몰래"+ ,"몸매"+ ,"몸무게"+ ,"몸살"+ ,"몸속"+ ,"몸짓"+ ,"몸통"+ ,"몹시"+ ,"무관심"+ ,"무궁화"+ ,"무더위"+ ,"무덤"+ ,"무릎"+ ,"무슨"+ ,"무엇"+ ,"무역"+ ,"무용"+ ,"무조건"+ ,"무지개"+ ,"무척"+ ,"문구"+ ,"문득"+ ,"문법"+ ,"문서"+ ,"문제"+ ,"문학"+ ,"문화"+ ,"물가"+ ,"물건"+ ,"물결"+ ,"물고기"+ ,"물론"+ ,"물리학"+ ,"물음"+ ,"물질"+ ,"물체"+ ,"미국"+ ,"미디어"+ ,"미사일"+ ,"미술"+ ,"미역"+ ,"미용실"+ ,"미움"+ ,"미인"+ ,"미팅"+ ,"미혼"+ ,"민간"+ ,"민족"+ ,"민주"+ ,"믿음"+ ,"밀가루"+ ,"밀리미터"+ ,"밑바닥"+ ,"바가지"+ ,"바구니"+ ,"바나나"+ ,"바늘"+ ,"바닥"+ ,"바닷가"+ ,"바람"+ ,"바이러스"+ ,"바탕"+ ,"박물관"+ ,"박사"+ ,"박수"+ ,"반대"+ ,"반드시"+ ,"반말"+ ,"반발"+ ,"반성"+ ,"반응"+ ,"반장"+ ,"반죽"+ ,"반지"+ ,"반찬"+ ,"받침"+ ,"발가락"+ ,"발걸음"+ ,"발견"+ ,"발달"+ ,"발레"+ ,"발목"+ ,"발바닥"+ ,"발생"+ ,"발음"+ ,"발자국"+ ,"발전"+ ,"발톱"+ ,"발표"+ ,"밤하늘"+ ,"밥그릇"+ ,"밥맛"+ ,"밥상"+ ,"밥솥"+ ,"방금"+ ,"방면"+ ,"방문"+ ,"방바닥"+ ,"방법"+ ,"방송"+ ,"방식"+ ,"방안"+ ,"방울"+ ,"방지"+ ,"방학"+ ,"방해"+ ,"방향"+ ,"배경"+ ,"배꼽"+ ,"배달"+ ,"배드민턴"+ ,"백두산"+ ,"백색"+ ,"백성"+ ,"백인"+ ,"백제"+ ,"백화점"+ ,"버릇"+ ,"버섯"+ ,"버튼"+ ,"번개"+ ,"번역"+ ,"번지"+ ,"번호"+ ,"벌금"+ ,"벌레"+ ,"벌써"+ ,"범위"+ ,"범인"+ ,"범죄"+ ,"법률"+ ,"법원"+ ,"법적"+ ,"법칙"+ ,"베이징"+ ,"벨트"+ ,"변경"+ ,"변동"+ ,"변명"+ ,"변신"+ ,"변호사"+ ,"변화"+ ,"별도"+ ,"별명"+ ,"별일"+ ,"병실"+ ,"병아리"+ ,"병원"+ ,"보관"+ ,"보너스"+ ,"보라색"+ ,"보람"+ ,"보름"+ ,"보상"+ ,"보안"+ ,"보자기"+ ,"보장"+ ,"보전"+ ,"보존"+ ,"보통"+ ,"보편적"+ ,"보험"+ ,"복도"+ ,"복사"+ ,"복숭아"+ ,"복습"+ ,"볶음"+ ,"본격적"+ ,"본래"+ ,"본부"+ ,"본사"+ ,"본성"+ ,"본인"+ ,"본질"+ ,"볼펜"+ ,"봉사"+ ,"봉지"+ ,"봉투"+ ,"부근"+ ,"부끄러움"+ ,"부담"+ ,"부동산"+ ,"부문"+ ,"부분"+ ,"부산"+ ,"부상"+ ,"부엌"+ ,"부인"+ ,"부작용"+ ,"부장"+ ,"부정"+ ,"부족"+ ,"부지런히"+ ,"부친"+ ,"부탁"+ ,"부품"+ ,"부회장"+ ,"북부"+ ,"북한"+ ,"분노"+ ,"분량"+ ,"분리"+ ,"분명"+ ,"분석"+ ,"분야"+ ,"분위기"+ ,"분필"+ ,"분홍색"+ ,"불고기"+ ,"불과"+ ,"불교"+ ,"불꽃"+ ,"불만"+ ,"불법"+ ,"불빛"+ ,"불안"+ ,"불이익"+ ,"불행"+ ,"브랜드"+ ,"비극"+ ,"비난"+ ,"비닐"+ ,"비둘기"+ ,"비디오"+ ,"비로소"+ ,"비만"+ ,"비명"+ ,"비밀"+ ,"비바람"+ ,"비빔밥"+ ,"비상"+ ,"비용"+ ,"비율"+ ,"비중"+ ,"비타민"+ ,"비판"+ ,"빌딩"+ ,"빗물"+ ,"빗방울"+ ,"빗줄기"+ ,"빛깔"+ ,"빨간색"+ ,"빨래"+ ,"빨리"+ ,"사건"+ ,"사계절"+ ,"사나이"+ ,"사냥"+ ,"사람"+ ,"사랑"+ ,"사립"+ ,"사모님"+ ,"사물"+ ,"사방"+ ,"사상"+ ,"사생활"+ ,"사설"+ ,"사슴"+ ,"사실"+ ,"사업"+ ,"사용"+ ,"사월"+ ,"사장"+ ,"사전"+ ,"사진"+ ,"사촌"+ ,"사춘기"+ ,"사탕"+ ,"사투리"+ ,"사흘"+ ,"산길"+ ,"산부인과"+ ,"산업"+ ,"산책"+ ,"살림"+ ,"살인"+ ,"살짝"+ ,"삼계탕"+ ,"삼국"+ ,"삼십"+ ,"삼월"+ ,"삼촌"+ ,"상관"+ ,"상금"+ ,"상대"+ ,"상류"+ ,"상반기"+ ,"상상"+ ,"상식"+ ,"상업"+ ,"상인"+ ,"상자"+ ,"상점"+ ,"상처"+ ,"상추"+ ,"상태"+ ,"상표"+ ,"상품"+ ,"상황"+ ,"새벽"+ ,"색깔"+ ,"색연필"+ ,"생각"+ ,"생명"+ ,"생물"+ ,"생방송"+ ,"생산"+ ,"생선"+ ,"생신"+ ,"생일"+ ,"생활"+ ,"서랍"+ ,"서른"+ ,"서명"+ ,"서민"+ ,"서비스"+ ,"서양"+ ,"서울"+ ,"서적"+ ,"서점"+ ,"서쪽"+ ,"서클"+ ,"석사"+ ,"석유"+ ,"선거"+ ,"선물"+ ,"선배"+ ,"선생"+ ,"선수"+ ,"선원"+ ,"선장"+ ,"선전"+ ,"선택"+ ,"선풍기"+ ,"설거지"+ ,"설날"+ ,"설렁탕"+ ,"설명"+ ,"설문"+ ,"설사"+ ,"설악산"+ ,"설치"+ ,"설탕"+ ,"섭씨"+ ,"성공"+ ,"성당"+ ,"성명"+ ,"성별"+ ,"성인"+ ,"성장"+ ,"성적"+ ,"성질"+ ,"성함"+ ,"세금"+ ,"세미나"+ ,"세상"+ ,"세월"+ ,"세종대왕"+ ,"세탁"+ ,"센터"+ ,"센티미터"+ ,"셋째"+ ,"소규모"+ ,"소극적"+ ,"소금"+ ,"소나기"+ ,"소년"+ ,"소득"+ ,"소망"+ ,"소문"+ ,"소설"+ ,"소속"+ ,"소아과"+ ,"소용"+ ,"소원"+ ,"소음"+ ,"소중히"+ ,"소지품"+ ,"소질"+ ,"소풍"+ ,"소형"+ ,"속담"+ ,"속도"+ ,"속옷"+ ,"손가락"+ ,"손길"+ ,"손녀"+ ,"손님"+ ,"손등"+ ,"손목"+ ,"손뼉"+ ,"손실"+ ,"손질"+ ,"손톱"+ ,"손해"+ ,"솔직히"+ ,"솜씨"+ ,"송아지"+ ,"송이"+ ,"송편"+ ,"쇠고기"+ ,"쇼핑"+ ,"수건"+ ,"수년"+ ,"수단"+ ,"수돗물"+ ,"수동적"+ ,"수면"+ ,"수명"+ ,"수박"+ ,"수상"+ ,"수석"+ ,"수술"+ ,"수시로"+ ,"수업"+ ,"수염"+ ,"수영"+ ,"수입"+ ,"수준"+ ,"수집"+ ,"수출"+ ,"수컷"+ ,"수필"+ ,"수학"+ ,"수험생"+ ,"수화기"+ ,"숙녀"+ ,"숙소"+ ,"숙제"+ ,"순간"+ ,"순서"+ ,"순수"+ ,"순식간"+ ,"순위"+ ,"숟가락"+ ,"술병"+ ,"술집"+ ,"숫자"+ ,"스님"+ ,"스물"+ ,"스스로"+ ,"스승"+ ,"스웨터"+ ,"스위치"+ ,"스케이트"+ ,"스튜디오"+ ,"스트레스"+ ,"스포츠"+ ,"슬쩍"+ ,"슬픔"+ ,"습관"+ ,"습기"+ ,"승객"+ ,"승리"+ ,"승부"+ ,"승용차"+ ,"승진"+ ,"시각"+ ,"시간"+ ,"시골"+ ,"시금치"+ ,"시나리오"+ ,"시댁"+ ,"시리즈"+ ,"시멘트"+ ,"시민"+ ,"시부모"+ ,"시선"+ ,"시설"+ ,"시스템"+ ,"시아버지"+ ,"시어머니"+ ,"시월"+ ,"시인"+ ,"시일"+ ,"시작"+ ,"시장"+ ,"시절"+ ,"시점"+ ,"시중"+ ,"시즌"+ ,"시집"+ ,"시청"+ ,"시합"+ ,"시험"+ ,"식구"+ ,"식기"+ ,"식당"+ ,"식량"+ ,"식료품"+ ,"식물"+ ,"식빵"+ ,"식사"+ ,"식생활"+ ,"식초"+ ,"식탁"+ ,"식품"+ ,"신고"+ ,"신규"+ ,"신념"+ ,"신문"+ ,"신발"+ ,"신비"+ ,"신사"+ ,"신세"+ ,"신용"+ ,"신제품"+ ,"신청"+ ,"신체"+ ,"신화"+ ,"실감"+ ,"실내"+ ,"실력"+ ,"실례"+ ,"실망"+ ,"실수"+ ,"실습"+ ,"실시"+ ,"실장"+ ,"실정"+ ,"실질적"+ ,"실천"+ ,"실체"+ ,"실컷"+ ,"실태"+ ,"실패"+ ,"실험"+ ,"실현"+ ,"심리"+ ,"심부름"+ ,"심사"+ ,"심장"+ ,"심정"+ ,"심판"+ ,"쌍둥이"+ ,"씨름"+ ,"씨앗"+ ,"아가씨"+ ,"아나운서"+ ,"아드님"+ ,"아들"+ ,"아쉬움"+ ,"아스팔트"+ ,"아시아"+ ,"아울러"+ ,"아저씨"+ ,"아줌마"+ ,"아직"+ ,"아침"+ ,"아파트"+ ,"아프리카"+ ,"아픔"+ ,"아홉"+ ,"아흔"+ ,"악기"+ ,"악몽"+ ,"악수"+ ,"안개"+ ,"안경"+ ,"안과"+ ,"안내"+ ,"안녕"+ ,"안동"+ ,"안방"+ ,"안부"+ ,"안주"+ ,"알루미늄"+ ,"알코올"+ ,"암시"+ ,"암컷"+ ,"압력"+ ,"앞날"+ ,"앞문"+ ,"애인"+ ,"애정"+ ,"액수"+ ,"앨범"+ ,"야간"+ ,"야단"+ ,"야옹"+ ,"약간"+ ,"약국"+ ,"약속"+ ,"약수"+ ,"약점"+ ,"약품"+ ,"약혼녀"+ ,"양념"+ ,"양력"+ ,"양말"+ ,"양배추"+ ,"양주"+ ,"양파"+ ,"어둠"+ ,"어려움"+ ,"어른"+ ,"어젯밤"+ ,"어쨌든"+ ,"어쩌다가"+ ,"어쩐지"+ ,"언니"+ ,"언덕"+ ,"언론"+ ,"언어"+ ,"얼굴"+ ,"얼른"+ ,"얼음"+ ,"얼핏"+ ,"엄마"+ ,"업무"+ ,"업종"+ ,"업체"+ ,"엉덩이"+ ,"엉망"+ ,"엉터리"+ ,"엊그제"+ ,"에너지"+ ,"에어컨"+ ,"엔진"+ ,"여건"+ ,"여고생"+ ,"여관"+ ,"여군"+ ,"여권"+ ,"여대생"+ ,"여덟"+ ,"여동생"+ ,"여든"+ ,"여론"+ ,"여름"+ ,"여섯"+ ,"여성"+ ,"여왕"+ ,"여인"+ ,"여전히"+ ,"여직원"+ ,"여학생"+ ,"여행"+ ,"역사"+ ,"역시"+ ,"역할"+ ,"연결"+ ,"연구"+ ,"연극"+ ,"연기"+ ,"연락"+ ,"연설"+ ,"연세"+ ,"연속"+ ,"연습"+ ,"연애"+ ,"연예인"+ ,"연인"+ ,"연장"+ ,"연주"+ ,"연출"+ ,"연필"+ ,"연합"+ ,"연휴"+ ,"열기"+ ,"열매"+ ,"열쇠"+ ,"열심히"+ ,"열정"+ ,"열차"+ ,"열흘"+ ,"염려"+ ,"엽서"+ ,"영국"+ ,"영남"+ ,"영상"+ ,"영양"+ ,"영역"+ ,"영웅"+ ,"영원히"+ ,"영하"+ ,"영향"+ ,"영혼"+ ,"영화"+ ,"옆구리"+ ,"옆방"+ ,"옆집"+ ,"예감"+ ,"예금"+ ,"예방"+ ,"예산"+ ,"예상"+ ,"예선"+ ,"예술"+ ,"예습"+ ,"예식장"+ ,"예약"+ ,"예전"+ ,"예절"+ ,"예정"+ ,"예컨대"+ ,"옛날"+ ,"오늘"+ ,"오락"+ ,"오랫동안"+ ,"오렌지"+ ,"오로지"+ ,"오른발"+ ,"오븐"+ ,"오십"+ ,"오염"+ ,"오월"+ ,"오전"+ ,"오직"+ ,"오징어"+ ,"오페라"+ ,"오피스텔"+ ,"오히려"+ ,"옥상"+ ,"옥수수"+ ,"온갖"+ ,"온라인"+ ,"온몸"+ ,"온종일"+ ,"온통"+ ,"올가을"+ ,"올림픽"+ ,"올해"+ ,"옷차림"+ ,"와이셔츠"+ ,"와인"+ ,"완성"+ ,"완전"+ ,"왕비"+ ,"왕자"+ ,"왜냐하면"+ ,"왠지"+ ,"외갓집"+ ,"외국"+ ,"외로움"+ ,"외삼촌"+ ,"외출"+ ,"외침"+ ,"외할머니"+ ,"왼발"+ ,"왼손"+ ,"왼쪽"+ ,"요금"+ ,"요일"+ ,"요즘"+ ,"요청"+ ,"용기"+ ,"용서"+ ,"용어"+ ,"우산"+ ,"우선"+ ,"우승"+ ,"우연히"+ ,"우정"+ ,"우체국"+ ,"우편"+ ,"운동"+ ,"운명"+ ,"운반"+ ,"운전"+ ,"운행"+ ,"울산"+ ,"울음"+ ,"움직임"+ ,"웃어른"+ ,"웃음"+ ,"워낙"+ ,"원고"+ ,"원래"+ ,"원서"+ ,"원숭이"+ ,"원인"+ ,"원장"+ ,"원피스"+ ,"월급"+ ,"월드컵"+ ,"월세"+ ,"월요일"+ ,"웨이터"+ ,"위반"+ ,"위법"+ ,"위성"+ ,"위원"+ ,"위험"+ ,"위협"+ ,"윗사람"+ ,"유난히"+ ,"유럽"+ ,"유명"+ ,"유물"+ ,"유산"+ ,"유적"+ ,"유치원"+ ,"유학"+ ,"유행"+ ,"유형"+ ,"육군"+ ,"육상"+ ,"육십"+ ,"육체"+ ,"은행"+ ,"음력"+ ,"음료"+ ,"음반"+ ,"음성"+ ,"음식"+ ,"음악"+ ,"음주"+ ,"의견"+ ,"의논"+ ,"의문"+ ,"의복"+ ,"의식"+ ,"의심"+ ,"의외로"+ ,"의욕"+ ,"의원"+ ,"의학"+ ,"이것"+ ,"이곳"+ ,"이념"+ ,"이놈"+ ,"이달"+ ,"이대로"+ ,"이동"+ ,"이렇게"+ ,"이력서"+ ,"이론적"+ ,"이름"+ ,"이민"+ ,"이발소"+ ,"이별"+ ,"이불"+ ,"이빨"+ ,"이상"+ ,"이성"+ ,"이슬"+ ,"이야기"+ ,"이용"+ ,"이웃"+ ,"이월"+ ,"이윽고"+ ,"이익"+ ,"이전"+ ,"이중"+ ,"이튿날"+ ,"이틀"+ ,"이혼"+ ,"인간"+ ,"인격"+ ,"인공"+ ,"인구"+ ,"인근"+ ,"인기"+ ,"인도"+ ,"인류"+ ,"인물"+ ,"인생"+ ,"인쇄"+ ,"인연"+ ,"인원"+ ,"인재"+ ,"인종"+ ,"인천"+ ,"인체"+ ,"인터넷"+ ,"인하"+ ,"인형"+ ,"일곱"+ ,"일기"+ ,"일단"+ ,"일대"+ ,"일등"+ ,"일반"+ ,"일본"+ ,"일부"+ ,"일상"+ ,"일생"+ ,"일손"+ ,"일요일"+ ,"일월"+ ,"일정"+ ,"일종"+ ,"일주일"+ ,"일찍"+ ,"일체"+ ,"일치"+ ,"일행"+ ,"일회용"+ ,"임금"+ ,"임무"+ ,"입대"+ ,"입력"+ ,"입맛"+ ,"입사"+ ,"입술"+ ,"입시"+ ,"입원"+ ,"입장"+ ,"입학"+ ,"자가용"+ ,"자격"+ ,"자극"+ ,"자동"+ ,"자랑"+ ,"자부심"+ ,"자식"+ ,"자신"+ ,"자연"+ ,"자원"+ ,"자율"+ ,"자전거"+ ,"자정"+ ,"자존심"+ ,"자판"+ ,"작가"+ ,"작년"+ ,"작성"+ ,"작업"+ ,"작용"+ ,"작은딸"+ ,"작품"+ ,"잔디"+ ,"잔뜩"+ ,"잔치"+ ,"잘못"+ ,"잠깐"+ ,"잠수함"+ ,"잠시"+ ,"잠옷"+ ,"잠자리"+ ,"잡지"+ ,"장관"+ ,"장군"+ ,"장기간"+ ,"장래"+ ,"장례"+ ,"장르"+ ,"장마"+ ,"장면"+ ,"장모"+ ,"장미"+ ,"장비"+ ,"장사"+ ,"장소"+ ,"장식"+ ,"장애인"+ ,"장인"+ ,"장점"+ ,"장차"+ ,"장학금"+ ,"재능"+ ,"재빨리"+ ,"재산"+ ,"재생"+ ,"재작년"+ ,"재정"+ ,"재채기"+ ,"재판"+ ,"재학"+ ,"재활용"+ ,"저것"+ ,"저고리"+ ,"저곳"+ ,"저녁"+ ,"저런"+ ,"저렇게"+ ,"저번"+ ,"저울"+ ,"저절로"+ ,"저축"+ ,"적극"+ ,"적당히"+ ,"적성"+ ,"적용"+ ,"적응"+ ,"전개"+ ,"전공"+ ,"전기"+ ,"전달"+ ,"전라도"+ ,"전망"+ ,"전문"+ ,"전반"+ ,"전부"+ ,"전세"+ ,"전시"+ ,"전용"+ ,"전자"+ ,"전쟁"+ ,"전주"+ ,"전철"+ ,"전체"+ ,"전통"+ ,"전혀"+ ,"전후"+ ,"절대"+ ,"절망"+ ,"절반"+ ,"절약"+ ,"절차"+ ,"점검"+ ,"점수"+ ,"점심"+ ,"점원"+ ,"점점"+ ,"점차"+ ,"접근"+ ,"접시"+ ,"접촉"+ ,"젓가락"+ ,"정거장"+ ,"정도"+ ,"정류장"+ ,"정리"+ ,"정말"+ ,"정면"+ ,"정문"+ ,"정반대"+ ,"정보"+ ,"정부"+ ,"정비"+ ,"정상"+ ,"정성"+ ,"정오"+ ,"정원"+ ,"정장"+ ,"정지"+ ,"정치"+ ,"정확히"+ ,"제공"+ ,"제과점"+ ,"제대로"+ ,"제목"+ ,"제발"+ ,"제법"+ ,"제삿날"+ ,"제안"+ ,"제일"+ ,"제작"+ ,"제주도"+ ,"제출"+ ,"제품"+ ,"제한"+ ,"조각"+ ,"조건"+ ,"조금"+ ,"조깅"+ ,"조명"+ ,"조미료"+ ,"조상"+ ,"조선"+ ,"조용히"+ ,"조절"+ ,"조정"+ ,"조직"+ ,"존댓말"+ ,"존재"+ ,"졸업"+ ,"졸음"+ ,"종교"+ ,"종로"+ ,"종류"+ ,"종소리"+ ,"종업원"+ ,"종종"+ ,"종합"+ ,"좌석"+ ,"죄인"+ ,"주관적"+ ,"주름"+ ,"주말"+ ,"주머니"+ ,"주먹"+ ,"주문"+ ,"주민"+ ,"주방"+ ,"주변"+ ,"주식"+ ,"주인"+ ,"주일"+ ,"주장"+ ,"주전자"+ ,"주택"+ ,"준비"+ ,"줄거리"+ ,"줄기"+ ,"줄무늬"+ ,"중간"+ ,"중계방송"+ ,"중국"+ ,"중년"+ ,"중단"+ ,"중독"+ ,"중반"+ ,"중부"+ ,"중세"+ ,"중소기업"+ ,"중순"+ ,"중앙"+ ,"중요"+ ,"중학교"+ ,"즉석"+ ,"즉시"+ ,"즐거움"+ ,"증가"+ ,"증거"+ ,"증권"+ ,"증상"+ ,"증세"+ ,"지각"+ ,"지갑"+ ,"지경"+ ,"지극히"+ ,"지금"+ ,"지급"+ ,"지능"+ ,"지름길"+ ,"지리산"+ ,"지방"+ ,"지붕"+ ,"지식"+ ,"지역"+ ,"지우개"+ ,"지원"+ ,"지적"+ ,"지점"+ ,"지진"+ ,"지출"+ ,"직선"+ ,"직업"+ ,"직원"+ ,"직장"+ ,"진급"+ ,"진동"+ ,"진로"+ ,"진료"+ ,"진리"+ ,"진짜"+ ,"진찰"+ ,"진출"+ ,"진통"+ ,"진행"+ ,"질문"+ ,"질병"+ ,"질서"+ ,"짐작"+ ,"집단"+ ,"집안"+ ,"집중"+ ,"짜증"+ ,"찌꺼기"+ ,"차남"+ ,"차라리"+ ,"차량"+ ,"차림"+ ,"차별"+ ,"차선"+ ,"차츰"+ ,"착각"+ ,"찬물"+ ,"찬성"+ ,"참가"+ ,"참기름"+ ,"참새"+ ,"참석"+ ,"참여"+ ,"참외"+ ,"참조"+ ,"찻잔"+ ,"창가"+ ,"창고"+ ,"창구"+ ,"창문"+ ,"창밖"+ ,"창작"+ ,"창조"+ ,"채널"+ ,"채점"+ ,"책가방"+ ,"책방"+ ,"책상"+ ,"책임"+ ,"챔피언"+ ,"처벌"+ ,"처음"+ ,"천국"+ ,"천둥"+ ,"천장"+ ,"천재"+ ,"천천히"+ ,"철도"+ ,"철저히"+ ,"철학"+ ,"첫날"+ ,"첫째"+ ,"청년"+ ,"청바지"+ ,"청소"+ ,"청춘"+ ,"체계"+ ,"체력"+ ,"체온"+ ,"체육"+ ,"체중"+ ,"체험"+ ,"초등학생"+ ,"초반"+ ,"초밥"+ ,"초상화"+ ,"초순"+ ,"초여름"+ ,"초원"+ ,"초저녁"+ ,"초점"+ ,"초청"+ ,"초콜릿"+ ,"촛불"+ ,"총각"+ ,"총리"+ ,"총장"+ ,"촬영"+ ,"최근"+ ,"최상"+ ,"최선"+ ,"최신"+ ,"최악"+ ,"최종"+ ,"추석"+ ,"추억"+ ,"추진"+ ,"추천"+ ,"추측"+ ,"축구"+ ,"축소"+ ,"축제"+ ,"축하"+ ,"출근"+ ,"출발"+ ,"출산"+ ,"출신"+ ,"출연"+ ,"출입"+ ,"출장"+ ,"출판"+ ,"충격"+ ,"충고"+ ,"충돌"+ ,"충분히"+ ,"충청도"+ ,"취업"+ ,"취직"+ ,"취향"+ ,"치약"+ ,"친구"+ ,"친척"+ ,"칠십"+ ,"칠월"+ ,"칠판"+ ,"침대"+ ,"침묵"+ ,"침실"+ ,"칫솔"+ ,"칭찬"+ ,"카메라"+ ,"카운터"+ ,"칼국수"+ ,"캐릭터"+ ,"캠퍼스"+ ,"캠페인"+ ,"커튼"+ ,"컨디션"+ ,"컬러"+ ,"컴퓨터"+ ,"코끼리"+ ,"코미디"+ ,"콘서트"+ ,"콜라"+ ,"콤플렉스"+ ,"콩나물"+ ,"쾌감"+ ,"쿠데타"+ ,"크림"+ ,"큰길"+ ,"큰딸"+ ,"큰소리"+ ,"큰아들"+ ,"큰어머니"+ ,"큰일"+ ,"큰절"+ ,"클래식"+ ,"클럽"+ ,"킬로"+ ,"타입"+ ,"타자기"+ ,"탁구"+ ,"탁자"+ ,"탄생"+ ,"태권도"+ ,"태양"+ ,"태풍"+ ,"택시"+ ,"탤런트"+ ,"터널"+ ,"터미널"+ ,"테니스"+ ,"테스트"+ ,"테이블"+ ,"텔레비전"+ ,"토론"+ ,"토마토"+ ,"토요일"+ ,"통계"+ ,"통과"+ ,"통로"+ ,"통신"+ ,"통역"+ ,"통일"+ ,"통장"+ ,"통제"+ ,"통증"+ ,"통합"+ ,"통화"+ ,"퇴근"+ ,"퇴원"+ ,"퇴직금"+ ,"튀김"+ ,"트럭"+ ,"특급"+ ,"특별"+ ,"특성"+ ,"특수"+ ,"특징"+ ,"특히"+ ,"튼튼히"+ ,"티셔츠"+ ,"파란색"+ ,"파일"+ ,"파출소"+ ,"판결"+ ,"판단"+ ,"판매"+ ,"판사"+ ,"팔십"+ ,"팔월"+ ,"팝송"+ ,"패션"+ ,"팩스"+ ,"팩시밀리"+ ,"팬티"+ ,"퍼센트"+ ,"페인트"+ ,"편견"+ ,"편의"+ ,"편지"+ ,"편히"+ ,"평가"+ ,"평균"+ ,"평생"+ ,"평소"+ ,"평양"+ ,"평일"+ ,"평화"+ ,"포스터"+ ,"포인트"+ ,"포장"+ ,"포함"+ ,"표면"+ ,"표정"+ ,"표준"+ ,"표현"+ ,"품목"+ ,"품질"+ ,"풍경"+ ,"풍속"+ ,"풍습"+ ,"프랑스"+ ,"프린터"+ ,"플라스틱"+ ,"피곤"+ ,"피망"+ ,"피아노"+ ,"필름"+ ,"필수"+ ,"필요"+ ,"필자"+ ,"필통"+ ,"핑계"+ ,"하느님"+ ,"하늘"+ ,"하드웨어"+ ,"하룻밤"+ ,"하반기"+ ,"하숙집"+ ,"하순"+ ,"하여튼"+ ,"하지만"+ ,"하천"+ ,"하품"+ ,"하필"+ ,"학과"+ ,"학교"+ ,"학급"+ ,"학기"+ ,"학년"+ ,"학력"+ ,"학번"+ ,"학부모"+ ,"학비"+ ,"학생"+ ,"학술"+ ,"학습"+ ,"학용품"+ ,"학원"+ ,"학위"+ ,"학자"+ ,"학점"+ ,"한계"+ ,"한글"+ ,"한꺼번에"+ ,"한낮"+ ,"한눈"+ ,"한동안"+ ,"한때"+ ,"한라산"+ ,"한마디"+ ,"한문"+ ,"한번"+ ,"한복"+ ,"한식"+ ,"한여름"+ ,"한쪽"+ ,"할머니"+ ,"할아버지"+ ,"할인"+ ,"함께"+ ,"함부로"+ ,"합격"+ ,"합리적"+ ,"항공"+ ,"항구"+ ,"항상"+ ,"항의"+ ,"해결"+ ,"해군"+ ,"해답"+ ,"해당"+ ,"해물"+ ,"해석"+ ,"해설"+ ,"해수욕장"+ ,"해안"+ ,"핵심"+ ,"핸드백"+ ,"햄버거"+ ,"햇볕"+ ,"햇살"+ ,"행동"+ ,"행복"+ ,"행사"+ ,"행운"+ ,"행위"+ ,"향기"+ ,"향상"+ ,"향수"+ ,"허락"+ ,"허용"+ ,"헬기"+ ,"현관"+ ,"현금"+ ,"현대"+ ,"현상"+ ,"현실"+ ,"현장"+ ,"현재"+ ,"현지"+ ,"혈액"+ ,"협력"+ ,"형부"+ ,"형사"+ ,"형수"+ ,"형식"+ ,"형제"+ ,"형태"+ ,"형편"+ ,"혜택"+ ,"호기심"+ ,"호남"+ ,"호랑이"+ ,"호박"+ ,"호텔"+ ,"호흡"+ ,"혹시"+ ,"홀로"+ ,"홈페이지"+ ,"홍보"+ ,"홍수"+ ,"홍차"+ ,"화면"+ ,"화분"+ ,"화살"+ ,"화요일"+ ,"화장"+ ,"화학"+ ,"확보"+ ,"확인"+ ,"확장"+ ,"확정"+ ,"환갑"+ ,"환경"+ ,"환영"+ ,"환율"+ ,"환자"+ ,"활기"+ ,"활동"+ ,"활발히"+ ,"활용"+ ,"활짝"+ ,"회견"+ ,"회관"+ ,"회복"+ ,"회색"+ ,"회원"+ ,"회장"+ ,"회전"+ ,"횟수"+ ,"횡단보도"+ ,"효율적"+ ,"후반"+ ,"후춧가루"+ ,"훈련"+ ,"훨씬"+ ,"휴식"+ ,"휴일"+ ,"흉내"+ ,"흐름"+ ,"흑백"+ ,"흑인"+ ,"흔적"+ ,"흔히"+ ,"흥미"+ ,"흥분"+ ,"희곡"+ ,"희망"+ ,"희생"+ ,"흰색"+ ,"힘껏"+ ]
+ lib/Cardano/Dictionary/Spanish.hs view
@@ -0,0 +1,2079 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE OverloadedStrings #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0+--+-- Adopted from https://github.com/IntersectMBO/cardano-crypto/blob/develop/src/Crypto/Encoding/BIP39/spanish.hs++module Cardano.Dictionary.Spanish+ (+ -- * dictionary value+ spanish+ ) where++import Basement.String+ ( String )+import Cardano.Dictionary.Generic+ ( toDictionary )+import Crypto.Encoding.BIP39.Dictionary+ ( Dictionary )++spanish :: Dictionary+spanish = toDictionary wordList+ where+ wordList :: [String]+ wordList =+ ["á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"+ ,"zurdoepl"+ ]
lib/Cardano/Mnemonic.hs view
@@ -35,8 +35,11 @@ -- * @Mnemonic@ , Mnemonic+ , mkMnemonicWithDict , mkMnemonic+ , MkMnemonicError(..)+ , mnemonicToTextWithDict , mnemonicToText , mnemonicToEntropy @@ -47,7 +50,12 @@ , entropyToBytes , entropyToMnemonic - -- Internals & Re-export from @Crypto.Encoding.BIP39@+ -- * @Dictionary@+ , Dictionary+ , english+ , italian++ -- * Internals & Re-export from @Crypto.Encoding.BIP39@ , EntropyError(..) , DictionaryError(..) , MnemonicWordsError(..)@@ -70,6 +78,10 @@ ( NormalForm (..) ) import Basement.Sized.List ( unListN )+import Cardano.Dictionary.English+ ( english )+import Cardano.Dictionary.Italian+ ( italian ) import Control.Arrow ( left ) import Control.DeepSeq@@ -79,6 +91,7 @@ import Crypto.Encoding.BIP39 ( CheckSumBits , ConsistentEntropy+ , Dictionary , DictionaryError (..) , Entropy , EntropyError (..)@@ -119,7 +132,6 @@ import qualified Basement.Compat.Base as Basement import qualified Basement.String as Basement-import qualified Crypto.Encoding.BIP39.English as Dictionary import qualified Crypto.Random.Entropy as Crypto import qualified Data.ByteArray as BA import qualified Data.Text as T@@ -131,8 +143,8 @@ -- 'Entropy' is @96-256@ bits and is __necessarily a multiple of 32 bits__ (4 -- bytes). ----- We call 'Mnemonic' an 'Entropy' with an appended checksum calculated by--- taking the first @ent / 32@ bits of the /SHA256/ hash of it, where ent+-- 'Mnemonic' is an 'Entropy' with an appended checksum calculated by+-- taking the first @ent / 32@ bits of the /SHA256/ hash of it, where @ent@ -- designates the 'Entropy' size in bits. -- -- The concatenated result is split into groups of @11@ bits, each encoding a@@ -158,7 +170,7 @@ -- | 256 bits (32 bytes) | 8 bits | 24 words | excess behave track soul table wear ocean cash stay nature item turtle palm soccer lunch horror start stumble month panic right must lock dress | -- +---------------------+---------------+-----------------+-------------------------------------------------------------------------------------------------------------------------------------------------+ --- A opaque 'Mnemonic' type.+-- | A opaque 'Mnemonic' type. data Mnemonic (mw :: Nat) = Mnemonic { mnemonicToEntropy :: Entropy (EntropySize mw) -- ^ Convert a 'Mnemonic' back to an 'Entropy'.@@ -167,7 +179,7 @@ , mnemonicToSentence :: MnemonicSentence mw } deriving stock (Eq, Show) --- This wraps EntropyError of "Cardano.Encoding.BIP39"+-- | This wraps EntropyError of "Cardano.Encoding.BIP39" newtype MnemonicException csz = UnexpectedEntropyError (EntropyError csz) -- ^ Invalid entropy length or checksum@@ -188,7 +200,7 @@ deriving instance Eq MnemonicWordsError deriving instance Eq DictionaryError --- NFData instances+-- | NFData instances instance NFData (Mnemonic mw) where rnf (Mnemonic ent ws) = toNormalForm ent `seq` toNormalForm ws instance NFData (EntropyError csz) where@@ -205,12 +217,12 @@ -- | Smart-constructor for the 'Entropy'. Make sure the 'ByteString' comes from a highly random source or use 'genEntropy'. ----- __example__:+-- __Example__: -- -- >>> mkEntropy @160 bytes -- Entropy {} :: Entropy 160 ----- __property__:+-- __Property__: -- -- prop> mkEntropy (entropyToBytes ent) == Right ent --@@ -223,7 +235,7 @@ -- | Generate Entropy of a given size using a cryptographically secure random seed. ----- __example:__+-- __Example:__ -- -- >>> genEntropy @128 -- Entropy {} :: Entropy 128@@ -241,32 +253,33 @@ in (eitherToIO . mkEntropy) =<< Crypto.getEntropy (size `div` 8) --- | Smart-constructor for 'Mnemonic'. Requires a type application to+-- | Smart-constructor for 'Mnemonic' for arbitrary dictionary. Requires a type application to -- disambiguate the mnemonic size. ----- __example__:+-- __Example__: ----- >>> mkMnemonic @15 sentence+-- >>> mkMnemonicWithDict @15 sentence dictionary -- Mnemonic {} :: Mnemonic 15 ----- __property__:+-- __Property__: ----- prop> mkMnemonic (mnemonicToText mnemonic) == Right mnemonic+-- prop> mkMnemonicWithDict (mnemonicToTextWithDict mnemonic dictionary) dictionary == Right mnemonic ----- @since 1.0.0-mkMnemonic+-- @since 4.0.1+mkMnemonicWithDict :: forall (mw :: Nat) (ent :: Nat) csz. ( ConsistentEntropy ent mw csz , EntropySize mw ~ ent ) => [Text]+ -> Dictionary -> Either (MkMnemonicError csz) (Mnemonic mw)-mkMnemonic wordsm = do+mkMnemonicWithDict wordsm dictionary = do phrase <- left ErrMnemonicWords $ mnemonicPhrase @mw (toUtf8String <$> wordsm) sentence <- left ErrDictionary- $ mnemonicPhraseToMnemonicSentence Dictionary.english phrase+ $ mnemonicPhraseToMnemonicSentence dictionary phrase entropy <- left ErrEntropy $ wordsToEntropy sentence@@ -276,6 +289,29 @@ , mnemonicToSentence = sentence } +-- | Smart-constructor for English 'Mnemonic'. Requires a type application to+-- disambiguate the mnemonic size.+--+-- __Example__:+--+-- >>> mkMnemonic @15 sentence+-- Mnemonic {} :: Mnemonic 15+--+-- __Property__:+--+-- prop> mkMnemonic (mnemonicToText mnemonic) == Right mnemonic+--+-- @since 1.0.0+mkMnemonic+ :: forall (mw :: Nat) (ent :: Nat) csz.+ ( ConsistentEntropy ent mw csz+ , EntropySize mw ~ ent+ )+ => [Text]+ -> Either (MkMnemonicError csz) (Mnemonic mw)+mkMnemonic = flip mkMnemonicWithDict english++ -- | Convert an Entropy to a corresponding Mnemonic Sentence. Since 'Entropy' -- and 'Mnemonic' can only be created through smart-constructors, this function -- cannot fail and is total.@@ -316,18 +352,28 @@ instance (KnownNat csz) => Basement.Exception (MnemonicException csz) --- | Convert a 'Mnemonic' to a sentence of English mnemonic words.+-- | Convert a 'Mnemonic' to a sentence of a specified dictionary mnemonic words. ----- @since 1.0.0-mnemonicToText+-- @since 4.0.1+mnemonicToTextWithDict :: Mnemonic mw+ -> Dictionary -> [Text]-mnemonicToText =- map (fromUtf8String . dictionaryIndexToWord Dictionary.english)+mnemonicToTextWithDict mnemonic dictionary =+ map (fromUtf8String . dictionaryIndexToWord dictionary) . unListN . mnemonicSentenceToListN . mnemonicToSentence+ $ mnemonic +-- | Convert a 'Mnemonic' to a sentence of English mnemonic words.+--+-- @since 1.0.0+mnemonicToText+ :: Mnemonic mw+ -> [Text]+mnemonicToText = flip mnemonicToTextWithDict english+ -- | Convert a 'SomeMnemonic' to bytes. -- -- @since 1.0.1@@ -354,14 +400,14 @@ -- | This class enables caller to parse text list of variable length -- into mnemonic sentences. ----- Note that the given 'Nat's **have** to be valid mnemonic sizes, otherwise the+-- Note that the given 'Nat's __have__ to be valid mnemonic sizes, otherwise the -- underlying code won't even compile, with not-so-friendly error messages. class MkSomeMnemonic (sz :: [Nat]) where -- | Construct a mnemonic from a list of words. This function is particularly useful when the -- number of words is not necessarily known at runtime. The function is however /ambiguous/ and -- requires thereby a type application. --- -- __examples:__+ -- __Examples:__ -- -- >>> mkSomeMnemonic @'[ 12 ] [ "test", "child", "burst", "immense", "armed", "parrot", "company", "walk", "dog" ] -- Left "Invalid number of words: 12 words are expected."@@ -426,7 +472,7 @@ MkSomeMnemonic (mw ': '[]) where mkSomeMnemonic parts = do- bimap (MkSomeMnemonicError . pretty) SomeMnemonic (mkMnemonic @mw parts)+ bimap (MkSomeMnemonicError . pretty) SomeMnemonic (mkMnemonicWithDict @mw parts english) where pretty = \case ErrMnemonicWords ErrWrongNumberOfWords{} ->
lib/Command/RecoveryPhrase/Generate.hs view
@@ -18,10 +18,14 @@ import Prelude hiding ( mod ) +import Cardano.Dictionary+ ( SupportedDictionary (..), dictionaryFromLanguage ) import Cardano.Mnemonic- ( entropyToMnemonic, genEntropy, mnemonicToText )+ ( entropyToMnemonic, genEntropy, mnemonicToTextWithDict ) import Options.Applicative ( CommandFields, Mod, command, helper, info, progDesc )+import Options.Applicative.MnemonicLanguage+ ( mnemonicLanguageOpt ) import Options.Applicative.MnemonicSize ( MnemonicSize (..), mnemonicSizeOpt ) @@ -30,25 +34,27 @@ import qualified Data.Text.Encoding as T -newtype Cmd = Generate+data Cmd = Generate { size :: MnemonicSize+ , language :: SupportedDictionary } deriving (Show) mod :: (Cmd -> parent) -> Mod CommandFields parent mod liftCmd = command "generate" $ info (helper <*> fmap liftCmd parser) $ mempty- <> progDesc "Generate an English recovery phrase"+ <> progDesc "Generate a recovery phrase for a specified mnemonic size and language." where parser = Generate <$> mnemonicSizeOpt+ <*> mnemonicLanguageOpt run :: Cmd -> IO ()-run Generate{size} = do+run Generate{size,language} = do m <- case size of- MS_9 -> mnemonicToText @9 . entropyToMnemonic <$> genEntropy- MS_12 -> mnemonicToText @12 . entropyToMnemonic <$> genEntropy- MS_15 -> mnemonicToText @15 . entropyToMnemonic <$> genEntropy- MS_18 -> mnemonicToText @18 . entropyToMnemonic <$> genEntropy- MS_21 -> mnemonicToText @21 . entropyToMnemonic <$> genEntropy- MS_24 -> mnemonicToText @24 . entropyToMnemonic <$> genEntropy- B8.putStrLn $ T.encodeUtf8 $ T.unwords m+ MS_9 -> mnemonicToTextWithDict @9 . entropyToMnemonic <$> genEntropy+ MS_12 -> mnemonicToTextWithDict @12 . entropyToMnemonic <$> genEntropy+ MS_15 -> mnemonicToTextWithDict @15 . entropyToMnemonic <$> genEntropy+ MS_18 -> mnemonicToTextWithDict @18 . entropyToMnemonic <$> genEntropy+ MS_21 -> mnemonicToTextWithDict @21 . entropyToMnemonic <$> genEntropy+ MS_24 -> mnemonicToTextWithDict @24 . entropyToMnemonic <$> genEntropy+ B8.putStrLn $ T.encodeUtf8 $ T.unwords $ m $ dictionaryFromLanguage language
lib/Data/Word7.hs view
@@ -37,6 +37,7 @@ -- | A 'Word7' algebraic data-type.+-- -- @since 2.0.0 newtype Word7 = Word7 Word8 deriving (Eq, Show)
+ lib/Options/Applicative/MnemonicLanguage.hs view
@@ -0,0 +1,81 @@+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE LambdaCase #-}++{-# OPTIONS_HADDOCK hide #-}++-- |+-- Copyright: 2025 Intersect+-- License: Apache-2.0++module Options.Applicative.MnemonicLanguage+ (+ -- * Applicative Parser+ mnemonicLanguageOpt++ -- * Helpers+ , supportedDictionaryToString+ , supportedDictionaryFromString++ ) where++import Prelude++import Cardano.Dictionary+ ( SupportedDictionary (..) )+import Data.List+ ( intercalate )+import Data.List.Extra+ ( enumerate )+import Options.Applicative+ ( Parser+ , completer+ , eitherReader+ , help+ , listCompleter+ , long+ , metavar+ , option+ , showDefaultWith+ , value+ )+++-- | SupportedDictionary displays according to two-letter [ISO 639-1 Code](https://www.loc.gov/standards/iso639-2/php/code_list.php)+supportedDictionaryToString :: SupportedDictionary -> String+supportedDictionaryToString English = "en"+supportedDictionaryToString Italian = "it"+supportedDictionaryToString Japanese = "ja"+supportedDictionaryToString French = "fr"+supportedDictionaryToString Korean = "ko"+supportedDictionaryToString Spanish = "es"++languageStrs :: [String]+languageStrs = supportedDictionaryToString <$> enumerate++supportedDictionaryFromString :: String -> Either String SupportedDictionary+supportedDictionaryFromString = \case+ "en" -> Right English+ "it" -> Right Italian+ "ja" -> Right Japanese+ "fr" -> Right French+ "ko" -> Right Korean+ "es" -> Right Spanish+ _ -> Left $ mempty+ <> "Invalid supported dictionary. The following are available: "+ <> intercalate ", " languageStrs+ <>"."++--+-- Applicative Parser+--++mnemonicLanguageOpt :: Parser SupportedDictionary+mnemonicLanguageOpt = option (eitherReader supportedDictionaryFromString) $ mempty+ <> long "language"+ <> metavar "STR"+ <> help ( "Language of mnemonic words to generate. Must be one of: "+ <> intercalate ", " languageStrs+ <> ".")+ <> value English+ <> showDefaultWith supportedDictionaryToString+ <> completer (listCompleter languageStrs)
test/Cardano/Address/Style/ByronSpec.hs view
@@ -43,7 +43,7 @@ import Data.Text ( Text ) import Test.Arbitrary- ( unsafeMkMnemonic )+ ( unsafeMkEnglishMnemonic ) import Test.Hspec ( Expectation, Spec, describe, it, shouldBe ) import Test.QuickCheck@@ -111,7 +111,7 @@ generateTest (GenerateKeyFromSeed mnemonic rootXPrv) = getKey masterKey `shouldBe` getKey rootXPrv where- mw = SomeMnemonic $ unsafeMkMnemonic @12 mnemonic+ mw = SomeMnemonic $ unsafeMkEnglishMnemonic @12 mnemonic masterKey = genMasterKeyFromMnemonic mw () :: Byron 'RootK XPrv generateTest1 :: GenerateKeyFromSeed
test/Cardano/MnemonicSpec.hs view
@@ -12,6 +12,8 @@ import Prelude +import Cardano.Dictionary+ ( SupportedDictionary, dictionaryFromLanguage ) import Cardano.Mnemonic ( Entropy , EntropyError@@ -24,9 +26,11 @@ , genEntropy , mkEntropy , mkMnemonic+ , mkMnemonicWithDict , mkSomeMnemonic , mnemonicToEntropy , mnemonicToText+ , mnemonicToTextWithDict ) import Control.Monad ( forM_ )@@ -104,6 +108,36 @@ prop "(24) mkMnemonic . mnemonicToText == pure" $ \(mw :: Mnemonic 24) -> (mkMnemonic @24 . mnemonicToText) mw === pure mw++ prop "(9) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+ \(lang :: SupportedDictionary, mw :: Mnemonic 9) -> do+ let dict = dictionaryFromLanguage lang+ mkMnemonicWithDict @9 (mnemonicToTextWithDict mw dict) dict === pure mw++ prop "(12) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+ \(lang :: SupportedDictionary, mw :: Mnemonic 12) -> do+ let dict = dictionaryFromLanguage lang+ mkMnemonicWithDict @12 (mnemonicToTextWithDict mw dict) dict === pure mw++ prop "(15) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+ \(lang :: SupportedDictionary, mw :: Mnemonic 15) -> do+ let dict = dictionaryFromLanguage lang+ mkMnemonicWithDict @15 (mnemonicToTextWithDict mw dict) dict === pure mw++ prop "(18) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+ \(lang :: SupportedDictionary, mw :: Mnemonic 18) -> do+ let dict = dictionaryFromLanguage lang+ mkMnemonicWithDict @18 (mnemonicToTextWithDict mw dict) dict === pure mw++ prop "(21) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+ \(lang :: SupportedDictionary, mw :: Mnemonic 21) -> do+ let dict = dictionaryFromLanguage lang+ mkMnemonicWithDict @21 (mnemonicToTextWithDict mw dict) dict === pure mw++ prop "(24) mkMnemonicWithDict . mnemonicToTextWithDict == pure" $+ \(lang :: SupportedDictionary, mw :: Mnemonic 24) -> do+ let dict = dictionaryFromLanguage lang+ mkMnemonicWithDict @24 (mnemonicToTextWithDict mw dict) dict === pure mw describe "MkSomeMnemonic" $ do let noInDictErr =
test/Test/Arbitrary.hs view
@@ -14,7 +14,8 @@ {-# OPTIONS_GHC -fno-warn-deprecations #-} module Test.Arbitrary- ( unsafeMkMnemonic+ ( unsafeMkMnemonicWithDict+ , unsafeMkEnglishMnemonic , unsafeMkSomeMnemonicFromEntropy , unsafeFromHex , unsafeFromRight@@ -55,17 +56,21 @@ ) import Cardano.Address.Style.Shelley ( Shelley )+import Cardano.Dictionary+ ( SupportedDictionary (..) ) import Cardano.Mnemonic ( ConsistentEntropy+ , Dictionary , Entropy , EntropySize , Mnemonic , MnemonicException (..) , MnemonicWords , SomeMnemonic (..)+ , english , entropyToMnemonic , mkEntropy- , mkMnemonic+ , mkMnemonicWithDict ) import Codec.Binary.Bech32 ( HumanReadablePart )@@ -276,6 +281,17 @@ , Icarus.UTxOInternal ] +instance Arbitrary SupportedDictionary where+ shrink = genericShrink+ arbitrary = elements+ [ English+ , French+ , Italian+ , Japanese+ , Korean+ , Spanish+ ]+ -- -- Extra Instances --@@ -318,13 +334,23 @@ unsafeMkEntropy = either (error . show) id . mkEntropy . BA.convert -- | Build 'Mnemonic' from literals-unsafeMkMnemonic+unsafeMkEnglishMnemonic :: forall mw n csz . (ConsistentEntropy n mw csz, EntropySize mw ~ n, HasCallStack) => [Text] -> Mnemonic mw-unsafeMkMnemonic m =- case mkMnemonic m of+unsafeMkEnglishMnemonic =+ flip unsafeMkMnemonicWithDict english++-- | Build 'Mnemonic' from literals+unsafeMkMnemonicWithDict+ :: forall mw n csz+ . (ConsistentEntropy n mw csz, EntropySize mw ~ n, HasCallStack)+ => [Text]+ -> Dictionary+ -> Mnemonic mw+unsafeMkMnemonicWithDict m dict =+ case mkMnemonicWithDict m dict of Left e -> error $ "unsafeMnemonic: " <> show e Right a -> a