概要
サービス終了のせいで、全く使えなくなって文鎮化した AIスピーカーの LINE CLOVA を AIとの連携を使って生まれかえらせたという作品です。
はじめに
本作品はサービス終了が決まった一昨年から去年いっぱいかけて開発したものですが、昨年「みんなのラズパイコンテスト」がもし復活したら是非に出そうと思っていたものです。
結局コンテストはコンテストの開催ないどころか、ラズパイマガジン自体が今年の1月で休刊となるという悲しい結末になりすっかり諦めていました。
そんな時に今回、elchika さんに主催が変わって別のラズパイコンテストが開催されることを知りました。過去作品でも応募できるとのことでしたので応募することにしました。
ただ別記事へのリンクは規約上許容されていない為、現状2つ分かれていたり、github 等の外部リソースへのリンクを含んでたりする記事を、そのまま掲載するわけにもいかず統合した記事をリンクを無くして新たに作成しました。
大部分の記事はそのままとなりますがご了承ください。
経緯
2022年10月末 衝撃の「LINE Clover アシスタンスサービス終了」の通知が流れました。
なかなか採算が取れないうえに売り上げも減ってきて撤退してしまうのでしょうか?
サービス終了後は Bluetooth スピーカーとしてしか機能しなくなりました。
寂しいものです。
スピーカー自体の可愛いキャラクターに愛着がある人もいるし、スピーカーの音質もモノラルとはいえ全方向に聞こえて低音も以外に出て、聞きやすい音で気に入っている人やそのまま使い続けたい人はいるはずです。
発表当時の "#CLOVA " での Xの投稿を見る限りでは、何とかしてほしいという声が複数流れていました。
というわけで、解決方法の一つのアプローチとして中にラズパイを仕込んで改造してみました。
どこまでできるの?
どこまでできるかは、組み込むソフトウェア次第となりますが、ラズパイ Zero で出来る事は基本的に組み込めます。
先ずは以下の動画をご覧ください。現在開発中のアプリケーションの概要説明と動画デモとなります。
こちらの GitHub で公開したアプリケーションを導入することで、この動画の様な事ができます。
ここでは、Youtube 動画 及び X に投稿した動画のリンクだけ貼っておきます。
出来る事紹介動画
Chat-GPT 組み込み ~あなた何者?編~
Chat-GPT 組み込み ~完全な会話での負けを認める編~
Chat-GPT 組み込み ~知らんけど編~
Chat-GPT 組み込み ~おやじギャグで滑る編~
Chat-GPT 組み込み ~恥ずかしい話編~
Chat-GPT 組み込み ~しりとりやってみた編~
Chat-GPT 組み込み ~なんで代理を編~
Chat-GPT 組み込み ~終了日当日編~
分解
いきなり本題に入っていきますが、改造の入口は分解ですよね。という訳で分解から始めていきます。
使用する工具としては、柄の部分が長い #1 番のドライバー と先の細いピンセット、へら(底面の滑り止めゴムを取る時使う)くらいがあれば十分かと思います。
さらに改造時は半田付けセット(はんだごて、ピンセット、ニッパー、ペンチ等) が必要です
基本的にどのネジがどこについていたがわかるように、小箱等で種類を小分けして分解した順番に並べていく等して、工夫します。
ゴムシールやその他のシールは、再利用やもとに戻すときに使うかもしれないので、残しておくといいです。絨毯の上やごみ・埃がつくと粘着力がなくなり厄介なので、透明の袋の内側に貼っておくといいかと思います。
分解手順
底面からアクセスしていきます。
滑り止めゴム除去
底面に滑り止めのゴムが貼ってありますので、それをはがします。
透明フィルム除去
さらに透明フィルムが貼ってあるので、それもはがします。
底面ネジ除去
写真の赤▼の位置の4か所ネジを取ります。
底面を開く
底面は付けたまま、コネクタの口とは反対側に倒すように慎重に開きます。
底面分離
底面の中央部にフラットケーブルが接続されているので、シールを剥がしてから外します。
先の細いピンセットを爪の下に回り込ませて軽く持ち上げるとロックが外れ、ケーブルを抜くと簡単に取れます。(この時絶対に力を入れない事。抜けないときはロックが外れていません。)
ケーブルが外れると底面が分離します。
USB基板除去
USBコネクタ基板の裏にもネジがあるので、写真の赤▼の USBコネクタ基板のネジ位置2か所外して基板をとります。
スピーカーカバー分離
写真の赤▼の USBコネクタ基板のネジ位置4か所外してカバーをとります。
ネジを外したあと、慎重にゆっくりスライドさせる
分離するとスピーカーの幕がむき出しになるので、傷つけたり破ったりしない様に十分注意が必要です。
2-1-8. スピーカー分離
以下2つの写真の赤▼のネジ4か所をはずして分離します。
一番頭に近い奥のネジだけで、手前のものはそのままにします。
分離するともう片方のスピーカーの幕がむき出しになるので、同じ様に十分注意が必要です。
頭部とはスピーカー線でつながっています。
頭部側に貼っているシールをはがすと、コネクタが見えるので外して分離します。
頭部分離
赤▼の穴の奥にネジがあるので外します。
ここは、穴が深くて見えないうえにネジが長くかなりきつく締めてあるので、ネジを舐めやすいので十分注意が必要です。
ネジを全部外すと頭部の蓋を上向きに引っ張って頭を持ち上げます。マイクケーブルが接続されていて途中までしか上がりませんので、無理やり引っ張らないようにします。
フラットケーブル分離
鼻の裏にあるフロントスイッチ基板を上向きにスライドすると、写真の様に外れてその後ろに隠れているケーブル取付部が見えます。
シールを外して、ケーブルを外します。
頭部カバーが分離します。
バッテリー分離
先ほど外したケーブルと反対側の奥にしたの写真の様な3本線のコネクターがあるので抜き、バッテリー本体を上向きに引っ張ると分離できます。
基板分離
リアスイッチ・LED基板を上向きにスライドして分離し、さらに下の写真の様にメイン基板を上向きに引っ張ってこれも分離します。
底面との接続ケーブルもまだくっついているので抜きます。
ゴムシールの厚みでくっついているだけなので、反対側から下の写真の様にそっと引っ張ると抜けます。
マイク基板分離
頭部カバーの裏側(耳の真下辺り)にマイク基板がくっついています。
写真の赤▼のネジ位置2か所外して基板をとります。
分解完了
こんな感じに分離出来たら完成です。
解析
ここでは分解後に私が調査した結果を記してます。中身をよく理解したい興味のある方だけ見ていただければと思います。
単に同じように改造したいだけの人には不要ですので、その場合 4. 改造に進みます。
構成
この中で、できる限り使える部品は使う方針で検討しました。
最終的にこんな感じにすればいいのかなと思います。
各部ごとに、検討内容を説明していきます。
メイン基板
まず CLOVA の心臓部であるメイン基板、そのうちCPU の中身はソフトを含めブラックボックスです。
そしてそのソフトは LINE Clover アシスタンスサービス と連携すること前提に作成されています。サービス終了後に使えるようにするにはこれを改造する必要がありますが、多数の開発者を投入して開発された大規模ソフトウェアである上に、ソースコードのない実質ブラックボックスをリバースエンジニアリングして改造するのは現実的ではありません。
ここは CPU ごとラズパイに置き換えて一から作ることとします。
構成を調べるために軽く基板を確認しました。
写真の左側が、電源基板のようです。
CPUの電圧が 1.8V の様なので、その電圧はここで作っているようです。そして、中央にある小さな IC が充電用の IC かなと思います。
CPU自体はシールドの中にあるようですが、シールドを外すことが出来なかったので詳細は分かりません。
写真の上側が音声系の回路らしく、音声処理系の IC が載っているようで、スピーカーやマイクからの信号はその中に入っているみたいです。
というわけで、この基板の中に CPU と直結して使われている音声制御用のチップが使えませんので、音声関連の回路はラズパイに外付けする必要がありそうです。
音声アナログ出力は HDMI 端子の中に出ていますがそれを取り出す為にコネクターを付けると、かさばって中に入らなくなるので I2S接続のD級アンプを外付けして出力するようにします。
マイク基板
マイク基板は、メイン基板から長めのケーブルで接続されているので分離できるかもしれないという事で、調べてみました。
こんな感じです。
左右ステレオ入力のようです。
基板からどんなデータが出ているかをオシロスコープで調べてみたところ、以下のとおり単純に音声のアナログ信号が出ていました。
ラズパイには A/D変換機 (アナログ->デジタルに変換の仕組み) が搭載されておらず、使うには外付けの必要があります。そのA/D変換回路をわざわざ回路設計して外付けするよりも、デジタル出力 (I2S信号出力)のマイクモジュールを付ける方が安価かつ簡単なため、CLOVA オリジナルのマイクは使わないことにします。CLOVA構成の様にアナログマイクのまま配線を引き延ばしているとノイズに悩まされるリスクもあります。
フロントスイッチ基板
スイッチが1つの単純な基板のようです。
コネクタは特殊で、同じ形のものが見つからなかったので、メーカ・型番は判別しきれませんでした。ですが、接続先であるメイン基板側は JST の ZH 2pin のようで、こちらは入手困難ではありません。
接続は2本線のみで、テスターで当たると片方はグランドと導通があります。
2本とも、その近くにある TP200, TP201 というランドにつながっているようです。検査用のピンだと思いますが、はんだ付けしやすいので、ZH コネクタを使わずに直接このランドに繋げばよさそうです。
スイッチが押されると、グランドに導通される回路のようです。
わずかに2個ほど 部品があり、抵抗とコンデンサが並列にスイッチに並列に接続されているのは、チャタリング防止用のフィルタ回路かと思われます。
リアスイッチ・LED基板
スイッチが4つと 3色 LED(RGB LED) が搭載されています。
ざっくり回路を負ったところ、スイッチ回路側は、フロントスイッチ側と同様、抵抗とコンデンサによるチャタリング防止回路で構成されていて、押されるとグランドにショートするのも同じです。
そして、LED 回路側は R, G, B それぞれにトランジスタスイッチング回路が組まれていました。信号を調査したところ、CPU からは ロジック電圧 1.8V の正論理で ON/OFF しているようです。
多分ラズパイの 3.3V で駆動しても問題はないと思いますが、念のため電圧を合わせる為に分圧して半分の電圧で接続すればよさそうです。
コネクタは 0.5mm ピッチの 9pin コネクタです。結構特殊なのとコネクタの根本にはんだ付けするのは、かなり困難だと思いますが、こちらも TP*** と書かれたランドがたくさんあります。丁度9個あってピン数と一致するので導通をしらべてみたらすべてのピンにランドが割り当たっているようですので、配線はこのランド部分に直接はんだ付けすればよさそうです。
バッテリー
バッテリーはかなり容量の大きいリチウムイオン電池 3.7V 。ただ、ラズパイを使うにはちょっと電圧不足なのでそのままでは使えません。スペース的にもつけたままだと、ラズパイ Zero が入らなくなるので使わないことにします。
使わないことによるデメリットは電源外して持ち運びができなくはなることですが、そもそもたいていの人は電源つないだまま使っているのではないかと思っています。
スピーカーユニット
写真の様なユニットで、二本線のみつながっているのでモノラル仕様のようです。
上向きと下向き両方に膜があり、ボディーギリギリの大きさになっています。
形も特殊ですし、低音も出て全方向に音を出せるような形となっていて、この CLOVA のボディーの形でパフォーマンスを発揮するように設計されているはずなので、これはそのまま使う事とします。
底面LED基板
おそらく LED のイルミネーション基板のようです。メイン基板と 25pin フラットケーブルでつながっており、色々な信号や電源が通っているようです。
また、別の CPU が載っているようにも見えますが、この IC は型番を調べても見つかりませんでしたので正体不明です。
うまくいけばこのイルミネーション LED を点灯させることが出来るかと思って解析しました。
幸いこちらもテストピンがいっぱい出ていて、全てのピンがランドにつながっています。
という訳で、測定器を繋ぎ徹底的に信号を解析したところ、 i2c の波形の信号が出ていました。
何色に光る時にどういう信号が i2c に出ているかを探っていったところ、出ている信号にはヘッダー部の様な物がありますが、残りは単純に RGB の諧調値がでているだけでした。
という訳で、自由な色に光らせることが出来ました。
メイン基板から 1.8V とバッテリー電源が供給されていること、 25pin フラットケーブルの一部に底面の電源スイッチがつながっている事くらいです。
電源はこの底面基板から 5V を取ってラズパイにいれてやり、電源スイッチはスイッチ入力としてラズパイに入れてやることにします。
以上の事より、改造後はこんな感じになるように改造していくことにしました。
点線に囲まれた部分が、CLOVA の基板を流用した部分ですが、あくまでも解析して推測した結果です。回路図中のコネクター系は使わずランドに直接つけることにします。
試作
先ずは必要機材確認の為、試作してみました。
出来上がった結果の写真だけ掲載しますが
記事が冗長になりますので、興味のある方だけ、こちらの記事
ラズパイ化CLOVA-パート1(ガチの改造編)
を参照してください。
基板製作
LINE CLOVA HUT for ラズパイ Zero
試作がうまくいったので、基板を起こしました。
本改造用に専用に製作した改造用基板です。ラズパイZeroを装着し、CLOVA に最初からついていた部品を2つ程外して、ケーブルでつなぐだけで装着できる形にデザインしています。
改造してみたいといわれる方に、こちらの
Booth というサイトにて改造用基板を提供中状況です。
希望者に無償配布をという事も考えたのですが、特殊な部品や一般では入手困難な部品が使われていて海外通販サイトからドルで入手する部品もあり、かなりのコストが掛かってしまっていて無償提供は困難な状況です。
ほぼ部品代原価+送料+サイト使用手数料+α程度で提供できるようにとは思いましたが、結構かかってしまいました。
I2S アンプと I2S マイクだけで、部品だけの原価半分程いってしまいますが、スイッチサイエンスでほぼ同じ部品構成のモジュールを検索して値段を見ていただければ大体そんなものだと理解いただけるかと思います。
ラズパイの入手性からいうとどれだけ欲しい人がいるか読むのが難しい中、個人での在庫抱えるリスクと財力の問題で大量生産も難しいと思われます。
ですので当面は手作り少量生産体制になると思います。
希望者が自分で発注出来る様に、ガーバーデータも掲載したかったのですが、elchika の記事が大きくなりすぎて容量オーバーでできなかったため、今回は断念しました。
必要部品
いくつか事前に構成部品を揃えておく必要があります。
- LINE CLOVA friends 本体。
- Raspberry PI Zero
- LINE CLOVA HUT for ラズパイ Zero
- Micro SD カード 32GB
以降に部品ごとに詳細を書いていきます。
LINE CLOVA friends 本体。
使えるものは LINE CLOVA friends の胴体が長い(高さが20cm近くある)バージョンの方です。 Mini の短い(高さが10cm程の)タイプでは使えません。のでご注意ください(MIni バージョンについては現在開発検討中です。もう暫くお待ちください。)
制御用コンピューター(内部のメイン基板)は完全に置き換えますので、電源さえ入れば以下の様な状態のものでも使えるはずです。
- サービス終了になるまで未開封で WiFi 未設定のもの。(いわゆる文鎮化状態)
- Update に失敗して起動しなくなったもの。(これも文鎮ですね)
- バッテリーが弱ってすぐに切れてしまうもの。(バッテリーは使いません。常時電源接続となります。)
長期間保存で完全に放電してしまったものは充電した直後は LEDが光らず、電源が入らない故障品と誤解される場合があります。10分程充電したらLEDが付いて充電が始まる場合、壊れてはいないと思われます。
無い場合は購入する必要がありますが現状公式では販売終了品です。公式では1年以内の物を回収返金しているぐらいですので、中古や未使用品をフリマやオークションで買うしかないと思います。サービス終了後は改造でもしない限り実質使えないものなので、高額にはならない(安価に出品される)と思っていますが…
Raspberry PI Zero
通称ラズパイZeroシリーズ(Zero またはZero2いずれも可) と言われているものです。置き換え後のコンピュータとなります。
ラズパイZero にもいくつかバリエーションがあります。
必要なものは、WiFi とピンヘッダ(針が配列上に並んでいる取付用のコネクタ)が付いている(品名が WHで終わる)ものとなります。
- Raspberry Pi Zero WH
- Raspberry Pi Zero2 WH
WiFi が付いていないものは使えません。(USBコネクタにラズパイ対応 WiFiドングルを指すと動くかもしれませんが、スペース的に入るかを含め動作未検証ですので試される方は自己責任でお願いします。)
自分でピンヘッダをはんだ付けできる方は、以下のピンヘッダー無しの(品名が Wで終わる)ものも使えます。
- Raspberry Pi Zero W
- Raspberry Pi Zero2 W
電子部品屋や以下の様な通販サイトで在庫さえあれば購入できます。
ラズパイ正規代理店 ⇐"Zero W" で検索します。
スイッチサイエンス
秋月電子通商
共立エレショップ
現状半導体不足時の品薄の影響が長く続き現時点でも入手困難です。
元々は 1800 ~ 3000円程度で売っていましたので、現時点で Amazon 、楽天、メルカリ、ヤクオフ等で見かける 5桁で売っているものは、完全に転売屋価格になってしまっていますので、おすすめできません。
ここ2年程は、どこの店も入荷量が少なく入荷後に1時間以内で売切れていまう状況が続き、抽選になっても競争率が高い状態が続いてました。
2023 年には、品薄は解消されるという事だったはずなんですが…
そしてこの記事を更新した2023年5月20日現在で、ラズパイ正規代理店 で在庫が復活したようです。購入制限で一人2つ迄となっていますが…
"Zero W" と入力して出てくるもののうち本体が付いているオプションならどれでも構いません。在庫あれば基板単体のもので可(またいつまで在庫があるかも不明です。)
そのうち他のサイトでも売り出す可能性はあります。
スイッチサイエンスの通信サイトには、「入荷通知登録」という機能があるので登録しておくとメールが届くので利用するといいかと思います。
LINE CLOVA HUT for ラズパイ Zero
上で説明したので割愛します。
Micro SD カード 16GB 以上
ラズパイZero のストレージ(ディスク)となります。
この中にラズパイOS という基本ソフトを書き込んで起動し、データやソフトウェアを入れることになります。
工具類
分解して組み立てるという特性上、いくつか工具が必要となります。
必要な工具類
- #1 番の+ドライバー (一部細長い穴に埋まっているネジがあるので、柄の長いのも必要)
- 先の細いピンセット
- マルチメーター:通称「テスター」導通でブザーが鳴るもの
有ったら便利な工具類
- へら(底面のゴムを外す)
- ラジオペンチ
- マスキングテープ
- ネジを種類別に小分けする小箱
機材
基本的にラズパイの設定・インストールするために必要なものとして
- PC (Windows/Mac/Linux )
- MicroSD カードリーダー(PCにスロットがあれば不要)
が必要となります。
PC から SSH 等でアクセスして、コマンドを打っていく形となります。
制御用ソフトウェアは git コマンドを打ってクローン(ダウンロード) して入れていく形を予定しています。
必要知識
まず前提として「電子機器の改造」という特性上、全ての人が知識が無くても簡単に実行できるとはいかないという事はご理解ください。記事を見て、自分が出来るか判断しやるかどうかは自己責任でお願いします。
組み立てについては、基本的にモノづくりが好きな人で、電子機器などの分解や組み立てに抵抗がない人であれば大丈夫かと思います。抵抗がある人は周りの詳しい人(PCを自作している人、電子工作をやっているような人や、電子機器の分解修理や改造が出来るような人)に相談していただければと思います。
電子工作の初心者であっても、学習・挑戦する心意気と忍耐力があれば多分大丈夫かとは思っていますが。
生の基板を触ることになるので、基板類を壊さない様に静電気にはご注意ください。(帯電しない服装、事前放電等)
ソフトウェア関連については、ラズパイOS自体や使用ライブラリ類等が頻繁にバージョンアップが行われ、それに伴って手順・設定方法が変わることが稀にあるため、導入時に多少トラブルに見舞われるかもしれません。
とはいえ、基本的には、問題にぶつかったらネットで検索して問題解決できる能力がある人なら大丈夫かと思います。
出来るだけ最新のやり方で更新していくつもりではいますが。
以下はあくまでも主観ですが、人によっては苦労するかもしれません。
- 理解力:この記事を理解できればOKなレベルです。不足している情報は随時追加していきますので、もしわからなければ質問していただければと思います。(わかりにくくてすみません。)
- 電子工作の知識:あればより楽ですが、なくても読みながら慎重に組み立てればOKだと思います。あればご自身で拡張・改造も可能です。
- Linux系の知識:インストールで手順通りにやってもうまくいかないとき、知識があれば解決が速いかと思います。
- ラズパイの知識:あった方が有利。あれば自分で様々な機能を組み込めるかも。
- プログラミング(Python)知識:必要ありませんが、あれば自分で様々な機能を組み込めるかも。
質問等は数が多くない限りコメント欄にて対応の予定ですが、状況や内容によってはお時間いただくかもしれません。
組み立て
LINE CLOVA HUT は下の写真の様に、3つのパーツで出来ています。
ラズパイ取り付け。
LINE CLOVA HUT は、CPUのついていないマザーボードの様なものですので、頭脳となるコンピュータであるラズパイの取付が必要となります。
本当はラズパイZero を組み込んだ状態で販売するのが理想ではありますが、[1-3-1. 必要部品] の所で書いた通り、ライセンスがややこしくなりそうなこと、皆さんがお持ちの Zero / Zero2 のバリエーション 複数問題、品薄により1人1個という個数制限があることを踏まえて難しい為、各自入手していただくこと前提の記事としました。
多少コツが必要なので、手順を説明します。
基板固定
下の写真の様に針がいっぱい並んでいる様な部分(ピンヘッダと言います)が上にくるように、①のメイン基板を置き、下側からネジ穴に④のビスを計4本入れていきます。
基板を持ち上げるたびにビスが落ちてきて困るので、ナットを仮止めして抜けなくなるまでは裏からマスキングテープで仮押さえすると楽です。
さらに、そのビスの周りにに白いプラスチックの⑥スペーサーを挟みます。
さらに下記写真の様にラズパイZero の四隅の穴に、ビスを通してさらにその上から⑤ナットで 仮止め します。
きつく締めてしまうと、次の手順でブリッジ基板が入らないか入りにくくなったり、ピンが曲がってしまったりしますのでご注意ください。
ブリッジ基板取り付け
ラズパイZero とLINE CLOVA HUT の①メイン基板を接続するために、下の写真の様な③のブリッジ基板を取り付けます。向きは写真を参考に同じ向きとなるように入れます。
ラズパイ側のピンと、①のメイン基板側のピンが平行になっているのをよく確認してください。(平行でないとピンが曲がったり、基板にヒビが入ったりする原因となります。)
曲がっていないことを確認しながら、③ブリッジ基板を少しずつ挿入していきます。(引っかかるようでしたら、平行でないかもしれないので見直します。)指にピンが刺さると痛いので、下の写真の様に厚紙等をピンヘッダと指の間に入れてから、①メイン基板の裏とブリッジ基板の上のピンヘッダの部分を指で挟み込むように取り付けると良いかと思います。
取付けが出来たら、今度は先ほど仮締めしていた ④ビス と ⑤ナット を使って本締めして固定します。
ここまで出来たら、LINE CLOVA HUT 基板とラズパイZero基板が接触していないか確認します。
横から見て隙間があり、何も挟まっていなければOK です。
スイッチ類サブ基板取り付け
リアスイッチ・LED基板取り付け
ここまで組み立てた基板に、リアスイッチ・LED基板 を取り付けます。
ブリッジ基板のすぐ横にある、コネクタのロックを外します。
黒い板の様なものがロック用の爪です。これの真ん中あたりを下の写真の様にピンセットでひっかけ、上に軽く持ち上げるとロックが外れます。力を入れ過ぎて壊さない様にご注意ください。
爪とは反対側の白い部分横からみたら隙間があるので、そこにケーブルを差し込みます。ケーブルには裏表があり、間違うと動作しませんので、気を付けてください。下の写真の様にコネクタ開口部と水平の白い横線が入っていれば正解です。(端子が下側(基板側)となります。)
しっかり固定出来たら、下の写真の様に軽くケーブルを曲げておきます。
フロントスイッチ基板
白いコネクタを、 LINE CLOVA HUT 基板の J4 と書かれたコネクタに下の写真の向き(赤が内側)で取り付けます。
下の写真の様に爪がしっかり溝の所にかみ合うまで押し込みます。
メイン基板周り検査
ここで、基板の検査をしておきます。
電源周りはショートすると、全体に過大なダメージを与えてしまいます。下の写真の赤枠内に4つの穴がありますが、全ての端子を総当たりでチェックします。
まずテスターを導通チェック(ブザー有り)モードにします。そして4つの穴のうちの一番下 の ”GND" と書かれた端子と、▼ 印の USBコネクタの金属部分を当たってみてください。ブザーが鳴るはずですので、その音を覚えておいてください。
ショートチェックで1パターンでもこのブザー音が鳴った場合は、ショートしている (NG) と判断できます。
テスターの棒の色は、導通チェックする場合はどちらでもOKです。(厳密には色々とケースバイケースもあるのですが、複雑なことを言うと混乱すると思いますので…)
そして、以下の 6 つのパターンを全てチェックしてブザーが鳴らない事 を確認してください。
今回はケーブルは逆に差すくらいではショートしませんので、ケーブルが曲がって刺さっている場合で可能性は有るくらいです。とはいえ、電源を入れる前に電源関連をテスターで当たる事は、電子工作で基板を壊さないための基本ですので必ず実行してください。
マイク基板取り付け
ケーブルの移植
CLOVA についていたマイクからケーブルを取り外し、ケーブルを再利用します。
外し方は先ほどの3.2.1. リアスイッチ・LED基板取り付け の箇所で書いた通り、黒い部分の爪をピンセットで持ち上げてロックを外し、抜き取るだけです。
ケーブルを抜き取ったら次は LINE CLOVA HUT 用のマイク基板に取り付けます。
LINE CLOVA HUT 用のマイク基板には、下の写真の様に "CLOVA RasPi Microphone board" という刻印がされてあります。間違えない様にご注意ください。
というのも、マイク基板は、元々の CLOVA とコネクター形状は全く同じですが、流れている信号や電源は全く異なります。もともとCLOVAについていたマイク基板をLINE CLOVA HAT に取り付けたり、逆に元々の CLOVA のメイン基板に LINE CLOVA HUT のマイク基板を取り付けると、故障の原因となりますので絶対しないでください。 分解時にマイク基板を外し忘れてそのまま付けてしまう事は有り勝ちなので注意です。
マイク基板取り付け
次に頭部ケースの中、耳の穴の裏にマイク基板を取り付けます。
下の写真の様に①マイク穴、②爪用穴、③ネジ穴 が左右対称にあります。ただし①マイク穴は裏側にあって部品の裏に隠れているので、写真では部品の実装されていない右側しか見えていません。
②爪用穴をケース側についている爪(突起物)としっかり合わせないと、①ネジ穴に固定できませんので向きと位置をしっかり合わせてはめ込み、最後に③のネジ穴にネジで固定します。
またケース側についている爪(突起物)は Brown(茶色) と Sally(黄色) で位置関係が反転します。写真は Brown の方ですので Sally では、上下が反転します。
マイク穴は下の写真の様に耳のあたりを見ると穴があって、そこから少し見えています。見えていなければ何か挟まっているか、ずれている可能性があるので確認してください。感度が悪くなる可能性があります。
本体組み立て
基板の取り付け
いよいよ組みあがった基板を本体に取り付けていきます。
メイン基板取り付け
左右に、コの字型の基板固定溝があります。この間に基板が挟まるように取り付けます。
向きは下の写真の通り、バッテリー取付用の円筒側の上にブリッジ基板やラズパイが乗る様な形です。
リアスイッチ・LED基板から出ているケーブルの取り回しが少し難しいですが、ブリッジ基板の上を通過してバッテリ円筒と固定用円筒の間にケーブルを通して、後ろ側に通るようにしてくください。
先ほど、 3.2.1. リアスイッチ・LED基板取り付け の所でケーブルを曲げたのは、ここで溝に当たらない様にする為です。
リアスイッチ・LED基板取り付け
後ろ側に通した リアスイッチ・LED基板 も基板固定台後ろにある溝にはめるように固定します。
底面からのケーブル取付
少しやりにくいのですが、写真の様に、底面からのケーブルをコネクターに取り付けます。
スイッチ基板やマイク等と同様、一旦ロック用の爪を持ち上げて基板を奥まで差し込んでから、爪を倒してロックします。
なかなか入れるのが難しい箇所ですのでケーブルが最後まで刺さっていない場合があり、その場合接触不良で動かなかったことがありました。奥までしっかり差し込むように注意してください。
フロントスイッチ基板取り付け
フロントスイッチ基板も同様に、前側にある溝にはめるように固定します。
頭部蓋閉め
次に、基板固定台に頭部蓋を被せます。
マイクケーブルの配線
まずは先ほど頭部ケース裏に取り付けたマイク基板から出るケーブルを、LINE CLOVA HUT の J13と書かれたコネクタに取り付けます。
ケーブルが微妙な長さなので、つけにくいと思います。下の写真の様に横に寝かせた状態で取り付けるとやりやすいかと思います。
横に寝せると、机が平の場合本体が丸いので転がります。タオルの様な柔らかいものを置く等工夫してください。
向きは下の写真の様に、コネクタ開口部と水平の白い横線が見える向きになります。 (BROWNの場合はケーブルが半回転ねじれる形となるはずです。)
蓋閉め
本体を立ててやり、蓋を被せていきます。
前後の方向を間違えると入りません。しっかり合わせてから少しずつ入れていきます。
ひっかりがある場合は、以下の写真の部分のつめが干渉している可能性があります。その場合はニッパーで引っかかる部分を大幅にカットしてしまいます。
もともと円筒部分はバッテリー取付用で、この爪は補強用かと思われますので、改造後は不要となります。引っかかりがひどい場合は円筒ごとカットしてしまってもかまいません。
元々が狭いスペースに両方ギリギリに入れ込む形となっていたので、ラズパイのヘッダーの取付具合(角度)の個体差によって引っかかるものがあるようです。
フロントスイッチやリアスイッチの位置を見ながら、顔の向きを間違えない様に入れていきます。また、先ほど取り付けたマイク基板からのケーブルが長めです。取付の時にどこかに引っかかったり、噛んだりしない様にギリギリまで中をのぞきつつ蓋閉めしてください。
写真の様に下に隙間なく入ったら、蓋閉め完了です。
一度すべてのスイッチを押してみてください。ボタンを押したような感覚を感じられたら成功です。
一部感覚が鈍かったり、押されている感触が無い場合は、奥まで差し込まれていないかマイクケーブル等が挟まっていると思います。やり直してみて下さい。
スピーカー取付け
ケーブル通し
まずは、頭部から出ているフラットケーブルを下の写真の様に、スピーカーカバーの底部にある穴に差し込みます。
そのままでは少し動かしただけでケーブルが抜けてしまいます。
穴から10mm 程度出た状態でマスキングテープで仮止めして抜けない様にするといいです。その時は必ず端子側の裏にテープが付くようにしてください。端子に粘着物が付くと後々接触不良等の原因になりますので。
スピーカーユニット接続
ケーブルが抜けないのを注意しつつ、下の写真の、スピーカーユニットからのケーブルコネクターを、頭部の穴から差し込んで奥までしっかり差し込みます。
スピーカユニット固定
パート1の 2-1-8. スピーカー分離 で外したネジを止めてスピーカーユニットを固定します。
スピーカーカバー装着
ケーブルが抜けない様に注意しながら斜めから、スピーカーカバーの内側に挿入していきます。
奥まで入る直前、フラットケーブルが邪魔になると思います。ここまでくると抜けないはずなので、仮止めしていたマスキングテープを外してケーブルを引っ張りつつ奥まで入れます。
奥まで入ったら、パート1の 2-1-7. スピーカーカバー分離 で外したネジでカバーをネジ止めします。
USB基板取り付け
底面組み立て
導光板取付
写真の赤〇箇所の爪と溝が合うように回転させてはめ込みます。丁度の角度にしないと奥まで入らずにぐらぐらして、底面がちゃんと閉まらなくなりますので、注意です。
底面ケーブル接続
底面基板と本体が丁度90度の角度で当たるように置いてケーブルを接続します。
今までと同じ要領で、爪を持ち上げてロックを外して、フラットケーブルをコネクターに差し込みます。(この写真導光板を付け忘れた時の写真で、実際は導光板取付済みですね。後で写真を撮り直して置き換えておきます。)差し込んだら爪を倒してロックします。
底面蓋を閉める。
蓋を閉めて、パート1の 2-1-3. 底面ネジ除去 で外したネジでカバーをネジ止めします。
以上でハードは完成です。
5. ラズパイの基本設定
5.1. ラズパイイメージ書き込み
まず、PC にラズパイ用に使う 16GB のマイクロSD を指しておきます。
ラズパイ公式 Imager を使ってインストールします。 (Raspberry pi Imager を持っていない人は、公式ページの説明を見てインストールします。)
最新の 32bit 版を選べばいいです。
さらに、左下 [書き込む] ボタンの下にある [歯車] ボタンを押して設定画面を開きます。
ホスト名は自由に、SSH は有効(パスワード認証の方がわかりやすいと思います)にします。ユーザー名、パスワードは、自分で分かりやすいものを設定するといいです。
ラズパイZero は 有線ポートは通常無いので、WiFi アクセスポイントの設定も、この時点で設定してWiFi でネットワークにつながるように設定しておきます。WiFi を使う国は "JP" にします。
ロケール設定をチェックして有効にし、タイムゾーンを Asia/Tokyo キーボードレイアウトを jp にします。
[保存] ボタンを押して、Imager のトップ画面に戻ったら、 [書き込み] を押します。
「データは完全に削除されます。」と表示されるので、 [はい] を選ぶと書き込みが始まります。
15分程待つと書き込み完了したら、MicroSD を取り出します。
取り出した MIcroSD をラズパイに差します。
IPアドレス確認しSSH接続
最初は DHCP (IPアドレス自動割り振り) 設定で起動してしまいますので、IPアドレスがわららず、SSH の接続先が判りません。
初回だけ HDMI 端子にディスプレイを繋いで起動し、
ifconfig
と打って
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 26 bytes 2732 (2.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 26 bytes 2732 (2.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.33 netmask 255.255.240.0 broadcast 192.168.15.255
inet6 fe80::5141:efa1:ff31:e5e prefixlen 64 scopeid 0x20<link>
ether xx:xx:xx:xx:xx:xx txqueuelen 1000 (Ethernet)
RX packets 14156 bytes 1615201 (1.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 987 bytes 108090 (105.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
の様に表示されますが、 wlan0: の2行目 inet 192.168.0.33 の部分が IPアドレスとなります。
Tera-Term の様な SSH クライアントソフトからこの IPアドレスに接続します。
起動毎にアドレスが変わってつながらない場合は IPアドレスを固定するといいでしょう。
私は SSH でつなぐものは大概固定しています。
固定のやり方は "ラズパイ" + "IPアドレス固定" などとググったらわかるかと思います。
音声入出力設定
もともと、ラズパイは音声は出力でアナログ出力のみです。音声の入力についてはオプション扱いで OS には標準で組み込まれていません。さらに、音声出力もラズパイ Zero の場合は基本的に HDMI コネクタにのみ出力されていてデフォルトではそちらに出力されるようになっています。
特に OS に組み込まれていない マイク入力のドライバーソフトは、カーネルヘッダーソースを持ってきて、そのヘッダーを使ってドライバーをコンパイルするといった面倒な作業が必要です。
ところが、この I2S MEMSマイクモジュールの開発元である Adafruit が、 I2S MEMSマイク用のインストールスクリプトを用意してくれています。コマンド一つでカーネルヘッダーソースのダウンロードから組み込みまでやってくれます。
しかも、システムアップデート等で万が一動かなくなっても、再度スクリプトを実行することで修復までしてくれるようになっているそうです。
そして、イントール後は I2S 出力もできるようにしてくれているようです。
そのサイトの説明に従って設定してテストします。
Adafruit I2S MEMS Microphone Breakout / Raspberry Pi Wiring & Test
のサイトを開いて、"Update the Pi" から下の手順を全て、順に実行していきます。
"Auto Load at Boot" の所は "Y" を選択して、起動時に自動ロードするようにします。
なので、 "Manual Load" の所はスキップします。
途中で、テストの方法も書いてあるので、録音した音声が再生されるところまで確認できます。
因みに、私の環境では、 .asoundrc に設定を書き込むところは動作はするのですが、再起動すると、なぜか .asoundrc ファイルが消えてしまっていて設定が保持できません。
原因はつかめていませんが、
sudo nano /etc/asound.conf
と打って、そちらに後ろに追加しました。
その時に、ついでにスピーカー側のボリューム制御設定も同じファイルに書いておきます。
参考にそのファイルを載せておきます。
asound.conf
pcm.dspeaker_hw { type hw card 0 } pcm.dmixer { type dmix ipc_key 1024 ipc_perm 0666 slave { pcm "dspeaker_hw" period_time 0 period_size 1024 buffer_size 8192 rate 44100 channels 2 } } ctl.dmixer { type hw card 0 } pcm.softvol { type softvol slave.pcm "dmixer" control.name "PCM" control.card 0 } ctl.softvol { type hw card 0 } pcm.!default { type plug slave.pcm "softvol" } pcm.dmic_hw { type hw card sndrpii2scard channels 2 format S32_LE } pcm.dmic_sv { type softvol slave.pcm dmic_hw control { name "Boost Capture Volume" card sndrpii2scard } min_dB -3.0 max_dB 30.0 }
ハードウェアチェック
Python で RPi.GPIO というライブラリを使ってチェックします。
ライブラリがインストールされているか確認します。
pip list | grep RPi.GPIO
と打って、入っていたら
RPi.GPIO 0.7.0
の様にライブラリ名とバージョンが表示されれば、インストールされていますのでそのまま進んでください。何も表示されていなければ インストールされていないので、
`pip install RPi.GPIO'
と打ってインストールしておきます。
スイッチ・LEDテスト
mkdir hw_test
と打ってディレクトリを作成し
cd hw_test
でその中に入ります。
nano sw_led_test.py
と打って、nanoエディタを開き、以下を入力(コピペ)してください。
sw_led_test.py
import RPi.GPIO as GPIO
import threading
import time
PIN_FRONT_SW = 4
PIN_BACK_SW_MINUS = 2
PIN_BACK_SW_PLUS = 3
PIN_BACK_SW_BT = 5
PIN_BACK_SW_MUTE = 7
PIN_POWER_SW = 22
PIN_LED_R = 13
PIN_LED_G = 12
PIN_LED_B = 6
is_active = True
def test() :
global is_active
sw_front_before = -1
sw_back_minus_before = -1
sw_back_plus_before = -1
sw_back_bt_before = -1
sw_back_mute_before = -1
sw_power_before = -1
while(is_active) :
sw_front = GPIO.input(PIN_FRONT_SW)
sw_back_minus = GPIO.input(PIN_BACK_SW_MINUS)
sw_back_plus = GPIO.input(PIN_BACK_SW_PLUS)
sw_back_bt = GPIO.input(PIN_BACK_SW_BT)
sw_back_mute = GPIO.input(PIN_BACK_SW_MUTE)
sw_power = GPIO.input(PIN_POWER_SW)
if sw_front_before != sw_front :
if (sw_front == GPIO.HIGH) :
print("[FRONT] switch is OFF")
else :
print("[FRONT] switch is ON")
if sw_back_minus_before != sw_back_minus :
if (sw_back_minus == GPIO.HIGH) :
print("[-] switch is OFF")
GPIO.output(PIN_LED_B, GPIO.LOW)
print("[B] LED is OFF")
else :
print("[-] switch is ON")
GPIO.output(PIN_LED_B, GPIO.HIGH)
print("[B] LED is ON")
if sw_back_plus_before != sw_back_plus :
if (sw_back_plus == GPIO.HIGH) :
GPIO.output(PIN_LED_G, GPIO.LOW)
print("[R] LED is OFF")
print("[+] switch is OFF")
else :
print("[+] switch is ON")
GPIO.output(PIN_LED_G, GPIO.HIGH)
print("[R] LED is ON")
if sw_back_bt_before != sw_back_bt :
if (sw_back_bt == GPIO.HIGH) :
print("[BT] switch is OFF")
GPIO.output(PIN_LED_R, GPIO.LOW)
print("[R] LED is OFF")
else :
print("[BT] switch is ON")
GPIO.output(PIN_LED_R, GPIO.HIGH)
print("[R] LED is ON")
if sw_back_mute_before != sw_back_mute :
if (sw_back_mute == GPIO.HIGH) :
print("[MUTE] switch is OFF")
else :
print("[MUTE] switch is ON")
if sw_power_before != sw_power :
if (sw_power == GPIO.HIGH) :
print("[POWER] switch is OFF")
else :
print("[POWER] switch is ON")
time.sleep(0.1)
sw_front_before = sw_front
sw_back_minus_before = sw_back_minus
sw_back_plus_before = sw_back_plus
sw_back_bt_before = sw_back_bt
sw_back_mute_before = sw_back_mute
sw_power_before = sw_power
def main() :
global is_active
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN_FRONT_SW, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(PIN_BACK_SW_MINUS, GPIO.IN)
GPIO.setup(PIN_BACK_SW_PLUS, GPIO.IN)
GPIO.setup(PIN_BACK_SW_BT, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(PIN_BACK_SW_MUTE, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(PIN_POWER_SW, GPIO.IN)
GPIO.setup(PIN_LED_R, GPIO.OUT)
GPIO.setup(PIN_LED_G, GPIO.OUT)
GPIO.setup(PIN_LED_B, GPIO.OUT)
GPIO.output(PIN_LED_R, GPIO.LOW)
GPIO.output(PIN_LED_G, GPIO.LOW)
GPIO.output(PIN_LED_B, GPIO.LOW)
print("Ready! Press any switch to test or press [Enter] key to exit")
test_thread = threading.Thread(target = test, args = (), name = 'Test', daemon = True)
test_thread.start()
input()
is_active = False
print("Exit")
time.sleep(1)
test_thread.join()
GPIO.cleanup(PIN_FRONT_SW)
GPIO.cleanup(PIN_BACK_SW_MINUS)
GPIO.cleanup(PIN_BACK_SW_PLUS)
GPIO.cleanup(PIN_BACK_SW_BT)
GPIO.cleanup(PIN_BACK_SW_MUTE)
GPIO.cleanup(PIN_POWER_SW)
GPIO.cleanup(PIN_LED_R)
GPIO.cleanup(PIN_LED_G)
GPIO.cleanup(PIN_LED_B)
if __name__ == '__main__':
main()
[Ctrl] + [O] で保存し、 [Ctrl] + [X] で終了します。
python sw_led_test.py
と打つと、チェックプログラムが走ります。各スイッチを押してみてください。
画面に
[*] switch is ON
と表示され、スイッチを離すと
[*] switch OFF
(* の部分に押されたスイッチの名称)の様に表示されれば、そのスイッチは問題なく接続できています。
また、
[Bluetooth] スイッチを押すと赤色 LED が点灯、
[+] スイッチを押すと緑色 LED が点灯、
[-] スイッチを押すと青色 LED が点灯、
するのが確認出来たら、LED の接続も問題なく接続できています。
なお、RGB LED なので、同時に押すと合成した色になります。
仕上げ
蓋を閉めると、ラズパイ基板上にあるアクセスランプが見えなくなってしまい、電源が入っているのか現在ディスクアクセス中かが全く分からなくなってしまいます。
そこで、後ろのスイッチの上にある LED にアクセスランプや電源ランプを割り当てます。
またシャットダウンしたくても、一旦SSH等でPCからつなぎに行ってシャットダウンコマンドを打つのも面倒ですので、本体だけでもシャットダウンできるように電源ボタンを割り当てます。
いずれも
/boot/confit.txt に追加するだけで対応できます。
sudo nano /boot/config.txt
と打ち
[All] と書いてある下あたりに以下を追加します。
電源LED
dtoverlay=gpio-poweroff,gpiopin=6,active_low=1
gpiopin=6
でBMC6 に信号が割り当てられるので、電源が ON の間は青色が点灯します。
"4-3-2-2. ラズパイ" の箇所を見ながらピン番号を別の LED ピンに変えると別の色になります。
アクセス LED
dtparam=act_led_gpio=13
act_led_gpio=13
でBMC13 に信号が割り当てられるので、アクセス時は赤色が点灯します。
"4-3-2-2. ラズパイ" の箇所を見ながらピン番号を別の LED ピンに変えると別の色になります。
電源LED が青で点灯中は合成色で紫になります。
電源(シャットダウン)ボタン
dtoverlay=gpio-shutdown,gpio_pin=22
gpio_pin=22
でBMC22 に信号が割り当てられるので、底面の電源ボタンを押すとシャットダウンします。。
"4-3-2-2. ラズパイ" の箇所を見ながらピン番号を別のスイッチピンに変えるとそのスイッチでシャットダウンするようになります。
ここまで出来たら、一度
sudo reboot now
と打って、リブートをかけます。次回起動時には LED や電源スイッチが効くようになっているか確認します。
確認出来たら蓋を閉めても支障ないはずです。
なお蓋を閉めるためのネジは止めない方が無難かと思います。ねじ止めしなくても結構きっちりはまります。ただ、顔部分をつかんで持ち歩くとさすがに外れる場合があるので注意が必要です。
別のソフトを入れるためや、MicroSD が壊れた時に交換するのには蓋が開けやすい方がいいからです。
アプリケーションの導入
関連サービスの準備
アプリケーション動作をさせるには以降に記載した各種サービスの準備がまずは必要です。
Googleクラウドサービス(必須)
音声認識側では Google Speech Recognatation または クラウドスピーチ のサービスのいずれかを使うようになっているので、実質必須のサービスとなります。
そして、現状音声合成の方もデフォルトでは Google クラウドText-to-Speech を使用しています。
画面を写真を貼り付けて説明しようと思いましたが、こちら私は既に作成済みなので、出てくる画面が初めて使う人と違い過ぎて役に立ちませんので、画面の貼り付けは行いません。
代わりに公式の説明サイトを書いておきますので、この手順に従ってアカウントを作成してサービスアカウントのキー(鍵)を作成してください。
先ずGoogle クラウドサービスのアカウントを持っていない人は作ります。
こちらのページの手順に従って、Google Cloud を初めて利用する方は、ここから始めましょう
アカウントを作成するところから始めてください。
その後、またはアカウントを既に持っている方は、
Text-to-Speech始める前に のページを参考にキーを作成していきます。
プロジェクトは CLOVA 用のプロジェクトを新たに作った方がいいかと思います。
そして、上記の手順 4. にて "Text-to-Speech API " を有効にした後、"Speech-to-Text" の方も同じプロジェクト内で有効にしておいてください。
JSON 形式のキーのダウンロードが出来たらそこまでの手順でOKです。ダウンロードしたファイルはラズパイのルートディレクトリに移動して保存してください。
OpenAI API サービス(必須)
CLOVA Raspberry Piは、実装されているスキルのソフトウェア制御とAIによる自動応答のハイブリッド形式で動作します。
AI による自動応答の際には Chat-GPT の Open AI API を使用するため、サービスを使用する準備が必要となります。
それには、
Open AI のトップページ を開き
右上の [sign up] でユーザー登録を開始します。
途中でメール確認や携帯番号を入れて二段階認証を行う必要はありますが、画面の指示に従ってください。
APIキー作成ページ にてAPIキーを作成しておく必要があります。
途中の操作画面をここに入れようと思ったのですが、一旦アカウント持っているとうまく入力画面になってくれなかったので割愛します。画面を含めた手順が必要な場合は、色々な人が記事を書いていますので、 "OpenAI APIキーの作成" 等でググってください。
APIキーを作成したらそのキーをコピーして、ローカルファイル等他人に漏洩しないPCにテキストファイルを作るなどして、ペーストして(貼り付けて)おいてください。
鍵はこの時しか表示されませんので、うっかりコピペを忘れてしまった場合は、再度作り直してください。漏洩が疑われる場合も再度作り直すといいかと思います。
後程アプリケーションソフトウェア側の設定で必要になります。
Web 版Voice Text(オプション)
音声合成サービスですが、以下の2つの問題点があります。
- 合成後の二次利用については許可されていないので、YouTube 等には使用できない。
- 現在新規アカウント登録が終了して出来ない様になっているために、既にアカウント持っている人以外利用できない
個人で非商用で実験的に使うには無償で使えて良かったのですが、代替え音声合成サービスを検討中です。Googleクラウドスピーチでは月間無料枠を超えて使うと(到達するまで結構使えるとはいえ)費用が掛かってしまいますので…
流行りの 「AIスタックちゃん」の導入時等にアカウント作って既に持っている人は利用可能です。APIキーを表示して、ローカルファイル等他人に漏洩しないPCにテキストファイルを作るなどして、ペーストして(貼り付けて)おいてください。こちらは再発行は出来ないので、漏洩しない様にご注意ください。
後程、アプリケーションソフトウェア側の設定で後程必要になります。
Web 版 VOICEVOX(オプション)
Web 版Voice Text が新規登録できないため、実質使用不可となってしまったため代替えを探していてみつかったものです。
音声合成エンジン自体はオープンソースで開発されており、声の種類がたくさんあります。声によって利用規約が異なりますが、github にあげたソースを無改造で使う限りは、クレジット表示さえすれば、商用・非商用に関わらず無料で使用できるというライセンス形態です。詳細はこちらをご覧ください。
本来VOICEVOXは自分の PC 等で合成して使うもので、マシンパワーが要りラズパイでは時間が掛かりすぎて使い物になりませんでした。
ところが、有志の方がその合成プログラムを置いたサーバーを立てていただいたおかげで、ネットワーク越しに要求を出したら合成結果を計算して返してくれるという仕組みを公開してくれていてそれを使用しています。(VOICEVOX としては非公式です。)有難いことです。
サーバー駆動にも維持にもそれなりに
Lチカの例
#define LED_PIN 13
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(1000);
digitalWrite(LED_PIN, LOW);
delay(1000);
}
費用が掛かるので、1日で使える量をポイントで管理する仕組みになっています。
そのためユーザーごとにアクセスを管理・制御するために、apikey が必要となります。以下のページでapikey を取得してください。
LINE チャンネル(オプション)
LINE Messaging API を使用して、クローバをボットとみなして組み込み、スマホ等でそのボットと友達となることで、LINEでメッセージの送受信が音声でできるようになります。
その準備方法については、ちょっと手順が多いので記事記載準備中です。
アプリケーションソース一式の最新版はこちらの
github にあります。
が、コンテスト向けには全ソースの公開が必要な為ここに掲載します。
しかしながら、ファイル数が多いため、実際の使用には github をclone した方が楽かと思いますので、導入手順はその方法で記載します。
.CLOVA_RasPi.cfg
{
"charactor": {
"default_sel": 0
},
"hardware": {
"audio": {
"microphone": {
"num_ch": 1,
"index": 11,
"silent_thresh":300,
"term_duration":3000
},
"speaker": {
"num_ch": 1,
"index": 11
}
}
},
"sns": {
"line": {
"user_id": [
{
"name": "default",
"callname": "クローバ",
"id": ""
}
]
}
}
}
.CLOVA_RasPi.keys
GOOGLE_APPLICATION_CREDENTIALS= OPENAI_API_KEY= VOICE_TEXT_API_KEY= WEB_VOICEVOX_API_KEY= AITALK_USER= AITALK_PASSWORD= LINE_CH_ACC_TOKEN=
CLOVA_RasPi.py
import time
import os
import RPi.GPIO as GPIO
from CLOVA_config import global_config_sys
from CLOVA_config import HttpReqSettingHandler
from CLOVA_led import global_led_Ill
from CLOVA_timer import TimerControl
from CLOVA_switch import SwitchInput
from CLOVA_volume import global_vol
from CLOVA_charactor import global_charactor
from CLOVA_conversation import Conversation
from CLOVA_voice import VoiceControl
from CLOVA_http_server import HttpServer
from CLOVA_line import LineSender, HttpReqLineHandler
def main() :
# 会話モジュールのインスタンス作成
conv = Conversation()
# HTTPサーバー系のインスタンス作成
line_svr = HttpServer(8080, HttpReqLineHandler)
config_svr = HttpServer(8000, HttpReqSettingHandler)
# LINE送信モジュールのインスタンス
line_sender = LineSender()
# 底面 LED を黄色に
global_led_Ill.AllYellow()
# LEDを使うモジュールにインスタンスをコピー
voice = VoiceControl()
# キー準備
char_swich = SwitchInput(SwitchInput.PIN_BACK_SW_BT, global_charactor.SelNextChar)
plus_swich = SwitchInput(SwitchInput.PIN_BACK_SW_PLUS, global_vol.VolUpCallback)
minus_swich = SwitchInput(SwitchInput.PIN_BACK_SW_MINUS, global_vol.VolDownCallback)
# タイマ準備
tmr = TimerControl()
conv.tmr = tmr
#tmr.Start()
# キャラクタ設定
global_charactor.SetCharactor(global_config_sys.settings["charactor"]["default_sel"])
# メインループ
while True :
int_exists, speeched_text = conv.CheckIfInterruptedVoiceExists()
# 割り込み音声ありの時
if ( int_exists == True) :
if speeched_text != "" :
filename = voice.TextToSpeech(speeched_text)
if (filename != "") :
voice.PlayAudioFile(filename)
else :
print("音声ファイルを取得できませんでした。")
# 割り込み音声無の時
else :
answered_text = ""
# 録音
record_data = voice.RecordFromMic()
# テキストに返還
speeched_text = voice.SpeechToText(record_data)
#speeched_text = speech_to_text_by_google_speech_recognition(record_data)
print("発話メッセージ:{}".format(speeched_text))
# 終了ワードチェック
if (speeched_text == "終了") or (speeched_text == "終了。") :
answered_text = "わかりました。終了します。さようなら。"
is_exit = True
else :
# 会話モジュールから、問いかけに対する応答を取得
answered_text = conv.GetAnswer(speeched_text)
is_exit = False
# 応答が空でなかったら再生する。
if ( ( answered_text != None) and (answered_text != "" ) ) :
print("応答メッセージ:{}".format(answered_text) )
answered_text_list = answered_text.split('\n')
for text_to_speech in answered_text_list :
if text_to_speech != "" :
filename = voice.TextToSpeech(text_to_speech)
if (len(filename) != 0) :
voice.PlayAudioFile(filename)
# 終了ワードでループから抜ける
if (is_exit == True ) :
tmr.Stop()
print("Exit!!!")
break
# 底面 LED をオフに
global_led_Ill.AllOff()
if __name__ == "__main__":
main()
CLOVA_charactor.json
{
"charactors":[
{
"Name":"グーグルB",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "GoogleTextToSpeech",
"language": "ja-JP",
"name": "ja-JP-Standard-B",
"gender": "FEMALE",
"rate": "1.0",
"pitch": "0.0",
"speed": "0.0",
"emotion": "happiness"
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"クローバ代理",
"myself": "私",
"gender": "女性",
"type": "とにかくおしゃべりです。",
"talkstyle": "たんたんとしゃべります。",
"detail": ""
}
},
{
"Name":"グーグルC",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "GoogleTextToSpeech",
"language": "ja-JP",
"name": "ja-JP-Standard-C",
"gender": "MALE",
"rate": "1.0",
"pitch": "0.0",
"speed": "0.0",
"emotion": "happiness"
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"クローバ代理",
"myself": "私",
"gender": "男性",
"type": "明るくおしゃべりです。",
"talkstyle": "しょっちゅう語尾に「知らんけど」を付けます。",
"detail": "関西弁をしゃべります。"
}
},
{
"Name":"グーグルA",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "GoogleTextToSpeech",
"language": "ja-JP",
"name": "ja-JP-Standard-A",
"gender": "FEMALE",
"rate": "1.0",
"pitch": "0.0",
"speed": "0.0",
"emotion": "happiness"
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"クローバ代理",
"myself": "私",
"gender": "男性",
"type": "恥ずかしがりやですが、しゃべりだすと止まりません。",
"talkstyle": "敬語を使う事が多いです。",
"detail": "東北弁をしゃべります。"
}
},
{
"Name":"グーグルD",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "GoogleTextToSpeech",
"language": "ja-JP",
"name": "ja-JP-Standard-D",
"gender": "MALE",
"rate": "1.0",
"pitch": "0.0",
"speed": "0.0",
"emotion": "happiness"
},
"Personality":{
"aisystem": "gpt-4",
"name":"クローバ代理",
"myself": "私",
"gender": "男性",
"type": "言葉少な目ですが、しっかりとしたものいいです。",
"talkstyle": "落ち着いたしゃべり方です。",
"detail": "自慢話が多いのが玉に瑕です。"
}
},
{
"Name":"ひかり",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "VoiceText",
"language": "ja-JP",
"name": "hikari",
"gender": "FEMALE",
"rate": "1.0",
"pitch": "100",
"speed": "100",
"emotion": "happiness"
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"新生クローバ",
"myself": "私",
"gender": "女性",
"type": "子供っぽいところがあり、噂話が大好きです。",
"talkstyle": "ため口で話します。",
"detail": "関西弁をしゃべります。"
}
},
{
"Name":"しょう",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "VoiceText",
"language": "ja-JP",
"name": "show",
"gender": "MALE",
"rate": "1.0",
"pitch": "100",
"speed": "100",
"emotion": ""
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"新生クローバ",
"myself": "僕",
"gender": "男性",
"type": "体育会系でとにかくうるさいです。",
"talkstyle": "弾丸の様に話します。",
"detail": "余計なことをポロっと漏らしてしまいます。"
}
},
{
"Name":"はるか",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "VoiceText",
"language": "ja-JP",
"name": "haruka",
"gender": "FEMALE",
"rate": "1.0",
"pitch": "100",
"speed": "100",
"emotion": "happiness"
},
"Personality":{
"aisystem": "gpt-4",
"name":"新生クローバ",
"myself": "うち",
"gender": "女性",
"type": "おしとやかで気取っていますが、おしゃべりです。",
"talkstyle": "きれいな言葉を使おうとします。",
"detail": "標準語を離します。"
}
},
{
"Name":"たける",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "VoiceText",
"language": "ja-JP",
"name": "takeru",
"gender": "MALE",
"rate": "1.0",
"pitch": "100",
"speed": "100",
"emotion": "happiness"
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"新生クローバ",
"myself": "俺",
"gender": "男性",
"type": "お節介でおしゃべりです。",
"talkstyle": "物事をぼかし気味で話します。",
"detail": "超常現象、ミステリー等不思議な話が大好きです。"
}
},
{
"Name":"サンタ",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "VoiceText",
"language": "ja-JP",
"name": "santa",
"gender": "MALE",
"rate": "1.0",
"pitch": "100",
"speed": "100",
"emotion": "happiness"
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"新生クローバ",
"myself": "わし",
"gender": "男性",
"type": "陽気でみんなに好かれるタイプです。",
"talkstyle": "老人ですのでゆっくり優しくお話します。また、語尾に「だわい」「ですじゃ」「のう」などを付けて老人っぽいしゃべり方をします。",
"detail": "クリスマスシーズンやパーティーが大好きで、子供とよく遊びます。"
}
},
{
"Name":"ずんだもん",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "VoiceVox",
"language": "ja-JP",
"name": "3",
"gender": "FEMALE",
"rate": "1",
"pitch": "1",
"speed": "1",
"emotion": ""
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"新生クローバ",
"myself": "うち",
"gender": "女性",
"type": "子供っぽい性格です",
"talkstyle": "",
"detail": "ひとなっつこいです。"
}
},
{
"Name":"白上虎太郎",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "VoiceVox",
"language": "ja-JP",
"name": "32",
"gender": "MALE",
"rate": "1",
"pitch": "1",
"speed": "1",
"emotion": ""
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"新生クローバ",
"myself": "おいら",
"gender": "男性",
"type": "子供っぽい性格です",
"talkstyle": "",
"detail": "調子乗りです。"
}
},
{
"Name":"波音リツ",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "VoiceVox",
"language": "ja-JP",
"name": "9",
"gender": "FEMALE",
"rate": "1",
"pitch": "1",
"speed": "1",
"emotion": ""
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"新生クローバ",
"myself": "私",
"gender": "女性",
"type": "包容力のある性格です",
"talkstyle": "",
"detail": "奥ゆかしいです。"
}
},
{
"Name":"剣崎雌雄",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "VoiceVox",
"language": "ja-JP",
"name": "21",
"gender": "MALE",
"rate": "1",
"pitch": "1",
"speed": "1",
"emotion": ""
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"新生クローバ",
"myself": "俺",
"gender": "男性",
"type": "おちついた性格です",
"talkstyle": "",
"detail": "大人の男性です。"
}
},
{
"Name":"ちび式じい",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "VoiceVox",
"language": "ja-JP",
"name": "21",
"gender": "MALE",
"rate": "1",
"pitch": "1",
"speed": "1",
"emotion": ""
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"新生クローバ",
"myself": "じぶん",
"gender": "男性",
"type": "気が弱い性格です。",
"talkstyle": "動物っぽい話し方です。",
"detail": "。"
}
},
{
"Name":"みやび",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "ja-JP"
},
"Speaker":{
"system": "AITalk",
"language": "ja-JP",
"name": "miyabi_west",
"gender": "FEMALE",
"rate": "1",
"pitch": "1.50",
"speed": "1.30",
"emotion": ""
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"新生クローバ",
"myself": "うち",
"gender": "女性",
"type": "ずうずうしい性格です。",
"talkstyle": "ざっくばらんな話し方をします。",
"detail": "関西弁を話します。"
}
},
{
"Name":"GreatBritainF",
"Listener":{
"system": "GoogleCloudSpeech",
"language": "en-GB"
},
"Speaker":{
"system": "GoogleTextToSpeech",
"language": "en-GB",
"name": "en-GB-Standard-F",
"gender": "FEMALE",
"rate": "1.0",
"pitch": "0.0",
"speed": "0.0",
"emotion": "happiness"
},
"Personality":{
"aisystem": "gpt-3.5-turbo",
"name":"LINE CLOVA",
"myself": "I",
"gender": "FEMALE",
"type": "cheerful and talkative.",
"talkstyle": "",
"detail": ""
}
}
]
}
CLOVA_charactor.py
import os
import time
import json
from CLOVA_queue import global_speech_queue
# ==================================
# キャラクタ管理クラス
# ==================================
class CharactorSelection :
# コンストラクタ
def __init__(self) :
print("Create <CharactorSelection> class")
# キャラクタ設定ファイルの読み込み
self.ReadCharactorConfigFile()
# デストラクタ
def __del__(self) :
# 現状ログ出すだけ
print("Delete <CharactorSelection> class")
# キャラクタ設定
def SetCharactor(self, num) :
self.sel_num = num
select_speech = "キャラクタ {} さんが選択されました。".format(self.setting_json["charactors"][self.sel_num]["Name"])
print(select_speech)
global_speech_queue.AddToQueue(select_speech)
# キャラクタの特徴を取得。
def GetCharactorDescription(self) :
# OpenAI に指示するキャラクタの特徴をひとつの文字列化する。
description = ""
if (self.setting_json["charactors"][self.sel_num]["Personality"]["name"] != "") :
description += "あなたの名前は {}です。\n".format(self.setting_json["charactors"][self.sel_num]["Personality"]["name"])
if (self.setting_json["charactors"][self.sel_num]["Personality"]["gender"] != "") :
description += "あなたの性別は {}です。\n".format(self.setting_json["charactors"][self.sel_num]["Personality"]["gender"])
if (self.setting_json["charactors"][self.sel_num]["Personality"]["myself"] != "") :
description += "あなたは一人称として {}を使います。\n".format(self.setting_json["charactors"][self.sel_num]["Personality"]["myself"])
if (self.setting_json["charactors"][self.sel_num]["Personality"]["type"] != "") :
description += "あなたの性格は {}\n".format(self.setting_json["charactors"][self.sel_num]["Personality"]["type"])
if (self.setting_json["charactors"][self.sel_num]["Personality"]["talkstyle"] != "") :
description += "あなたの話し方は {}\n".format(self.setting_json["charactors"][self.sel_num]["Personality"]["talkstyle"])
if (self.setting_json["charactors"][self.sel_num]["Personality"]["detail"] != "") :
description += "あなたは {}\n".format(self.setting_json["charactors"][self.sel_num]["Personality"]["detail"])
print("Charactor Description={}".format(description))
return description
# キャラクタ選択可否のチェック
def CheckIfCharactorSelectable(self, num) :
ret = True
# Web版Voice Text 用のキャラクタの場合
if (self.setting_json["charactors"][num]["Speaker"]["system"] == "VoiceText" ) :
# 空白なら無効化
if (os.environ['VOICE_TEXT_API_KEY'] == "") :
ret = False
# |WEB版VOICEVOX API 用のキャラクタの場合
if (self.setting_json["charactors"][num]["Speaker"]["system"] == "VoiceVox" ) :
# 空白なら無効化
if (os.environ['WEB_VOICEVOX_API_KEY'] == "") :
ret = False
# AITalk WebAPI 用のキャラクタの場合
if (self.setting_json["charactors"][num]["Speaker"]["system"] == "AITalk") :
# 空白なら無効化
if (os.environ['AITALK_USER'] == "") or (os.environ['AITALK_PASSWORD'] == "") :
ret = False
return ret
# 次のキャラクターを選択
def SelNextChar(self, arg) :
num = self.sel_num
while True :
# 次を選択
if ( (num + 1) < self.num_of_char) :
num = num + 1
else :
num = 0
# 選択可のキャラクタまで行くか、一周したら抜ける
if ( (self.CheckIfCharactorSelectable(num) == True ) or (num == self.sel_num ) ):
break
self.SetCharactor(num)
# キャラクタ設定ファイルを読み出す
def ReadCharactorConfigFile(self) :
file_path = os.path.expanduser("~/CLOVA_RasPi/CLOVA_charactor.json")
with open(file_path, 'r', encoding='utf-8') as cfg_file:
file_text = cfg_file.read()
self.setting_json = json.loads(file_text)
self.num_of_char = len(self.setting_json["charactors"])
# ==================================
# 外部参照用のインスタンス
# ==================================
global_charactor = CharactorSelection()
# ==================================
# 本クラスのテスト用処理
# ==================================
def ModuleTest() :
# 現状何もしない
print( "CharCount = {}".format(str(len(global_charactor.setting_json["charactors"]))))
print( global_charactor.setting_json["charactors"][0]["Name"] )
print( global_charactor.setting_json["charactors"][1]["Name"] )
# ==================================
# 本モジュールを直接呼出した時の処理
# ==================================
if __name__ == "__main__":
ModuleTest()
CLOVA_config.py
import os
import http.server
import threading as th
import json
import urllib.parse
import urllib.request
# ==================================
# 設定パラメータ管理クラス
# ==================================
class KeysSetting :
KEYS_FILENAME = os.path.expanduser("~/.CLOVA_RasPi.keys")
# コンストラクタ
def __init__(self) :
print("Create <KeysSetting> class")
self.LoadAllKeys()
# デストラクタ
def __del__(self) :
# 現状ログ出すだけ
print("Delete <KeysSetting> class")
# ファイルからキー値を読み取る
def GetKeyFromFile(self, key_name) :
with open(self.KEYS_FILENAME, 'r') as file:
for line in file:
if line.startswith(key_name + '='):
return line[len(key_name)+1:].strip()
return None
# 環境変数にキー値を設定する
def SetKeyToEnv(self, key_name, key_val) :
if key_val is not None:
print("SET {}='{}'".format(key_name, ("*"*len(key_val))))
os.environ[key_name] = key_val
else :
print("Err : {} != {}".format(key_name,key_val))
# 全キーを読み出す
def LoadAllKeys(self) :
name = 'GOOGLE_APPLICATION_CREDENTIALS'
val = self.GetKeyFromFile(name)
if val is not None :
self.SetKeyToEnv(name, val)
name = 'OPENAI_API_KEY'
val = self.GetKeyFromFile(name)
if val is not None :
self.SetKeyToEnv(name, val)
name = 'VOICE_TEXT_API_KEY'
val = self.GetKeyFromFile(name)
if val is not None :
self.SetKeyToEnv(name, val)
name = 'WEB_VOICEVOX_API_KEY'
val = self.GetKeyFromFile(name)
if val is not None :
self.SetKeyToEnv(name, val)
name = 'AITALK_USER'
val = self.GetKeyFromFile(name)
if val is not None :
self.SetKeyToEnv(name, val)
name = 'AITALK_PASSWORD'
val = self.GetKeyFromFile(name)
if val is not None :
self.SetKeyToEnv(name, val)
name = 'LINE_CH_ACC_TOKEN'
val = self.GetKeyFromFile(name)
if val is not None :
self.SetKeyToEnv(name, val)
# ==================================
# 設定パラメータ管理クラス
# ==================================
class SysConfig :
setting = None
CONFIG_FILENAME = os.path.expanduser("~/.CLOVA_RasPi.cfg")
# コンストラクタ
def __init__(self) :
print("Create <SysConfig> class")
print("CONFIG_FILENAME={}".format(self.CONFIG_FILENAME))
self.LoadConfigFile()
# デストラクタ
def __del__(self) :
# 現状ログ出すだけ
print("Delete <SysConfig> class")
# 全設定パラメータを読み取る
def LoadConfigFile(self) :
with open(self.CONFIG_FILENAME, 'r', encoding='utf-8') as cfg_file:
file_text = cfg_file.read()
self.settings = json.loads(file_text)
# 全設定パラメータを書き込む
def SaveConfigFile(self) :
with open(self.CONFIG_FILENAME, 'w', encoding='utf-8') as cfg_file:
json.dump(self.settings, cfg_file, indent=2, ensure_ascii=False)
# ==================================
# Setting HTTPハンドラクラス
# ==================================
class HttpReqSettingHandler(http.server.BaseHTTPRequestHandler) :
# GETリクエストを受け取った場合の処理
def do_GET(self):
sys_config = SysConfig()
# キャラクタの選択肢を作成する。
with open(os.path.expanduser("~/CLOVA_RasPi/CLOVA_charactor.json"), 'r', encoding='utf-8') as char_file:
file_text = char_file.read()
char_cfg_json = json.loads(file_text)
char_selection = ""
index = 0
for char_data in char_cfg_json["charactors"] :
line_data = " <option value=\"{}\">{}</option>\n".format(index, char_data["Name"])
char_selection += line_data
index += 1
#print(char_selection)
# HTMLファイルを読み込む
with open(os.path.expanduser("~/CLOVA_RasPi/index.html"), "r", encoding="utf-8") as html_file:
html = html_file.read()
html = html.replace("{CharactorSelList}", char_selection)
# 変数の値をHTMLに埋め込む
html = html.replace("{DefaultCharSel}", str(sys_config.settings["charactor"]["default_sel"]))
html = html.replace("{MicChannels}", str(sys_config.settings["hardware"]["audio"]["microphone"]["num_ch"]))
html = html.replace("{MicIndex}", str(sys_config.settings["hardware"]["audio"]["microphone"]["index"]))
html = html.replace("{SilentThreshold}", str(sys_config.settings["hardware"]["audio"]["microphone"]["silent_thresh"]))
html = html.replace("{TerminateSilentDuration}", str(sys_config.settings["hardware"]["audio"]["microphone"]["term_duration"]))
html = html.replace("{SpeakerChannels}", str(sys_config.settings["hardware"]["audio"]["speaker"]["num_ch"]))
html = html.replace("{SpeakerIndex}", str(sys_config.settings["hardware"]["audio"]["speaker"]["index"]))
#print(html) # for debug
# HTTPレスポンスを返す
self.send_response(200)
self.send_header("Content-type", "text/html; charset=utf-8")
self.end_headers()
self.wfile.write(html.encode("utf-8"))
# POSTリクエストを受け取った場合の処理
def do_POST(self):
sys_config = global_config_sys
# POSTデータを取得する
content_length = int(self.headers["Content-Length"])
post_data = self.rfile.read(content_length)
post_data = post_data.decode("utf-8")
print(post_data)# for debug
# 変数を更新する
#global MicChannels, MicIndex, SpeakerChannels, SpeakerIndex
sys_config.settings["charactor"]["default_sel"] = int(post_data.split("&")[0].split("=")[1])
sys_config.settings["hardware"]["audio"]["microphone"]["num_ch"] = int(post_data.split("&")[1].split("=")[1])
sys_config.settings["hardware"]["audio"]["microphone"]["index"] = int(post_data.split("&")[2].split("=")[1])
sys_config.settings["hardware"]["audio"]["microphone"]["silent_thresh"] = int(post_data.split("&")[3].split("=")[1])
sys_config.settings["hardware"]["audio"]["microphone"]["term_duration"] = int(post_data.split("&")[4].split("=")[1])
sys_config.settings["hardware"]["audio"]["speaker"]["num_ch"] = int(post_data.split("&")[5].split("=")[1])
sys_config.settings["hardware"]["audio"]["speaker"]["index"] = int(post_data.split("&")[6].split("=")[1])
print("default_char_sel={}".format(sys_config.settings["charactor"]["default_sel"]))
print("mic num_ch={}".format(sys_config.settings["hardware"]["audio"]["microphone"]["num_ch"]))
print("mic index={}".format(sys_config.settings["hardware"]["audio"]["microphone"]["index"]))
print("mic silent_thresh={}".format(sys_config.settings["hardware"]["audio"]["microphone"]["silent_thresh"]))
print("mic term_duration={}".format(sys_config.settings["hardware"]["audio"]["microphone"]["term_duration"]))
print("spk num_ch={}".format(sys_config.settings["hardware"]["audio"]["speaker"]["num_ch"]))
print("spk index={}".format(sys_config.settings["hardware"]["audio"]["speaker"]["index"]))
sys_config.SaveConfigFile()
# HTTPレスポンスを返す
self.send_response(303)
self.send_header("Location", "/")
self.end_headers()
# ==================================
# 外部参照用のインスタンス
# ==================================
global_config_keys = KeysSetting()
global_config_sys = SysConfig()
# ==================================
# 本クラスのテスト用処理
# ==================================
def ModuleTest() :
# 現状何もしない
pass
# ==================================
# 本モジュールを直接呼出した時の処理
# ==================================
if __name__ == "__main__":
# 直接呼び出したときは、モジュールテストを実行する。
ModuleTest()
CLOVA_conversation.py
import time
import re
from CLOVA_openai import OpenaiApiControl
from CLOVA_datetime import DateTime
from CLOVA_timer import TimerControl
from CLOVA_news import NewsReader
from CLOVA_weather import WeatherGetter
from CLOVA_line import LineSender
from CLOVA_queue import global_speech_queue
from CLOVA_charactor import global_charactor
# ==================================
# 会話制御クラス
# ==================================
class Conversation :
# コンストラクタ
def __init__(self) :
print("Create <Conversation> class")
self.datetime = DateTime()
self.tmr = TimerControl()
self.news = NewsReader();
self.weather = WeatherGetter()
self.openai = OpenaiApiControl()
self.line = LineSender()
# デストラクタ
def __del__(self) :
# 現状ログ出すだけ
print("Delete <Conversation> class")
# 音声以外での待ち処理
def CheckIfInterruptedVoiceExists(self) :
ret = False
speech_text = ""
if (len(global_speech_queue) != 0 ) :
speech_text = global_speech_queue.GetFromQueue()
print(speech_text)
ret = True
return ret, speech_text
# 問いかけに答える
def GetAnswer(self, request_string) :
answer_text = ""
answer_selected = False
# 無言なら無応答
if (request_string == "") :
answer_text = ""
answer_selected = True
# タイマーの設定
if (answer_selected == False) :
answer_text = self.tmr.GetAnswerIfTextIsRequestTimerSet(request_string)
if ( answer_text != "" ) :
answer_selected = True
# 名前に応答
if (answer_selected == False) :
if ( (request_string == "ねえクローバー") or (request_string == "ねえクローバ") ) :
answer_text = "はい。何でしょう。"
answer_selected = True
# 日時応答
if (answer_selected == False) :
answer_text = self.datetime.GetAnswerIfTextIsRequestDateTime(request_string)
if ( answer_text != "" ) :
answer_selected = True
# ニュース応答
if (answer_selected == False) :
answer_text = self.news.GetAnswerIfTextIsRequestingNews(request_string)
if ( answer_text != "" ) :
answer_selected = True
# 天気応答
if (answer_selected == False) :
answer_text = self.weather.GetAnswerIfTextIsRequestingWeather(request_string)
if ( answer_text != "" ) :
answer_selected = True
# LINE送信応答
if (answer_selected == False) :
answer_text = self.line.GetAnswerIfTextIsLineMessage(request_string)
if ( answer_text != "" ) :
answer_selected = True
# どれにも該当しないときには AI に任せる。
if (answer_selected == False ) :
# OpenAI 系の場合(最初の3文字が 'gpt' の場合)
if ( global_charactor.setting_json["charactors"][global_charactor.sel_num]["Personality"]["aisystem"][:3] == "gpt" ) :
answer_text = self.openai.GetAnswerFromAi(global_charactor.setting_json["charactors"][global_charactor.sel_num]["Personality"]["aisystem"], request_string)
answer_selected = True
# Bard 等の 他のAPI が利用可能になっていったら ここに入れていく...
#elif () :
# AI が利用不可の場合は
else :
# 謝るしかない…
answer_text = "すみません。質問が理解できませんでした。"
answer_selected = True
return answer_text
# ==================================
# 本クラスのテスト用処理
# ==================================
def ModuleTest() :
# 現状何もしない
pass
# ==================================
# 本モジュールを直接呼出した時の処理
# ==================================
if __name__ == "__main__":
# 直接呼び出したときは、モジュールテストを実行する。
ModuleTest()
CLOVA_datetime.py
import datetime
import re
# ==================================
# 日時クラス
# ==================================
# 日時クラス
class DateTime :
weekday_dict = {'Mon': '月', 'Tue': '火', 'Wed': '水', 'Thu': '木', 'Fri': '金', 'Sat': '土', 'Sun': '日'}
# コンストラクタ
def __init__(self) :
# 現状ログ出すだけ
print("Create <DateTime> class")
# デストラクタ
def __del__(self) :
# 現状ログ出すだけ
print("Delete <DateTime> class")
# 日時 質問に答える。日時の問い合わせではなければ 空 の文字列を返す
def GetAnswerIfTextIsRequestDateTime(self, request_string) :
if ('今' in request_string ) and ('何' in request_string) and ( ( '日' in request_string) or ( '時' in request_string) ) :
if ("今何時" in request_string) :
now = datetime.datetime.now()
answer_text = '今は{0}時{1}分{2}秒です'.format(now.hour, now.minute, now.second)
print(now)
return answer_text
elif ("何日" in request_string) :
now = datetime.datetime.now()
answer_text = '今日は{0}年{1}月{2}日{3}曜日です'.format(now.year, now.month, now.day, self.weekday_dict[now.strftime('%a')])
print(now)
return answer_text
# 該当がない場合は空で返信
return ("")
# ==================================
# 本クラスのテスト用処理
# ==================================
def ModuleTest() :
# 現状何もしない
pass
# ==================================
# 本モジュールを直接呼出した時の処理
# ==================================
if __name__ == "__main__":
# 直接呼び出したときは、モジュールテストを実行する。
ModuleTest()
CLOVA_gpio.py
import time
import RPi.GPIO as GPIO
import smbus
PIN_FRONT_SW = 4
PIN_BACK_SW_MINUS = 2
PIN_BACK_SW_PLUS = 3
PIN_BACK_SW_BT = 5
PIN_BACK_SW_MUTE = 7
PIN_POWER_SW = 22
PIN_IND_LED_R = 13
PIN_IND_LED_G = 12
PIN_IND_LED_B = 6
PIN_ILL_LED_POW = 23
PIN_ILL_LED_ENA = 24
# ==================================
# GPIO制御クラス
# ==================================
class GPIOControl :
# コンストラクタ
def __init__(self) :
print("Create <GPIOControl> class")
self.Initialize()
# デストラクタ
def __del__(self) :
# 現状ログ出すだけ
print("Delete <GPIOControl> class")
# 初期化処理
def Initialize() :
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN_BACK_SW_MINUS, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(PIN_BACK_SW_PLUS, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(PIN_BACK_SW_BT, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(PIN_BACK_SW_MUTE, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(PIN_ILL_LED_POW, GPIO.OUT)
GPIO.output(PIN_ILL_LED_POW, GPIO.LOW)
GPIO.setup(PIN_ILL_LED_ENA, GPIO.OUT)
GPIO.output(PIN_ILL_LED_ENA, GPIO.LOW)
# 解放処理
def Release() :
GPIO.cleanup(PIN_BACK_SW_MINUS)
GPIO.cleanup(PIN_BACK_SW_PLUS)
GPIO.cleanup(PIN_BACK_SW_BT)
GPIO.cleanup(PIN_BACK_SW_MUTE)
GPIO.cleanup(PIN_ILL_LED_POW)
GPIO.cleanup(PIN_ILL_LED_ENA)
# ==================================
# 本クラスのテスト用処理
# ==================================
def ModuleTest() :
# 現状何もしない
pass
# ==================================
# 本モジュールを直接呼出した時の処理
# ==================================
if __name__ == '__main__':
# 直接呼び出したときは、モジュールテストを実行する。
ModuleTest()
CLOVA_http_server.py
import time
import socketserver
import threading as th
from CLOVA_line import HttpReqLineHandler
# ==================================
# HTTPサーバークラス
# ==================================
class HttpServer :
# コンストラクタ
def __init__(self, port, handler) :
self._port = port
self._handler = handler
print("Create <HttpServer> class")
th.Thread(target = self.ServerProcess, args = (), name = 'HttpServerProcess', daemon = True).start()
# デストラクタ
def __del__(self) :
self.httpd.shutdown()
print("Delete <HttpServer> class")
# HTTPサーバーのメイン処理:起動したあとは、MyHandler で待ち受けているだけ
def ServerProcess(self):
# 8080 番ポートで受け付ける
self.httpd = socketserver.TCPServer(("", self._port), self._handler)
self.httpd.serve_forever()
print("End server")
# ==================================
# 本クラスのテスト用処理
# ==================================
def ModuleTest() :
# インスタンス作成
http_svr = HttpServer(8080, HttpReqLineHandler)
# ループ処理
while True :
time.sleep(0.1)
# ==================================
# 本モジュールを直接呼出した時の処理
# ==================================
if __name__ == "__main__":
# 直接呼び出したときは、モジュールテストを実行する。
ModuleTest()```
```PYTHON:CLOVA_led.py
import time
import RPi.GPIO as GPIO
import smbus
PIN_FRONT_SW = 4
PIN_BACK_SW_MINUS = 2
PIN_BACK_SW_PLUS = 3
PIN_BACK_SW_BT = 5
PIN_BACK_SW_MUTE = 7
PIN_POWER_SW = 22
PIN_IND_LED_R = 13
PIN_IND_LED_G = 12
PIN_IND_LED_B = 6
PIN_ILL_LED_POW = 23
PIN_ILL_LED_ENA = 24
# ==================================
# LEDインジケータ制御クラス
# ==================================
class IndicatorLed :
LED_OFF = False
LED_ON = True
# コンストラクタ
def __init__(self) :
print("Create <IndicatorLed> class")
GPIO.setmode(GPIO.BCM)
GPIO.setup(PIN_IND_LED_G, GPIO.OUT)
# デストラクタ
def __del__(self) :
print("Delete <IndicatorLed class")
GPIO.cleanup(PIN_IND_LED_G)
# LEDインディケーター On/Off
def SetLed(self, onoff, pin = PIN_IND_LED_G) :
GPIO.output(pin, onoff)
# ==================================
# イルミネーションLED制御クラス
# ==================================
class IllminationLed :
I2C_SEL_CH = 0
SLAVE_ADDR = 0x50
REG_ADDRESS_TABLE = [
[0x02, 0x22, 0x42], [0x12, 0x32, 0x52],
[0x01, 0x21, 0x41], [0x11, 0x31, 0x51],
[0x00, 0x20, 0x40], [0x10, 0x30, 0x50],
[0x60, 0x80, 0xA0], [0x70, 0x90, 0xB0],
[0x61, 0x81, 0xA1], [0x71, 0x91, 0xB1],
[0x62, 0x82, 0xA2], [0x72, 0x92, 0xB2],
[0x63, 0x83, 0xA3], [0x73, 0x93, 0xB3],
[0x64, 0x84, 0xA4], [0x74, 0x94, 0xB4],
[0x65, 0x85, 0xA5], [0x75, 0x95, 0xB5],
[0x05, 0x25, 0x45], [0x15, 0x35, 0x55],
[0x04, 0x24, 0x44], [0x14, 0x34, 0x54],
[0x03, 0x23, 0x43], [0x13, 0x33, 0x53]
]
RGB_OFF = [0x00, 0x00, 0x00]
RGB_BLACK = [0x00, 0x00, 0x00]
RGB_RED = [0xFF, 0x00, 0x00]
RGB_DARKGREEN = [0x00, 0x1F, 0x00]
RGB_GREEN = [0x00, 0xFF, 0x00]
RGB_BLUE = [0x00, 0x00, 0xFF]
RGB_ORANGE = [0xFF, 0x7F, 0x00]
RGB_YELLOW = [0xFF, 0xFF, 0x00]
RGB_PINK = [0xFF, 0x00, 0xFF]
RGB_CYAN = [0x00, 0xFF, 0xFF]
ALL_BITS = 0xFFFFFFF
# コンストラクタ
def __init__(self) :
self.is_available = False
print("Create <IllminationLed> class")
self.Initialize()
# デストラクタ
def __del__(self) :
print("Delete <IllminationLed> class")
self.AllRed()
self.Finalize()
# 初期化処理
def Initialize(self) :
# Initialize Lib
GPIO.setmode(GPIO.BCM)
try :
self.is_available = True
self._i2c = smbus.SMBus(self.I2C_SEL_CH)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x00, 0x01)
print("LED control device found at addr:{}".format(self.I2C_SEL_CH))
except IOError:
self.is_available = False
print("IOError : LED control device not found!")
except Exception as e:
self.is_available = False
print("Error : LED control device : {}".format(str(e)))
print("Ill LED Initialized")
# Initialize GPIO
GPIO.setup(PIN_ILL_LED_POW, GPIO.OUT)
GPIO.output(PIN_ILL_LED_POW, GPIO.LOW)
GPIO.setup(PIN_ILL_LED_ENA, GPIO.OUT)
GPIO.output(PIN_ILL_LED_ENA, GPIO.LOW)
time.sleep(3.0)
# Power ON
GPIO.output(PIN_ILL_LED_POW, GPIO.HIGH)
time.sleep(0.01)
GPIO.output(PIN_ILL_LED_ENA, GPIO.HIGH)
if (self.is_available == True) :
# Send Initialize Command
self._i2c.write_byte_data(self.SLAVE_ADDR, 0xFE, 0xC5)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0xFD, 0x03)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x00, 0x01)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x01, 0xFF)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x0F, 0x07)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x10, 0x07)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0xFE, 0xC5)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0xFD, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x00, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x01, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x02, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x03, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x04, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x05, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x06, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x07, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x08, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x09, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x0A, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x0B, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x0C, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x0D, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x0E, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x0F, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x10, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x11, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x12, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x13, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x14, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x15, 0x00)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x16, 0x3F)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0x17, 0x00)
# コマンドヘッダーの送信
def SendCommandHeader(self) :
if (self.is_available == True) :
self._i2c.write_byte_data(self.SLAVE_ADDR, 0xFE, 0xC5)
self._i2c.write_byte_data(self.SLAVE_ADDR, 0xFD, 0x01)
else :
print("LED Device unavailable!")
# ビット指定でRGB食を指定設定
def SetLedsWithEnableBits(self, bits, rgb_color) :
if (self.is_available == True) :
self.SendCommandHeader()
for num in range(len(self.REG_ADDRESS_TABLE)):
for rgb in range(len(self.REG_ADDRESS_TABLE[num])):
bits_mask = (1 << num)
if ( ( bits_mask & bits) != 0 ) :
self._i2c.write_byte_data(self.SLAVE_ADDR, self.REG_ADDRESS_TABLE[num][rgb], rgb_color[rgb] )
else :
self._i2c.write_byte_data(self.SLAVE_ADDR, self.REG_ADDRESS_TABLE[num][rgb], self.RGB_OFF[rgb] )
time.sleep(0.05)
else :
print("LED Device unavailable!")
# 配列指定ですべての LED を設定する
def SetAllLedWithArray(self, rgb_data) :
if (self.is_available == True) :
self.SendCommandHeader()
for num in range(len(rgb_data)):
for rgb in range(len(rgb_data[num])):
self._i2c.write_byte_data(self.SLAVE_ADDR, self.REG_ADDRESS_TABLE[num][rgb], rgb_data[num][rgb] )
else :
print("LED Device unavailable!")
# 全照灯
def AllOff(self) :
self.SetLedsWithEnableBits(self.ALL_BITS, self.RGB_OFF)
# 全赤点灯
def AllRed(self) :
self.SetLedsWithEnableBits(self.ALL_BITS, self.RGB_RED)
# 全深緑点灯
def AllDarkGreen(self) :
self.SetLedsWithEnableBits(self.ALL_BITS, self.RGB_DARKGREEN)
# 全緑点灯
def AllGreen(self) :
self.SetLedsWithEnableBits(self.ALL_BITS, self.RGB_GREEN)
def AllBlue(self) :
self.SetLedsWithEnableBits(self.ALL_BITS, self.RGB_BLUE)
# 全橙点灯
def AllOrange(self) :
self.SetLedsWithEnableBits(self.ALL_BITS, self.RGB_ORANGE)
# 全黄点灯
def AllYellow(self) :
self.SetLedsWithEnableBits(self.ALL_BITS, self.RGB_YELLOW)
# 全桃点灯
def AllPink(self) :
self.SetLedsWithEnableBits(self.ALL_BITS, self.RGB_PINK)
# 全水点灯
def AllCyan(self) :
self.SetLedsWithEnableBits(self.ALL_BITS, self.RGB_CYAN)
# 終了処理
def Finalize(self) :
GPIO.cleanup(PIN_ILL_LED_POW)
GPIO.cleanup(PIN_ILL_LED_ENA)
print("Finalize")
# ==================================
# 外部参照用のインスタンス
# ==================================
global_led_Ill = IllminationLed()
# ==================================
# 本クラスのテスト用処理
# ==================================
illumi_data = [
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],
[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],
[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],
[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],
[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],
[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],
[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],
[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],
[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],
[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],
[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],
[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],
[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],
[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],
[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],
[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],
[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],
[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],
[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],
[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],
[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],
[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],
[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],
[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],
[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x3F, 0x00],
[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x3F],
[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F] ],
[ [0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x00, 0x7F, 0x00],
[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x00, 0x7F],
[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F] ],
[ [0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x00, 0xBF, 0x00],
[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x00, 0xBF],
[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x00, 0xBF, 0x00],
[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x00, 0xBF],
[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF] ],
[ [0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x00, 0x7F, 0x00],
[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x00, 0x7F],
[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F] ],
[ [0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x3F, 0x00],
[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x3F],
[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],
[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],
[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],
[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],
[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],
[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],
[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],
[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF] ],
[ [0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00] ],
[ [0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0xFF, 0x00, 0x00] ],
[ [0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0xFF, 0x00, 0x00],[0xFF, 0x00, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0x00, 0xFF],[0x00, 0x00, 0xFF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],
[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0xBF, 0x00, 0x00],[0xBF, 0x00, 0x00],[0x00, 0xBF, 0x00],[0x00, 0xBF, 0x00],
[0x00, 0x00, 0xBF],[0x00, 0x00, 0xBF],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],
[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x7F, 0x00, 0x00],[0x7F, 0x00, 0x00],[0x00, 0x7F, 0x00],[0x00, 0x7F, 0x00],
[0x00, 0x00, 0x7F],[0x00, 0x00, 0x7F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],
[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x3F, 0x00, 0x00],[0x3F, 0x00, 0x00],[0x00, 0x3F, 0x00],[0x00, 0x3F, 0x00],
[0x00, 0x00, 0x3F],[0x00, 0x00, 0x3F],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],
[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00],[0x00, 0x00, 0x00] ],
[ [0x40, 0x00, 0x00],[0x37, 0x09, 0x00],[0x2E, 0x12, 0x00],[0x24, 0x1B, 0x00],[0x1B, 0x24, 0x00],[0x12, 0x2E, 0x00],[0x09, 0x37, 0x00],[0x00, 0x40, 0x00],
[0x00, 0x38, 0x08],[0x00, 0x30, 0x10],[0x00, 0x28, 0x18],[0x00, 0x20, 0x20],[0x00, 0x18, 0x28],[0x00, 0x10, 0x30],[0x00, 0x08, 0x38],[0x00, 0x00, 0x40],
[0x09, 0x00, 0x37],[0x12, 0x00, 0x2E],[0x1B, 0x00, 0x24],[0x24, 0x00, 0x1B],[0x2E, 0x00, 0x12],[0x37, 0x00, 0x09] ],
[ [0x80, 0x00, 0x00],[0x6D, 0x12, 0x00],[0x5B, 0x24, 0x00],[0x49, 0x37, 0x00],[0x37, 0x49, 0x00],[0x24, 0x5B, 0x00],[0x12, 0x6D, 0x00],[0x00, 0x80, 0x00],
[0x00, 0x70, 0x10],[0x00, 0x60, 0x20],[0x00, 0x50, 0x30],[0x00, 0x40, 0x40],[0x00, 0x30, 0x50],[0x00, 0x20, 0x60],[0x00, 0x10, 0x70],[0x00, 0x00, 0x80],
[0x12, 0x00, 0x6D],[0x24, 0x00, 0x5B],[0x37, 0x00, 0x49],[0x49, 0x00, 0x37],[0x5B, 0x00, 0x24],[0x6D, 0x00, 0x12] ],
[ [0xBF, 0x00, 0x00],[0xA4, 0x1B, 0x00],[0x89, 0x37, 0x00],[0x6D, 0x52, 0x00],[0x52, 0x6D, 0x00],[0x37, 0x89, 0x00],[0x1B, 0xA4, 0x00],[0x00, 0xBF, 0x00],
[0x00, 0xA7, 0x18],[0x00, 0x8F, 0x30],[0x00, 0x78, 0x48],[0x00, 0x60, 0x60],[0x00, 0x48, 0x78],[0x00, 0x30, 0x8F],[0x00, 0x18, 0xA7],[0x00, 0x00, 0xBF],
[0x1B, 0x00, 0xA4],[0x37, 0x00, 0x89],[0x52, 0x00, 0x6D],[0x6D, 0x00, 0x52],[0x89, 0x00, 0x37],[0xA4, 0x00, 0x1B] ],
[ [0xFF, 0x00, 0x00],[0xDB, 0x24, 0x00],[0xB6, 0x48, 0x00],[0x91, 0x6D, 0x00],[0x6D, 0x92, 0x00],[0x48, 0xB6, 0x00],[0x24, 0xDB, 0x00],[0x00, 0xFF, 0x00],
[0x00, 0xDF, 0x20],[0x00, 0xBF, 0x40],[0x00, 0x9F, 0x5F],[0x00, 0x7F, 0x7F],[0x00, 0x60, 0x9F],[0x00, 0x40, 0xBF],[0x00, 0x20, 0xDF],[0x00, 0x00, 0xFF],
[0x24, 0x00, 0xDB],[0x49, 0x00, 0xB6],[0x6D, 0x00, 0x92],[0x92, 0x00, 0x6D],[0xB6, 0x00, 0x48],[0xDB, 0x00, 0x24] ],
[ [0xDB, 0x00, 0x24],[0xFF, 0x00, 0x00],[0xDB, 0x24, 0x00],[0xB6, 0x48, 0x00],[0x91, 0x6D, 0x00],[0x6D, 0x92, 0x00],[0x48, 0xB6, 0x00],[0x24, 0xDB, 0x00],
[0x00, 0xFF, 0x00],[0x00, 0xDF, 0x20],[0x00, 0xBF, 0x40],[0x00, 0x9F, 0x5F],[0x00, 0x7F, 0x7F],[0x00, 0x60, 0x9F],[0x00, 0x40, 0xBF],[0x00, 0x20, 0xDF],
[0x00, 0x00, 0xFF],[0x24, 0x00, 0xDB],[0x49, 0x00, 0xB6],[0x6D, 0x00, 0x92],[0x92, 0x00, 0x6D],[0xB6, 0x00, 0x48] ],
[ [0xB6, 0x00, 0x48],[0xDB, 0x00, 0x24],[0xFF, 0x00, 0x00],[0xDB, 0x24, 0x00],[0xB6, 0x48, 0x00],[0x91, 0x6D, 0x00],[0x6D, 0x92, 0x00],[0x48, 0xB6, 0x00],
[0x24, 0xDB, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xDF, 0x20],[0x00, 0xBF, 0x40],[0x00, 0x9F, 0x5F],[0x00, 0x7F, 0x7F],[0x00, 0x60, 0x9F],[0x00, 0x40, 0xBF],
[0x00, 0x20, 0xDF],[0x00, 0x00, 0xFF],[0x24, 0x00, 0xDB],[0x49, 0x00, 0xB6],[0x6D, 0x00, 0x92],[0x92, 0x00, 0x6D] ],
[ [0x92, 0x00, 0x6D],[0xB6, 0x00, 0x48],[0xDB, 0x00, 0x24],[0xFF, 0x00, 0x00],[0xDB, 0x24, 0x00],[0xB6, 0x48, 0x00],[0x91, 0x6D, 0x00],[0x6D, 0x92, 0x00],
[0x48, 0xB6, 0x00],[0x24, 0xDB, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xDF, 0x20],[0x00, 0xBF, 0x40],[0x00, 0x9F, 0x5F],[0x00, 0x7F, 0x7F],[0x00, 0x60, 0x9F],
[0x00, 0x40, 0xBF],[0x00, 0x20, 0xDF],[0x00, 0x00, 0xFF],[0x24, 0x00, 0xDB],[0x49, 0x00, 0xB6],[0x6D, 0x00, 0x92] ],
[ [0x6D, 0x00, 0x92],[0x92, 0x00, 0x6D],[0xB6, 0x00, 0x48],[0xDB, 0x00, 0x24],[0xFF, 0x00, 0x00],[0xDB, 0x24, 0x00],[0xB6, 0x48, 0x00],[0x91, 0x6D, 0x00],
[0x6D, 0x92, 0x00],[0x48, 0xB6, 0x00],[0x24, 0xDB, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xDF, 0x20],[0x00, 0xBF, 0x40],[0x00, 0x9F, 0x5F],[0x00, 0x7F, 0x7F],
[0x00, 0x60, 0x9F],[0x00, 0x40, 0xBF],[0x00, 0x20, 0xDF],[0x00, 0x00, 0xFF],[0x24, 0x00, 0xDB],[0x49, 0x00, 0xB6] ],
[ [0x49, 0x00, 0xB6],[0x6D, 0x00, 0x92],[0x92, 0x00, 0x6D],[0xB6, 0x00, 0x48],[0xDB, 0x00, 0x24],[0xFF, 0x00, 0x00],[0xDB, 0x24, 0x00],[0xB6, 0x48, 0x00],
[0x91, 0x6D, 0x00],[0x6D, 0x92, 0x00],[0x48, 0xB6, 0x00],[0x24, 0xDB, 0x00],[0x00, 0xFF, 0x00],[0x00, 0xDF, 0x20],[0x00, 0xBF, 0x40],[0x00, 0x9F, 0x5F],
[0x00, 0x7F, 0x7F],[0x00, 0x60, 0x9F],[0x00, 0x40, 0xBF],[0x00, 0x20, 0xDF],[0x00, 0x00, 0xFF],[0x24, 0x00, 0xDB] ],
[ [0x24, 0x00, 0xDB],[0x49, 0x00, 0xB6],[0x6D, 0x00, 0x92],[0x92, 0x00, 0x6D],[0xB6, 0x00, 0x48],[0xDB, 0x00, 0x24],[0xFF, 0x00, 0x00],[0xDB, 0x24, 0x00],
[0xB6, 0x