(SSD1306)「バッテリー残量のアニメーション」を作る(M5Stamp S3)


x かころぐをみよ

```c++


    //↓開始　全画面のメイン処理
    a = 0;
    if( (y > 15)  & (y < 48) ) {
      a = pgm_read_byte_near( ch_data7 + (L1 * 512) + ((y-16) << 4 ) + ((x) >> 3) );
      a = ~a;
      a = a << ((x) & 0x07);
      a = a & 0x80;
    } // end if 
    //↑終了


```



![o_coq218.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/5607213d-96d4-9b9c-76fd-7e149c0e1555.jpeg)



```c++



//秋月のOLEDとアイテンドウのOLEDのアドレスは3C
//SSD1306_128x32_battery_S3_1


//ヘッダー
#include <Arduino.h>
#include <Wire.h>
#include "h_furima1.h"


//定義
#define MAX_PAGE                   (7)
#define MAX_COL                    (127)

#define COMMAND_MODE               0x80 // continuation bit is set!
#define DATA_MODE                  0x40

#define SET_COLUMN_ADDRESS         0x21 // takes two bytes, start address and end address of display data RAM
#define SET_PAGE_ADDRESS           0x22 // takes two bytes, start address and end address of display data RAM

#define SET_MEMORY_ADDRESSING_MODE 0x20 // takes one byte as given above
#define HORIZONTAL_ADDRESSING_MODE 0x00


//I2Cに配列を転送する
void write_s(uint8_t *str1, uint8_t len1) {

  Wire.beginTransmission(  0x3c  );

  for (int ii = 0; ii < len1; ii++) {

    //一文字出力
    Wire.write(*str1 ++);

  }//for

  Wire.endTransmission();

}//write_s


//セットページアドレス
void setPageAddress(uint8_t start, uint8_t end)
{
  uint8_t databytes[6] = {COMMAND_MODE, SET_PAGE_ADDRESS, COMMAND_MODE, start, COMMAND_MODE, end};
  write_s(databytes, 6);
}//setPageAddress


//セットカラムアクセス
void setColumnAddress(uint8_t start, uint8_t end)
{
  uint8_t databytes[6] = {COMMAND_MODE, SET_COLUMN_ADDRESS, COMMAND_MODE, start, COMMAND_MODE, end};
  write_s(databytes, 6);
}//setColumnAddress


//セットメモリーアドレシングモード
void setMemoryAddressingMode()
{
  uint8_t databytes[4] = {COMMAND_MODE, SET_MEMORY_ADDRESSING_MODE, COMMAND_MODE, HORIZONTAL_ADDRESSING_MODE};
  write_s(databytes, 4);
}//setMemoryAddressingMode


//ドットを打つ
void Dot(int x, int y, int c) {

  //データの配列の定義
  uint8_t databytes[2] = {DATA_MODE, 0x00};

  static int b_count = 0; //ビットカウント
  static int qq = 0;      //一時

  qq = qq | ( c << b_count);

  b_count++;

  if ( b_count > 7 ) { //1バイト分、貯まったら

    databytes[1] = qq;
    write_s(databytes, 2);

    qq = 0;
    b_count = 0;
    
  }//end if

}//DOt


//再表示
void battery_meter(int L1) {

  int y; int x;
  int a;

  //範囲の設定 (OLED内部のx,yカウンターを初期化してホームポジション0,0に)
  setPageAddress(0, MAX_PAGE);  // all pages
  setColumnAddress(0, MAX_COL); // all columns

  for (int ii = 0; ii < 8192; ii++) {

    //SSD1306のバッファーの配置順のxとyを求める
    y = ((ii & 0b0001110000000000 ) >> 7) + ( ii & 0b0111);
    x =  (ii & 0b0000001111111000) >> 3;

    //↓開始　全画面のメイン処理
    a = 0;
    if( (y > 15)  & (y < 48) ) {
      a = pgm_read_byte_near( ch_data7 + (L1 * 512) + ((y-16) << 4 ) + ((x) >> 3) );
      a = ~a;
      a = a << ((x) & 0x07);
      a = a & 0x80;
    } // end if 
    //↑終了

    if (a != 0) {
      Dot(x, y, 1); //白のドットを打つ
    } else {
      Dot(x, y, 0); //黒のドットを打つ
    }//end if

  }//for ii

}//battery_meter


//SSD1306の初期化
void display_begin(void) {

  //I2Cの初期化
  Wire.begin(); //C011
  delay(200);

  //SSD1306の初期化スペル(魔法)
  //0x80,0x8D,0x80,0x14,0x80,0xAF
  write_s( (uint8_t*) "\200\215\200\024\200\257", 6);
  delay(100);

  //セットメモリーアドレシングモード (画面の終端に来たら画面の先頭に)
  setMemoryAddressingMode();

}//display_begin


//初期化
void setup() {

  //SSD1306の初期化
  display_begin();

}//setup


//メインループ
void loop() {

  static int i = 5;

  //バッテリの残量メーター
  battery_meter(i);

  //while(1){} //debug

  i = i - 1;
  if(i == -1){i = 5;}

  delay(1000); //1秒待つ
  
}//loop


```


h_furima1.h


```



//ビットマップデータ
char ch_data7[] PROGMEM = {

// 'x_Edge1', 128x192px

  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0f, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xf3, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x03, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcc, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0x00, 0x0c, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff


};




```