fix egalite in solo
This commit is contained in:
parent
c5caf7c6e1
commit
71892abf22
188
README.md
188
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
|
||||
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/oled.png?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/4.png?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/ledsOff.jpg?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/ledsOn.jpg?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/3.jpg?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/2.jpg?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/1.jpg?ref_type=heads" height=200>
|
||||
|
||||
### 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
|
||||
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/oled.png?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/4.png?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/ledsOff.jpg?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/ledsOn.jpg?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/3.jpg?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/2.jpg?ref_type=heads" height=200>
|
||||
<img src="https://iutbg-gitlab.iutbourg.univ-lyon1.fr/SAE_203_2025/grA_21_Morpion_lumineaux/gra_21_morpion_lumineaux_images/-/raw/main/1.jpg?ref_type=heads" height=200>
|
||||
|
||||
### 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
|
||||
@ -1,58 +1,62 @@
|
||||
#include "pin.h"
|
||||
#include "logo.h"
|
||||
#include "menu.h"
|
||||
#include "web.h"
|
||||
#include "localMode.h"
|
||||
|
||||
#include <SPI.h>
|
||||
#include <Wire.h>
|
||||
#include "Adafruit_MPR121.h"
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
|
||||
// --- 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 <SPI.h>
|
||||
#include <Wire.h>
|
||||
#include "Adafruit_MPR121.h"
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
|
||||
// --- 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
709
localMode.cpp
709
localMode.cpp
@ -1,296 +1,413 @@
|
||||
#include "localMode.h"
|
||||
#include <Arduino.h>
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_SH110X.h>
|
||||
|
||||
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 <Arduino.h>
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_SH110X.h>
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
96
localMode.h
96
localMode.h
@ -1,48 +1,50 @@
|
||||
#ifndef LOCALMODE_H
|
||||
#define LOCALMODE_H
|
||||
|
||||
#include <Adafruit_MPR121.h>
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
#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 <Adafruit_MPR121.h>
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
#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
|
||||
653
logo.h
653
logo.h
@ -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
|
||||
};
|
||||
272
menu.cpp
272
menu.cpp
@ -1,139 +1,133 @@
|
||||
#include "menu.h"
|
||||
#include "localMode.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
// 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 <Arduino.h>
|
||||
|
||||
// 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;
|
||||
}
|
||||
|
||||
80
menu.h
80
menu.h
@ -1,40 +1,40 @@
|
||||
#ifndef MENU_H
|
||||
#define MENU_H
|
||||
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_SH110X.h>
|
||||
|
||||
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 <Adafruit_GFX.h>
|
||||
#include <Adafruit_SH110X.h>
|
||||
|
||||
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
|
||||
|
||||
21
musique.cpp
21
musique.cpp
@ -1,21 +0,0 @@
|
||||
#include "musique.h"
|
||||
#include <Arduino.h>
|
||||
|
||||
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]);
|
||||
}
|
||||
}
|
||||
15
musique.h
15
musique.h
@ -1,15 +0,0 @@
|
||||
#ifndef MUSIQUE_H
|
||||
#define MUSIQUE_H
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
#define SPEAKER 19
|
||||
|
||||
//#define I2C2_SDA2 19
|
||||
//#define I2C2_SCL2 18
|
||||
|
||||
|
||||
void pinInit();
|
||||
void sound(uint8_t note_index);
|
||||
|
||||
#endif // MUSIQUE_H
|
||||
28
pin.h
28
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
|
||||
680
web.cpp
680
web.cpp
@ -1,341 +1,341 @@
|
||||
#include "web.h"
|
||||
#include <Arduino.h>
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_SH110X.h>
|
||||
|
||||
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(
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Morpion Duo/Solo</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0; padding: 0;
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
background: #121212;
|
||||
color: #eee;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
h1 { margin-bottom: 0.2em; }
|
||||
.menu {
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
gap: 15px;
|
||||
align-items: center;
|
||||
}
|
||||
button.recommencer {
|
||||
background-color: #6200ea;
|
||||
border: none;
|
||||
color: white;
|
||||
padding: 12px 25px;
|
||||
font-size: 1.2em;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 4px 6px rgba(0,0,0,0.3);
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
button.recommencer:hover {
|
||||
background-color: #3700b3;
|
||||
}
|
||||
select {
|
||||
font-size: 1.1em;
|
||||
padding: 6px 10px;
|
||||
border-radius: 5px;
|
||||
border: none;
|
||||
background-color: #333;
|
||||
color: #eee;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.5);
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
select:hover {
|
||||
background-color: #555;
|
||||
}
|
||||
.status {
|
||||
margin-bottom: 15px;
|
||||
font-size: 1.3em;
|
||||
height: 1.6em;
|
||||
color: #bb86fc;
|
||||
font-weight: bold;
|
||||
}
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 100px);
|
||||
grid-template-rows: repeat(3, 100px);
|
||||
gap: 8px;
|
||||
user-select: none;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.cell {
|
||||
background-color: #1f1f1f;
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 3.5em;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s ease, transform 0.15s ease;
|
||||
box-shadow: 0 3px 6px rgba(0,0,0,0.5);
|
||||
}
|
||||
.cell:hover {
|
||||
background-color: #3700b3;
|
||||
transform: scale(1.05);
|
||||
}
|
||||
.blue { color: #2196F3; }
|
||||
.red { color: #f44336; }
|
||||
.winner {
|
||||
background-color: #03dac6 !important;
|
||||
color: #000 !important;
|
||||
animation: pulse 1s infinite;
|
||||
}
|
||||
@keyframes pulse {
|
||||
0%, 100% { box-shadow: 0 0 10px 5px #03dac6; }
|
||||
50% { box-shadow: 0 0 20px 10px #03dac6; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Morpion</h1>
|
||||
<div class="menu">
|
||||
<label for="modeSelect">Mode :</label>
|
||||
<select id="modeSelect">
|
||||
<option value="duo" selected>Duo (2 joueurs)</option>
|
||||
<option value="soloF">Solo (contre IA Facile)</option>
|
||||
<option value="soloD">Solo (contre IA Difficile)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="status">Joueur 1 (Bleu) à jouer</div>
|
||||
<div class="grid">
|
||||
<div class="cell" id="0"></div>
|
||||
<div class="cell" id="1"></div>
|
||||
<div class="cell" id="2"></div>
|
||||
<div class="cell" id="3"></div>
|
||||
<div class="cell" id="4"></div>
|
||||
<div class="cell" id="5"></div>
|
||||
<div class="cell" id="6"></div>
|
||||
<div class="cell" id="7"></div>
|
||||
<div class="cell" id="8"></div>
|
||||
</div>
|
||||
<button class="recommencer">Recommencer</button>
|
||||
<script>
|
||||
const modeSelect = document.getElementById('modeSelect');
|
||||
const status = document.querySelector('.status');
|
||||
const cells = document.querySelectorAll('.cell');
|
||||
const combinaisons = [
|
||||
[0,1,2], [3,4,5], [6,7,8],
|
||||
[0,3,6], [1,4,7], [2,5,8],
|
||||
[0,4,8], [2,4,6]
|
||||
];
|
||||
let joueur = 1;
|
||||
let etat = [0,0,0,0,0,0,0,0,0];
|
||||
let jeuFini = false;
|
||||
|
||||
function verifieVictoire(j) {
|
||||
for (let c of combinaisons) {
|
||||
if (etat[c[0]] === j && etat[c[1]] === j && etat[c[2]] === j) {
|
||||
return c;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function declareVictoire(cellsIndices) {
|
||||
jeuFini = true;
|
||||
for (let i of cellsIndices) {
|
||||
cells[i].classList.add('winner');
|
||||
}
|
||||
status.textContent = `Le joueur ${joueur} a gagné !`;
|
||||
}
|
||||
|
||||
function declareMatchNul() {
|
||||
jeuFini = true;
|
||||
status.textContent = "Match nul !";
|
||||
}
|
||||
|
||||
function updateStatus() {
|
||||
if (!jeuFini) {
|
||||
if (modeSelect.value === 'duo') {
|
||||
status.textContent = `Joueur ${joueur} (${joueur === 1 ? 'Bleu' : 'Rouge'}) à jouer`;
|
||||
} else {
|
||||
status.textContent = joueur === 1 ? 'Votre tour (Bleu)' : 'Tour de l\'IA (Rouge)';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getIaMove() {
|
||||
if(modeSelect.value == "soloF") {
|
||||
|
||||
let libres = [];
|
||||
etat.forEach((v, i) => { if (v === 0) libres.push(i); });
|
||||
if (libres.length === 0) return;
|
||||
return libres[Math.floor(Math.random() * libres.length)];
|
||||
|
||||
} else if(modeSelect.value == "soloD") {
|
||||
|
||||
for (let l of combinaisons) {
|
||||
let vals = l.map(i => etat[i]);
|
||||
if (vals.filter(v => v == 2).length == 2 && vals.includes(0))
|
||||
return l[vals.indexOf(0)];
|
||||
}
|
||||
for (let l of combinaisons) {
|
||||
let vals = l.map(i => etat[i]);
|
||||
if (vals.filter(v => v == 1).length == 2 && vals.includes(0))
|
||||
return l[vals.indexOf(0)];
|
||||
}
|
||||
if (etat[4] == 0) return 4;
|
||||
for (let i of [0,2,6,8]) if (etat[i] == 0) return i;
|
||||
for (let i = 0; i < 9; i++) if (etat[i] == 0) return i;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function iaPlay() {
|
||||
if (jeuFini) return;
|
||||
let choix = getIaMove();
|
||||
etat[choix] = 2;
|
||||
let cell = cells[choix];
|
||||
cell.textContent = 'O';
|
||||
cell.classList.add('red');
|
||||
let vic = verifieVictoire(2);
|
||||
if (vic) {
|
||||
joueur = 2;
|
||||
declareVictoire(vic);
|
||||
} else if (!etat.includes(0)) {
|
||||
declareMatchNul();
|
||||
} else {
|
||||
joueur = 1;
|
||||
updateStatus();
|
||||
}
|
||||
}
|
||||
|
||||
function resetGame() {
|
||||
jeuFini = false;
|
||||
joueur = 1;
|
||||
etat.fill(0);
|
||||
cells.forEach(c => {
|
||||
c.textContent = '';
|
||||
c.classList.remove('blue', 'red', 'winner');
|
||||
});
|
||||
updateStatus();
|
||||
if ((modeSelect.value === 'soloF' || modeSelect.value === 'soloD') && joueur === 2) {
|
||||
iaPlay();
|
||||
}
|
||||
}
|
||||
|
||||
cells.forEach((cell, index) => {
|
||||
cell.addEventListener('click', () => {
|
||||
if (jeuFini || etat[index] !== 0) return;
|
||||
if (modeSelect.value === 'duo') {
|
||||
etat[index] = joueur;
|
||||
cell.textContent = joueur === 1 ? 'X' : 'O';
|
||||
cell.classList.add(joueur === 1 ? 'blue' : 'red');
|
||||
let vic = verifieVictoire(joueur);
|
||||
if (vic) {
|
||||
declareVictoire(vic);
|
||||
} else if (!etat.includes(0)) {
|
||||
declareMatchNul();
|
||||
} else {
|
||||
joueur = joueur === 1 ? 2 : 1;
|
||||
updateStatus();
|
||||
}
|
||||
} else {
|
||||
if (joueur !== 1) return;
|
||||
etat[index] = 1;
|
||||
cell.textContent = 'X';
|
||||
cell.classList.add('blue');
|
||||
let vic = verifieVictoire(1);
|
||||
if (vic) {
|
||||
declareVictoire(vic);
|
||||
} else if (!etat.includes(0)) {
|
||||
declareMatchNul();
|
||||
} else {
|
||||
joueur = 2;
|
||||
updateStatus();
|
||||
setTimeout(iaPlay, 700);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelector('button.recommencer').addEventListener('click', resetGame);
|
||||
modeSelect.addEventListener('change', resetGame);
|
||||
|
||||
updateStatus();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
)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 <Arduino.h>
|
||||
#include <Adafruit_GFX.h>
|
||||
#include <Adafruit_SH110X.h>
|
||||
|
||||
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(
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Morpion Duo/Solo</title>
|
||||
<style>
|
||||
body {
|
||||
margin: 0; padding: 0;
|
||||
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
|
||||
background: #121212;
|
||||
color: #eee;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100vh;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
h1 { margin-bottom: 0.2em; }
|
||||
.menu {
|
||||
margin-bottom: 10px;
|
||||
display: flex;
|
||||
gap: 15px;
|
||||
align-items: center;
|
||||
}
|
||||
button.recommencer {
|
||||
background-color: #6200ea;
|
||||
border: none;
|
||||
color: white;
|
||||
padding: 12px 25px;
|
||||
font-size: 1.2em;
|
||||
border-radius: 5px;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 4px 6px rgba(0,0,0,0.3);
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
button.recommencer:hover {
|
||||
background-color: #3700b3;
|
||||
}
|
||||
select {
|
||||
font-size: 1.1em;
|
||||
padding: 6px 10px;
|
||||
border-radius: 5px;
|
||||
border: none;
|
||||
background-color: #333;
|
||||
color: #eee;
|
||||
cursor: pointer;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.5);
|
||||
transition: background-color 0.3s ease;
|
||||
}
|
||||
select:hover {
|
||||
background-color: #555;
|
||||
}
|
||||
.status {
|
||||
margin-bottom: 15px;
|
||||
font-size: 1.3em;
|
||||
height: 1.6em;
|
||||
color: #bb86fc;
|
||||
font-weight: bold;
|
||||
}
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 100px);
|
||||
grid-template-rows: repeat(3, 100px);
|
||||
gap: 8px;
|
||||
user-select: none;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
.cell {
|
||||
background-color: #1f1f1f;
|
||||
border-radius: 10px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 3.5em;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
transition: background-color 0.3s ease, transform 0.15s ease;
|
||||
box-shadow: 0 3px 6px rgba(0,0,0,0.5);
|
||||
}
|
||||
.cell:hover {
|
||||
background-color: #3700b3;
|
||||
transform: scale(1.05);
|
||||
}
|
||||
.blue { color: #2196F3; }
|
||||
.red { color: #f44336; }
|
||||
.winner {
|
||||
background-color: #03dac6 !important;
|
||||
color: #000 !important;
|
||||
animation: pulse 1s infinite;
|
||||
}
|
||||
@keyframes pulse {
|
||||
0%, 100% { box-shadow: 0 0 10px 5px #03dac6; }
|
||||
50% { box-shadow: 0 0 20px 10px #03dac6; }
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Morpion</h1>
|
||||
<div class="menu">
|
||||
<label for="modeSelect">Mode :</label>
|
||||
<select id="modeSelect">
|
||||
<option value="duo" selected>Duo (2 joueurs)</option>
|
||||
<option value="soloF">Solo (contre IA Facile)</option>
|
||||
<option value="soloD">Solo (contre IA Difficile)</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="status">Joueur 1 (Bleu) à jouer</div>
|
||||
<div class="grid">
|
||||
<div class="cell" id="0"></div>
|
||||
<div class="cell" id="1"></div>
|
||||
<div class="cell" id="2"></div>
|
||||
<div class="cell" id="3"></div>
|
||||
<div class="cell" id="4"></div>
|
||||
<div class="cell" id="5"></div>
|
||||
<div class="cell" id="6"></div>
|
||||
<div class="cell" id="7"></div>
|
||||
<div class="cell" id="8"></div>
|
||||
</div>
|
||||
<button class="recommencer">Recommencer</button>
|
||||
<script>
|
||||
const modeSelect = document.getElementById('modeSelect');
|
||||
const status = document.querySelector('.status');
|
||||
const cells = document.querySelectorAll('.cell');
|
||||
const combinaisons = [
|
||||
[0,1,2], [3,4,5], [6,7,8],
|
||||
[0,3,6], [1,4,7], [2,5,8],
|
||||
[0,4,8], [2,4,6]
|
||||
];
|
||||
let joueur = 1;
|
||||
let etat = [0,0,0,0,0,0,0,0,0];
|
||||
let jeuFini = false;
|
||||
|
||||
function verifieVictoire(j) {
|
||||
for (let c of combinaisons) {
|
||||
if (etat[c[0]] === j && etat[c[1]] === j && etat[c[2]] === j) {
|
||||
return c;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function declareVictoire(cellsIndices) {
|
||||
jeuFini = true;
|
||||
for (let i of cellsIndices) {
|
||||
cells[i].classList.add('winner');
|
||||
}
|
||||
status.textContent = `Le joueur ${joueur} a gagné !`;
|
||||
}
|
||||
|
||||
function declareMatchNul() {
|
||||
jeuFini = true;
|
||||
status.textContent = "Match nul !";
|
||||
}
|
||||
|
||||
function updateStatus() {
|
||||
if (!jeuFini) {
|
||||
if (modeSelect.value === 'duo') {
|
||||
status.textContent = `Joueur ${joueur} (${joueur === 1 ? 'Bleu' : 'Rouge'}) à jouer`;
|
||||
} else {
|
||||
status.textContent = joueur === 1 ? 'Votre tour (Bleu)' : 'Tour de l\'IA (Rouge)';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getIaMove() {
|
||||
if(modeSelect.value == "soloF") {
|
||||
|
||||
let libres = [];
|
||||
etat.forEach((v, i) => { if (v === 0) libres.push(i); });
|
||||
if (libres.length === 0) return;
|
||||
return libres[Math.floor(Math.random() * libres.length)];
|
||||
|
||||
} else if(modeSelect.value == "soloD") {
|
||||
|
||||
for (let l of combinaisons) {
|
||||
let vals = l.map(i => etat[i]);
|
||||
if (vals.filter(v => v == 2).length == 2 && vals.includes(0))
|
||||
return l[vals.indexOf(0)];
|
||||
}
|
||||
for (let l of combinaisons) {
|
||||
let vals = l.map(i => etat[i]);
|
||||
if (vals.filter(v => v == 1).length == 2 && vals.includes(0))
|
||||
return l[vals.indexOf(0)];
|
||||
}
|
||||
if (etat[4] == 0) return 4;
|
||||
for (let i of [0,2,6,8]) if (etat[i] == 0) return i;
|
||||
for (let i = 0; i < 9; i++) if (etat[i] == 0) return i;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function iaPlay() {
|
||||
if (jeuFini) return;
|
||||
let choix = getIaMove();
|
||||
etat[choix] = 2;
|
||||
let cell = cells[choix];
|
||||
cell.textContent = 'O';
|
||||
cell.classList.add('red');
|
||||
let vic = verifieVictoire(2);
|
||||
if (vic) {
|
||||
joueur = 2;
|
||||
declareVictoire(vic);
|
||||
} else if (!etat.includes(0)) {
|
||||
declareMatchNul();
|
||||
} else {
|
||||
joueur = 1;
|
||||
updateStatus();
|
||||
}
|
||||
}
|
||||
|
||||
function resetGame() {
|
||||
jeuFini = false;
|
||||
joueur = 1;
|
||||
etat.fill(0);
|
||||
cells.forEach(c => {
|
||||
c.textContent = '';
|
||||
c.classList.remove('blue', 'red', 'winner');
|
||||
});
|
||||
updateStatus();
|
||||
if ((modeSelect.value === 'soloF' || modeSelect.value === 'soloD') && joueur === 2) {
|
||||
iaPlay();
|
||||
}
|
||||
}
|
||||
|
||||
cells.forEach((cell, index) => {
|
||||
cell.addEventListener('click', () => {
|
||||
if (jeuFini || etat[index] !== 0) return;
|
||||
if (modeSelect.value === 'duo') {
|
||||
etat[index] = joueur;
|
||||
cell.textContent = joueur === 1 ? 'X' : 'O';
|
||||
cell.classList.add(joueur === 1 ? 'blue' : 'red');
|
||||
let vic = verifieVictoire(joueur);
|
||||
if (vic) {
|
||||
declareVictoire(vic);
|
||||
} else if (!etat.includes(0)) {
|
||||
declareMatchNul();
|
||||
} else {
|
||||
joueur = joueur === 1 ? 2 : 1;
|
||||
updateStatus();
|
||||
}
|
||||
} else {
|
||||
if (joueur !== 1) return;
|
||||
etat[index] = 1;
|
||||
cell.textContent = 'X';
|
||||
cell.classList.add('blue');
|
||||
let vic = verifieVictoire(1);
|
||||
if (vic) {
|
||||
declareVictoire(vic);
|
||||
} else if (!etat.includes(0)) {
|
||||
declareMatchNul();
|
||||
} else {
|
||||
joueur = 2;
|
||||
updateStatus();
|
||||
setTimeout(iaPlay, 700);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
document.querySelector('button.recommencer').addEventListener('click', resetGame);
|
||||
modeSelect.addEventListener('change', resetGame);
|
||||
|
||||
updateStatus();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
)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.");
|
||||
}
|
||||
}
|
||||
35
web.h
35
web.h
@ -1,18 +1,17 @@
|
||||
#ifndef WEBSERVER_H
|
||||
#define WEBSERVER_H
|
||||
|
||||
#include <WiFi.h>
|
||||
#include <WiFiClient.h>
|
||||
#include <WiFiAP.h>
|
||||
|
||||
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 <WiFi.h>
|
||||
#include <WiFiClient.h>
|
||||
#include <WiFiAP.h>
|
||||
|
||||
extern const char *ssid;
|
||||
extern const char *password;
|
||||
|
||||
extern WiFiServer server;
|
||||
|
||||
void setupWeb();
|
||||
void loopWeb();
|
||||
void webGame(WiFiClient &c);
|
||||
|
||||
#endif // WEBSERVER_H
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user