２、3、4文字のスクラブルワードを保存するモジュールを作成します。
また、基本的なprefix（接頭辞）クエリにしたがって保存した言葉を取り出せる
ようにします。

> 〜〜〜　スクラブル　〜〜〜
> アルファベットの書かれたコマを並べて単語を作るボードゲーム
> クロスワードパズル的要素がある
> ウィキペディア　→　https://ja.wikipedia.org/wiki/スクラブル

3つの引数を持つ`init()`関数がエクスポートされたモジュールを書いてください。
1つ目の引数は空のデータベースのLevelUP`db`オブジェクト、2つ目の引数は2、3、4文字のスクラブルワードの配列、
最後の引数はデータベースを初期化した後に実行するコールバックです。

さらに、3つの引数を持つ`query()`関数もエクスポートして下さい。
1つ目の引数は`init()`関数で初期化されたデータベースと同じ`db`オブジェクト、
2つ目の引数はクエリ文字列、最後の引数は2つの引数を持つコールバック関数です。
コールバック関数の最初の引数はnullまたはエラーが発生した場合のエラーオブジェクトです。
コールバック関数の2つ目の引数はクエリに合致するデータベース内のすべての単語の配列です。

以下のボイラープレートを拡張して答えを書いてください。

```javascript
module.exports.init = function (db, words, callback) {
  // words配列の各ワードをここで書き込む
  // 全ての単語の書き込みが終われば、callbackを実行
}

module.exports.query = function (db, word, callback) {
  // `word`は'*'を含む文字列。'*'は１文字をあわらすワイルドカード
  // callback(err, results)を一致した単語の配列を設定して実行
}
```

`word`に設定するクエリは'RUN'のような完全な単語、または`RU*`や`R**`のように
前方一致のための接頭辞と`*`を組み合わせた単語でなければいけません。
`.length`で目的の単語の文字数を知ることが出来、その文字数の単語のみを含む
結果を返さなければいけません。
`*`はいかなる文字にもマッチするワイルドカードです。

簡単のため、ワイルドカードはクエリの**最後**にのみ付加します。
常に完全一致の単語または接頭辞のどちらかを与えられます。
同じ文字数で同じ接頭辞を持つ単語のみ結果としてください。

あなたの解答はオフィシャルな解答に対してテストされます。
ReadStreamを使い、問い合わせクエリに正確にマッチする結果**だけ**を返し、それ以上は返さないでください。

---

## ヒント:

あなたが想定するクエリにしたがって結果を抽出する際に役立つであろうキースキーマを
考えだす、ということがこのエクササイズの目的になります。
対象外の文字数を持つ単語を含めずに、目的の文字数の単語だけを検索できるキー構造を
を導きださなければいけません。

`init()`関数は単語を適切なキーに変換し、
`query()`関数はクエリをReadStreamの適切な`start`と`end`に変換するように
してください。
