diff --git a/README.md b/README.md
index 5fd2672..d108301 100644
--- a/README.md
+++ b/README.md
@@ -1,95 +1,95 @@
-# Morpion lumineux
-
-## SAE 203
-
-Quentin T'JAMPENS
-Giovanni JOSSERAND
-
-## Sommaire
-
-1. Prérequis
-2. Configurer le projet
-3. Utiliser le projet
-4. Annexe
-
-### Prérequis
-
-- Télécharger le code source via le [Gitlab officiel du projet](https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineux_code)
-- Installer [l'IDE Arduino](https://www.arduino.cc/en/software/)
-- Avoir les composants suivants :
- - 1x Esp32
- - 9x Groove Mech Keycap
- - 1x Push Button
- - 1x Touch sensor 12 key capacitive
- - 1x OLED Display
- - 1x câble d'alimentation Esp32
-
-### Configurer le projet
-
-1. Télécharger la carte **esp32** By Espressif Systems **v2.0.17** via le boards manager de l'IDE Arduino
-2. Installer les bibliothèques utilisées depuis l'IDE Arduino (Liste des bibliothèques en **Annexe**)
-3. Brancher la carte Arduino puis compiler et téléverser le projet
-
-### Utiliser le projet
-
-- Une fois le code compilé et téléversé, sélectionner le mode de jeu (Local/Web) via l'écran OLED et les boutons associés
-- Mode Local :
- - Choisir si on veut jouer en solo ou duo. Si le mode solo est choisi, sélectionner la difficulté du jeu, le joueur jouera ensuite contre un robot
- - Pendant une partie le joueur 1 et le joueur 2 joueront à tour de rôle (Si le mode sélectionné est Solo, le joueur 2 sera remplacé par le robot, et jouera instantanément après le joueur 1)
- - Une fois la partie terminée, tous les boutons excepté la ligne responsable de la victoire s'éteindront
- - Le bouton resetGame permet de réinitialiser la partie
-- Mode Web :
- - Connecter votre appareil (téléphone, PC, ...) au réseau créé par l'esp32, le nom du réseau devra s'afficher sur l'écran OLED, le mot de passe du réseau s'affiche également à l'écran. Une fois connecté au réseau, rendez-vous ensuite sur le site web du jeu via l'IP affichée à l'écran.
- - Une fois sur le site, choisir entre mode solo/duo. Le mode solo comporte 2 difficultés, Facile et Difficile
-- Le bouton reset permet de redémarrer l'esp pour par exemple changer de mode de jeu (Web/Local...)
-
-### Annexe
-
-#### Liens utiles
-- [Gitlab du projet](https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineux_code)
-- [Arduino](https://www.arduino.cc/)
-- [IDE Arduino](https://www.arduino.cc/en/software/)
-- [Tutoriel Vidéo](https://exemple.com)
-
-### Photos
-
-
-
-
-
-
-
-
-
-### Branchement
-
-Libellé | pin
-| -- | -- |
-Entrée Bouton 1 | 8 - CH0
-Sortie Bouton 1 | 15
-Entrée Bouton 2 | 9 - CH1
-Sortie Bouton 2 | 33
-Entrée Bouton 3 | 10 - CH2
-Sortie Bouton 3 | 26
-Entrée Bouton 4 | 11 - CH3
-Sortie Bouton 4 | 25
-Entrée Bouton 5 | 12 - CH4
-Sortie Bouton 5 | 16
-Entrée Bouton 6 | 13 - CH5
-Sortie Bouton 6 | 17
-Entrée Bouton 7 | 14 - CH6
-Sortie Bouton 7 | 14
-Entrée Bouton 8 | 15 - CH7
-Sortie Bouton 8 | 32
-Entrée Bouton 9 | 16 - CH8
-Sortie Bouton 9 | 4
-ResetGame Bouton | 26
-
-
-### bibliothèques utilisées
-
-- Adafruit NeoPixel v1.15.1
-- TTP229
-- Adafruit_MPR121
-- Adafruit GFX Library
+# Morpion lumineux
+
+## SAE 203
+
+Quentin T'JAMPENS
+Giovanni JOSSERAND
+
+## Sommaire
+
+1. Prérequis
+2. Configurer le projet
+3. Utiliser le projet
+4. Annexe
+
+### Prérequis
+
+- Télécharger le code source via le [Gitlab officiel du projet](https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineux_code)
+- Installer [l'IDE Arduino](https://www.arduino.cc/en/software/)
+- Avoir les composants suivants :
+ - 1x Esp32
+ - 9x Groove Mech Keycap
+ - 1x Push Button
+ - 1x Touch sensor 12 key capacitive
+ - 1x OLED Display
+ - 1x câble d'alimentation Esp32
+
+### Configurer le projet
+
+1. Télécharger la carte **esp32** By Espressif Systems **v2.0.17** via le boards manager de l'IDE Arduino
+2. Installer les bibliothèques utilisées depuis l'IDE Arduino (Liste des bibliothèques en **Annexe**)
+3. Brancher la carte Arduino puis compiler et téléverser le projet
+
+### Utiliser le projet
+
+- Une fois le code compilé et téléversé, sélectionner le mode de jeu (Local/Web) via l'écran OLED et les boutons associés
+- Mode Local :
+ - Choisir si on veut jouer en solo ou duo. Si le mode solo est choisi, sélectionner la difficulté du jeu, le joueur jouera ensuite contre un robot
+ - Pendant une partie le joueur 1 et le joueur 2 joueront à tour de rôle (Si le mode sélectionné est Solo, le joueur 2 sera remplacé par le robot, et jouera instantanément après le joueur 1)
+ - Une fois la partie terminée, tous les boutons excepté la ligne responsable de la victoire s'éteindront
+ - Le bouton resetGame permet de réinitialiser la partie
+- Mode Web :
+ - Connecter votre appareil (téléphone, PC, ...) au réseau créé par l'esp32, le nom du réseau devra s'afficher sur l'écran OLED, le mot de passe du réseau s'affiche également à l'écran. Une fois connecté au réseau, rendez-vous ensuite sur le site web du jeu via l'IP affichée à l'écran.
+ - Une fois sur le site, choisir entre mode solo/duo. Le mode solo comporte 2 difficultés, Facile et Difficile
+- Le bouton reset permet de redémarrer l'esp pour par exemple changer de mode de jeu (Web/Local...)
+
+### Annexe
+
+#### Liens utiles
+- [Gitlab du projet](https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineux_code)
+- [Arduino](https://www.arduino.cc/)
+- [IDE Arduino](https://www.arduino.cc/en/software/)
+- [Tutoriel Vidéo](https://exemple.com)
+
+### Photos
+
+
+
+
+
+
+
+
+
+### Branchement
+
+Libellé | pin
+| -- | -- |
+Entrée Bouton 1 | 8 - CH0
+Sortie Bouton 1 | 15
+Entrée Bouton 2 | 9 - CH1
+Sortie Bouton 2 | 33
+Entrée Bouton 3 | 10 - CH2
+Sortie Bouton 3 | 26
+Entrée Bouton 4 | 11 - CH3
+Sortie Bouton 4 | 25
+Entrée Bouton 5 | 12 - CH4
+Sortie Bouton 5 | 16
+Entrée Bouton 6 | 13 - CH5
+Sortie Bouton 6 | 17
+Entrée Bouton 7 | 14 - CH6
+Sortie Bouton 7 | 14
+Entrée Bouton 8 | 15 - CH7
+Sortie Bouton 8 | 32
+Entrée Bouton 9 | 16 - CH8
+Sortie Bouton 9 | 4
+ResetGame Bouton | 26
+
+
+### bibliothèques utilisées
+
+- Adafruit NeoPixel v1.15.1
+- TTP229
+- Adafruit_MPR121
+- Adafruit GFX Library
- Adafruit_SH110X
\ No newline at end of file
diff --git a/gra_21_morpion_lumineux_code.ino b/gra_21_morpion_lumineux_code.ino
index e2d5b26..908f400 100644
--- a/gra_21_morpion_lumineux_code.ino
+++ b/gra_21_morpion_lumineux_code.ino
@@ -1,58 +1,62 @@
-#include "pin.h"
-#include "logo.h"
-#include "menu.h"
-#include "web.h"
-#include "localMode.h"
-
-#include
-#include
-#include "Adafruit_MPR121.h"
-#include
-
-// --- Capteur capacitif ---
-Adafruit_MPR121 cap = Adafruit_MPR121();
-uint16_t lasttouched = 0;
-uint16_t currtouched = 0;
-
-
-
-void setup() {
- Serial.begin(115200);
- randomSeed(analogRead(0));
- pinMode(A2, INPUT);
-
- if (!cap.begin(0x5B)) {
- Serial.println("MPR121 not found, check wiring?");
- while (1);
- }
- Serial.println("MPR121 found!");
-
- setupMenu();
-}
-
-void loop() {
- readButton();
- if (!isPlay) {
- menu();
- } else {
- if (!local) {
- if(!isWebSet){
- setupWeb();
- isWebSet = true;
- }else{
- loopWeb();
- }
- } else {
- if(!isBtnSet){
- setBtn(cap, lasttouched, currtouched);
- } else{
- if(solo) {
- localModeSolo(cap, lasttouched, currtouched);
- }
- else {
- localModeDuo(cap, lasttouched, currtouched);
- }
- }
- }
- }
-}
+#include "pin.h"
+#include "logo.h"
+#include "menu.h"
+#include "web.h"
+#include "localMode.h"
+
+#include
+#include
+#include "Adafruit_MPR121.h"
+#include
+
+// --- Capteur capacitif ---
+Adafruit_MPR121 cap = Adafruit_MPR121();
+uint16_t lasttouched = 0;
+uint16_t currtouched = 0;
+
+
+
+void setup() {
+ Serial.begin(115200);
+ randomSeed(analogRead(0));
+ pinMode(A2, INPUT);
+
+ if (!cap.begin(0x5B)) {
+ Serial.println("MPR121 not found, check wiring?");
+ while (1);
+ }
+ Serial.println("MPR121 found!");
+
+ setupMenu();
+}
+
+void loop() {
+ readButton();
+ if (!isPlay) {
+ menu();
+ } else {
+ if (!local) {
+ if(!isWebSet){
+ setupWeb();
+ isWebSet = true;
+ }else{
+ loopWeb();
+ }
+ } else {
+ if(!isBtnSet){
+ setBtn(cap, lasttouched, currtouched);
+ } else{
+ if(solo) {
+ if(difficulty == 1){
+ localModeSolo(cap, lasttouched, currtouched);
+ }else if(difficulty == 2){
+ localModeSoloExpert(cap, lasttouched, currtouched);
+ }
+ }
+ else {
+ localModeDuo(cap, lasttouched, currtouched);
+ }
+ }
+ }
+ }
+}
diff --git a/localMode.cpp b/localMode.cpp
index d7eb1d8..3074540 100644
--- a/localMode.cpp
+++ b/localMode.cpp
@@ -1,296 +1,413 @@
-#include "localMode.h"
-#include
-#include
-#include
-
-extern Adafruit_SH1107 display;
-
-MechKey keys[] = {
- {0, A0, false, Adafruit_NeoPixel(1, D4, NEO_GRB + NEO_KHZ800)}, //D4
- {1, 25, false, Adafruit_NeoPixel(1, D5, NEO_GRB + NEO_KHZ800)},
- {2, 34, false, Adafruit_NeoPixel(1, A0, NEO_GRB + NEO_KHZ800)},
- {3, 39, false, Adafruit_NeoPixel(1, A1, NEO_GRB + NEO_KHZ800)},
- {4, 36, false, Adafruit_NeoPixel(1, 16, NEO_GRB + NEO_KHZ800)},
- {5, 4, false, Adafruit_NeoPixel(1, 17, NEO_GRB + NEO_KHZ800)},
- {6, 14, false, Adafruit_NeoPixel(1, D2, NEO_GRB + NEO_KHZ800)},
- {7, 33, false, Adafruit_NeoPixel(1, D3, NEO_GRB + NEO_KHZ800)}, //D3
- {8, 15, false, Adafruit_NeoPixel(1, 4, NEO_GRB + NEO_KHZ800)},
-};
-const int numKeys = 9;
-
-int grille[3][3] = {
- {0, 0, 0},
- {0, 0, 0},
- {0, 0, 0}
-};
-
-bool btns[9] = { false, false, false, false, false, false, false, false, false };
-
-bool joueur1 = true;
-bool isBtnSet = false;
-unsigned long lastDebounceReset = 0;
-const unsigned long debounceDelayReset = 200;
-uint8_t btnPrev = LOW;
-uint8_t btn;
-bool isFirstInit = true;
-
-
-bool isWin = false;
-
-int c1[] = {-1,-1};
-int c2[] = {-1,-1};
-int c3[] = {-1,-1};
-
-void setBtn(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched){
- if(isFirstInit){
- turnOff();
- isFirstInit = false;
- }
- display.clearDisplay();
- display.setCursor(0, 0);
- display.print("Rester appuye sur\nchaqu'un des boutons\npendant 3 secondes\npour les initialiser");
- display.display();
-
- if(allInit()){
- isBtnSet = true;
- for (int i = 0; i < numKeys; i++) {
- keys[i].led.setPixelColor(0, 0,0,0);
- keys[i].led.show();
- }
- }else{
- currtouched = cap.touched();
- for (int i = 0; i < numKeys; i++) {
- uint8_t t = keys[i].touchID;
- if ((currtouched & _BV(t)) && !(lasttouched & _BV(t))) {
- Serial.print("Touch "); Serial.print(t); Serial.println(" pressed");
- btns[i] = true;
- keys[i].led.setPixelColor(0, 255,255,255);
- keys[i].led.show();
- }
- }
- lasttouched = currtouched;
- }
-}
-
-Coord getCo(int key) {
- switch(key) {
- case 0: return { 0, 0 };
- case 1: return { 1, 0 };
- case 2: return { 2, 0 };
- case 3: return { 0, 1 };
- case 4: return { 1, 1 };
- case 5: return { 2, 1 };
- case 6: return { 0, 2 };
- case 7: return { 1, 2 };
- case 8: return { 2, 2 };
- default: return { -1, -1 };
- }
-}
-
-bool victoire(int grille[3][3], int joueur) {
- // Vérification des lignes et colonnes
- for (int i = 0; i < 3; ++i) {
- if (grille[i][0] == joueur && grille[i][1] == joueur && grille[i][2] == joueur){
- c1[0]=i;
- c1[1]=0;
- c2[0]=i;
- c2[1]=1;
- c3[0]=i;
- c3[1]=2;
- return true;
- }
- if (grille[0][i] == joueur && grille[1][i] == joueur && grille[2][i] == joueur){
- c1[0]=0;
- c1[1]=i;
- c2[0]=1;
- c2[1]=i;
- c3[0]=2;
- c3[1]=i;
- return true;
- }
- }
- // Vérification des deux diagonales
- if (grille[0][0] == joueur && grille[1][1] == joueur && grille[2][2] == joueur){
- c1[0]=0;
- c1[1]=0;
- c2[0]=1;
- c2[1]=1;
- c3[0]=2;
- c3[1]=2;
- return true;
- }
- if (grille[0][2] == joueur && grille[1][1] == joueur && grille[2][0] == joueur){
- c1[0]=0;
- c1[1]=2;
- c2[0]=1;
- c2[1]=1;
- c3[0]=2;
- c3[1]=0;
- return true;
- }
- return false;
-}
-
-bool allInit() {
- for(int i = 0; i < 9; i++) {
- if (!btns[i]) return false;
- }
- return true;
-}
-
-void reset() {
- Serial.println("Reset");
-
- for(int i = 0; i < 3; i++) {
- for(int j = 0; j < 3; j++) {
- grille[i][j] = 0;
- }
- }
- isWin = false;
- for (int i = 0; i < numKeys; i++) {
- keys[i].led.setPixelColor(0, 0,0,0);
- keys[i].led.show();
- }
- joueur1 = true;
-}
-
-void readButtonReset() {
- btn = digitalRead(A2);
-
- if (btn == LOW && btnPrev == HIGH && (millis() - lastDebounceReset > debounceDelayReset)) {
- lastDebounceReset = millis();
- reset();
- }
- btnPrev = btn;
-}
-
-void localModeDuo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched) {
- currtouched = cap.touched();
- readButtonReset();
-
- if(!isWin){
- menuGame();
- for (int i = 0; i < numKeys; i++) {
- uint8_t t = keys[i].touchID;
-
- if ((currtouched & _BV(t)) && !(lasttouched & _BV(t))) {
- Serial.print("Touch "); Serial.print(t); Serial.println(" pressed");
-
- Coord c = getCo(i);
- if(grille[c.y][c.x] == 0) {
- if(joueur1) {
- grille[c.y][c.x] = 1;
- keys[i].led.setPixelColor(0, 0,0,255);
- keys[i].led.show();
- if(victoire(grille, 1)) {
- Serial.println("Joueur 1 a gagne");
- affichResultat();
- }
- } else {
- grille[c.y][c.x] = 2;
- keys[i].led.setPixelColor(0, 255,0,0);
- keys[i].led.show();
- if(victoire(grille, 2)) {
- Serial.println("Joueur 2 a gagne");
- affichResultat();
- }
- }
- joueur1 = !joueur1;
- }
- }
- }
- }else{
- menuWin();
- }
- lasttouched = currtouched;
-}
-
-void localModeSolo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched) {
- currtouched = cap.touched();
- readButtonReset();
- if(!isWin){
- menuGame();
- for (int i = 0; i < numKeys; i++) {
- uint8_t t = keys[i].touchID;
-
- if ((currtouched & _BV(t)) && !(lasttouched & _BV(t))) {
- Serial.print("Touch "); Serial.print(t); Serial.println(" pressed");
-
- Coord c = getCo(i);
- if(grille[c.y][c.x] == 0) {
- grille[c.y][c.x] = 1;
- keys[i].led.setPixelColor(0, 0,0,255);
- keys[i].led.show();
- if(victoire(grille, 1)) {
- Serial.println("Joueur 1 a gagne");
- affichResultat();
- break;
- }
-
- int x, y;
- do {
- x = random(0, 3);
- y = random(0, 3);
- } while(grille[y][x] != 0);
-
- grille[y][x] = 2;
- keys[(3*y)+x].led.setPixelColor(0, 255,0,0);
- keys[(3*y)+x].led.show();
- if(victoire(grille, 2)) {
- Serial.println("Joueur 2 a gagne");
- affichResultat();
- }
- }
- }
- }
- }else{
- menuWin();
- }
- lasttouched = currtouched;
-}
-
-
-void affichResultat(){
- for(int i = 0; i < 3; i++) {
- for(int j = 0; j < 3; j++) {
- if((i!=c1[0] || j!=c1[1]) && (i!=c2[0] || j!=c2[1]) && (i!=c3[0] || j!=c3[1])){
- keys[(3*i)+j].led.setPixelColor(0, 0,0,0);
- keys[(3*i)+j].led.show();
- }
- }
- }
- isWin = true;
-}
-
-
-void turnOff(){
- for (int i = 0; i < numKeys; i++) {
- keys[i].led.setPixelColor(0, 0,0,0);
- keys[i].led.show();
- }
-}
-
-void menuGame(){
- display.clearDisplay();
- display.setCursor(0, 0);
- display.println("Cliquer sur un boutonpour commencer");
- display.display();
-}
-
-void menuWin(){
- display.clearDisplay();
- display.setCursor(0, 0);
- if(victoire(grille, 1)){
- display.println("Victoire du joueur 1");
- display.println();
- display.println("Cliquer sur le boutonreplay pour rejouer !");
- display.println("Cliquer sur le boutonreset pour revenir\nau menu !");
- }else{
- display.println("Victoire du joueur 2");
- display.println();
- display.println("Cliquer sur le boutonreplay pour rejouer !");
- display.println();
- display.println("Cliquer sur le boutonreset pour revenir\nau menu !");
- }
- display.display();
-}
+#include "localMode.h"
+#include
+#include
+#include
+
+extern Adafruit_SH1107 display;
+
+MechKey keys[] = {
+ {0, A0, false, Adafruit_NeoPixel(1, D4, NEO_GRB + NEO_KHZ800)}, //D4
+ {1, 25, false, Adafruit_NeoPixel(1, D5, NEO_GRB + NEO_KHZ800)},
+ {2, 34, false, Adafruit_NeoPixel(1, A0, NEO_GRB + NEO_KHZ800)},
+ {3, 39, false, Adafruit_NeoPixel(1, A1, NEO_GRB + NEO_KHZ800)},
+ {4, 36, false, Adafruit_NeoPixel(1, 16, NEO_GRB + NEO_KHZ800)},
+ {5, 4, false, Adafruit_NeoPixel(1, 17, NEO_GRB + NEO_KHZ800)},
+ {6, 14, false, Adafruit_NeoPixel(1, D2, NEO_GRB + NEO_KHZ800)},
+ {7, 33, false, Adafruit_NeoPixel(1, D3, NEO_GRB + NEO_KHZ800)}, //D3
+ {8, 15, false, Adafruit_NeoPixel(1, 4, NEO_GRB + NEO_KHZ800)},
+};
+const int numKeys = 9;
+
+int grille[3][3] = {
+ {0, 0, 0},
+ {0, 0, 0},
+ {0, 0, 0}
+};
+
+bool btns[9] = { false, false, false, false, false, false, false, false, false };
+
+bool joueur1 = true;
+bool isBtnSet = false;
+unsigned long lastDebounceReset = 0;
+const unsigned long debounceDelayReset = 200;
+uint8_t btnPrev = LOW;
+uint8_t btn;
+bool isFirstInit = true;
+
+
+bool isWin = false;
+bool isEgalite = false;
+
+int c1[] = {-1,-1};
+int c2[] = {-1,-1};
+int c3[] = {-1,-1};
+
+void setBtn(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched){
+ if(isFirstInit){
+ turnOff();
+ isFirstInit = false;
+ }
+ display.clearDisplay();
+ display.setCursor(0, 0);
+ display.print("Rester appuye sur\nchaqu'un des boutons\npendant 3 secondes\npour les initialiser");
+ display.display();
+
+ if(allInit()){
+ isBtnSet = true;
+ for (int i = 0; i < numKeys; i++) {
+ keys[i].led.setPixelColor(0, 0,0,0);
+ keys[i].led.show();
+ }
+ }else{
+ currtouched = cap.touched();
+ for (int i = 0; i < numKeys; i++) {
+ uint8_t t = keys[i].touchID;
+ if ((currtouched & _BV(t)) && !(lasttouched & _BV(t))) {
+ Serial.print("Touch "); Serial.print(t); Serial.println(" pressed");
+ btns[i] = true;
+ keys[i].led.setPixelColor(0, 255,255,255);
+ keys[i].led.show();
+ }
+ }
+ lasttouched = currtouched;
+ }
+}
+
+Coord getCo(int key) {
+ switch(key) {
+ case 0: return { 0, 0 };
+ case 1: return { 1, 0 };
+ case 2: return { 2, 0 };
+ case 3: return { 0, 1 };
+ case 4: return { 1, 1 };
+ case 5: return { 2, 1 };
+ case 6: return { 0, 2 };
+ case 7: return { 1, 2 };
+ case 8: return { 2, 2 };
+ default: return { -1, -1 };
+ }
+}
+
+bool victoire(int grille[3][3], int joueur) {
+ // Vérification des lignes et colonnes
+ for (int i = 0; i < 3; ++i) {
+ if (grille[i][0] == joueur && grille[i][1] == joueur && grille[i][2] == joueur){
+ c1[0]=i;
+ c1[1]=0;
+ c2[0]=i;
+ c2[1]=1;
+ c3[0]=i;
+ c3[1]=2;
+ return true;
+ }
+ if (grille[0][i] == joueur && grille[1][i] == joueur && grille[2][i] == joueur){
+ c1[0]=0;
+ c1[1]=i;
+ c2[0]=1;
+ c2[1]=i;
+ c3[0]=2;
+ c3[1]=i;
+ return true;
+ }
+ }
+ // Vérification des deux diagonales
+ if (grille[0][0] == joueur && grille[1][1] == joueur && grille[2][2] == joueur){
+ c1[0]=0;
+ c1[1]=0;
+ c2[0]=1;
+ c2[1]=1;
+ c3[0]=2;
+ c3[1]=2;
+ return true;
+ }
+ if (grille[0][2] == joueur && grille[1][1] == joueur && grille[2][0] == joueur){
+ c1[0]=0;
+ c1[1]=2;
+ c2[0]=1;
+ c2[1]=1;
+ c3[0]=2;
+ c3[1]=0;
+ return true;
+ }
+ return false;
+}
+
+bool allInit() {
+ for(int i = 0; i < 9; i++) {
+ if (!btns[i]) return false;
+ }
+ return true;
+}
+
+void reset() {
+ Serial.println("Reset");
+
+ for(int i = 0; i < 3; i++) {
+ for(int j = 0; j < 3; j++) {
+ grille[i][j] = 0;
+ }
+ }
+ isWin = false;
+ for (int i = 0; i < numKeys; i++) {
+ keys[i].led.setPixelColor(0, 0,0,0);
+ keys[i].led.show();
+ }
+ joueur1 = true;
+}
+
+void readButtonReset() {
+ btn = digitalRead(A2);
+
+ if (btn == LOW && btnPrev == HIGH && (millis() - lastDebounceReset > debounceDelayReset)) {
+ lastDebounceReset = millis();
+ reset();
+ }
+ btnPrev = btn;
+}
+
+bool egalite(){
+ if(!victoire(grille, 1) && !victoire(grille, 2)){
+ for(int i = 0; i < 3; i++) {
+ for(int j = 0; j < 3; j++) {
+ if(grille[i][j]==0){
+ return false;
+ }
+
+ }
+ }
+ return true;
+ }else{
+ return false;
+ }
+
+}
+
+
+void affichResultat(){
+ for(int i = 0; i < 3; i++) {
+ for(int j = 0; j < 3; j++) {
+ if((i!=c1[0] || j!=c1[1]) && (i!=c2[0] || j!=c2[1]) && (i!=c3[0] || j!=c3[1])){
+ keys[(3*i)+j].led.setPixelColor(0, 0,0,0);
+ keys[(3*i)+j].led.show();
+ }
+ }
+ }
+ isWin = true;
+}
+
+void localModeDuo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched) {
+ currtouched = cap.touched();
+ readButtonReset();
+
+ if(!isWin){
+ menuGame();
+ for (int i = 0; i < numKeys; i++) {
+ uint8_t t = keys[i].touchID;
+
+ if ((currtouched & _BV(t)) && !(lasttouched & _BV(t))) {
+ Serial.print("Touch "); Serial.print(t); Serial.println(" pressed");
+
+ Coord c = getCo(i);
+ if(grille[c.y][c.x] == 0) {
+ if(joueur1) {
+ grille[c.y][c.x] = 1;
+ keys[i].led.setPixelColor(0, 0,0,255);
+ keys[i].led.show();
+ if(victoire(grille, 1)) {
+ Serial.println("Joueur 1 a gagne");
+ affichResultat();
+ }
+ } else {
+ grille[c.y][c.x] = 2;
+ keys[i].led.setPixelColor(0, 255,0,0);
+ keys[i].led.show();
+ if(victoire(grille, 2)) {
+ Serial.println("Joueur 2 a gagne");
+ affichResultat();
+ }
+ }
+ joueur1 = !joueur1;
+ }
+ }
+ }
+ if(egalite()){
+ isWin=true;
+ isEgalite = true;
+ }
+ }else{
+ menuWin();
+ }
+ lasttouched = currtouched;
+}
+
+void localModeSolo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched) {
+ currtouched = cap.touched();
+ readButtonReset();
+ if(!isWin){
+ menuGame();
+ for (int i = 0; i < numKeys; i++) {
+ uint8_t t = keys[i].touchID;
+
+ if ((currtouched & _BV(t)) && !(lasttouched & _BV(t))) {
+ Serial.print("Touch "); Serial.print(t); Serial.println(" pressed");
+
+ Coord c = getCo(i);
+ if(grille[c.y][c.x] == 0) {
+ grille[c.y][c.x] = 1;
+ keys[i].led.setPixelColor(0, 0,0,255);
+ keys[i].led.show();
+ if(victoire(grille, 1)) {
+ Serial.println("Joueur 1 a gagne");
+ affichResultat();
+ break;
+ }
+
+ if(!egalite()){
+ int x, y;
+ do {
+ x = random(0, 3);
+ y = random(0, 3);
+ } while(grille[y][x] != 0);
+
+ grille[y][x] = 2;
+ keys[(3*y)+x].led.setPixelColor(0, 255,0,0);
+ keys[(3*y)+x].led.show();
+ if(victoire(grille, 2)) {
+ Serial.println("Joueur 2 a gagne");
+ affichResultat();
+ }
+ }
+ }
+ }
+ }
+ if(egalite()){
+ isWin=true;
+ isEgalite = true;
+ }
+ }else{
+ menuWin();
+ }
+ lasttouched = currtouched;
+}
+
+
+
+
+
+void localModeSoloExpert(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched) {
+ currtouched = cap.touched();
+ readButtonReset();
+ if (!isWin) {
+ menuGame();
+ for (int i = 0; i < numKeys; i++) {
+ uint8_t t = keys[i].touchID;
+ if ((currtouched & _BV(t)) && !(lasttouched & _BV(t))) {
+ Coord c = getCo(i);
+ if (grille[c.y][c.x] == 0) {
+ grille[c.y][c.x] = 1;
+ keys[i].led.setPixelColor(0, 0, 0, 255);
+ keys[i].led.show();
+ if (victoire(grille, 1)) {
+ affichResultat();
+ break;
+ }
+
+ if(!egalite()){
+ int x = -1, y = -1;
+ for (int j = 0; j < 3 && x == -1; j++) {
+ for (int k = 0; k < 3; k++) {
+ if (grille[j][k] == 0) {
+ grille[j][k] = 2;
+ if (victoire(grille, 2)) {
+ x = k;
+ y = j;
+ break;
+ }
+ grille[j][k] = 0;
+ }
+ }
+ }
+ if (x == -1) {
+ for (int j = 0; j < 3 && x == -1; j++) {
+ for (int k = 0; k < 3; k++) {
+ if (grille[j][k] == 0) {
+ grille[j][k] = 1;
+ if (victoire(grille, 1)) {
+ x = k;
+ y = j;
+ break;
+ }
+ grille[j][k] = 0;
+ }
+ }
+ }
+ }
+ if (x == -1) {
+ do {
+ x = random(0, 3);
+ y = random(0, 3);
+ } while (grille[y][x] != 0);
+ }
+ grille[y][x] = 2;
+ keys[3 * y + x].led.setPixelColor(0, 255, 0, 0);
+ keys[3 * y + x].led.show();
+ if (victoire(grille, 2)) {
+ affichResultat();
+ }
+ }
+ }
+ }
+ }
+ if (egalite()) {
+ isWin = true;
+ isEgalite = true;
+ }
+ } else {
+ menuWin();
+ }
+ lasttouched = currtouched;
+}
+
+
+
+
+void turnOff(){
+ for (int i = 0; i < numKeys; i++) {
+ keys[i].led.setPixelColor(0, 0,0,0);
+ keys[i].led.show();
+ }
+}
+
+void menuGame(){
+ display.clearDisplay();
+ display.setCursor(0, 0);
+ display.println("Cliquer sur un boutonpour commencer");
+ display.display();
+}
+
+void menuWin(){
+ display.clearDisplay();
+ display.setCursor(0, 0);
+ if(!isEgalite){
+ if(victoire(grille, 1)){
+ display.println("Victoire du joueur 1");
+ display.println();
+ display.println("Cliquer sur le boutonreplay pour rejouer !");
+ display.println("Cliquer sur le boutonreset pour revenir\nau menu !");
+ }else{
+ display.println("Victoire du joueur 2");
+ display.println();
+ display.println("Cliquer sur le boutonreplay pour rejouer !");
+ display.println();
+ display.println("Cliquer sur le boutonreset pour revenir\nau menu !");
+ }
+ }else{
+ display.println("Egalite");
+ display.println();
+ display.println("Cliquer sur le boutonreplay pour rejouer !");
+ display.println();
+ display.println("Cliquer sur le boutonreset pour revenir\nau menu !");
+ }
+
+ display.display();
+}
diff --git a/localMode.h b/localMode.h
index 4e3ecf4..7eed791 100644
--- a/localMode.h
+++ b/localMode.h
@@ -1,48 +1,50 @@
-#ifndef LOCALMODE_H
-#define LOCALMODE_H
-
-#include
-#include
-#include "pin.h"
-
-#ifndef _BV
-#define _BV(bit) (1 << (bit))
-#endif
-
-struct MechKey {
- uint8_t touchID;
- uint8_t dataPin;
- bool state;
- Adafruit_NeoPixel led;
-};
-
-struct Coord {
- int x;
- int y;
-};
-
-extern uint8_t color_pos;
-extern MechKey keys[];
-extern const int numKeys;
-extern int grille[3][3];
-extern bool btns[9];
-extern bool joueur1;
-extern bool isBtnSet;
-
-
-Coord getCo(int key);
-bool victoire(int grille[3][3], int joueur);
-bool allInit();
-void afficheGrille();
-void reset();
-void setBtn(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched);
-void readButtonReset();
-void affichResultat();
-void turnOff();
-void menuGame();
-void menuWin();
-
-void localModeDuo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched);
-void localModeSolo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched);
-
+#ifndef LOCALMODE_H
+#define LOCALMODE_H
+
+#include
+#include
+#include "pin.h"
+
+#ifndef _BV
+#define _BV(bit) (1 << (bit))
+#endif
+
+struct MechKey {
+ uint8_t touchID;
+ uint8_t dataPin;
+ bool state;
+ Adafruit_NeoPixel led;
+};
+
+struct Coord {
+ int x;
+ int y;
+};
+
+extern uint8_t color_pos;
+extern MechKey keys[];
+extern const int numKeys;
+extern int grille[3][3];
+extern bool btns[9];
+extern bool joueur1;
+extern bool isBtnSet;
+
+
+Coord getCo(int key);
+bool victoire(int grille[3][3], int joueur);
+bool allInit();
+void afficheGrille();
+void reset();
+void setBtn(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched);
+void readButtonReset();
+void affichResultat();
+void turnOff();
+void menuGame();
+void menuWin();
+bool egalite();
+
+void localModeDuo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched);
+void localModeSolo(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched);
+void localModeSoloExpert(Adafruit_MPR121& cap, uint16_t& lasttouched, uint16_t& currtouched);
+
#endif // LOCALMODE_H
\ No newline at end of file
diff --git a/logo.h b/logo.h
deleted file mode 100644
index aed644a..0000000
--- a/logo.h
+++ /dev/null
@@ -1,653 +0,0 @@
-// 'logo', 287x286px
-const unsigned char epd_bitmap_logo [] PROGMEM = {
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0x1f, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x07, 0xff, 0xff, 0xff, 0xfc, 0x07, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff,
- 0xff, 0xf8, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xfc, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x7f, 0xff, 0xff, 0xe0, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xc0, 0x03, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff,
- 0xff, 0x80, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xfc, 0x00, 0x0f, 0xff, 0xff, 0x00, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x0f, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x01, 0xff,
- 0xf8, 0x00, 0x1f, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xc0, 0x00, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xe0, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xc0, 0x00, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x1f,
- 0x80, 0x01, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xfc, 0x00, 0x0f, 0x00, 0x03, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0x00, 0x07, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x02, 0x00, 0x0f, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
- 0x00, 0x1f, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
- 0x01, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfc, 0x00, 0x03, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x03, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
- 0x01, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x3f, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
- 0x00, 0x1f, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x06, 0x00, 0x07, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x0f, 0x00, 0x03, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x1f,
- 0x80, 0x01, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0x00, 0x3f, 0xc0, 0x00, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x7f, 0xe0, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xf0, 0x00, 0x3f, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x01, 0xff,
- 0xf8, 0x00, 0x1f, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0x00, 0x03, 0xff, 0xfc, 0x00, 0x0f, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xfe, 0x00, 0x07, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x0f, 0xff, 0xff, 0x00, 0x07, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff,
- 0xff, 0x80, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xfc, 0x00, 0x3f, 0xff, 0xff, 0xc0, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x7f, 0xff, 0xff, 0xe0, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xff, 0xff,
- 0xff, 0xf8, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xfe, 0x03, 0xff, 0xff, 0xff, 0xfc, 0x07, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x01, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
- 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xc0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
- 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xe0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xc0, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x07, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
- 0x03, 0xff, 0xf0, 0x07, 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xf8,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x07, 0xff, 0xf0, 0x1f, 0xff, 0xff, 0xff, 0xe0, 0x1f,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xf0, 0x00, 0x01, 0xf8, 0x00, 0x00, 0xff, 0xf0, 0x07, 0xff, 0xe0, 0x0f, 0xff,
- 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0x80, 0x00, 0x7f, 0xf0, 0x07,
- 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xe0,
- 0x00, 0x3f, 0xf0, 0x07, 0xff, 0xe0, 0x03, 0xff, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0x80,
- 0x01, 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xf0, 0x07, 0xff, 0xe0, 0x01, 0xff, 0xff, 0xfe, 0x00, 0x1f,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0x00, 0x07, 0xff, 0xff, 0xfe, 0x00, 0x0f, 0xf0, 0x07, 0xff, 0xe0, 0x00, 0xff,
- 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0x00, 0x0f, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xf0, 0x07,
- 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xfe, 0x00, 0x1f, 0xff, 0xff, 0xff,
- 0x80, 0x07, 0xf0, 0x07, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xfe, 0x00,
- 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xf0, 0x07, 0xff, 0xfc, 0x00, 0x1f, 0xff, 0xe0, 0x00, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xfc, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xe0, 0x03, 0xf0, 0x07, 0xff, 0xfe, 0x00, 0x0f,
- 0xff, 0xc0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xf0, 0x07,
- 0xff, 0xff, 0x00, 0x07, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf8, 0x00, 0xff, 0xff, 0xff, 0xff,
- 0xf0, 0x01, 0xf0, 0x07, 0xff, 0xff, 0x80, 0x03, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf8, 0x01,
- 0xff, 0xff, 0xff, 0xff, 0xf8, 0x01, 0xf0, 0x07, 0xff, 0xff, 0xc0, 0x01, 0xfe, 0x00, 0x0f, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xf0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xf0, 0x07, 0xff, 0xff, 0xe0, 0x00,
- 0xfc, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xf0, 0x07,
- 0xff, 0xff, 0xf0, 0x00, 0x78, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff,
- 0xfc, 0x00, 0xf0, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x30, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf0, 0x07, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x70, 0x07, 0xff, 0xff, 0xfe, 0x00,
- 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x70, 0x07,
- 0xff, 0xff, 0xff, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0x70, 0x07, 0xff, 0xff, 0xff, 0x80, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xe0, 0x0f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x70, 0x07, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x0f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x70, 0x07, 0xff, 0xff, 0xff, 0xe0,
- 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x70, 0x07,
- 0xff, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x00, 0x70, 0x07, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xe0, 0x0f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x70, 0x07, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x70, 0x07, 0xff, 0xff, 0xff, 0xc0,
- 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x70, 0x07,
- 0xff, 0xff, 0xff, 0x80, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0x70, 0x07, 0xff, 0xff, 0xff, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xe0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x70, 0x07, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x01, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf0, 0x07, 0xff, 0xff, 0xfc, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xf0, 0x07,
- 0xff, 0xff, 0xf8, 0x00, 0x30, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff,
- 0xfc, 0x00, 0xf0, 0x07, 0xff, 0xff, 0xf0, 0x00, 0x78, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf0, 0x01,
- 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xf0, 0x07, 0xff, 0xff, 0xe0, 0x00, 0xfc, 0x00, 0x1f, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xf8, 0x01, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x01, 0xf0, 0x07, 0xff, 0xff, 0xc0, 0x01,
- 0xfe, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xf8, 0x00, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0xf0, 0x07,
- 0xff, 0xff, 0x80, 0x03, 0xff, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xfc, 0x00, 0xff, 0xff, 0xff, 0xff,
- 0xf0, 0x03, 0xf0, 0x07, 0xff, 0xff, 0x00, 0x07, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xfc, 0x00,
- 0x7f, 0xff, 0xff, 0xff, 0xe0, 0x03, 0xf0, 0x07, 0xff, 0xfe, 0x00, 0x0f, 0xff, 0xc0, 0x01, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xfe, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xf0, 0x07, 0xff, 0xfc, 0x00, 0x1f,
- 0xff, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xfe, 0x00, 0x1f, 0xff, 0xff, 0xff, 0x80, 0x07, 0xf0, 0x07,
- 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0x00, 0x0f, 0xff, 0xff, 0xff,
- 0x00, 0x0f, 0xf0, 0x07, 0xff, 0xf0, 0x00, 0x7f, 0xff, 0xf8, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0x00,
- 0x07, 0xff, 0xff, 0xfe, 0x00, 0x0f, 0xf0, 0x07, 0xff, 0xe0, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x1f,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0x80, 0x01, 0xff, 0xff, 0xf8, 0x00, 0x1f, 0xf0, 0x07, 0xff, 0xe0, 0x01, 0xff,
- 0xff, 0xfe, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xc0, 0x00, 0x7f, 0xff, 0xe0, 0x00, 0x3f, 0xf0, 0x07,
- 0xff, 0xe0, 0x03, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xe0, 0x00, 0x1f, 0xff, 0x80,
- 0x00, 0x7f, 0xf0, 0x07, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xf0,
- 0x00, 0x01, 0xf8, 0x00, 0x00, 0xff, 0xf0, 0x07, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xc0, 0x1f,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xf0, 0x07, 0xff, 0xf0, 0x1f, 0xff,
- 0xff, 0xff, 0xe0, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xf0, 0x07,
- 0xff, 0xf8, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x7f, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
- 0x07, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x03,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x00, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x7f, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
- 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xe0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
- 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xe0,
- 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 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, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xf8, 0x07, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x07, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
- 0x00, 0x01, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
- 0x00, 0x00, 0x07, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x3f, 0xfe, 0x00, 0x00, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0xff,
- 0xff, 0xc0, 0x00, 0x7f, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0x00, 0x03, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x0f, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x1f, 0xff, 0xff, 0xfe, 0x00, 0x1f,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xff,
- 0xff, 0xff, 0x00, 0x0f, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xfc, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x0f, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x01, 0xff, 0xff,
- 0xff, 0xff, 0xe0, 0x03, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x01,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff,
- 0xff, 0xff, 0xf8, 0x01, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff,
- 0xff, 0xff, 0xfc, 0x00, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x00, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0xff,
- 0xff, 0xff, 0xfc, 0x00, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xc0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x01,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff,
- 0xff, 0xff, 0xf8, 0x01, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xe0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x01, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x03,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xf0, 0x01, 0xff, 0xff,
- 0xff, 0xff, 0xe0, 0x07, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xf8, 0x00, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x07, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x80, 0x0f, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x7f, 0xff, 0xff, 0xff, 0x00, 0x0f,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xff,
- 0xff, 0xfe, 0x00, 0x1f, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0x0f, 0xff, 0xff, 0xfc, 0x00, 0x1f, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0x00, 0x07, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x01, 0xff, 0xff, 0xe0, 0x00, 0x7f,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x7f,
- 0xff, 0x80, 0x00, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xc0, 0x00, 0x0f, 0xfc, 0x00, 0x00, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x01, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
- 0x00, 0x00, 0x0f, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x1f, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
- 0x00, 0x03, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0f, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
- 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe
-};
-
-// Array of all bitmaps for convenience. (Total bytes used to store images in PROGMEM = 10320)
-const int epd_bitmap_allArray_LEN = 1;
-const unsigned char* epd_bitmap_allArray[1] = {
- epd_bitmap_logo
-};
diff --git a/menu.cpp b/menu.cpp
index ed0d10d..239878c 100644
--- a/menu.cpp
+++ b/menu.cpp
@@ -1,139 +1,133 @@
-#include "menu.h"
-#include "localMode.h"
-#include
-
-// Variables de configuration du menu
-bool local = true;
-bool solo = true;
-int difficulty = 1;
-
-uint8_t btnPrevA;
-uint8_t btnPrevB;
-uint8_t btnA;
-uint8_t btnB;
-
-uint8_t isMod = false;
-uint8_t isModJeu = false;
-uint8_t isDifficulty = false;
-bool isPlay = false;
-bool isWebSet = false;
-
-
-Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire);
-
-unsigned long lastDebounceTimeA = 0;
-unsigned long lastDebounceTimeB = 0;
-const unsigned long debounceDelay = 200;
-
-
-//extern const unsigned char epd_bitmap_logo[];
-
-void setupMenu() {
- pinMode(BUTTON_A, INPUT_PULLUP);
- pinMode(BUTTON_B, INPUT_PULLUP);
-
- btnPrevA = 0x0;
- btnPrevB = 0x0;
-
- display.begin(0x3C, true);
- display.clearDisplay();
- // display.drawBitmap(0, 0, epd_bitmap_logo, 128, 64, SH110X_WHITE);
- display.display();
- delay(1000);
- display.clearDisplay();
- display.display();
-
- display.setRotation(1);
- display.setTextColor(SH110X_WHITE);
- display.setCursor(0, 0);
- display.display();
-}
-
-void choixMode() {
- display.clearDisplay();
- display.setCursor(0, 0);
- display.print("Choisir le mode :\n");
- display.print("[A] Local\n");
- display.print("[B] Web\n");
- display.display();
-}
-
-void choixModeJeu() {
- display.clearDisplay();
- display.setCursor(0, 0);
- display.print("Choisir le type :\n");
- display.print("[A] Solo\n");
- display.print("[B] Duo\n");
- display.display();
-}
-
-void choixDifficulty() {
- display.clearDisplay();
- display.setCursor(0, 0);
- display.print("Choisir la \ndifficulte :\n");
- display.print("[A] Debutant\n");
- display.print("[B] Expert\n");
- display.display();
-}
-
-void menu() {
-
- if (!isMod) {
- choixMode();
- } else if (local && !isModJeu) {
- choixModeJeu();
- } else if (local && solo && !isDifficulty) {
- choixDifficulty();
- } else{
- isPlay = true;
- }
-
-}
-
-void handleButtonA() {
- if (!isMod) {
- local = true;
- isMod = true;
- } else if (local && !isModJeu) {
- solo = true;
- isModJeu = true;
- } else if (local && solo && !isDifficulty) {
- difficulty = 1;
- isDifficulty = true;
- }
-}
-
-void handleButtonB() {
- if (!isMod) {
- local = false;
- isMod = true;
- } else if (local && !isModJeu) {
- solo = false;
- isModJeu = true;
- } else if (local && solo && !isDifficulty) {
- difficulty = 2;
- isDifficulty = true;
- }
-}
-
-void readButton() {
- btnA = digitalRead(BUTTON_A);
- /*
- Serial.print(btnA);
- Serial.print(" ");
- Serial.println(btnPrevA);
- delay(1000);
- */
-
- if (btnA == LOW && btnPrevA == HIGH && (millis() - lastDebounceTimeA > debounceDelay)) {
- lastDebounceTimeA = millis();
- handleButtonA();
- }
- btnPrevA = btnA;
- btnB = digitalRead(BUTTON_B);
- if (btnB == LOW && btnPrevB == HIGH && (millis() - lastDebounceTimeB > debounceDelay)) {
- lastDebounceTimeB = millis();
- handleButtonB();
- }
- btnPrevB = btnB;
-}
+#include "menu.h"
+#include "localMode.h"
+#include
+
+// Variables de configuration du menu
+bool local = true;
+bool solo = true;
+int difficulty = 1;
+
+uint8_t btnPrevA;
+uint8_t btnPrevB;
+uint8_t btnA;
+uint8_t btnB;
+
+uint8_t isMod = false;
+uint8_t isModJeu = false;
+uint8_t isDifficulty = false;
+bool isPlay = false;
+bool isWebSet = false;
+
+
+Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire);
+
+unsigned long lastDebounceTimeA = 0;
+unsigned long lastDebounceTimeB = 0;
+const unsigned long debounceDelay = 200;
+
+
+void setupMenu() {
+ pinMode(BUTTON_A, INPUT_PULLUP);
+ pinMode(BUTTON_B, INPUT_PULLUP);
+
+ btnPrevA = 0x0;
+ btnPrevB = 0x0;
+
+ display.begin(0x3C, true);
+ display.clearDisplay();
+ display.display();
+
+ display.setRotation(1);
+ display.setTextColor(SH110X_WHITE);
+ display.setCursor(0, 0);
+ display.display();
+}
+
+void choixMode() {
+ display.clearDisplay();
+ display.setCursor(0, 0);
+ display.print("Choisir le mode :\n");
+ display.print("[A] Local\n");
+ display.print("[B] Web\n");
+ display.display();
+}
+
+void choixModeJeu() {
+ display.clearDisplay();
+ display.setCursor(0, 0);
+ display.print("Choisir le type :\n");
+ display.print("[A] Solo\n");
+ display.print("[B] Duo\n");
+ display.display();
+}
+
+void choixDifficulty() {
+ display.clearDisplay();
+ display.setCursor(0, 0);
+ display.print("Choisir la \ndifficulte :\n");
+ display.print("[A] Debutant\n");
+ display.print("[B] Expert\n");
+ display.display();
+}
+
+void menu() {
+
+ if (!isMod) {
+ choixMode();
+ } else if (local && !isModJeu) {
+ choixModeJeu();
+ } else if (local && solo && !isDifficulty) {
+ choixDifficulty();
+ } else{
+ isPlay = true;
+ }
+
+}
+
+void handleButtonA() {
+ if (!isMod) {
+ local = true;
+ isMod = true;
+ } else if (local && !isModJeu) {
+ solo = true;
+ isModJeu = true;
+ } else if (local && solo && !isDifficulty) {
+ difficulty = 1;
+ isDifficulty = true;
+ }
+}
+
+void handleButtonB() {
+ if (!isMod) {
+ local = false;
+ isMod = true;
+ } else if (local && !isModJeu) {
+ solo = false;
+ isModJeu = true;
+ } else if (local && solo && !isDifficulty) {
+ difficulty = 2;
+ isDifficulty = true;
+ }
+}
+
+void readButton() {
+ btnA = digitalRead(BUTTON_A);
+ /*
+ Serial.print(btnA);
+ Serial.print(" ");
+ Serial.println(btnPrevA);
+ delay(1000);
+ */
+
+ if (btnA == LOW && btnPrevA == HIGH && (millis() - lastDebounceTimeA > debounceDelay)) {
+ lastDebounceTimeA = millis();
+ handleButtonA();
+ }
+ btnPrevA = btnA;
+ btnB = digitalRead(BUTTON_B);
+ if (btnB == LOW && btnPrevB == HIGH && (millis() - lastDebounceTimeB > debounceDelay)) {
+ lastDebounceTimeB = millis();
+ handleButtonB();
+ }
+ btnPrevB = btnB;
+}
diff --git a/menu.h b/menu.h
index 193b571..daea12c 100644
--- a/menu.h
+++ b/menu.h
@@ -1,40 +1,40 @@
-#ifndef MENU_H
-#define MENU_H
-
-#include
-#include
-
-extern bool local;
-extern bool solo;
-extern int difficulty;
-
-extern uint8_t btnPrevA;
-extern uint8_t btnPrevB;
-extern uint8_t btnA;
-extern uint8_t btnB;
-
-
-extern bool isPlay;
-extern bool isWebSet;
-
-
-#define BUTTON_A 15
-#define BUTTON_B 32
-
-extern Adafruit_SH1107 display;
-
-extern unsigned long lastDebounceTimeA;
-extern unsigned long lastDebounceTimeB;
-extern const unsigned long debounceDelay;
-
-void setupMenu();
-void choixMode();
-void choixModeJeu();
-void choixDifficulty();
-void menu();
-
-void handleButtonA();
-void handleButtonB();
-void readButton();
-
-#endif // MENU_H
+#ifndef MENU_H
+#define MENU_H
+
+#include
+#include
+
+extern bool local;
+extern bool solo;
+extern int difficulty;
+
+extern uint8_t btnPrevA;
+extern uint8_t btnPrevB;
+extern uint8_t btnA;
+extern uint8_t btnB;
+
+
+extern bool isPlay;
+extern bool isWebSet;
+
+
+#define BUTTON_A 15
+#define BUTTON_B 32
+
+extern Adafruit_SH1107 display;
+
+extern unsigned long lastDebounceTimeA;
+extern unsigned long lastDebounceTimeB;
+extern const unsigned long debounceDelay;
+
+void setupMenu();
+void choixMode();
+void choixModeJeu();
+void choixDifficulty();
+void menu();
+
+void handleButtonA();
+void handleButtonB();
+void readButton();
+
+#endif // MENU_H
diff --git a/musique.cpp b/musique.cpp
deleted file mode 100644
index eca4c84..0000000
--- a/musique.cpp
+++ /dev/null
@@ -1,21 +0,0 @@
-#include "musique.h"
-#include
-
-int BassTab[]={1911,1702,1516,1431,1275,1136,1012};//bass 1~7
-
-
-void pinInit()
-{
- pinMode(SPEAKER,OUTPUT);
- digitalWrite(SPEAKER,LOW);
-}
-void sound(uint8_t note_index)
-{
- for(int i=0;i<100;i++)
- {
- digitalWrite(SPEAKER,HIGH);
- delayMicroseconds(BassTab[note_index]);
- digitalWrite(SPEAKER,LOW);
- delayMicroseconds(BassTab[note_index]);
- }
-}
\ No newline at end of file
diff --git a/musique.h b/musique.h
deleted file mode 100644
index 5489195..0000000
--- a/musique.h
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifndef MUSIQUE_H
-#define MUSIQUE_H
-
-#include
-
-#define SPEAKER 19
-
-//#define I2C2_SDA2 19
-//#define I2C2_SCL2 18
-
-
-void pinInit();
-void sound(uint8_t note_index);
-
-#endif // MUSIQUE_H
\ No newline at end of file
diff --git a/pin.h b/pin.h
index ac9ef4f..97d2be7 100644
--- a/pin.h
+++ b/pin.h
@@ -1,15 +1,15 @@
-#define A0 26
-#define A1 25
-#define A2 34
-#define A3 39
-#define A4 36
-#define A5 4
-#define D2 14
-#define D3 32
-#define D4 15
-#define D5 33
-#define RX 16
-#define TX 17
-#define SCL 22
-#define SDA 23
+#define A0 26
+#define A1 25
+#define A2 34
+#define A3 39
+#define A4 36
+#define A5 4
+#define D2 14
+#define D3 32
+#define D4 15
+#define D5 33
+#define RX 16
+#define TX 17
+#define SCL 22
+#define SDA 23
#define VART 0
\ No newline at end of file
diff --git a/web.cpp b/web.cpp
index ea6cf14..9cc991e 100644
--- a/web.cpp
+++ b/web.cpp
@@ -1,341 +1,341 @@
-#include "web.h"
-#include
-#include
-#include
-
-extern Adafruit_SH1107 display;
-
-const char *ssid = "morpion-SAE";
-const char *password = "12345678";
-WiFiServer server(80);
-
-void setupWeb() {
- Serial.println();
- Serial.println("Configuring access point...");
- if (!WiFi.softAP(ssid, password)) {
- log_e("Soft AP creation failed.");
- while (1);
- }
- IPAddress myIP = WiFi.softAPIP();
- Serial.print("AP IP address: ");
- Serial.println(myIP);
- server.begin();
-
- Serial.println("Server started");
-
- display.clearDisplay();
- display.setCursor(0, 0);
- display.println("Connectez-vous a :");
- display.print("Nom : ");
- display.println(ssid);
- display.print("Mdp : ");
- display.println(password);
- display.println();
- display.print("Puis accedez a\nl'adresse ");
- display.print(myIP);
- display.display();
-}
-
-void webGame(WiFiClient &c) {
- c.println(R"rawliteral(
-
-
-
-
-
-
- Morpion Duo/Solo
-
-
-
- Morpion
-
- Joueur 1 (Bleu) à jouer
-
-
-
-
-
-)rawliteral");
-}
-
-void loopWeb() {
- WiFiClient client = server.available();
- if (client) {
- Serial.println("New Client.");
- String currentLine = "";
- while (client.connected()) {
- if (client.available()) {
- char c = client.read();
- Serial.write(c);
- if (c == '\n') {
- if (currentLine.length() == 0) {
- client.println("HTTP/1.1 200 OK");
- client.println("Content-type:text/html");
- client.println();
- webGame(client);
- client.println();
- break;
- } else {
- currentLine = "";
- }
- } else if (c != '\r') {
- currentLine += c;
- }
- }
- }
- client.stop();
- Serial.println("Client Disconnected.");
- }
+#include "web.h"
+#include
+#include
+#include
+
+extern Adafruit_SH1107 display;
+
+const char *ssid = "morpion-SAE";
+const char *password = "12345678";
+WiFiServer server(80);
+
+void setupWeb() {
+ Serial.println();
+ Serial.println("Configuring access point...");
+ if (!WiFi.softAP(ssid, password)) {
+ log_e("Soft AP creation failed.");
+ while (1);
+ }
+ IPAddress myIP = WiFi.softAPIP();
+ Serial.print("AP IP address: ");
+ Serial.println(myIP);
+ server.begin();
+
+ Serial.println("Server started");
+
+ display.clearDisplay();
+ display.setCursor(0, 0);
+ display.println("Connectez-vous a :");
+ display.print("Nom : ");
+ display.println(ssid);
+ display.print("Mdp : ");
+ display.println(password);
+ display.println();
+ display.print("Puis accedez a\nl'adresse ");
+ display.print(myIP);
+ display.display();
+}
+
+void webGame(WiFiClient &c) {
+ c.println(R"rawliteral(
+
+
+
+
+
+
+ Morpion Duo/Solo
+
+
+
+ Morpion
+
+ Joueur 1 (Bleu) à jouer
+
+
+
+
+
+)rawliteral");
+}
+
+void loopWeb() {
+ WiFiClient client = server.available();
+ if (client) {
+ Serial.println("New Client.");
+ String currentLine = "";
+ while (client.connected()) {
+ if (client.available()) {
+ char c = client.read();
+ Serial.write(c);
+ if (c == '\n') {
+ if (currentLine.length() == 0) {
+ client.println("HTTP/1.1 200 OK");
+ client.println("Content-type:text/html");
+ client.println();
+ webGame(client);
+ client.println();
+ break;
+ } else {
+ currentLine = "";
+ }
+ } else if (c != '\r') {
+ currentLine += c;
+ }
+ }
+ }
+ client.stop();
+ Serial.println("Client Disconnected.");
+ }
}
\ No newline at end of file
diff --git a/web.h b/web.h
index b66ef63..82a2842 100644
--- a/web.h
+++ b/web.h
@@ -1,18 +1,17 @@
-#ifndef WEBSERVER_H
-#define WEBSERVER_H
-
-#include
-#include
-#include
-
-extern const char *ssid;
-extern const char *password;
-
-extern WiFiServer server;
-
-void setupWeb();
-void loopWeb();
-void webGame(WiFiClient &c);
-void webSolo(WiFiClient &c);
-
-#endif // WEBSERVER_H
+#ifndef WEBSERVER_H
+#define WEBSERVER_H
+
+#include
+#include
+#include
+
+extern const char *ssid;
+extern const char *password;
+
+extern WiFiServer server;
+
+void setupWeb();
+void loopWeb();
+void webGame(WiFiClient &c);
+
+#endif // WEBSERVER_H