「デカ文字」SSD1306、時計(M5StampS3) DS1307使用


注意、いろいろ
----

- 過去ログを見よ!!!
- 時間合わせは、別





結果
----

![image_original(11).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/867b168a-0491-4fe8-9d79-616fe9975bef.jpeg)

![Screenshot from 2025-03-15 05-15-48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/d237aa4f-1682-4aab-9677-9ecf0b921858.png)


プログラム
----

```c++


//秋月のOLEDとアイテンドウのOLEDのアドレスは3C
//ssd1306_BIG24x64_num12345_DS1307_B_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) {
  //データの配列の定義
  static uint8_t databytes[2] = {DATA_MODE, 0x00};
  static int qq = 0; //一時

  qq = qq | ( c << (y & 0x07));

  if ( (y & 0x07) == 7 ) { //1バイト分、貯まったら
    databytes[1] = qq; qq = 0;
    write_s(databytes, 2); //I2Cに1バイト書き出す
  }//end if
}//DOt


//キャラクターRAMの内容
unsigned char st_p[6] = {
  //1    2    3    4    5   空白
  '1', '2', '3', '4', '5' , ';'
};

//再表示
void display(void) {

  int y; int x;
  int a; int ch;
  //3で割った余り  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  int amari[16] = {0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,0};

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

  // x × y の回数分、ループする
  for (int ii = 0; ii < 8192; ii++) {

    //SSD1306のバッファーの配置順のxとyを求める
    y = ((ii & 0b0001110000000000 ) >> 7) + ( ii & 0b0111);
    x =  (ii & 0b0000001111111000) >> 3;
   
    //↓開始　「デカ文字」のメイン処理 「(x*171)>>12」は、24の割り算
    ch = st_p[(x*171)>>12] - '0';     //キャラクターRAMから
    //座標と文字からキャラクターパターンを求める 3倍は、たぶんn+n+nした方が速い? amariは%3
    a = pgm_read_byte_near(ch_data7 + ((ch+ch+ch)<<6) + (y+y+y) + (amari[x>>3]));
    a = ~a;
    a = a << ((x) & 0x07);
    a = a & 0x80;
    //↑終了

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

  }//for ii

}//circlar_meter


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

  //I2Cの初期化
  //Wire.setSDA(13); //SDA I2Cのポートの変更
  //Wire.setSCL(15); //SCL I2Cのポートの変更
  Wire.begin(); //M5StampS3
  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();

  //再表示
  display();

}//setup


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

  //時計の処理 ↓ここから
  // レジスタのアドレスを先頭にする
  Wire.beginTransmission(0x68);
  Wire.write(0x00);
  Wire.endTransmission();
  delay(1);

  // I2Cスレーブに8byteのレジスタデータを要求する(READ)
  Wire.requestFrom(0x68, 8);

  // 8byteのデータを取得する
  char data_read[16] = {0x88, 0x88, 0x88}; //データバッファー
  int ii = 0;
  while (Wire.available())  {   // 要求より短いデータが来る可能性あり
    data_read[ii++] = Wire.read();       // 1バイトを受信
  }//while
  delay(1);

  //表示変換する パック二進化十進を文字列にする(テキストRAMに書き込む)
  st_p[0] = '0' + (data_read[2] >> 4);  //0 時 上位
  st_p[1] = '0' + (data_read[2] & 0xf); //1 時 下位
  st_p[2] = ':';
  st_p[3] = '0' + (data_read[1] >> 4);  //2 分 上位
  st_p[4] = '0' + (data_read[1] & 0xf); //3 分 下位
  st_p[5] = ';'; //空白
  //時計の処理　↑ここまで

  //画面を再表示する
  display();

  delay(60000); //60秒待つ

}//loop


```

h_furima1.h

```



//「デカ文字」
char ch_data7[] PROGMEM = {

// 'f24x64_0_9', 24x640px
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 
  0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 
  0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 
  0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 
  0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 
  0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf8, 0xff, 
  0x8f, 0xf8, 0xff, 0x8f, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f, 
  0xff, 0x03, 0xff, 0xff, 0x03, 0xff, 0xfe, 0x03, 0xff, 0xfe, 0x03, 0xff, 0xfc, 0xe7, 0xff, 0xfc, 
  0xe7, 0xff, 0xf9, 0xe7, 0xff, 0xf9, 0xe7, 0xff, 0xfb, 0xe7, 0xff, 0xfb, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xfe, 0x00, 0x7f, 0xfe, 0x00, 0x7f, 0xfc, 0x00, 0x3f, 0xfc, 0x00, 0x3f, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xf7, 0xff, 0xe7, 0xf7, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 
  0x9f, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0x80, 0x7f, 0xff, 0x80, 0x7f, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0xff, 0xff, 0xfc, 
  0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 
  0xff, 0xf3, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xf7, 0xff, 
  0xff, 0xf7, 0xff, 0xff, 0xf1, 0xfe, 0x07, 0xf1, 0xfe, 0x07, 0xf8, 0x00, 0x07, 0xf8, 0x00, 0x07, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 
  0x9f, 0xff, 0xff, 0x9f, 0xff, 0xff, 0x3f, 0xff, 0xff, 0x3f, 0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 
  0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x9f, 0xff, 
  0xff, 0x9f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 
  0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 
  0xff, 0xf3, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff, 
  0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f, 
  0xff, 0xfe, 0x7f, 0xff, 0xfe, 0x7f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x7f, 0xff, 
  0xfc, 0x7f, 0xff, 0xf8, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xe1, 
  0xff, 0xff, 0xe1, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xc3, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 
  0xff, 0x0f, 0xff, 0xff, 0x0f, 0xff, 0xfe, 0x19, 0xff, 0xfe, 0x19, 0xff, 0xfc, 0x39, 0xff, 0xfc, 
  0x39, 0xff, 0xf8, 0x79, 0xff, 0xf8, 0x79, 0xff, 0xf1, 0xf9, 0xff, 0xf1, 0xf9, 0xff, 0xf3, 0xf9, 
  0xff, 0xf3, 0xf9, 0xff, 0xe3, 0xf9, 0xff, 0xe3, 0xf9, 0xff, 0xe7, 0xf9, 0xff, 0xe7, 0xf9, 0xff, 
  0xe7, 0xf1, 0xf7, 0xe7, 0xf1, 0xf7, 0xe0, 0x00, 0x07, 0xe0, 0x00, 0x07, 0xe0, 0x00, 0x07, 0xe0, 
  0x00, 0x07, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 
  0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 
  0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 
  0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 
  0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 0xff, 0xf9, 0xff, 
  0xf0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xf0, 0x00, 0x07, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xef, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xf1, 0xff, 
  0xff, 0xf1, 0xff, 0xff, 0xf8, 0x3f, 0xff, 0xf8, 0x3f, 0xff, 0xfe, 0x00, 0x7f, 0xfe, 0x00, 0x7f, 
  0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0x9f, 0xff, 
  0xff, 0x9f, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 
  0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 
  0xff, 0xf3, 0xff, 0xff, 0xf7, 0xff, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff, 
  0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xef, 0xe7, 0xff, 0xef, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xe0, 0x00, 0x7f, 
  0xe0, 0x00, 0x3f, 0xe0, 0x00, 0x3f, 0xe1, 0xff, 0x3f, 0xe1, 0xff, 0x3f, 0xe3, 0xff, 0x9f, 0xe3, 
  0xff, 0x9f, 0xe7, 0xff, 0xcf, 0xe7, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 
  0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 
  0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 
  0xff, 0xf3, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff, 
  0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f, 
  0xc0, 0x00, 0x0f, 0xc0, 0x00, 0x0f, 0xc0, 0x00, 0x03, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xe3, 0xff, 
  0xff, 0xe3, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xcf, 0xff, 0xff, 0xcf, 0xff, 0xff, 
  0x8f, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x0f, 0xff, 0xff, 0x0f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 
  0xff, 0xfc, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 0xff, 0xff, 0xfc, 0xff, 0xff, 0xf9, 0xff, 0xff, 
  0xf9, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xf3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc7, 
  0xff, 0xff, 0xc7, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x0f, 0xff, 0xff, 0x0f, 0xff, 
  0xfe, 0x1f, 0xff, 0xfe, 0x1f, 0xff, 0xfe, 0x3f, 0xff, 0xfe, 0x3f, 0xff, 0xfc, 0x3f, 0xff, 0xfc, 
  0x3f, 0xff, 0xf8, 0xff, 0xff, 0xf8, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xf0, 0xff, 0xff, 0xf1, 0xff, 
  0xff, 0xf1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 
  0xe1, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 
  0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xe3, 0xff, 
  0xff, 0xe3, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xcf, 0xf3, 0xff, 0xcf, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 
  0xff, 0xe7, 0xf3, 0xff, 0xef, 0xf3, 0xff, 0xef, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf9, 0xff, 
  0x9f, 0xf9, 0xff, 0x9f, 0xfc, 0xff, 0x3f, 0xfc, 0xff, 0x3f, 0xfe, 0x00, 0x7f, 0xfe, 0x00, 0x7f, 
  0xff, 0x00, 0x7f, 0xff, 0x00, 0x7f, 0xfe, 0x3e, 0x3f, 0xfe, 0x3e, 0x3f, 0xfc, 0xff, 0x9f, 0xfc, 
  0xff, 0x9f, 0xf9, 0xff, 0xcf, 0xf9, 0xff, 0xcf, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 
  0xe7, 0xf3, 0xff, 0xe7, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 
  0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 0xff, 0xf3, 0xe7, 
  0xff, 0xf3, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xf7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf8, 0xff, 
  0xcf, 0xf8, 0xff, 0xcf, 0xfc, 0x3e, 0x1f, 0xfc, 0x3e, 0x1f, 0xfe, 0x00, 0x3f, 0xfe, 0x00, 0x3f, 
  0xff, 0x00, 0xff, 0xff, 0x00, 0xff, 0xfe, 0x18, 0x7f, 0xfe, 0x18, 0x7f, 0xfc, 0xff, 0x3f, 0xfc, 
  0xff, 0x3f, 0xf9, 0xff, 0x9f, 0xf9, 0xff, 0x9f, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 0xcf, 0xf3, 0xff, 
  0xc7, 0xf3, 0xff, 0xc7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 
  0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 0xff, 0xe7, 0xe7, 
  0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf3, 0xff, 0xe7, 0xf9, 0xff, 
  0xe7, 0xf9, 0xff, 0xe7, 0xfc, 0xff, 0x07, 0xfc, 0xff, 0x07, 0xfe, 0x00, 0x07, 0xfe, 0x00, 0x07, 
  0xff, 0x00, 0x67, 0xff, 0x00, 0x67, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 
  0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 
  0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 
  0xff, 0xff, 0xe7, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 
  0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xc7, 0xff, 0xff, 0x8f, 0xff, 0xff, 0x8f, 0xff, 0xfc, 
  0x1f, 0xff, 0xfc, 0x1f, 0xff, 0xf0, 0x3f, 0xff, 0xf0, 0x3f, 0xff, 0xe1, 0xff, 0xff, 0xe1, 0xff,

//colon   ':'
  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, 0xe3, 0xff, 0xff, 0xc1, 0xff, 
  0xff, 0xc1, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xe3, 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, 0xff, 0xff, 0xff, 
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe3, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xc1, 0xff, 
  0xff, 0xc1, 0xff, 0xff, 0xe3, 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, 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, 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, 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

};





```