commit 45cf4bc312c857364ecf579aa08ea4dd2a39eb2c Author: ertunc-ozbay Date: Sun Oct 18 02:03:32 2026 +0300 Initial release: ESP32 16-Track MIDI Breadboard Instrument & RLE Compiler diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e219e1f --- /dev/null +++ b/.gitignore @@ -0,0 +1,17 @@ +# ESP-IDF build artifacts +build/ +sdkconfig.old +managed_components/ +dependencies.lock + +# Python virtual environments & cache +__pycache__/ +*.pyc +venv/ +.venv/ + +# OS & editor files +.DS_Store +.vscode/ +.idea/ +*.swp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..7089e3d --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,8 @@ +# For more information about build system see +# https://docs.espressif.com/projects/esp-idf/en/latest/api-guides/build-system.html +# The following five lines of boilerplate have to be in your project's +# CMakeLists in this exact order for cmake to work correctly +cmake_minimum_required(VERSION 3.16) + +include($ENV{IDF_PATH}/tools/cmake/project.cmake) +project(mmcontroller) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7717f1d --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 ErtunΓ§ Γ–zbay + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..b95c161 --- /dev/null +++ b/README.md @@ -0,0 +1,184 @@ +# πŸŽ›οΈ MIDI Breadboard Instrument β€” Desk Rave & 16-Track Symphony Controller + +[![ESP-IDF](https://img.shields.io/badge/ESP--IDF-v5.2.2-E7352C?logo=espressif&logoColor=white)](https://docs.espressif.com/projects/esp-idf/en/v5.2.2/esp32/) +[![MCU](https://img.shields.io/badge/MCU-ESP32%20Dual--Core%20Xtensa-blue)](https://www.espressif.com/en/products/socs/esp32) +[![Language](https://img.shields.io/badge/Language-ISO%20C99%20%2B%20Python%203-00599C)](main/mmcontroller.c) +[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) + +A standalone, dual-core **ESP32 MIDI Synthesizer, Drum Sequencer, and 30 FPS OLED Visualizer** built from scratch in **ESP-IDF v5.2.2 (C99 / FreeRTOS)**, paired with a custom **Run-Length Encoding (RLE) Python MIDI-to-C compiler** (`scripts/midi_to_c.py`). + +--- + +## πŸ“Έ Breadboard Hardware Gallery + +| Full Breadboard Overview | Active OLED Visualizer & Controls | Multi-Buzzer & Rotary Wiring | +| :---: | :---: | :---: | +| ![Breadboard Overview](images/MIDI_FIRST.jpg) | ![Active Visualizer](images/MIDI_SECOND.jpg) | ![Wiring Detail](images/MIDI_THIRD.jpg) | +| *Dual-breadboard layout featuring ESP32, 1.3" SPI OLED, rotary encoder, tactile buttons, passive melody piezo, and dual active drum buzzers.* | *Live 30 FPS OLED HUD showing track title (`WHISP`), playback state, `SPD`/`VOL` multiplier, kick/hi-hat drum boxes, and frequency bars.* | *Close-up of the KY-040 rotary encoder, tactile control buttons, kick/hi-hat LED indicators, and triple-buzzer acoustic stage.* | + +--- + +## πŸ“– 1. Engineering Origin & Technical Challenges Solved + +This project began as a bare-metal hardware exploration to push an ESP32 and simple piezo/magnetic transducers to their physical limitsβ€”evolving from a single-tone passive buzzer test into a 16-track polyphonic-illusion "Desk Rave" synthesizer. + +Key embedded engineering challenges solved during development: + +1. **The "Strobe-Light" MIDI Fragmentation Bug:** Raw MIDI files frequently split sustained notes into microscopic delta-time slices, causing the LEDs and OLED visualizer to strobe at 30+ Hz and exhausting flash memory. +2. **Custom RLE Python Compiler (`scripts/midi_to_c.py`):** We engineered a custom `mido`-based Python parser with a **Run-Length Encoding (RLE)** state machine that coalesces contiguous identical frequency/drum states into solid `SequenceStep` blocks and routes MIDI Channel 10 (plus low bass notes `< MIDI 50`) to hardware percussion triggers. +3. **Piezo Acoustic Resonance Limits:** Passive piezo buzzers physically struggle to resonate at low fundamental bass frequencies. Tracks with deep basslinesβ€”such as *Seven Nation Army*β€”were transposed **+2 full octaves** so the piezo disc resonates clearly while retaining rhythmic punch via the dedicated Kick/Hi-Hat active buzzers. +4. **Dual-Core FreeRTOS Lockless IPC:** To prevent SPI display transfers from introducing timing jitter into microsecond-sensitive audio generation, the firmware partitions tasks across both Tensilica Xtensa LX6 CPU cores: + - **Core 0 (UI & Human Interface):** Runs `oled_visualizer_task` (30 FPS framebuffer renderer using a zero-dependency custom 5Γ—7 font byte array) and `button_task` (50 ms debounced input polling). + - **Core 1 (Real-Time Music Engine):** Runs `buzzer_sequence_task`, reading `SequenceStep` arrays from flash, polling the hardware **PCNT (Pulse Counter)** quadrature rotary encoder for real-time tempo (`0.2x`–`3.0x`) and PWM duty-cycle volume (`0%`–`100%`) scaling, and driving the 13-bit hardware **LEDC PWM** timer. + +--- + +## 🧠 2. System Architecture + +```mermaid +flowchart LR + subgraph Host["Host PC Tooling (Python 3)"] + MIDI["Standard .mid Files"] --> PARSER["scripts/midi_to_c.py (RLE Compressor + Drum Router)"] + end + + subgraph ESP32["ESP32 Dual-Core Firmware (ESP-IDF v5.2.2)"] + PARSER -->|Generates C Struct Arrays| FLASH["Flash Playlist (16 Tracks / SequenceStep[])"] + + subgraph Core1["Core 1: Real-Time Audio Engine"] + FLASH --> ENGINE["buzzer_sequence_task"] + PCNT["Hardware PCNT Unit (Rotary CLK GPIO 32 / DT GPIO 33)"] --> ENGINE + end + + subgraph Core0["Core 0: UI & Input Polling"] + BTN["button_task (Pause GPIO 13 / Next GPIO 14 / Mode SW GPIO 16)"] + OLED_TASK["oled_visualizer_task (30 FPS Framebuffer)"] + end + + BTN <-->|Volatile IPC Flags| ENGINE + ENGINE -->|Volatile Pitch & Drum State| OLED_TASK + end + + subgraph Hardware["Breadboard Peripherals"] + ENGINE -->|LEDC 13-Bit PWM GPIO 25| P_BUZ["Passive Buzzer (Main Melody)"] + ENGINE -->|GPIO 26 + GPIO 21| KICK["Active Buzzer 1 + Kick LED"] + ENGINE -->|GPIO 27 + GPIO 22| HAT["Active Buzzer 2 + Hi-Hat LED"] + OLED_TASK -->|10 MHz SPI2 DMA| OLED["1.3-inch SPI OLED (SH1106 / SSD1306)"] + end +``` + +--- + +## 🎡 3. The 16-Track Flash Symphony (`SequenceStep`) + +All 16 tracks are compiled directly into ESP32 flash memory inside [`main/mmcontroller.c`](main/mmcontroller.c) using a compact 4-field C struct: + +```c +typedef struct { + uint16_t frequency; // Melody pitch in Hz (0 = REST) + uint16_t duration; // Step duration in ms (scaled live by current_speed) + bool kick_drum; // Triggers Active Buzzer 1 (GPIO 26) + Kick LED (GPIO 21) + bool hi_hat; // Triggers Active Buzzer 2 (GPIO 27) + Hat LED (GPIO 22) +} SequenceStep; +``` + +| Index | OLED Tag | Track Title | Arrangement / Engineering Notes | +| :---: | :---: | :--- | :--- | +| `0` | `WHISP` | **Careless Whisper** | Extended Club Edit with synthesized four-on-the-floor kick/hat groove | +| `1` | `TAKE ` | **Take On Me** | High-tempo EDM build-up arrangement | +| `2` | `RICK ` | **Never Gonna Give You Up (Rickroll)** | Double chorus arrangement with syncopated percussion | +| `3` | `ELVIS` | **Can't Help Falling In Love** | Arpeggiated ballad / wedding mix | +| `4` | `GIMME` | **Gimme! Gimme! Gimme!** | ABBA midnight rave synth lead | +| `5` | `ELISE` | **FΓΌr Elise** | Beethoven trance remix | +| `6` | `MOZRT` | **Symphony No. 40** | Mozart intense strings arrangement | +| `7` | `MARIO` | **Super Mario Bros. Theme** | RLE-compressed MIDI conversion with percussion routing | +| `8` | `PIRT1` | **Pirates of the Caribbean 1** | *He's a Pirate* β€” RLE MIDI conversion | +| `9` | `PIRT2` | **Pirates of the Caribbean 2** | *The Black Pearl* β€” RLE MIDI conversion | +| `10` | `ALLA ` | **Rondo Alla Turca** | Mozart Turkish March (`scripts/midillis/Alla_Turca/Alla_Turca.mid`) | +| `11` | `TETRS` | **Tetris (Korobeiniki)** | Classic Type-A theme | +| `12` | `SONIC` | **Sonic the Hedgehog** | *Green Hill Zone* | +| `13` | `CAST ` | **Castlevania** | *Vampire Killer* | +| `14` | `SEVEN` | **Seven Nation Army** | Transposed **+2 octaves** to overcome passive piezo bass roll-off | +| `15` | `MEGA ` | **Mega Man 2** | *Dr. Wily Stage 1* | + +--- + +## 🧱 4. Hardware Pinout & Peripherals + +**Target Microcontroller:** ESP32 Development Board (Dual-Core Tensilica Xtensa LX6 @ 160 MHz) + +### πŸŽ›οΈ Inputs (Hardware PCNT & Active-Low Buttons) +| Component | ESP32 GPIO | Peripheral / Mode | Function | +| :--- | :---: | :--- | :--- | +| **Rotary Encoder CLK** | `GPIO 32` | Hardware `PCNT` Edge/Level | Quadrature rotation tracking (1000 ns hardware glitch filter) | +| **Rotary Encoder DT** | `GPIO 33` | Hardware `PCNT` Edge/Level | Quadrature rotation direction | +| **Rotary Encoder SW** | `GPIO 16` | Input (`GPIO_PULLUP_ONLY`) | Toggles rotary knob mode between **Speed (`SPD`)** and **Volume (`VOL`)** | +| **Pause Button** | `GPIO 13` | Input (`GPIO_PULLUP_ONLY`) | Play / Pause toggle (immediately silences outputs when paused) | +| **Next Track Button** | `GPIO 14` | Input (`GPIO_PULLUP_ONLY`) | Cycles through the 16-track playlist (`0` β†’ `15`) | + +### πŸ”Š Audio & LED Outputs +| Component | ESP32 GPIO | Peripheral / Mode | Function | +| :--- | :---: | :--- | :--- | +| **Passive Buzzer** | `GPIO 25` | `LEDC_CHANNEL_0` (13-bit PWM) | Plays main melody pitch (`step.frequency`) & duty-cycle volume | +| **Active Buzzer 1** | `GPIO 26` | Digital Output | **Kick Drum** acoustic transient (`45 ms` scaled pulse) | +| **Active Buzzer 2** | `GPIO 27` | Digital Output | **Hi-Hat** acoustic transient (`45 ms` scaled pulse) | +| **LED 1 (Kick)** | `GPIO 21` | Digital Output | Flashes in sync with Kick Drum hits | +| **LED 2 (Hi-Hat)** | `GPIO 22` | Digital Output | Flashes in sync with Hi-Hat hits | + +### πŸ“Ί 1.3" 7-Pin SPI OLED Display (SH1106 / SSD1306, 128Γ—64) +| OLED Pin | ESP32 GPIO | SPI2 Function | +| :--- | :---: | :--- | +| **CS** | `GPIO 5` | SPI Chip Select (`10 MHz` clock) | +| **DC** | `GPIO 2` | Data / Command control line | +| **RES** | `GPIO 4` | Hardware Reset line | +| **SDA (MOSI)** | `GPIO 23` | SPI2 Master Out Slave In | +| **SCL (SCK)** | `GPIO 18` | SPI2 Serial Clock | + +--- + +## πŸ› οΈ 5. Building & Flashing (ESP-IDF v5.2.2) + +### Prerequisites +- **ESP-IDF v5.2.2** installed and exported (`source ~/esp/esp-idf/export.sh`) +- **Python 3** with `mido` (`pip install mido`) if converting custom `.mid` files + +### Build & Flash Commands +```bash +# 1. Source the ESP-IDF environment +source ~/esp/esp-idf/export.sh + +# 2. Build the firmware image +idf.py build + +# 3. Flash to the ESP32 and open the serial monitor +idf.py -p /dev/ttyUSB0 flash monitor +``` + +### Converting Custom MIDI Files (`scripts/midi_to_c.py`) +```bash +python3 scripts/midi_to_c.py scripts/midillis/Alla_Turca/Alla_Turca.mid > my_track.h +``` + +--- + +## πŸ“‚ Repository Structure + +```text +β”œβ”€β”€ CMakeLists.txt # Top-level ESP-IDF project build configuration +β”œβ”€β”€ sdkconfig # ESP32 target configuration (Dual-Core @ 160 MHz) +β”œβ”€β”€ main/ +β”‚ β”œβ”€β”€ CMakeLists.txt # Component registration +β”‚ └── mmcontroller.c # Complete 16-track synth, OLED driver, PCNT & FreeRTOS tasks +β”œβ”€β”€ scripts/ +β”‚ β”œβ”€β”€ midi_to_c.py # Custom Python RLE MIDI-to-C struct converter +β”‚ └── midillis/ # Sample MIDI source tracks (Alla Turca, etc.) +└── images/ + β”œβ”€β”€ MIDI_FIRST.jpg # Full breadboard hardware build photo + β”œβ”€β”€ MIDI_SECOND.jpg # Active OLED visualizer & control interface photo + └── MIDI_THIRD.jpg # Buzzer & rotary encoder wiring close-up +``` + +--- + +## πŸ—ΊοΈ Roadmap & Future Iterations +- **Perfboard / Custom PCB Migration:** Consolidating the dual-breadboard layout onto a soldered perfboard or custom KiCad PCB. +- **Optional WS2812B Addressable RGB Strip Expansion:** Re-introducing RMT-driven RGB lighting effects synchronized to `kick_drum` and `hi_hat` triggers. diff --git a/images/MIDI_FIRST.jpg b/images/MIDI_FIRST.jpg new file mode 100644 index 0000000..b73d004 Binary files /dev/null and b/images/MIDI_FIRST.jpg differ diff --git a/images/MIDI_SECOND.jpg b/images/MIDI_SECOND.jpg new file mode 100644 index 0000000..b5197d2 Binary files /dev/null and b/images/MIDI_SECOND.jpg differ diff --git a/images/MIDI_THIRD.jpg b/images/MIDI_THIRD.jpg new file mode 100644 index 0000000..addfc6e Binary files /dev/null and b/images/MIDI_THIRD.jpg differ diff --git a/main/CMakeLists.txt b/main/CMakeLists.txt new file mode 100644 index 0000000..874d0f6 --- /dev/null +++ b/main/CMakeLists.txt @@ -0,0 +1,2 @@ +idf_component_register(SRCS "mmcontroller.c" + INCLUDE_DIRS ".") diff --git a/main/mmcontroller.c b/main/mmcontroller.c new file mode 100644 index 0000000..6a78d96 --- /dev/null +++ b/main/mmcontroller.c @@ -0,0 +1,2583 @@ +#include +#include +#include +#include +#include +#include +#include "freertos/FreeRTOS.h" +#include "freertos/task.h" +#include "driver/gpio.h" +#include "driver/ledc.h" +#include "driver/pulse_cnt.h" +#include "driver/spi_master.h" + +// ========================================== +// 1. HARDWARE DEFINITIONS +// ========================================== +#define ROTARY_SW_PIN 16 +#define PASSIVE_BUZZER_PIN 25 +#define ACTIVE_BUZZER_1_PIN 26 +#define ACTIVE_BUZZER_2_PIN 27 +#define LED_KICK_PIN 21 +#define LED_HAT_PIN 22 +#define ROTARY_CLK_PIN 32 +#define ROTARY_DT_PIN 33 + +#define BTN_PAUSE_PIN 13 +#define BTN_NEXT_PIN 14 + +#define OLED_CS_PIN 5 +#define OLED_DC_PIN 2 +#define OLED_RES_PIN 4 +#define OLED_MOSI_PIN 23 +#define OLED_CLK_PIN 18 + +#define BUZZER_LEDC_TIMER LEDC_TIMER_0 +#define BUZZER_LEDC_MODE LEDC_LOW_SPEED_MODE +#define BUZZER_LEDC_CHANNEL LEDC_CHANNEL_0 +#define BUZZER_LEDC_DUTY (4095) + +pcnt_unit_handle_t pcnt_unit = NULL; +spi_device_handle_t spi = NULL; + +// ========================================== +// 2. INTER-PROCESS COMMUNICATION (IPC) +// ========================================== +volatile bool encoder_mode_volume = false; +volatile float current_volume = 1.0; +volatile uint32_t current_freq = 0; +volatile bool current_kick = false; +volatile bool current_hat = false; +volatile float current_speed = 1.0; + +volatile bool is_paused = false; +volatile int current_song_idx = 0; +volatile bool trigger_song_change = false; + +// ========================================== +// 3. GRAPHICS ENGINE & 1.3" OLED DRIVER +// ========================================== +uint8_t oled_buffer[1024]; + +const uint8_t font5x7[59][5] = { + {0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x5f,0x00,0x00}, {0x00,0x07,0x00,0x07,0x00}, {0x14,0x7f,0x14,0x7f,0x14}, + {0x24,0x2a,0x7f,0x2a,0x12}, {0x23,0x13,0x08,0x64,0x62}, {0x36,0x49,0x55,0x22,0x50}, {0x00,0x05,0x03,0x00,0x00}, + {0x00,0x1c,0x22,0x41,0x00}, {0x00,0x41,0x22,0x1c,0x00}, {0x14,0x08,0x3e,0x08,0x14}, {0x08,0x08,0x3e,0x08,0x08}, + {0x00,0x50,0x30,0x00,0x00}, {0x08,0x08,0x08,0x08,0x08}, {0x00,0x60,0x60,0x00,0x00}, {0x20,0x10,0x08,0x04,0x02}, + {0x3e,0x51,0x49,0x45,0x3e}, {0x00,0x42,0x7f,0x40,0x00}, {0x42,0x61,0x51,0x49,0x46}, {0x21,0x41,0x45,0x4b,0x31}, + {0x18,0x14,0x12,0x7f,0x10}, {0x27,0x45,0x45,0x45,0x39}, {0x3c,0x4a,0x49,0x49,0x30}, {0x01,0x71,0x09,0x05,0x03}, + {0x36,0x49,0x49,0x49,0x36}, {0x06,0x49,0x49,0x29,0x1e}, {0x00,0x36,0x36,0x00,0x00}, {0x00,0x56,0x36,0x00,0x00}, + {0x08,0x14,0x22,0x41,0x00}, {0x14,0x14,0x14,0x14,0x14}, {0x00,0x41,0x22,0x14,0x08}, {0x02,0x01,0x51,0x09,0x06}, + {0x32,0x49,0x79,0x41,0x3e}, {0x7e,0x11,0x11,0x11,0x7e}, {0x7f,0x49,0x49,0x49,0x36}, {0x3e,0x41,0x41,0x41,0x22}, + {0x7f,0x41,0x41,0x22,0x1c}, {0x7f,0x49,0x49,0x49,0x41}, {0x7f,0x09,0x09,0x09,0x01}, {0x3e,0x41,0x49,0x49,0x7a}, + {0x7f,0x08,0x08,0x08,0x7f}, {0x00,0x41,0x7f,0x41,0x00}, {0x20,0x40,0x41,0x3f,0x01}, {0x7f,0x08,0x14,0x22,0x41}, + {0x7f,0x40,0x40,0x40,0x40}, {0x7f,0x02,0x0c,0x02,0x7f}, {0x7f,0x04,0x08,0x10,0x7f}, {0x3e,0x41,0x41,0x41,0x3e}, + {0x7f,0x09,0x09,0x09,0x06}, {0x3e,0x41,0x51,0x21,0x5e}, {0x7f,0x09,0x19,0x29,0x46}, {0x46,0x49,0x49,0x49,0x31}, + {0x01,0x01,0x7f,0x01,0x01}, {0x3f,0x40,0x40,0x40,0x3f}, {0x1f,0x20,0x40,0x20,0x1f}, {0x3f,0x40,0x38,0x40,0x3f}, + {0x63,0x14,0x08,0x14,0x63}, {0x07,0x08,0x70,0x08,0x07}, {0x61,0x51,0x49,0x45,0x43} +}; + +void oled_send_cmd(uint8_t cmd) { + gpio_set_level(OLED_DC_PIN, 0); spi_transaction_t t; memset(&t, 0, sizeof(t)); + uint8_t cmd_ram = cmd; t.length = 8; t.tx_buffer = &cmd_ram; spi_device_polling_transmit(spi, &t); +} + +void oled_send_data(const uint8_t *data, int len) { + gpio_set_level(OLED_DC_PIN, 1); spi_transaction_t t; memset(&t, 0, sizeof(t)); + t.length = len * 8; t.tx_buffer = data; spi_device_polling_transmit(spi, &t); +} + +void draw_pixel(int x, int y, int color) { + if (x < 0 || x >= 128 || y < 0 || y >= 64) return; + if (color) oled_buffer[x + (y / 8) * 128] |= (1 << (y % 8)); + else oled_buffer[x + (y / 8) * 128] &= ~(1 << (y % 8)); +} + +void draw_filled_rect(int x, int y, int w, int h, int color) { + for (int i = x; i < x + w; i++) for (int j = y; j < y + h; j++) draw_pixel(i, j, color); +} + +void draw_rect(int x, int y, int w, int h, int color) { + for (int i = x; i < x + w; i++) { draw_pixel(i, y, color); draw_pixel(i, y + h - 1, color); } + for (int j = y; j < y + h; j++) { draw_pixel(x, j, color); draw_pixel(x + w - 1, j, color); } +} + +void draw_string(int x, int y, const char* str) { + while(*str) { + char c = *str; + if (c >= 32 && c <= 90) { + for(int i=0; i<5; i++) for(int j=0; j<8; j++) if((font5x7[c-32][i] >> j) & 1) draw_pixel(x+i, y+j, 1); + } else if (c >= 97 && c <= 122) { + for(int i=0; i<5; i++) for(int j=0; j<8; j++) if((font5x7[c-64][i] >> j) & 1) draw_pixel(x+i, y+j, 1); + } + x += 6; str++; + } +} + +void oled_push_framebuffer(void) { + for(int page = 0; page < 8; page++) { + oled_send_cmd(0xB0 + page); oled_send_cmd(0x02); oled_send_cmd(0x10); + oled_send_data(&oled_buffer[page * 128], 128); + } +} + +// ========================================== +// 4. THE ULTIMATE 8-TRACK PLAYLIST (FLASH MEMORY STORAGE) +// ========================================== +typedef struct { uint32_t frequency; uint32_t duration; bool kick_drum; bool hi_hat; } SequenceStep; + +#define REST 0 +#define NOTE_G3 196 +#define NOTE_GS3 208 +#define NOTE_A3 220 +#define NOTE_AS3 233 +#define NOTE_B3 247 +#define NOTE_C4 262 +#define NOTE_CS4 277 +#define NOTE_D4 294 +#define NOTE_DS4 311 +#define NOTE_E4 330 +#define NOTE_F4 349 +#define NOTE_FS4 370 +#define NOTE_G4 392 +#define NOTE_GS4 415 +#define NOTE_A4 440 +#define NOTE_AS4 466 +#define NOTE_B4 494 +#define NOTE_C5 523 +#define NOTE_CS5 554 +#define NOTE_D5 587 +#define NOTE_DS5 622 +#define NOTE_E5 659 +#define NOTE_F5 698 +#define NOTE_FS5 740 +#define NOTE_G5 784 +#define NOTE_GS5 831 +#define NOTE_A5 880 +#define NOTE_AS5 932 +#define NOTE_B5 988 +#define NOTE_C6 1047 +#define NOTE_CS6 1109 +#define NOTE_D6 1175 +#define NOTE_DS6 1245 +#define NOTE_E6 1319 + + +// Converted from: mario.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_mario[] = { + {659, 209, true, false}, {659, 214, true, false}, {0, 218, false, false}, {659, 209, true, false}, + {0, 218, false, false}, {523, 209, true, false}, {659, 361, true, false}, {0, 71, false, false}, + {783, 357, true, false}, {0, 500, false, false}, {391, 357, true, false}, {0, 500, false, false}, + {391, 146, true, false}, {587, 150, false, false}, {587, 150, false, false}, {440, 150, false, false}, + {0, 153, false, false}, {587, 146, false, false}, {493, 553, false, false}, {0, 200, false, false}, + {587, 75, false, false}, {587, 71, false, false}, {493, 150, false, false}, {523, 150, false, false}, + {587, 253, false, false}, {0, 50, false, false}, {391, 146, true, false}, {587, 150, false, false}, + {587, 150, false, false}, {440, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, + {493, 553, false, false}, {0, 275, false, false}, {0, 675, false, false}, {391, 146, true, false}, + {587, 150, false, false}, {587, 150, false, false}, {440, 150, false, false}, {0, 153, false, false}, + {587, 146, false, false}, {493, 553, false, false}, {0, 200, false, false}, {587, 75, false, false}, + {587, 71, false, false}, {493, 150, false, false}, {523, 150, false, false}, {587, 253, false, false}, + {0, 50, false, false}, {391, 146, true, false}, {587, 150, false, false}, {587, 150, false, false}, + {440, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, {493, 553, false, false}, + {0, 275, false, false}, {0, 675, false, false}, {587, 146, true, false}, {523, 150, false, false}, + {587, 150, false, false}, {493, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, + {783, 828, false, false}, {0, 675, false, false}, {587, 146, true, false}, {523, 150, false, false}, + {587, 150, false, false}, {493, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, + {523, 828, false, false}, {0, 675, false, false}, {587, 146, true, false}, {523, 150, false, false}, + {587, 150, false, false}, {493, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, + {783, 828, false, false}, {0, 675, false, false}, {880, 146, false, true}, {783, 150, false, false}, + {880, 150, false, false}, {783, 150, false, false}, {0, 153, false, false}, {987, 146, false, false}, + {783, 828, false, false}, {0, 675, false, false}, {0, 2000, true, false}, {329, 244, false, false}, + {329, 250, false, false}, {0, 755, false, false}, {329, 244, false, false}, {329, 250, false, false}, + {329, 125, false, false}, {329, 125, false, false}, {349, 250, true, false}, {349, 250, false, false}, + {0, 755, false, false}, {349, 244, false, false}, {349, 250, false, false}, {349, 125, false, false}, + {349, 125, false, false}, {391, 250, true, false}, {391, 250, false, false}, {0, 755, false, false}, + {391, 244, false, false}, {391, 250, false, false}, {391, 125, false, false}, {391, 125, false, false}, + {349, 250, true, false}, {349, 250, false, false}, {0, 755, false, false}, {349, 244, false, false}, + {349, 250, false, false}, {349, 125, false, false}, {349, 125, false, false}, {329, 672, true, false}, + {0, 83, false, false}, {329, 494, false, false}, {391, 250, false, false}, {440, 250, false, false}, + {391, 130, false, false}, {391, 119, false, false}, {261, 1881, true, false}, {0, 125, false, false}, + {349, 666, true, true}, {0, 83, false, false}, {349, 494, false, false}, {440, 250, false, false}, + {493, 250, false, false}, {440, 130, false, false}, {440, 119, false, false}, {311, 1881, true, true}, + {0, 125, false, false}, {391, 666, true, true}, {0, 83, false, false}, {391, 494, false, false}, + {523, 250, false, false}, {587, 250, false, false}, {523, 130, false, false}, {523, 119, false, false}, + {783, 672, true, true}, {0, 83, false, false}, {698, 494, false, false}, {523, 250, false, false}, + {391, 250, false, false}, {349, 130, false, false}, {349, 119, false, false}, {659, 672, true, true}, + {0, 83, false, false}, {523, 494, false, false}, {440, 250, false, false}, {349, 250, false, false}, + {329, 130, false, false}, {329, 119, false, false}, {311, 1380, true, false}, {0, 125, false, false}, + {277, 2376, false, false}, {0, 125, false, false}, {261, 244, true, false}, {0, 250, true, true}, + {261, 250, true, false}, {293, 62, false, false}, {0, 62, false, true}, {261, 125, true, false}, + {0, 130, false, false}, {0, 369, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 422, true, true}, {0, 83, false, false}, {0, 119, true, true}, {0, 250, true, true}, + {0, 125, true, true}, {0, 755, false, false}, {293, 182, false, false}, {0, 67, false, false}, + {329, 119, false, true}, {311, 125, false, false}, {329, 125, false, false}, {391, 46, false, false}, + {391, 83, false, false}, {391, 119, false, true}, {440, 125, false, false}, {391, 250, false, true}, + {261, 255, false, false}, {261, 166, false, true}, {0, 78, false, false}, {0, 255, false, true}, + {0, 119, false, true}, {0, 46, false, true}, {0, 78, false, false}, {0, 125, false, true}, + {0, 125, false, true}, {0, 125, false, true}, {261, 46, false, false}, {261, 83, false, false}, + {261, 119, false, true}, {293, 125, false, false}, {261, 125, false, false}, {261, 125, false, true}, + {0, 255, false, true}, {0, 166, false, true}, {0, 333, false, false}, {0, 166, false, true}, + {0, 78, false, false}, {0, 125, false, true}, {0, 125, false, true}, {0, 125, false, true}, + {391, 46, false, false}, {391, 83, false, false}, {391, 244, false, true}, {0, 125, false, true}, + {0, 125, false, true}, {0, 125, false, true}, {391, 130, false, false}, {391, 244, false, true}, + {0, 313, false, true}, {391, 108, false, false}, {391, 78, false, false}, {349, 250, false, true}, + {391, 171, false, false}, {391, 78, false, false}, {440, 125, false, true}, {391, 250, false, false}, + {293, 125, false, true}, {293, 255, false, false}, {293, 166, false, true}, {0, 328, false, false}, + {293, 187, false, true}, {0, 62, false, false}, {329, 125, false, true}, {311, 125, false, false}, + {329, 125, false, false}, {391, 46, false, false}, {391, 83, false, false}, {391, 119, false, true}, + {440, 125, false, false}, {391, 250, false, true}, {466, 255, false, false}, {466, 166, false, true}, + {0, 78, false, false}, {0, 255, false, true}, {415, 166, false, false}, {415, 78, false, false}, + {440, 125, false, true}, {415, 125, false, false}, {440, 125, false, false}, {523, 46, false, false}, + {523, 83, false, false}, {523, 119, false, true}, {587, 125, false, false}, {523, 125, false, false}, + {523, 125, false, true}, {440, 255, false, false}, {440, 166, false, true}, {0, 78, false, false}, + {0, 255, false, true}, {440, 166, false, false}, {440, 78, false, false}, {391, 125, false, true}, + {369, 125, false, false}, {391, 125, false, false}, {0, 46, false, true}, {0, 83, false, false}, + {0, 244, false, true}, {391, 125, false, true}, {369, 125, false, false}, {391, 125, false, false}, + {0, 130, false, true}, {0, 119, false, true}, {0, 125, false, true}, {349, 250, false, true}, + {329, 171, false, false}, {329, 78, false, false}, {261, 422, true, true}, {261, 83, false, false}, + {261, 119, false, true}, {261, 250, false, true}, {261, 125, false, false}, {0, 380, false, false}, + {0, 375, false, false}, {293, 119, false, false}, {311, 125, false, false}, {329, 125, false, true}, + {311, 125, false, false}, {329, 125, false, true}, {391, 125, false, false}, {391, 125, false, false}, + {440, 125, false, false}, {391, 130, false, false}, {391, 119, false, true}, {261, 255, false, false}, + {261, 166, false, true}, {0, 78, false, false}, {391, 250, false, false}, {349, 62, false, true}, + {329, 62, false, false}, {293, 62, false, true}, {0, 62, false, false}, {0, 62, false, true}, + {0, 62, false, true}, {0, 62, false, true}, {0, 62, false, true}, {0, 125, false, true}, + {261, 125, false, false}, {261, 125, false, false}, {293, 125, false, false}, {261, 130, false, false}, + {261, 119, false, true}, {0, 255, false, true}, {0, 166, false, true}, {0, 78, false, false}, + {349, 250, false, false}, {329, 62, false, true}, {293, 62, false, false}, {261, 62, false, false}, + {0, 62, false, false}, {0, 62, false, true}, {0, 62, false, true}, {0, 62, false, true}, + {0, 62, false, true}, {0, 125, false, true}, {391, 125, false, true}, {391, 255, false, false}, + {391, 57, false, true}, {0, 62, false, true}, {0, 125, false, true}, {0, 125, false, true}, + {0, 375, false, true}, {0, 313, false, true}, {391, 67, false, false}, {391, 119, false, false}, + {349, 250, false, true}, {391, 125, false, false}, {391, 62, false, false}, {391, 62, false, true}, + {440, 125, false, false}, {391, 130, false, false}, {391, 119, false, true}, {293, 437, false, false}, + {261, 62, false, false}, {0, 46, false, true}, {0, 15, false, false}, {0, 62, false, true}, + {0, 62, false, true}, {0, 62, false, true}, {0, 125, false, true}, {293, 187, true, true}, + {0, 62, false, false}, {329, 125, false, true}, {311, 125, false, false}, {329, 125, false, false}, + {391, 125, false, true}, {391, 125, false, false}, {440, 125, false, false}, {391, 250, false, true}, + {466, 255, false, false}, {466, 166, false, true}, {261, 78, false, false}, {293, 125, false, false}, + {329, 130, false, false}, {415, 119, false, false}, {415, 125, false, false}, {440, 125, false, true}, + {415, 125, false, false}, {440, 125, false, false}, {523, 46, false, false}, {523, 78, false, false}, + {0, 130, false, true}, {587, 119, false, false}, {523, 125, false, false}, {523, 125, false, true}, + {440, 255, false, false}, {440, 166, false, true}, {261, 78, false, false}, {311, 125, false, false}, + {293, 130, false, false}, {440, 119, false, false}, {440, 125, false, true}, {391, 125, false, false}, + {369, 125, false, false}, {391, 125, false, true}, {0, 125, false, true}, {0, 250, false, false}, + {391, 125, false, false}, {369, 125, false, true}, {391, 125, false, false}, {0, 130, false, true}, + {0, 119, false, true}, {0, 125, false, true}, {349, 250, false, false}, {329, 250, false, true}, + {261, 422, false, true}, {261, 83, false, false}, {261, 119, false, true}, {261, 250, false, true}, + {261, 547, false, false}, {0, 83, false, false}, {329, 182, false, false}, {349, 62, false, false}, + {391, 125, false, false}, {415, 125, false, false}, {880, 672, false, false}, {0, 83, false, false}, + {698, 244, false, false}, {783, 672, false, false}, {0, 83, false, false}, {659, 244, false, false}, + {698, 375, false, false}, {783, 125, false, false}, {0, 318, false, false}, {659, 103, false, false}, + {0, 83, false, false}, {659, 182, false, false}, {698, 62, false, false}, {783, 125, false, false}, + {830, 125, false, false}, {0, 505, false, false}, {880, 666, false, false}, {0, 83, false, false}, + {830, 244, false, false}, {783, 672, false, false}, {0, 83, false, false}, {739, 244, false, false}, + {698, 375, false, false}, {659, 375, false, false}, {523, 672, false, false}, {0, 583, false, false}, + {880, 244, false, false}, {880, 250, false, false}, {830, 250, false, false}, {830, 250, false, false}, + {783, 250, false, false}, {783, 250, false, false}, {739, 250, false, false}, {739, 250, false, false}, + {698, 375, false, false}, {783, 125, false, false}, {0, 255, false, false}, {659, 1125, false, false}, + {0, 125, false, false}, {880, 244, false, false}, {880, 250, false, false}, {830, 250, false, false}, + {830, 250, false, false}, {783, 250, false, false}, {783, 250, false, false}, {739, 250, false, false}, + {739, 250, false, false}, {698, 375, false, false}, {659, 125, false, false}, {0, 255, false, false}, + {523, 1125, false, true}, {0, 125, false, false}, {523, 119, false, false}, {329, 250, false, true}, + {466, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, {329, 250, false, true}, + {466, 125, false, true}, {0, 505, false, false}, {440, 119, false, true}, {261, 250, true, false}, + {311, 125, false, true}, {0, 505, false, false}, {440, 119, false, true}, {261, 250, true, false}, + {311, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, {329, 250, false, true}, + {466, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, {329, 250, false, true}, + {466, 125, false, true}, {0, 505, false, false}, {440, 244, false, true}, {440, 250, false, true}, + {440, 250, false, true}, {440, 250, false, true}, {415, 422, false, true}, {0, 83, false, false}, + {391, 57, false, true}, {349, 62, false, true}, {329, 62, false, true}, {293, 62, false, true}, + {261, 62, true, false}, {0, 62, true, true}, {0, 125, true, true}, {523, 125, false, false}, + {329, 250, false, true}, {466, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, + {329, 250, false, true}, {466, 125, false, true}, {0, 505, false, false}, {440, 119, false, true}, + {261, 250, true, false}, {311, 125, false, true}, {0, 505, false, false}, {440, 119, false, true}, + {261, 250, true, false}, {311, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, + {329, 250, false, true}, {466, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, + {329, 250, false, true}, {466, 125, false, true}, {0, 505, false, false}, {783, 357, false, true}, + {0, 285, false, false}, {880, 209, false, true}, {0, 218, false, false}, {783, 209, false, true}, + {0, 218, false, false}, {739, 209, false, true}, {783, 214, false, true}, {1046, 214, false, true}, + {1318, 361, false, false}, {0, 500, false, false}, {391, 209, false, false}, {523, 214, false, false}, + {698, 361, false, true}, {0, 285, false, false}, {783, 209, false, true}, {0, 218, false, false}, + {698, 209, false, true}, {0, 218, false, false}, {659, 209, true, true}, {698, 214, false, true}, + {987, 214, false, true}, {1174, 361, false, true}, {0, 500, false, false}, {391, 209, false, false}, + {493, 214, false, false}, {659, 361, true, true}, {0, 285, false, false}, {698, 209, false, true}, + {0, 218, false, false}, {659, 209, true, true}, {0, 218, false, false}, {622, 209, true, true}, + {659, 214, true, true}, {880, 214, false, true}, {1046, 361, false, true}, {0, 285, false, false}, + {880, 209, true, true}, {987, 214, false, true}, {1046, 214, false, true}, {1174, 214, false, true}, + {1046, 214, false, true}, {1174, 214, false, true}, {1046, 428, false, true}, {880, 214, false, true}, + {739, 214, true, true}, {587, 214, true, true}, {523, 214, true, true}, {440, 214, true, true}, + {0, 214, true, true}, {0, 969, false, true}, {0, 107, false, false}, {0, 209, true, false}, + {0, 214, false, true}, {0, 218, false, true}, {0, 142, false, true}, {0, 66, false, false}, + {0, 218, false, false}, {0, 209, false, true}, {0, 218, false, false}, {293, 209, false, false}, + {391, 214, true, false}, {391, 147, false, true}, {0, 66, false, false}, {0, 218, false, true}, + {783, 142, false, false}, {783, 66, false, false}, {0, 862, false, false}, {0, 209, true, false}, + {0, 214, true, false}, {0, 218, false, true}, {0, 142, false, true}, {0, 66, false, false}, + {0, 218, false, false}, {0, 209, false, true}, {0, 218, false, false}, {293, 209, false, false}, + {391, 214, true, false}, {391, 147, true, false}, {0, 66, false, false}, {0, 218, false, true}, + {783, 142, false, false}, {783, 66, false, false}, {0, 433, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 209, true, false}, {0, 214, false, true}, {0, 218, false, true}, + {0, 142, false, true}, {0, 66, false, false}, {0, 218, false, false}, {0, 209, false, true}, + {0, 218, false, false}, {293, 209, false, false}, {391, 214, true, false}, {391, 147, false, true}, + {0, 66, false, false}, {0, 218, false, true}, {783, 142, false, false}, {783, 66, false, false}, + {0, 862, false, false}, {0, 209, true, false}, {0, 214, true, false}, {0, 218, false, true}, + {0, 142, false, true}, {0, 66, false, false}, {0, 218, false, false}, {0, 209, false, true}, + {0, 218, false, false}, {293, 209, false, false}, {391, 214, true, false}, {391, 147, true, false}, + {0, 66, false, false}, {0, 218, false, true}, {783, 142, false, false}, {783, 66, false, false}, + {0, 862, false, false}, {0, 209, true, false}, {0, 214, true, false}, {0, 218, false, true}, + {0, 142, false, true}, {0, 66, false, false}, {0, 218, false, false}, {0, 209, false, true}, + {0, 218, false, false}, {293, 209, false, false}, {391, 214, true, false}, {391, 147, true, false}, + {0, 66, false, false}, {0, 218, false, true}, {783, 142, false, false}, {783, 66, false, false}, + {0, 862, false, false}, {0, 209, true, false}, {0, 214, true, false}, {0, 218, false, true}, + {0, 142, false, true}, {0, 66, false, false}, {0, 218, false, false}, {0, 209, false, true}, + {0, 218, false, false}, {293, 209, false, false}, {391, 214, true, false}, {391, 147, true, false}, + {0, 66, false, false}, {0, 218, false, true}, {783, 142, false, false}, {783, 66, false, false}, + {0, 433, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 209, true, false}, + {293, 214, false, true}, {391, 214, false, false}, {440, 214, false, false}, {493, 214, false, false}, + {523, 214, false, false}, {493, 214, false, true}, {440, 214, false, true}, {391, 214, true, false}, + {391, 147, true, false}, {0, 66, false, false}, {293, 361, false, true}, {0, 71, false, false}, + {261, 357, false, false}, {0, 71, false, false}, {391, 357, false, false}, {0, 71, false, false}, + {293, 209, true, false}, {293, 147, true, false}, {0, 66, false, false}, {0, 218, false, true}, + {0, 142, false, true}, {0, 66, false, false}, {0, 433, false, false}, {0, 214, false, true}, + {0, 142, false, true}, {0, 66, false, false}, {0, 214, true, false}, {0, 214, true, false}, + {0, 361, false, true}, {0, 285, false, false}, {261, 209, false, false}, {0, 214, true, false}, + {261, 214, false, true}, {0, 214, true, true}, {293, 214, false, true}, {391, 361, false, true}, + {0, 285, false, false}, {0, 209, false, true}, {0, 218, false, false}, {0, 209, false, true}, + {0, 214, true, false}, {0, 214, false, true}, {0, 218, false, true}, {293, 142, false, false}, + {293, 66, false, false}, {0, 218, false, false}, {391, 209, false, false}, {0, 433, false, false}, + {0, 209, true, false}, {293, 214, false, true}, {391, 214, false, false}, {440, 214, false, false}, + {493, 214, false, false}, {523, 214, false, false}, {493, 214, false, true}, {440, 214, false, true}, + {391, 214, true, false}, {391, 147, true, false}, {0, 66, false, false}, {293, 361, false, true}, + {0, 71, false, false}, {261, 357, false, false}, {0, 71, false, false}, {391, 357, false, false}, + {0, 71, false, false}, {293, 209, true, false}, {293, 147, true, false}, {0, 66, false, false}, + {0, 218, false, true}, {0, 142, false, true}, {0, 66, false, false}, {0, 218, false, false}, + {0, 209, false, true}, {0, 218, false, true}, {0, 142, false, true}, {0, 66, false, false}, + {0, 214, true, false}, {0, 214, true, false}, {0, 218, false, false}, {261, 209, false, true}, + {0, 218, false, false}, {261, 209, false, false}, {0, 218, true, false}, {261, 142, false, false}, + {261, 66, false, false}, {0, 214, true, true}, {293, 214, false, true}, {391, 218, false, false}, + {391, 142, false, true}, {0, 66, false, false}, {0, 218, false, false}, {0, 209, false, true}, + {0, 218, false, true}, {0, 142, false, true}, {0, 66, false, false}, {0, 214, true, false}, + {0, 214, false, true}, {0, 218, false, true}, {0, 142, false, true}, {0, 66, false, false}, + {0, 862, false, false}, {0, 209, true, false}, {0, 214, false, true}, {261, 218, false, false}, + {391, 142, false, false}, {391, 66, false, false}, {659, 214, false, false}, {587, 214, false, false}, + {523, 214, false, false}, {659, 214, false, false}, {587, 214, true, false}, {587, 147, false, true}, + {0, 66, false, false}, {0, 218, false, true}, {391, 142, false, false}, {391, 66, false, false}, + {0, 218, false, false}, {0, 209, false, true}, {0, 361, false, true}, {0, 71, false, false}, + {0, 209, true, false}, {0, 214, false, true}, {0, 218, false, true}, {329, 142, false, false}, + {329, 66, false, false}, {587, 214, false, false}, {523, 214, false, false}, {493, 214, false, true}, + {523, 147, false, false}, {523, 66, false, false}, {493, 214, true, false}, {493, 147, false, true}, + {0, 66, false, false}, {0, 218, false, true}, {391, 142, false, false}, {391, 66, false, false}, + {0, 433, false, false}, {0, 357, false, true}, {0, 71, false, false}, {0, 209, true, false}, + {0, 214, false, true}, {261, 218, false, false}, {391, 142, false, false}, {391, 66, false, false}, + {659, 214, false, false}, {587, 214, false, false}, {523, 214, false, false}, {659, 214, false, false}, + {587, 214, true, false}, {587, 147, false, true}, {0, 66, false, false}, {0, 218, false, true}, + {391, 142, false, false}, {391, 66, false, false}, {0, 433, false, false}, {0, 357, false, true}, + {0, 71, false, false}, {0, 209, true, false}, {0, 214, false, true}, {0, 361, false, true}, + {0, 71, false, false}, {523, 209, false, false}, {587, 214, false, false}, {523, 214, false, true}, + {493, 147, false, false}, {493, 66, false, false}, {0, 214, true, false}, {0, 214, false, true}, + {391, 361, false, false}, {0, 71, false, false}, {329, 209, false, true}, {329, 147, false, true}, + {0, 66, false, false}, {0, 433, false, false}, {0, 209, true, false}, {293, 214, false, true}, + {391, 214, false, false}, {440, 214, false, false}, {493, 214, false, false}, {523, 214, false, false}, + {493, 214, false, true}, {440, 147, false, false}, {440, 66, false, false}, {391, 214, true, false}, + {391, 147, true, false}, {0, 66, false, false}, {293, 361, false, true}, {0, 71, false, false}, + {261, 214, false, false}, {261, 142, true, false}, {0, 66, false, false}, {391, 361, false, true}, + {0, 71, false, false}, {293, 209, true, false}, {293, 147, true, false}, {0, 66, false, false}, + {0, 218, false, true}, {0, 142, false, true}, {0, 66, false, false}, {0, 433, false, false}, + {0, 214, true, false}, {0, 142, false, true}, {0, 66, false, false}, {0, 214, true, false}, + {0, 214, true, false}, {0, 361, false, true}, {0, 500, false, false}, {0, 214, true, false}, + {261, 142, false, false}, {261, 66, false, false}, {0, 214, true, true}, {293, 214, false, true}, + {391, 361, false, true}, {0, 285, false, false}, {0, 209, false, true}, {0, 218, false, true}, + {0, 142, false, true}, {0, 66, false, false}, {0, 361, true, false}, {0, 71, false, false}, + {0, 214, false, true}, {293, 142, false, false}, {293, 66, false, false}, {0, 862, false, false}, + {0, 209, true, false}, {293, 214, false, true}, {391, 214, false, false}, {440, 214, false, false}, + {493, 214, false, false}, {523, 214, false, false}, {493, 214, false, true}, {440, 214, false, true}, + {391, 214, true, false}, {391, 147, true, false}, {0, 66, false, false}, {293, 361, false, true}, + {0, 71, false, false}, {261, 214, false, false}, {261, 142, true, false}, {0, 66, false, false}, + {391, 361, false, false}, {0, 71, false, false}, {293, 209, true, false}, {293, 147, true, false}, + {0, 66, false, false}, {0, 218, false, true}, {0, 142, false, true}, {0, 66, false, false}, + {0, 218, false, false}, {261, 209, false, false}, {0, 218, false, true}, {0, 142, false, true}, + {0, 66, false, false}, {0, 214, true, false}, {0, 214, true, false}, {0, 361, false, true}, + {0, 285, false, false}, {261, 209, false, false}, {0, 218, true, false}, {261, 142, false, false}, + {261, 66, false, false}, {0, 214, true, true}, {293, 214, false, true}, {391, 361, false, true}, + {0, 285, false, false}, {0, 209, false, true}, {0, 218, false, true}, {0, 142, false, true}, + {0, 66, false, false}, {0, 214, true, false}, {0, 214, false, true}, {0, 361, false, true}, + {0, 285, false, false}, {391, 209, false, true}, {0, 433, false, false}, {0, 209, true, false}, + {0, 214, true, false}, {0, 218, false, true}, {349, 142, false, true}, {349, 66, false, false}, + {0, 218, false, false}, {349, 209, false, true}, {349, 214, false, true}, {349, 214, false, true}, + {0, 218, true, false}, {349, 142, false, true}, {349, 66, false, false}, {349, 214, false, true}, + {349, 214, false, true}, {0, 218, true, false}, {349, 142, false, true}, {349, 66, false, false}, + {349, 214, false, true}, {349, 147, false, true}, {349, 66, false, false}, {0, 214, true, false}, + {0, 214, true, false}, {0, 218, false, true}, {391, 142, false, true}, {391, 66, false, false}, + {0, 218, false, false}, {391, 209, false, true}, {0, 218, false, true}, {391, 142, false, true}, + {391, 66, false, false}, {0, 218, true, false}, {391, 142, false, true}, {391, 66, false, false}, + {0, 214, false, true}, {391, 111, false, true}, {391, 102, false, true}, {391, 214, false, true}, + {391, 214, false, true}, {391, 214, false, true}, {391, 214, false, true}, {0, 214, true, false}, + {0, 214, true, false}, {0, 218, false, true}, {391, 142, false, false}, {391, 66, false, false}, + {0, 218, false, false}, {391, 209, false, false}, {0, 218, false, true}, {391, 142, false, false}, + {391, 66, false, false}, {0, 218, true, false}, {440, 142, false, false}, {440, 66, false, false}, + {0, 218, false, true}, {440, 142, false, false}, {440, 66, false, false}, {0, 218, false, false}, + {440, 209, false, true}, {0, 218, false, false}, {0, 209, false, true}, {0, 371, true, true}, + {0, 375, true, true}, {0, 375, true, true}, {0, 1133, true, true}, {293, 625, false, true}, + {0, 125, false, false}, {587, 156, false, false}, {523, 160, false, false}, {391, 107, false, true}, + {293, 160, false, true}, {261, 160, true, false}, {0, 107, true, true}, {0, 361, true, true}, + {0, 2108, false, false}, {0, 107, false, false}, {293, 1607, true, true}, {0, 107, false, false}, + {329, 1607, false, true}, {0, 107, false, false}, {349, 1607, false, false}, {0, 107, false, false}, + {391, 1607, false, false}, {0, 107, false, false}, {293, 1607, true, true}, {0, 107, false, false}, + {329, 1607, false, true}, {0, 107, false, false}, {349, 1607, false, false}, {0, 107, false, false}, + {391, 750, false, false}, {0, 964, false, false}, {293, 357, false, true}, {0, 71, false, false}, + {293, 357, false, true}, {0, 281, false, false}, {293, 214, false, true}, {293, 107, false, true}, + {293, 107, false, true}, {523, 107, false, true}, {523, 107, false, true}, {493, 214, false, true}, + {391, 147, false, false}, {391, 66, false, false}, {329, 361, false, true}, {293, 285, false, false}, + {329, 209, false, true}, {329, 107, false, true}, {329, 107, false, true}, {329, 107, false, true}, + {329, 107, false, true}, {349, 361, false, true}, {293, 71, false, false}, {349, 142, false, true}, + {349, 71, false, false}, {349, 142, false, false}, {0, 281, false, false}, {349, 214, false, true}, + {391, 107, false, true}, {391, 107, false, true}, {349, 107, false, true}, {349, 107, false, true}, + {391, 361, false, true}, {0, 71, false, false}, {391, 357, false, true}, {0, 285, false, false}, + {391, 209, false, true}, {391, 107, false, true}, {391, 107, false, true}, {391, 107, false, true}, + {391, 107, false, true}, {293, 361, false, true}, {0, 71, false, false}, {293, 357, false, true}, + {0, 281, false, false}, {293, 214, false, true}, {293, 107, false, true}, {293, 107, false, true}, + {523, 107, false, true}, {523, 107, false, true}, {493, 214, false, true}, {391, 147, false, false}, + {391, 66, false, false}, {329, 361, false, true}, {293, 214, false, false}, {0, 71, false, false}, + {329, 209, false, true}, {329, 107, false, true}, {329, 107, false, true}, {587, 107, false, true}, + {587, 107, false, true}, {523, 361, false, true}, {0, 71, false, false}, {493, 357, false, true}, + {493, 285, false, false}, {493, 209, false, true}, {493, 107, false, true}, {493, 107, false, true}, + {440, 107, false, true}, {440, 107, false, true}, {493, 361, false, true}, {493, 71, false, false}, + {493, 357, false, true}, {493, 285, false, false}, {493, 209, false, true}, {493, 107, false, true}, + {493, 107, false, true}, {493, 107, false, true}, {391, 107, false, true}, {349, 361, false, true}, + {311, 71, false, false}, {349, 357, false, true}, {311, 281, false, false}, {349, 214, false, true}, + {349, 107, false, true}, {349, 107, false, true}, {622, 107, false, true}, {622, 107, false, true}, + {587, 214, false, true}, {466, 147, false, false}, {466, 66, false, false}, {391, 361, false, true}, + {349, 285, false, false}, {391, 209, false, true}, {391, 107, false, true}, {391, 107, false, true}, + {391, 107, false, true}, {391, 107, false, true}, {415, 214, false, true}, {415, 147, false, false}, + {349, 71, false, false}, {415, 357, false, true}, {349, 285, false, false}, {415, 209, false, true}, + {415, 107, false, true}, {415, 107, false, true}, {415, 107, false, true}, {415, 107, false, true}, + {466, 361, false, true}, {0, 71, false, false}, {466, 357, false, true}, {0, 285, false, false}, + {466, 209, false, true}, {466, 107, false, true}, {466, 107, false, true}, {466, 107, false, true}, + {466, 107, false, true}, {293, 361, false, true}, {0, 71, false, false}, {293, 357, false, true}, + {0, 281, false, false}, {293, 214, false, true}, {293, 107, false, true}, {293, 107, false, true}, + {523, 107, false, true}, {523, 107, false, true}, {493, 214, false, true}, {391, 147, false, false}, + {391, 66, false, false}, {329, 361, false, true}, {293, 285, false, false}, {329, 209, false, true}, + {329, 107, false, true}, {329, 107, false, true}, {329, 107, false, true}, {329, 107, false, true}, + {391, 361, false, true}, {391, 71, false, false}, {391, 357, false, true}, {391, 285, false, false}, + {391, 209, false, true}, {391, 107, false, true}, {391, 107, false, true}, {391, 107, false, true}, + {349, 107, false, true}, {391, 361, false, true}, {349, 71, false, false}, {391, 357, false, true}, + {349, 285, false, false}, {391, 209, false, true}, {391, 107, false, true}, {391, 107, false, true}, + {391, 107, false, true}, {391, 107, false, true}, {523, 754, false, false}, {0, 107, false, false}, + {783, 750, false, false}, {0, 107, false, false}, {698, 357, false, false}, {0, 71, false, false}, + {587, 1179, false, false}, {0, 107, false, false}, {523, 750, false, false}, {0, 107, false, false}, + {783, 750, false, false}, {0, 107, false, false}, {698, 357, false, false}, {0, 71, false, false}, + {587, 750, false, false}, {0, 107, false, false}, {987, 357, false, false}, {0, 71, false, false}, + {523, 750, false, false}, {0, 107, false, false}, {783, 750, false, false}, {0, 107, false, false}, + {698, 750, false, false}, {0, 107, false, false}, {587, 750, false, false}, {0, 107, false, false}, + {622, 2465, false, false}, {0, 107, false, false}, {523, 750, false, false}, {0, 107, false, false}, + {587, 3322, false, false}, {0, 107, false, false}, {622, 1607, false, false}, {0, 107, false, false}, + {830, 750, false, false}, {0, 107, false, false}, {622, 750, false, false}, {0, 107, false, false}, + {587, 1607, false, false}, {0, 107, false, false}, {783, 1067, false, false}, {391, 53, false, false}, + {349, 53, false, false}, {329, 53, false, false}, {293, 53, false, false}, {391, 53, false, false}, + {349, 53, false, false}, {329, 53, false, false}, {293, 53, false, false}, {391, 53, false, false}, + {349, 53, false, false}, {329, 53, false, false}, {0, 58, false, false}, {0, 244, true, false}, + {0, 250, true, false}, {0, 250, true, false}, {0, 1130, true, false}, {0, 125, false, false}, + {0, 244, true, false}, {0, 250, true, false}, {0, 250, true, false}, {0, 1130, true, false}, + {0, 125, false, false}, {0, 244, true, false}, {0, 250, true, false}, {0, 250, true, false}, + {0, 500, true, false}, {0, 500, true, false}, {0, 500, true, false}, {0, 1631, true, false}, + {0, 125, false, false}, {880, 244, true, false}, {880, 250, true, false}, {880, 171, true, false}, + {0, 78, false, false}, {830, 1130, true, false}, {0, 125, false, false}, {783, 244, true, false}, + {783, 250, true, false}, {783, 171, true, false}, {0, 78, false, false}, {698, 1130, true, false}, + {0, 125, false, false}, {880, 244, true, false}, {880, 250, true, false}, {880, 171, true, false}, + {0, 78, false, false}, {830, 500, true, false}, {783, 500, true, false}, {698, 500, true, false}, + {587, 1631, true, false}, {0, 125, false, false}, {880, 244, true, false}, {880, 250, true, false}, + {880, 171, true, false}, {0, 78, false, false}, {830, 1130, true, false}, {0, 125, false, false}, + {783, 244, true, false}, {783, 250, true, false}, {783, 171, true, false}, {0, 78, false, false}, + {698, 1130, true, false}, {0, 125, false, false}, {880, 244, true, false}, {880, 250, true, false}, + {880, 171, true, false}, {0, 78, false, false}, {830, 500, true, false}, {783, 500, true, false}, + {698, 500, true, false}, {587, 1631, true, false}, {0, 125, false, false}, {587, 244, true, false}, + {587, 250, true, false}, {587, 171, true, false}, {0, 78, false, false}, {554, 1130, true, false}, + {0, 125, false, false}, {523, 244, true, false}, {523, 250, true, false}, {523, 171, true, false}, + {0, 78, false, false}, {493, 1130, true, false}, {0, 125, false, false}, {587, 244, true, false}, + {587, 250, true, false}, {587, 171, true, false}, {0, 78, false, false}, {554, 1130, true, false}, + {0, 125, false, false}, {523, 244, true, false}, {523, 250, true, false}, {523, 171, true, false}, + {0, 78, false, false}, {493, 1130, true, false}, {0, 125, false, false}, {587, 244, true, false}, + {587, 250, true, false}, {587, 171, true, false}, {0, 78, false, false}, {554, 500, true, false}, + {554, 630, true, false}, {0, 41, false, false}, {0, 83, false, false}, {587, 244, true, false}, + {587, 250, true, false}, {587, 171, true, false}, {0, 78, false, false}, {554, 1130, true, false}, + {0, 125, false, false}, {587, 244, true, false}, {587, 250, true, false}, {587, 171, true, false}, + {0, 78, false, false}, {554, 1130, true, false}, {0, 125, false, false}, {523, 244, true, false}, + {523, 250, true, false}, {523, 171, true, false}, {0, 78, false, false}, {493, 1130, true, false}, + {0, 125, false, false}, {0, 244, true, false}, {0, 250, true, false}, {0, 250, true, false}, + {0, 250, true, false}, {0, 250, true, false}, {0, 250, true, false}, {0, 250, true, false}, + {0, 250, true, false}, {0, 250, true, false}, {0, 250, true, false}, {0, 250, true, false}, + {0, 250, true, false}, {0, 250, true, false}, {0, 672, true, false}, {0, 83, false, false}, + {0, 244, true, false}, {0, 250, true, false}, {0, 250, true, false}, {0, 250, true, false}, + {0, 250, true, false}, {0, 250, true, false}, {0, 250, true, false}, {0, 250, true, false}, + {0, 250, true, false}, {0, 250, true, false}, {0, 250, true, false}, {0, 250, true, false}, + {0, 250, true, false}, {0, 672, true, false}, {0, 83, false, false}, {0, 357, true, false}, + {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, + {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 214, true, false}, {523, 142, false, false}, {523, 71, false, false}, + {523, 209, true, false}, {523, 147, false, false}, {523, 66, false, false}, {440, 214, false, false}, + {440, 214, false, false}, {466, 214, true, false}, {466, 147, false, false}, {466, 66, false, false}, + {0, 361, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 214, true, false}, {523, 142, false, false}, {523, 71, false, false}, {523, 209, true, false}, + {523, 147, false, false}, {523, 66, false, false}, {440, 214, false, false}, {440, 214, false, false}, + {466, 214, true, false}, {466, 147, false, false}, {466, 66, false, false}, {0, 361, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 214, true, false}, {349, 142, false, false}, {349, 71, false, false}, + {349, 209, true, false}, {349, 147, false, false}, {349, 66, false, false}, {293, 214, false, false}, + {293, 214, false, false}, {311, 214, true, false}, {311, 147, false, false}, {311, 66, false, false}, + {0, 361, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 214, true, false}, {349, 142, false, false}, + {349, 71, false, false}, {349, 209, true, false}, {349, 147, false, false}, {349, 66, false, false}, + {293, 214, false, false}, {293, 214, false, false}, {311, 214, true, false}, {311, 147, false, false}, + {311, 66, false, false}, {0, 361, true, false}, {0, 71, false, false}, {0, 357, true, false}, + {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, {261, 209, true, false}, + {523, 147, false, false}, {523, 66, false, false}, {0, 214, false, true}, {440, 214, false, false}, + {0, 214, true, true}, {466, 147, false, false}, {466, 66, false, false}, {0, 361, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, {261, 209, true, false}, + {523, 147, false, false}, {523, 66, false, false}, {0, 214, false, true}, {440, 214, false, false}, + {0, 214, true, true}, {466, 147, false, false}, {466, 66, false, false}, {0, 361, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 209, true, true}, + {349, 147, false, false}, {349, 66, false, false}, {0, 214, false, true}, {293, 214, false, false}, + {0, 214, true, true}, {311, 147, false, false}, {311, 66, false, false}, {0, 361, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 209, true, true}, + {349, 147, false, false}, {349, 66, false, false}, {0, 214, false, true}, {293, 214, false, false}, + {0, 214, true, true}, {311, 147, false, false}, {311, 66, false, false}, {0, 361, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 107, true, false}, {311, 102, false, false}, {293, 107, false, false}, + {277, 40, false, false}, {277, 66, false, false}, {261, 361, true, false}, {0, 71, false, false}, + {311, 357, false, false}, {0, 71, false, false}, {293, 357, true, false}, {0, 71, false, false}, + {0, 357, true, true}, {0, 71, false, false}, {0, 357, true, true}, {0, 71, false, false}, + {277, 357, false, false}, {0, 71, false, false}, {261, 156, true, false}, {369, 160, false, false}, + {349, 40, false, false}, {349, 66, false, false}, {329, 160, true, false}, {493, 160, false, false}, + {466, 40, false, false}, {466, 66, false, false}, {440, 321, true, false}, {311, 40, false, false}, + {311, 66, false, false}, {0, 111, false, false}, {0, 316, false, true}, {0, 321, true, true}, + {0, 40, false, true}, {0, 66, false, false}, {0, 218, true, false}, {0, 142, false, true}, + {0, 66, false, false}, {0, 361, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, {261, 209, true, false}, + {523, 147, false, false}, {523, 66, false, false}, {0, 214, false, true}, {440, 214, false, false}, + {0, 214, true, true}, {466, 147, false, false}, {466, 66, false, false}, {0, 361, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, {261, 209, true, false}, + {523, 147, false, false}, {523, 66, false, false}, {0, 214, false, true}, {440, 214, false, false}, + {0, 214, true, true}, {466, 147, false, false}, {466, 66, false, false}, {0, 361, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 209, true, true}, + {349, 147, false, false}, {349, 66, false, false}, {0, 214, false, true}, {293, 214, false, false}, + {0, 214, true, true}, {311, 147, false, false}, {311, 66, false, false}, {0, 361, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 209, true, true}, + {349, 147, false, false}, {349, 66, false, false}, {0, 214, false, true}, {293, 214, false, false}, + {0, 214, true, true}, {311, 147, false, false}, {311, 66, false, false}, {0, 361, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 107, true, false}, {311, 102, false, false}, {293, 107, false, false}, + {277, 40, false, false}, {277, 66, false, false}, {261, 361, true, false}, {0, 71, false, false}, + {311, 357, false, false}, {0, 71, false, false}, {293, 357, true, false}, {0, 71, false, false}, + {0, 357, true, true}, {0, 71, false, false}, {0, 357, true, true}, {0, 71, false, false}, + {277, 357, false, false}, {0, 71, false, false}, {261, 156, true, false}, {369, 160, false, false}, + {349, 40, false, false}, {349, 66, false, false}, {329, 160, true, false}, {493, 160, false, false}, + {466, 40, false, false}, {466, 66, false, false}, {440, 321, true, false}, {311, 40, false, false}, + {311, 66, false, false}, {0, 111, false, false}, {0, 316, false, true}, {0, 321, true, true}, + {0, 40, false, true}, {0, 66, false, false}, {0, 218, true, false}, {0, 142, false, true}, + {0, 66, false, false}, {0, 361, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, {783, 357, false, true}, + {0, 285, false, false}, {880, 209, false, true}, {0, 218, false, false}, {783, 209, false, true}, + {0, 218, false, false}, {739, 209, false, true}, {783, 214, false, true}, {1046, 214, false, true}, + {1318, 361, false, false}, {0, 500, false, false}, {391, 209, false, false}, {523, 214, false, false}, + {698, 361, false, true}, {0, 285, false, false}, {783, 209, false, true}, {0, 218, false, false}, + {698, 209, false, true}, {0, 218, false, false}, {659, 209, true, true}, {698, 214, false, true}, + {987, 214, false, true}, {1174, 361, false, true}, {0, 500, false, false}, {391, 209, false, false}, + {493, 214, false, false}, {659, 361, true, true}, {0, 285, false, false}, {698, 209, false, true}, + {0, 218, false, false}, {659, 209, true, true}, {0, 218, false, false}, {622, 209, true, true}, + {659, 214, true, true}, {880, 214, false, true}, {1046, 361, false, true}, {0, 285, false, false}, + {880, 209, true, true}, {987, 214, false, true}, {1046, 214, false, true}, {1174, 214, false, true}, + {1046, 214, false, true}, {1174, 214, false, true}, {1046, 428, false, true}, {880, 214, false, true}, + {739, 214, true, true}, {587, 214, true, true}, {523, 214, true, true}, {440, 214, true, true}, + {0, 214, true, true}, {0, 969, false, true}, {0, 107, false, false}, {659, 308, false, false}, + {0, 61, false, false}, {0, 308, false, true}, {0, 61, false, false}, {659, 308, false, false}, + {0, 61, false, false}, {0, 308, false, true}, {0, 61, false, false}, {659, 308, false, false}, + {0, 61, false, false}, {554, 181, false, true}, {0, 127, false, true}, {0, 57, false, false}, + {493, 185, false, true}, {493, 127, false, true}, {0, 57, false, false}, {466, 185, false, false}, + {466, 127, false, false}, {261, 57, false, false}, {440, 185, false, true}, {440, 185, false, true}, + {440, 185, false, true}, {440, 96, false, true}, {0, 88, false, false}, {493, 312, false, true}, + {0, 61, false, false}, {440, 181, false, true}, {440, 127, false, true}, {0, 57, false, false}, + {293, 185, false, true}, {293, 185, false, true}, {293, 185, false, true}, {293, 185, false, true}, + {293, 281, false, true}, {0, 30, false, false}, {0, 61, false, false}, {0, 181, false, true}, + {0, 185, true, false}, {0, 185, true, true}, {0, 127, false, true}, {0, 57, false, false}, + {0, 92, true, true}, {0, 220, false, true}, {0, 57, false, false}, {329, 277, true, true}, + {329, 34, false, true}, {0, 57, false, false}, {293, 185, true, false}, {293, 127, false, true}, + {0, 57, false, false}, {0, 185, true, true}, {0, 185, false, true}, {0, 185, true, false}, + {0, 185, false, true}, {0, 281, true, true}, {0, 30, false, false}, {0, 61, false, false}, + {0, 308, true, true}, {0, 61, false, false}, {0, 181, true, true}, {0, 185, false, true}, + {0, 127, true, false}, {0, 57, false, false}, {0, 185, false, true}, {0, 185, true, false}, + {0, 127, false, true}, {0, 57, false, false}, {440, 185, true, false}, {440, 185, false, true}, + {440, 185, true, false}, {0, 185, false, true}, {0, 185, true, false}, {0, 127, false, true}, + {0, 57, false, false}, {0, 185, true, true}, {0, 127, false, true}, {0, 57, false, false}, + {440, 185, true, false}, {440, 127, false, true}, {0, 57, false, false}, {0, 185, true, true}, + {0, 185, false, true}, {0, 185, true, false}, {0, 96, false, true}, {0, 88, false, false}, + {0, 185, true, false}, {0, 185, false, true}, {440, 185, true, false}, {440, 127, false, true}, + {0, 57, false, false}, {329, 185, false, true}, {329, 185, true, true}, {329, 185, true, false}, + {329, 185, true, true}, {329, 281, true, true}, {0, 30, false, false}, {0, 61, false, false}, + {0, 181, true, true}, {0, 185, true, true}, {369, 92, false, true}, {369, 92, false, true}, + {369, 92, false, true}, {369, 92, false, true}, {369, 185, false, true}, {369, 96, false, true}, + {0, 88, false, false}, {493, 185, false, true}, {493, 127, false, true}, {0, 57, false, false}, + {440, 185, false, true}, {440, 127, false, true}, {0, 57, false, false}, {523, 92, false, true}, + {523, 92, false, true}, {523, 92, false, true}, {523, 92, false, true}, {523, 185, false, true}, + {523, 185, false, true}, {523, 185, false, true}, {523, 96, false, true}, {0, 88, false, false}, + {0, 185, false, true}, {0, 185, false, true}, {493, 92, false, true}, {493, 92, false, true}, + {493, 92, false, true}, {493, 34, false, true}, {0, 57, false, false}, {493, 185, false, true}, + {493, 127, false, true}, {0, 57, false, false}, {659, 185, false, true}, {659, 127, false, true}, + {0, 57, false, false}, {587, 185, false, true}, {587, 127, false, true}, {0, 57, false, false}, + {493, 92, false, true}, {493, 92, false, true}, {493, 92, false, true}, {493, 92, false, true}, + {493, 185, false, true}, {493, 185, false, true}, {493, 185, false, false}, {493, 96, false, true}, + {293, 88, false, false}, {0, 185, false, true}, {293, 185, false, true}, {440, 312, false, true}, + {440, 61, false, false}, {440, 123, false, true}, {0, 61, false, false}, {440, 123, false, false}, + {440, 61, false, false}, {440, 181, false, true}, {440, 127, false, true}, {0, 57, false, false}, + {0, 185, false, true}, {0, 185, false, true}, {0, 185, false, true}, {440, 185, false, true}, + {440, 185, false, true}, {440, 127, false, true}, {0, 57, false, false}, {0, 185, false, true}, + {0, 127, false, true}, {0, 57, false, false}, {329, 312, false, true}, {0, 61, false, false}, + {293, 308, false, true}, {293, 61, false, false}, {293, 308, false, true}, {293, 61, false, false}, + {293, 181, true, false}, {293, 185, false, true}, {293, 185, true, false}, {293, 185, false, true}, + {293, 185, true, false}, {293, 185, false, true}, {293, 185, true, false}, {293, 96, false, true}, + {0, 88, false, false}, {0, 185, false, true}, {0, 185, false, true}, {0, 312, false, true}, + {0, 61, false, false}, {440, 181, false, true}, {440, 185, false, true}, {440, 185, false, true}, + {440, 96, false, true}, {0, 88, false, false}, {493, 312, false, true}, {0, 61, false, false}, + {440, 181, false, true}, {440, 127, false, true}, {0, 57, false, false}, {293, 185, false, true}, + {293, 185, false, true}, {293, 185, false, true}, {293, 185, false, true}, {293, 281, false, true}, + {0, 30, false, false}, {0, 61, false, false}, {0, 181, false, true}, {0, 185, true, false}, + {0, 185, true, true}, {0, 127, false, true}, {0, 57, false, false}, {0, 92, true, true}, + {0, 220, false, true}, {0, 57, false, false}, {329, 277, true, true}, {329, 34, false, true}, + {0, 57, false, false}, {293, 185, true, false}, {293, 127, false, true}, {0, 57, false, false}, + {0, 185, true, true}, {0, 185, false, true}, {0, 185, true, false}, {0, 185, false, true}, + {0, 281, true, true}, {0, 30, false, false}, {0, 61, false, false}, {0, 308, true, true}, + {0, 61, false, false}, {0, 181, true, true}, {0, 185, false, true}, {0, 127, true, false}, + {0, 57, false, false}, {0, 185, false, true}, {0, 185, true, false}, {0, 127, false, true}, + {0, 57, false, false}, {440, 185, true, false}, {440, 185, false, true}, {440, 185, true, false}, + {0, 185, false, true}, {0, 185, true, false}, {0, 127, false, true}, {0, 57, false, false}, + {0, 185, true, true}, {0, 127, false, true}, {0, 57, false, false}, {440, 185, true, false}, + {440, 127, false, true}, {0, 57, false, false}, {0, 185, true, true}, {0, 185, false, true}, + {0, 185, true, false}, {0, 96, false, true}, {0, 88, false, false}, {0, 185, true, false}, + {0, 185, false, true}, {440, 185, true, false}, {440, 127, false, true}, {0, 57, false, false}, + {329, 185, false, true}, {329, 185, true, true}, {329, 185, true, false}, {329, 185, true, true}, + {329, 281, true, true}, {0, 30, false, false}, {0, 61, false, false}, {0, 181, true, true}, + {0, 185, true, true}, {369, 92, false, true}, {369, 92, false, true}, {369, 92, false, true}, + {369, 92, false, true}, {369, 185, false, true}, {369, 96, false, true}, {0, 88, false, false}, + {493, 185, false, true}, {493, 127, false, true}, {0, 57, false, false}, {440, 185, false, true}, + {440, 127, false, true}, {0, 57, false, false}, {523, 92, false, true}, {523, 92, false, true}, + {523, 92, false, true}, {523, 92, false, true}, {523, 185, false, true}, {523, 185, false, true}, + {523, 185, false, true}, {523, 96, false, true}, {0, 88, false, false}, {0, 185, false, true}, + {0, 185, false, true}, {493, 92, false, true}, {493, 92, false, true}, {493, 92, false, true}, + {493, 34, false, true}, {0, 57, false, false}, {493, 185, false, true}, {493, 127, false, true}, + {0, 57, false, false}, {659, 185, false, true}, {659, 127, false, true}, {0, 57, false, false}, + {587, 185, false, true}, {587, 127, false, true}, {0, 57, false, false}, {493, 92, false, true}, + {493, 92, false, true}, {493, 92, false, true}, {493, 92, false, true}, {493, 185, false, true}, + {493, 185, false, true}, {493, 185, false, false}, {493, 96, false, true}, {293, 88, false, false}, + {0, 185, false, true}, {293, 185, false, true}, {440, 312, false, true}, {440, 61, false, false}, + {440, 123, false, true}, {0, 61, false, false}, {440, 123, false, false}, {440, 61, false, false}, + {440, 181, false, true}, {440, 127, false, true}, {0, 57, false, false}, {0, 185, false, true}, + {0, 185, false, true}, {0, 185, false, true}, {440, 185, false, true}, {440, 185, false, true}, + {440, 127, false, true}, {0, 57, false, false}, {0, 185, false, true}, {0, 127, false, true}, + {0, 57, false, false}, {329, 312, false, true}, {0, 61, false, false}, {293, 308, false, true}, + {293, 61, false, false}, {293, 181, true, true}, {293, 185, true, false}, {293, 185, false, true}, + {293, 185, false, true}, {293, 185, true, false}, {293, 96, false, true}, {0, 88, false, false}, + {0, 185, false, true}, {587, 185, false, true}, {554, 185, true, false}, {587, 185, true, true}, + {659, 185, false, true}, {739, 185, false, true}, {783, 185, false, true}, {880, 185, false, true}, + {987, 277, false, true}, {987, 92, false, true}, {987, 185, false, true}, {987, 96, false, true}, + {0, 88, false, false}, {932, 312, false, true}, {932, 61, false, false}, {932, 277, false, true}, + {0, 30, false, false}, {0, 61, false, false}, {880, 273, false, true}, {880, 92, false, true}, + {880, 185, false, true}, {880, 96, false, true}, {0, 88, false, false}, {987, 185, false, true}, + {987, 127, false, true}, {0, 57, false, false}, {739, 92, false, true}, {739, 220, false, true}, + {0, 57, false, false}, {783, 277, false, true}, {783, 92, true, true}, {783, 185, false, true}, + {783, 96, true, true}, {0, 88, false, false}, {880, 312, true, true}, {880, 61, false, false}, + {880, 277, false, true}, {0, 30, false, false}, {0, 61, false, false}, {739, 181, false, true}, + {739, 185, true, true}, {739, 185, true, false}, {739, 96, true, true}, {0, 88, false, false}, + {0, 185, false, true}, {880, 185, true, true}, {987, 185, false, true}, {1108, 185, true, true}, + {1174, 312, true, true}, {1174, 61, false, false}, {1174, 277, false, true}, {0, 30, false, false}, + {0, 61, false, false}, {0, 185, true, true}, {1108, 123, false, false}, {1108, 57, false, false}, + {1174, 185, true, true}, {1318, 127, false, false}, {1318, 57, false, false}, {1479, 185, false, true}, + {1479, 185, true, true}, {1479, 185, true, false}, {1479, 96, false, true}, {0, 88, false, false}, + {880, 312, true, true}, {0, 61, false, false}, {1479, 308, true, true}, {0, 61, false, false}, + {1318, 181, false, true}, {1318, 185, true, true}, {1318, 185, false, true}, {1318, 96, true, true}, + {0, 88, false, false}, {1174, 185, false, true}, {1174, 127, true, true}, {0, 57, false, false}, + {1108, 185, false, true}, {1108, 127, true, true}, {0, 57, false, false}, {1174, 312, true, true}, + {1174, 61, false, false}, {1174, 308, true, false}, {1174, 61, false, false}, {1174, 181, false, true}, + {1174, 185, true, true}, {1174, 92, true, false}, {1174, 189, true, true}, {0, 88, false, false}, + {277, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, + {329, 92, true, false}, {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, + {277, 92, true, false}, {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, + {329, 92, true, false}, {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, + {277, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, + {391, 92, true, false}, {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, + {440, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, + {391, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, + {277, 92, true, true}, {293, 92, false, false}, {277, 92, false, false}, {293, 34, false, false}, + {293, 57, false, false}, {329, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, + {293, 92, false, false}, {277, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, + {293, 92, false, false}, {329, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, + {293, 92, false, false}, {277, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, + {293, 92, false, false}, {391, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, + {293, 92, false, false}, {440, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, + {293, 92, false, true}, {391, 92, false, true}, {293, 92, false, false}, {277, 92, true, true}, + {293, 92, false, false}, {880, 277, true, true}, {880, 34, true, true}, {0, 57, false, false}, + {0, 185, true, false}, {0, 185, true, true}, {880, 185, true, false}, {880, 127, true, true}, + {0, 57, false, false}, {0, 185, true, false}, {0, 185, true, true}, {880, 312, true, true}, + {0, 61, false, false}, {739, 181, true, false}, {739, 127, true, true}, {0, 57, false, false}, + {659, 185, false, true}, {659, 127, true, true}, {0, 57, false, false}, {622, 185, false, true}, + {622, 127, true, true}, {0, 57, false, false}, {587, 277, true, true}, {587, 34, true, true}, + {0, 57, false, false}, {0, 185, false, true}, {0, 185, true, true}, {587, 185, false, true}, + {587, 127, true, true}, {0, 57, false, false}, {0, 185, false, true}, {0, 185, true, true}, + {587, 185, false, true}, {587, 127, true, true}, {0, 57, false, false}, {0, 185, false, true}, + {493, 92, true, true}, {523, 92, false, false}, {587, 185, false, true}, {587, 127, true, true}, + {0, 57, false, false}, {659, 185, false, true}, {659, 127, true, true}, {0, 57, false, false}, + {587, 312, true, true}, {0, 61, false, false}, {0, 185, true, false}, {587, 123, false, false}, + {587, 57, false, false}, {739, 185, false, true}, {739, 127, true, true}, {0, 57, false, false}, + {880, 92, true, false}, {880, 220, true, true}, {0, 57, false, false}, {830, 312, true, true}, + {0, 61, false, false}, {880, 181, true, false}, {880, 127, true, true}, {0, 57, false, false}, + {830, 92, false, true}, {880, 92, false, false}, {830, 92, true, true}, {739, 92, false, false}, + {587, 185, false, true}, {440, 185, true, true}, {493, 277, true, true}, {554, 34, false, false}, + {554, 57, false, false}, {587, 185, false, true}, {587, 92, true, true}, {659, 92, false, false}, + {739, 92, true, true}, {698, 92, false, false}, {739, 92, false, false}, {783, 34, false, false}, + {783, 57, false, false}, {880, 92, true, true}, {783, 92, false, false}, {739, 92, false, false}, + {659, 34, false, false}, {659, 57, false, false}, {587, 92, false, true}, {554, 92, false, false}, + {587, 92, true, true}, {880, 92, false, false}, {554, 92, false, true}, {523, 92, false, false}, + {554, 92, true, true}, {880, 92, false, false}, {554, 92, false, true}, {523, 92, false, false}, + {493, 92, true, true}, {466, 92, false, false}, {440, 92, false, true}, {415, 92, false, false}, + {391, 92, true, true}, {329, 92, false, false}, {0, 2405, true, true}, {440, 293, false, false}, + {1174, 300, false, false}, {880, 300, false, false}, {830, 2557, false, false}, {0, 4251, false, false}, + {0, 100, false, false}, {0, 1800, true, true}, {440, 293, false, false}, {1174, 300, false, false}, + {880, 300, false, false}, {830, 2007, false, false}, {0, 100, false, false}, {1975, 500, false, false}, + {0, 3551, false, false}, {0, 150, false, false}, {0, 2401, true, true}, {440, 293, false, false}, + {1174, 300, false, false}, {880, 300, false, false}, {830, 1357, false, false}, {0, 150, false, false}, + {0, 150, true, true}, {440, 143, false, false}, {587, 150, false, false}, {880, 150, false, false}, + {830, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, {783, 150, false, false}, + {698, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {659, 150, false, false}, {391, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {587, 300, false, false}, {440, 150, false, false}, {587, 56, false, false}, {587, 93, false, false}, + {554, 300, true, true}, {391, 150, false, false}, {466, 56, false, false}, {466, 93, false, false}, + {440, 300, true, true}, {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, {466, 150, true, false}, + {391, 150, false, false}, {466, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {466, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, {698, 150, true, false}, + {880, 150, false, false}, {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, + {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {659, 150, true, false}, + {783, 150, false, false}, {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, + {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, {587, 150, true, true}, + {698, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, + {880, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, {554, 300, true, true}, + {783, 300, true, false}, {932, 300, true, false}, {880, 300, true, false}, {783, 1056, true, false}, + {0, 150, false, false}, {0, 150, true, true}, {1174, 143, false, false}, {1108, 150, false, false}, + {1174, 150, false, false}, {1244, 150, false, false}, {1174, 150, false, false}, {1108, 150, false, false}, + {830, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, + {698, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, + {554, 150, false, false}, {587, 506, false, false}, {0, 543, false, false}, {0, 150, false, true}, + {0, 150, false, true}, {0, 150, false, true}, {0, 150, true, false}, {0, 150, false, true}, + {0, 150, false, true}, {0, 150, false, true}, {0, 150, true, false}, {0, 150, true, false}, + {0, 300, true, true}, {0, 300, false, true}, {0, 300, true, true}, {391, 300, false, true}, + {0, 300, true, true}, {466, 300, false, true}, {440, 300, true, false}, {554, 300, false, true}, + {587, 150, true, false}, {440, 150, false, false}, {587, 150, false, false}, {880, 56, false, false}, + {880, 93, false, false}, {830, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, + {783, 150, false, false}, {698, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, + {698, 150, false, false}, {659, 150, false, false}, {391, 150, false, false}, {554, 150, false, false}, + {659, 150, false, false}, {587, 300, false, false}, {440, 150, false, false}, {587, 150, false, false}, + {554, 300, false, false}, {391, 150, false, false}, {466, 150, false, false}, {440, 300, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, {391, 150, false, false}, + {466, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, {554, 150, false, false}, + {659, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, {880, 150, false, false}, + {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {1174, 150, false, false}, + {880, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, {783, 150, false, false}, + {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, {1108, 150, false, false}, + {783, 150, false, false}, {659, 150, false, false}, {0, 156, true, true}, {440, 143, false, false}, + {587, 150, false, false}, {440, 150, false, false}, {698, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {440, 150, false, false}, {622, 150, true, true}, {391, 150, false, false}, + {587, 150, true, true}, {440, 150, false, false}, {622, 150, true, false}, {440, 150, false, false}, + {587, 150, true, false}, {440, 150, false, false}, {0, 156, true, false}, {391, 143, false, false}, + {554, 150, false, false}, {391, 150, false, false}, {0, 156, false, false}, {391, 143, false, false}, + {554, 150, false, false}, {391, 150, false, false}, {0, 156, false, false}, {391, 143, false, false}, + {554, 150, false, false}, {391, 150, false, false}, {0, 156, false, false}, {391, 143, false, false}, + {554, 150, false, false}, {391, 150, false, false}, {0, 156, true, false}, {415, 143, false, false}, + {493, 150, false, false}, {415, 150, false, false}, {587, 150, false, false}, {415, 150, false, false}, + {493, 150, false, false}, {415, 150, false, false}, {0, 156, true, false}, {415, 143, false, false}, + {493, 150, true, false}, {415, 150, false, false}, {554, 150, true, false}, {391, 150, false, false}, + {466, 150, true, false}, {391, 150, false, false}, {0, 156, true, true}, {440, 143, false, false}, + {587, 150, false, false}, {440, 150, false, false}, {698, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {440, 150, false, false}, {0, 156, false, false}, {440, 143, false, false}, + {587, 150, false, false}, {440, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, + {698, 150, false, false}, {880, 150, false, false}, {1174, 150, true, true}, {587, 150, false, false}, + {698, 150, false, false}, {587, 150, false, false}, {880, 150, false, false}, {587, 150, false, false}, + {698, 150, false, false}, {587, 150, false, false}, {880, 150, false, true}, {587, 150, false, false}, + {698, 300, false, true}, {880, 150, true, false}, {587, 150, false, false}, {698, 150, true, false}, + {587, 150, false, false}, {440, 150, true, true}, {554, 150, false, false}, {659, 150, false, false}, + {554, 150, false, false}, {783, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {554, 150, false, false}, {440, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {554, 150, false, false}, {783, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {554, 150, false, false}, {493, 150, true, true}, {587, 150, false, false}, {698, 150, false, false}, + {587, 150, false, false}, {830, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {587, 150, false, false}, {493, 150, true, false}, {587, 150, false, false}, {698, 150, true, false}, + {587, 150, false, false}, {783, 150, true, true}, {466, 150, false, false}, {554, 150, true, false}, + {466, 150, false, false}, {440, 150, true, true}, {587, 150, false, false}, {698, 150, false, false}, + {587, 150, false, false}, {880, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, + {698, 150, false, false}, {880, 300, false, false}, {880, 300, false, false}, {880, 300, false, false}, + {880, 156, false, false}, {880, 143, false, false}, {0, 156, false, false}, {349, 143, false, true}, + {349, 150, false, true}, {349, 150, false, true}, {329, 150, false, true}, {329, 150, false, true}, + {277, 150, false, true}, {277, 150, false, true}, {293, 150, false, true}, {293, 150, false, true}, + {349, 150, false, true}, {349, 150, false, true}, {329, 150, false, true}, {329, 150, false, true}, + {261, 150, false, true}, {261, 150, false, true}, {0, 156, false, false}, {466, 143, false, false}, + {466, 150, false, false}, {466, 150, false, false}, {587, 150, false, false}, {587, 150, false, false}, + {466, 150, false, false}, {466, 150, false, false}, {932, 150, false, false}, {932, 150, false, false}, + {783, 150, false, false}, {783, 150, false, false}, {1108, 150, false, false}, {1108, 150, false, false}, + {932, 150, false, false}, {932, 150, false, false}, {0, 156, true, true}, {440, 143, false, false}, + {587, 150, false, false}, {880, 150, false, false}, {830, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, {391, 150, false, false}, + {554, 150, false, false}, {659, 150, false, false}, {587, 300, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {554, 300, true, true}, {391, 150, false, false}, {466, 56, false, false}, + {466, 93, false, false}, {440, 300, true, true}, {440, 150, false, false}, {587, 150, false, false}, + {698, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {466, 150, true, false}, {391, 150, false, false}, {466, 150, false, false}, {554, 150, false, false}, + {659, 150, false, false}, {466, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {698, 150, true, false}, {880, 150, false, false}, {1174, 150, false, false}, {880, 150, false, false}, + {698, 150, false, false}, {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, + {659, 150, true, false}, {783, 150, false, false}, {1108, 150, false, false}, {783, 150, false, false}, + {659, 150, false, false}, {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, + {587, 150, true, true}, {698, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, + {587, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, + {554, 300, true, true}, {783, 300, true, false}, {932, 300, true, false}, {880, 300, true, false}, + {783, 1056, true, false}, {0, 150, false, false}, {0, 150, true, true}, {1174, 143, false, false}, + {1046, 150, false, false}, {1174, 150, false, false}, {1244, 150, false, false}, {1174, 150, false, false}, + {1046, 150, false, false}, {830, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, + {659, 150, false, false}, {698, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, + {659, 150, false, false}, {554, 150, false, false}, {587, 506, false, false}, {0, 543, false, false}, + {0, 150, false, true}, {0, 150, false, true}, {0, 150, false, true}, {0, 150, true, false}, + {0, 150, false, true}, {0, 150, false, true}, {0, 150, false, true}, {0, 150, true, false}, + {0, 150, true, false}, {0, 300, true, true}, {0, 300, false, true}, {0, 300, true, true}, + {391, 300, false, true}, {0, 300, true, true}, {466, 300, false, true}, {440, 300, true, false}, + {554, 300, false, true}, {587, 150, true, false}, {440, 150, false, false}, {587, 150, false, false}, + {880, 56, false, false}, {880, 93, false, false}, {830, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, {391, 150, false, false}, + {554, 150, false, false}, {659, 150, false, false}, {587, 150, false, false}, {349, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {554, 300, false, false}, {391, 150, false, false}, + {466, 150, false, false}, {440, 150, false, false}, {349, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, + {698, 150, false, false}, {659, 150, false, false}, {391, 150, false, false}, {466, 150, false, false}, + {554, 150, false, false}, {659, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {783, 150, false, false}, {698, 150, false, false}, {880, 150, false, false}, {1174, 150, false, false}, + {880, 150, false, false}, {698, 150, false, false}, {1174, 150, false, false}, {880, 150, false, false}, + {698, 150, false, false}, {659, 150, false, false}, {783, 150, false, false}, {1108, 150, false, false}, + {783, 150, false, false}, {659, 150, false, false}, {1108, 150, false, false}, {783, 150, false, false}, + {659, 150, false, false}, {0, 156, true, true}, {440, 143, false, false}, {587, 150, false, false}, + {440, 150, false, false}, {698, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, + {440, 150, false, false}, {622, 150, true, true}, {391, 150, false, false}, {587, 150, true, true}, + {440, 150, false, false}, {622, 150, true, false}, {440, 150, false, false}, {587, 150, true, false}, + {440, 150, false, false}, {0, 156, true, false}, {391, 143, false, false}, {554, 150, false, false}, + {391, 150, false, false}, {0, 156, false, false}, {391, 143, false, false}, {554, 150, false, false}, + {391, 150, false, false}, {0, 156, false, false}, {391, 143, false, false}, {554, 150, false, false}, + {391, 150, false, false}, {0, 156, false, false}, {391, 143, false, false}, {554, 150, false, false}, + {391, 150, false, false}, {0, 156, true, false}, {415, 143, false, false}, {493, 150, false, false}, + {415, 150, false, false}, {587, 150, false, false}, {415, 150, false, false}, {493, 150, false, false}, + {415, 150, false, false}, {0, 156, true, false}, {415, 143, false, false}, {493, 150, true, false}, + {415, 150, false, false}, {554, 150, true, false}, {391, 150, false, false}, {466, 150, true, false}, + {391, 150, false, false}, {0, 156, true, true}, {440, 143, false, false}, {587, 150, false, false}, + {440, 150, false, false}, {698, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, + {440, 150, false, false}, {0, 156, false, false}, {440, 143, false, false}, {587, 150, false, false}, + {440, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {880, 150, false, false}, {1174, 150, true, true}, {587, 150, false, false}, {698, 150, false, false}, + {587, 150, false, false}, {880, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {587, 150, false, false}, {880, 150, false, true}, {587, 150, false, false}, {698, 300, false, true}, + {880, 150, true, false}, {587, 150, false, false}, {698, 150, true, false}, {587, 150, false, false}, + {440, 150, true, true}, {554, 150, false, false}, {659, 150, false, false}, {554, 150, false, false}, + {783, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, {554, 150, false, false}, + {440, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, {554, 150, false, false}, + {783, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, {554, 150, false, false}, + {493, 150, true, true}, {587, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, + {830, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, + {493, 150, true, false}, {587, 150, false, false}, {698, 150, true, false}, {587, 150, false, false}, + {783, 150, true, true}, {466, 150, false, false}, {554, 150, true, false}, {466, 150, false, false}, + {440, 150, true, true}, {587, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, + {880, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {880, 300, false, false}, {880, 300, false, false}, {880, 300, false, false}, {880, 156, false, false}, + {880, 143, false, false}, {0, 156, false, false}, {349, 143, false, true}, {349, 150, false, true}, + {349, 150, false, true}, {329, 150, false, true}, {329, 150, false, true}, {277, 150, false, true}, + {277, 150, false, true}, {293, 150, false, true}, {293, 150, false, true}, {349, 150, false, true}, + {349, 150, false, true}, {329, 150, false, true}, {329, 150, false, true}, {277, 150, false, true}, + {277, 150, false, true}, {0, 156, false, false}, {440, 143, false, false}, {440, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {587, 150, false, false}, {440, 150, false, false}, + {440, 150, false, false}, {932, 150, false, false}, {932, 150, false, false}, {783, 150, false, false}, + {783, 150, false, false}, {1108, 150, false, false}, {1108, 150, false, false}, {932, 150, false, false}, + {932, 150, false, false}, {0, 906, false, false}, {293, 195, false, false}, {349, 200, false, false}, + {369, 100, false, false}, {391, 200, false, false}, {261, 200, false, true}, {261, 200, false, true}, + {261, 200, false, true}, {0, 100, false, true}, {261, 100, false, true}, {0, 104, false, false}, + {261, 195, false, true}, {0, 100, false, true}, {261, 100, false, true}, {0, 100, false, true}, + {261, 200, false, true}, {0, 200, false, true}, {0, 200, false, true}, {0, 200, false, true}, + {0, 100, false, true}, {0, 100, false, true}, {0, 104, false, false}, {0, 195, false, true}, + {0, 100, false, true}, {0, 100, false, true}, {0, 100, false, true}, {0, 200, false, true}, + {261, 200, false, true}, {261, 200, false, true}, {261, 200, false, true}, {0, 100, false, true}, + {261, 100, false, true}, {0, 104, false, false}, {261, 195, false, true}, {0, 100, false, true}, + {261, 100, false, true}, {0, 100, false, true}, {261, 200, false, true}, {0, 200, false, true}, + {0, 200, false, true}, {0, 200, false, true}, {0, 100, false, true}, {0, 100, false, true}, + {0, 104, false, false}, {0, 195, false, true}, {0, 100, false, true}, {0, 100, false, true}, + {0, 100, false, true}, {0, 200, false, true}, {261, 1504, false, true}, {0, 100, false, false}, + {329, 954, true, true}, {0, 409, false, false}, {329, 266, false, false}, {349, 204, false, false}, + {391, 210, false, false}, {391, 130, false, false}, {440, 960, true, false}, {0, 409, false, false}, + {440, 266, false, false}, {391, 204, false, false}, {349, 210, false, false}, {349, 130, false, false}, + {329, 960, true, true}, {0, 409, false, false}, {329, 266, false, false}, {349, 204, false, false}, + {391, 210, false, false}, {391, 130, false, false}, {440, 960, true, false}, {0, 136, false, false}, + {0, 272, true, false}, {493, 266, false, false}, {523, 204, false, false}, {587, 210, false, false}, + {587, 130, false, false}, {329, 960, true, true}, {0, 409, false, false}, {329, 266, false, false}, + {349, 204, false, false}, {391, 210, false, false}, {391, 130, false, false}, {440, 960, true, false}, + {0, 136, false, false}, {493, 266, true, false}, {493, 272, true, false}, {0, 210, false, false}, + {493, 335, true, false}, {329, 272, true, false}, {329, 272, true, false}, {329, 187, true, false}, + {0, 85, false, false}, {329, 272, true, false}, {349, 272, true, false}, {329, 272, true, false}, + {349, 272, true, false}, {391, 272, true, false}, {329, 272, true, false}, {329, 272, true, false}, + {329, 272, true, false}, {329, 142, true, false}, {0, 130, false, false}, {261, 272, true, false}, + {261, 187, true, false}, {0, 85, false, false}, {329, 272, true, false}, {391, 272, true, false}, + {440, 272, true, false}, {440, 187, true, false}, {0, 85, false, false}, {440, 272, true, false}, + {440, 272, true, false}, {493, 272, true, false}, {493, 187, true, false}, {0, 85, false, false}, + {587, 272, true, false}, {523, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, + {391, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, {391, 142, true, false}, + {0, 130, false, false}, {0, 136, true, false}, {0, 409, true, false}, {440, 272, true, false}, + {440, 272, true, false}, {440, 187, true, false}, {0, 85, false, false}, {440, 272, true, false}, + {493, 272, true, false}, {493, 187, true, false}, {0, 85, false, false}, {587, 272, true, false}, + {523, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, + {391, 142, true, false}, {0, 130, false, false}, {523, 272, true, false}, {523, 187, true, false}, + {0, 85, false, false}, {261, 272, true, false}, {293, 272, true, false}, {349, 272, true, false}, + {349, 272, true, false}, {349, 187, true, false}, {0, 85, false, false}, {391, 272, true, false}, + {391, 68, true, false}, {349, 204, false, false}, {349, 68, true, false}, {329, 204, false, false}, + {293, 272, true, false}, {261, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, + {391, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, + {391, 272, true, false}, {391, 142, true, false}, {0, 130, false, false}, {329, 272, true, false}, + {329, 272, true, false}, {329, 187, true, false}, {0, 85, false, false}, {329, 272, true, false}, + {349, 272, true, false}, {329, 272, true, false}, {349, 272, true, false}, {391, 272, true, false}, + {329, 272, true, false}, {329, 272, true, false}, {329, 272, true, false}, {329, 142, true, false}, + {0, 130, false, false}, {261, 272, true, false}, {261, 187, true, false}, {0, 85, false, false}, + {329, 272, true, false}, {391, 272, true, false}, {440, 272, true, false}, {440, 187, true, false}, + {0, 85, false, false}, {440, 272, true, false}, {440, 272, true, false}, {493, 272, true, false}, + {493, 187, true, false}, {0, 85, false, false}, {587, 272, true, false}, {523, 272, true, false}, + {391, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, + {391, 272, true, false}, {391, 142, true, false}, {0, 130, false, false}, {0, 136, true, false}, + {0, 409, true, false}, {440, 272, true, false}, {440, 272, true, false}, {440, 187, true, false}, + {0, 85, false, false}, {440, 272, true, false}, {493, 272, true, false}, {493, 187, true, false}, + {0, 85, false, false}, {587, 272, true, false}, {523, 272, true, false}, {391, 272, true, false}, + {391, 272, true, false}, {391, 272, true, false}, {391, 142, true, false}, {0, 130, false, false}, + {523, 272, true, false}, {523, 187, true, false}, {0, 85, false, false}, {523, 272, true, false}, + {587, 272, true, false}, {698, 272, true, false}, {698, 187, true, false}, {0, 85, false, false}, + {659, 272, true, false}, {659, 187, true, false}, {0, 85, false, false}, {493, 272, true, false}, + {493, 187, true, false}, {0, 85, false, false}, {0, 272, true, false}, {523, 272, true, false}, + {523, 272, true, false}, {523, 272, true, false}, {523, 272, true, false}, {523, 142, true, false}, + {0, 130, false, false}, {0, 272, true, false}, {0, 272, true, false}, {0, 272, true, false}, + {0, 272, true, false}, {523, 460, true, false}, {0, 272, false, false}, {0, 91, false, false}, + {587, 266, true, false}, {0, 551, false, false}, {659, 409, false, false}, {659, 45, false, false}, + {0, 91, false, false}, {493, 454, true, false}, {0, 272, false, false}, {0, 91, false, false}, + {391, 266, true, false}, {0, 551, false, false}, {329, 409, false, false}, {329, 45, false, false}, + {0, 91, false, false}, {440, 454, true, false}, {0, 272, false, false}, {0, 91, false, false}, + {493, 266, true, false}, {0, 551, false, false}, {523, 409, false, false}, {523, 45, false, false}, + {0, 91, false, false}, {391, 454, true, false}, {0, 272, false, false}, {0, 91, false, false}, + {0, 1227, true, false}, {0, 136, false, false}, {349, 454, true, false}, {0, 363, false, false}, + {391, 266, false, false}, {0, 415, false, false}, {0, 136, false, false}, {440, 454, true, false}, + {0, 91, false, false}, {391, 454, true, false}, {0, 363, false, false}, {493, 266, false, false}, + {0, 415, false, false}, {0, 136, false, false}, {523, 454, true, false}, {0, 91, false, false}, + {440, 454, true, false}, {0, 1046, false, false}, {0, 136, false, false}, {523, 454, true, false}, + {0, 91, false, false}, {587, 454, true, false}, {0, 1591, false, false}, {0, 136, false, false}, + {659, 266, true, false}, {587, 272, true, false}, {659, 272, true, false}, {698, 272, true, false}, + {783, 272, true, false}, {783, 187, true, false}, {0, 85, false, false}, {659, 272, true, false}, + {587, 272, true, false}, {587, 272, true, false}, {587, 272, true, false}, {587, 187, true, false}, + {0, 85, false, false}, {523, 272, true, false}, {523, 272, true, false}, {523, 187, true, false}, + {0, 85, false, false}, {659, 272, true, false}, {783, 272, true, false}, {880, 272, true, false}, + {783, 272, true, false}, {880, 272, true, false}, {987, 272, true, false}, {1046, 272, true, false}, + {1046, 187, true, false}, {0, 85, false, false}, {783, 272, true, false}, {698, 272, true, false}, + {659, 272, true, false}, {659, 187, true, false}, {0, 85, false, false}, {659, 272, true, false}, + {698, 272, true, false}, {587, 272, true, false}, {587, 272, true, false}, {587, 272, true, false}, + {587, 142, true, false}, {0, 130, false, false}, {659, 272, true, false}, {587, 272, true, false}, + {659, 272, true, false}, {698, 272, true, false}, {783, 272, true, false}, {783, 187, true, false}, + {0, 85, false, false}, {659, 272, true, false}, {587, 272, true, false}, {587, 272, true, false}, + {587, 272, true, false}, {587, 187, true, false}, {0, 85, false, false}, {523, 272, true, false}, + {523, 272, true, false}, {523, 187, true, false}, {0, 85, false, false}, {659, 272, true, false}, + {783, 272, true, false}, {880, 272, true, false}, {783, 272, true, false}, {880, 272, true, false}, + {987, 272, true, false}, {1046, 272, true, false}, {1046, 187, true, false}, {0, 85, false, false}, + {783, 272, true, false}, {698, 272, true, false}, {698, 272, true, false}, {659, 272, true, false}, + {587, 272, true, false}, {523, 272, true, false}, {783, 272, true, false}, {783, 187, true, false}, + {0, 85, false, false}, {391, 272, true, false}, {391, 187, true, false}, {0, 85, false, false}, + {659, 272, true, false}, {659, 272, true, false}, {659, 187, true, false}, {0, 85, false, false}, + {659, 272, true, false}, {698, 272, true, false}, {659, 272, true, false}, {698, 272, true, false}, + {783, 272, true, false}, {659, 272, true, false}, {659, 272, true, false}, {659, 272, true, false}, + {659, 142, true, false}, {0, 130, false, false}, {523, 272, true, false}, {523, 187, true, false}, + {0, 85, false, false}, {659, 272, true, false}, {783, 272, true, false}, {880, 272, true, false}, + {880, 187, true, false}, {0, 85, false, false}, {880, 272, true, false}, {880, 272, true, false}, + {987, 272, true, false}, {987, 187, true, false}, {0, 85, false, false}, {1174, 272, true, false}, + {1046, 272, true, false}, {783, 272, true, false}, {783, 272, true, false}, {783, 272, true, false}, + {783, 272, true, false}, {783, 272, true, false}, {783, 142, true, false}, {0, 130, false, false}, + {0, 136, true, false}, {0, 409, true, false}, {880, 272, true, false}, {880, 272, true, false}, + {880, 187, true, false}, {0, 85, false, false}, {880, 272, true, false}, {987, 272, true, false}, + {987, 187, true, false}, {0, 85, false, false}, {1174, 272, true, false}, {1046, 272, true, false}, + {783, 272, true, false}, {783, 272, true, false}, {783, 272, true, false}, {783, 142, true, false}, + {0, 130, false, false}, {1046, 272, true, false}, {1046, 187, true, false}, {0, 85, false, false}, + {523, 272, true, false}, {587, 272, true, false}, {698, 272, true, false}, {698, 272, true, false}, + {698, 187, true, false}, {0, 85, false, false}, {783, 272, true, false}, {783, 68, true, false}, + {698, 204, false, false}, {698, 68, true, false}, {659, 204, false, false}, {587, 272, true, false}, + {523, 272, true, false}, {783, 272, true, false}, {783, 272, true, false}, {783, 272, true, false}, + {783, 272, true, false}, {783, 272, true, false}, {783, 272, true, false}, {783, 272, true, false}, + {783, 142, true, false}, {0, 130, false, false}, {329, 272, true, false}, {329, 272, true, false}, + {329, 187, true, false}, {0, 85, false, false}, {329, 272, true, false}, {349, 272, true, false}, + {329, 272, true, false}, {349, 272, true, false}, {391, 272, true, false}, {329, 272, true, false}, + {329, 272, true, false}, {329, 272, true, false}, {329, 142, true, false}, {0, 130, false, false}, + {261, 272, true, false}, {261, 187, true, false}, {0, 85, false, false}, {329, 272, true, false}, + {391, 272, true, false}, {440, 272, true, false}, {440, 187, true, false}, {0, 85, false, false}, + {440, 272, true, false}, {440, 272, true, false}, {493, 272, true, false}, {493, 187, true, false}, + {0, 85, false, false}, {587, 272, true, false}, {523, 272, true, false}, {391, 272, true, false}, + {391, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, + {391, 142, true, false}, {0, 130, false, false}, {0, 136, true, false}, {0, 409, true, false}, + {440, 272, true, false}, {440, 272, true, false}, {440, 187, true, false}, {0, 85, false, false}, + {440, 272, true, false}, {493, 272, true, false}, {493, 187, true, false}, {0, 85, false, false}, + {587, 272, true, false}, {523, 272, true, false}, {391, 272, true, false}, {391, 272, true, false}, + {391, 272, true, false}, {391, 142, true, false}, {0, 130, false, false}, {523, 272, true, false}, + {523, 187, true, false}, {0, 85, false, false}, {523, 272, true, false}, {587, 272, true, false}, + {698, 272, true, false}, {698, 187, true, false}, {0, 85, false, false}, {659, 272, true, false}, + {659, 187, true, false}, {0, 85, false, false}, {493, 272, true, false}, {493, 187, true, false}, + {0, 85, false, false}, {0, 272, true, false}, {523, 272, true, false}, {523, 272, true, false}, + {523, 272, true, false}, {523, 272, true, false}, {523, 142, true, false}, {0, 130, false, false}, + {0, 272, true, false}, {0, 272, true, false}, {0, 272, true, false}, {0, 272, true, false}, + {523, 460, true, false}, {0, 272, false, false}, {0, 91, false, false}, {587, 266, true, false}, + {0, 551, false, false}, {659, 409, false, false}, {659, 45, false, false}, {0, 91, false, false}, + {493, 454, true, false}, {0, 272, false, false}, {0, 91, false, false}, {391, 266, true, false}, + {0, 551, false, false}, {329, 409, false, false}, {329, 45, false, false}, {0, 91, false, false}, + {440, 454, true, false}, {0, 272, false, false}, {0, 91, false, false}, {493, 266, true, false}, + {0, 551, false, false}, {523, 409, false, false}, {523, 45, false, false}, {0, 91, false, false}, + {391, 454, true, false}, {0, 272, false, false}, {0, 91, false, false}, {0, 1227, true, false}, + {0, 136, false, false}, {349, 454, true, false}, {0, 363, false, false}, {391, 266, false, false}, + {0, 415, false, false}, {0, 136, false, false}, {440, 454, true, false}, {0, 91, false, false}, + {391, 454, true, false}, {0, 363, false, false}, {493, 266, false, false}, {0, 415, false, false}, + {0, 136, false, false}, {523, 454, true, false}, {0, 91, false, false}, {440, 454, true, false}, + {0, 1046, false, false}, {0, 136, false, false}, {523, 454, true, false}, {0, 91, false, false}, + {587, 454, true, false}, {0, 1591, false, false}, {0, 136, false, false}, {659, 266, true, false}, + {587, 272, true, false}, {659, 272, true, false}, {698, 272, true, false}, {783, 272, true, false}, + {783, 187, true, false}, {0, 85, false, false}, {659, 272, true, false}, {587, 272, true, false}, + {587, 272, true, false}, {587, 272, true, false}, {587, 187, true, false}, {0, 85, false, false}, + {523, 272, true, false}, {523, 272, true, false}, {523, 187, true, false}, {0, 85, false, false}, + {659, 272, true, false}, {783, 272, true, false}, {880, 272, true, false}, {783, 272, true, false}, + {880, 272, true, false}, {987, 272, true, false}, {1046, 272, true, false}, {1046, 187, true, false}, + {0, 85, false, false}, {783, 272, true, false}, {698, 272, true, false}, {659, 272, true, false}, + {659, 187, true, false}, {0, 85, false, false}, {659, 272, true, false}, {698, 272, true, false}, + {587, 272, true, false}, {587, 272, true, false}, {587, 272, true, false}, {587, 142, true, false}, + {0, 130, false, false}, {659, 272, true, false}, {587, 272, true, false}, {659, 272, true, false}, + {698, 272, true, false}, {783, 272, true, false}, {783, 187, true, false}, {0, 85, false, false}, + {659, 272, true, false}, {587, 272, true, false}, {587, 272, true, false}, {587, 272, true, false}, + {587, 187, true, false}, {0, 85, false, false}, {523, 272, true, false}, {523, 272, true, false}, + {523, 187, true, false}, {0, 85, false, false}, {659, 272, true, false}, {783, 272, true, false}, + {880, 272, true, false}, {783, 272, true, false}, {880, 272, true, false}, {987, 272, true, false}, + {1046, 272, true, false}, {1046, 187, true, false}, {0, 85, false, false}, {783, 272, true, false}, + {698, 272, true, false}, {698, 272, true, false}, {659, 272, true, false}, {587, 272, true, false}, + {523, 272, true, false}, {783, 272, true, false}, {783, 187, true, false}, {0, 85, false, false}, + {391, 272, true, false}, {391, 187, true, false}, {0, 85, false, false}, {698, 272, true, false}, + {622, 272, true, false}, {698, 272, true, false}, {739, 272, true, false}, {830, 272, true, false}, + {830, 187, true, false}, {0, 85, false, false}, {698, 272, true, false}, {622, 272, true, false}, + {622, 272, true, false}, {622, 272, true, false}, {622, 187, true, false}, {0, 85, false, false}, + {554, 272, true, false}, {554, 272, true, false}, {554, 187, true, false}, {0, 85, false, false}, + {698, 272, true, false}, {830, 272, true, false}, {932, 272, true, false}, {830, 272, true, false}, + {932, 272, true, false}, {1046, 272, true, false}, {1108, 272, true, false}, {1108, 187, true, false}, + {0, 85, false, false}, {830, 272, true, false}, {739, 272, true, false}, {698, 272, true, false}, + {698, 187, true, false}, {0, 85, false, false}, {698, 272, true, false}, {739, 272, true, false}, + {622, 272, true, false}, {622, 272, true, false}, {622, 272, true, false}, {622, 142, true, false}, + {0, 130, false, false}, {698, 272, true, false}, {622, 272, true, false}, {698, 272, true, false}, + {739, 272, true, false}, {830, 272, true, false}, {830, 187, true, false}, {0, 85, false, false}, + {698, 272, true, false}, {622, 272, true, false}, {622, 272, true, false}, {622, 272, true, false}, + {622, 187, true, false}, {0, 85, false, false}, {554, 272, true, false}, {554, 272, true, false}, + {554, 187, true, false}, {0, 85, false, false}, {698, 272, true, false}, {830, 272, true, false}, + {932, 272, true, false}, {830, 272, true, false}, {932, 272, true, false}, {1046, 272, true, false}, + {1108, 272, true, false}, {1108, 187, true, false}, {0, 85, false, false}, {830, 272, true, false}, + {739, 272, true, false}, {739, 272, true, false}, {698, 272, true, false}, {622, 272, true, false}, + {554, 272, true, false}, {830, 272, true, false}, {830, 187, true, false}, {0, 85, false, false}, + {523, 272, true, false}, {523, 187, true, false}, {0, 85, false, false}, {349, 960, true, true}, + {0, 409, false, false}, {349, 266, false, false}, {369, 204, false, false}, {415, 210, false, false}, + {415, 130, false, false}, {466, 960, true, false}, {0, 409, false, false}, {466, 266, false, false}, + {415, 204, false, false}, {369, 210, false, false}, {369, 130, false, false}, {349, 960, true, true}, + {0, 409, false, false}, {349, 266, false, false}, {369, 204, false, false}, {415, 210, false, false}, + {415, 130, false, false}, {466, 960, true, false}, {0, 409, false, false}, {466, 266, false, false}, + {415, 204, false, false}, {369, 210, false, false}, {369, 130, false, false}, {349, 960, true, true}, + {0, 409, false, false}, {349, 266, false, false}, {369, 204, false, false}, {415, 210, false, false}, + {415, 130, false, false}, {466, 960, true, false}, {0, 136, false, false}, {554, 954, false, false}, + {554, 341, false, false}, {554, 62, true, false}, {415, 68, false, false}, {554, 210, false, false}, + {554, 954, false, false}, {0, 682, false, false}, {0, 454, true, false}, + {0, 2000, false, false} +}; + +// Converted from: potc_3.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_potc_3[] = { + {293, 249, false, false}, {0, 49, false, false}, {293, 146, false, false}, {293, 253, false, false}, + {0, 49, false, false}, {293, 146, false, false}, {293, 253, false, false}, {0, 49, false, false}, + {293, 146, false, false}, {293, 149, false, false}, {293, 149, false, false}, {293, 149, false, false}, + {293, 253, false, false}, {0, 49, false, false}, {293, 146, false, false}, {293, 253, false, false}, + {0, 49, false, false}, {293, 146, false, false}, {293, 253, false, false}, {0, 49, false, false}, + {293, 146, false, false}, {293, 149, false, false}, {293, 149, false, false}, {293, 149, false, false}, + {293, 253, true, false}, {0, 49, false, false}, {293, 146, false, false}, {293, 253, false, false}, + {0, 49, false, false}, {293, 75, false, false}, {293, 71, false, false}, {293, 253, true, false}, + {0, 49, false, false}, {293, 99, false, false}, {293, 46, false, false}, {293, 149, true, false}, + {0, 149, false, true}, {261, 103, false, false}, {261, 46, false, false}, {293, 253, true, true}, + {0, 49, false, false}, {293, 146, true, true}, {293, 103, true, true}, {0, 49, false, false}, + {293, 99, false, true}, {293, 46, false, false}, {329, 149, true, true}, {349, 253, true, true}, + {0, 49, false, false}, {349, 146, true, true}, {349, 103, true, false}, {0, 49, false, false}, + {349, 99, false, true}, {349, 46, false, false}, {391, 149, true, false}, {329, 253, true, true}, + {0, 49, false, false}, {329, 146, true, true}, {329, 103, true, false}, {0, 49, false, false}, + {293, 99, false, true}, {293, 46, false, false}, {261, 149, true, true}, {261, 149, true, true}, + {293, 103, false, true}, {293, 49, false, false}, {293, 99, true, true}, {0, 46, false, false}, + {0, 153, true, true}, {0, 99, false, true}, {0, 46, false, false}, {261, 149, true, true}, + {293, 253, true, true}, {0, 49, false, false}, {293, 146, true, true}, {293, 103, true, false}, + {0, 49, false, false}, {293, 99, false, true}, {293, 46, false, false}, {329, 149, true, true}, + {349, 253, true, true}, {0, 49, false, false}, {349, 146, true, true}, {349, 103, true, false}, + {0, 49, false, false}, {349, 99, false, false}, {349, 46, false, false}, {391, 149, true, false}, + {329, 253, true, false}, {0, 49, false, false}, {329, 146, true, false}, {329, 103, true, false}, + {0, 49, false, false}, {293, 99, false, true}, {293, 46, false, false}, {261, 149, true, false}, + {293, 253, true, true}, {0, 49, false, false}, {0, 146, true, true}, {0, 153, true, true}, + {0, 99, false, true}, {0, 46, false, false}, {261, 149, true, true}, {293, 253, true, true}, + {0, 49, false, false}, {293, 146, true, true}, {293, 103, true, true}, {0, 49, false, false}, + {293, 99, false, true}, {293, 46, false, false}, {349, 149, true, true}, {391, 253, true, true}, + {0, 49, false, false}, {391, 146, true, true}, {391, 103, true, false}, {0, 49, false, false}, + {391, 99, false, false}, {391, 46, false, false}, {440, 149, true, false}, {466, 253, true, false}, + {0, 49, false, false}, {466, 146, true, false}, {466, 103, true, false}, {0, 49, false, false}, + {440, 99, false, false}, {440, 46, false, false}, {391, 149, true, false}, {440, 149, true, true}, + {293, 103, false, false}, {293, 49, false, false}, {293, 99, true, true}, {0, 46, false, false}, + {0, 153, true, true}, {293, 99, false, false}, {293, 46, false, false}, {329, 149, true, true}, + {349, 253, true, true}, {0, 49, false, false}, {349, 146, true, true}, {349, 103, true, false}, + {0, 49, false, false}, {391, 99, false, true}, {391, 49, false, false}, {391, 99, true, false}, + {0, 46, false, false}, {440, 149, true, true}, {293, 103, false, false}, {293, 49, false, false}, + {293, 99, true, true}, {0, 46, false, false}, {0, 153, true, true}, {293, 99, false, false}, + {293, 46, false, false}, {349, 149, true, true}, {329, 253, true, true}, {0, 49, false, false}, + {329, 146, true, true}, {329, 103, true, false}, {0, 49, false, false}, {349, 99, false, false}, + {349, 46, false, false}, {293, 149, true, true}, {329, 149, true, true}, {0, 103, false, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 153, true, false}, {440, 99, false, false}, + {440, 46, false, false}, {523, 149, true, false}, {587, 253, true, true}, {0, 49, false, false}, + {587, 146, true, true}, {587, 103, true, true}, {0, 49, false, false}, {587, 99, false, false}, + {587, 46, false, false}, {659, 149, true, false}, {698, 253, true, false}, {0, 49, false, false}, + {698, 146, true, false}, {698, 103, true, false}, {0, 49, false, false}, {698, 99, false, false}, + {698, 46, false, false}, {783, 149, true, false}, {659, 253, true, false}, {0, 49, false, false}, + {659, 146, true, false}, {659, 103, true, false}, {0, 49, false, false}, {587, 99, false, false}, + {587, 46, false, false}, {523, 149, true, false}, {523, 149, true, true}, {587, 103, false, false}, + {587, 49, false, false}, {587, 99, true, true}, {0, 46, false, false}, {0, 153, true, true}, + {440, 99, false, false}, {440, 46, false, false}, {523, 149, true, true}, {587, 253, true, false}, + {0, 49, false, false}, {587, 146, true, false}, {587, 103, true, false}, {0, 49, false, false}, + {587, 99, false, false}, {587, 46, false, false}, {659, 149, true, false}, {698, 253, true, false}, + {0, 49, false, false}, {698, 146, true, false}, {698, 103, true, false}, {0, 49, false, false}, + {698, 99, false, false}, {698, 46, false, false}, {783, 149, true, false}, {659, 253, true, false}, + {0, 49, false, false}, {659, 146, true, false}, {659, 103, true, false}, {0, 49, false, false}, + {587, 99, false, false}, {587, 46, false, false}, {523, 149, true, false}, {587, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 153, true, true}, {440, 99, false, false}, + {440, 46, false, false}, {523, 149, true, true}, {587, 253, true, true}, {0, 49, false, false}, + {587, 146, true, true}, {587, 103, true, true}, {0, 49, false, false}, {587, 99, false, false}, + {587, 46, false, false}, {698, 149, true, true}, {783, 253, true, false}, {0, 49, false, false}, + {783, 146, true, false}, {783, 103, true, false}, {0, 49, false, false}, {783, 99, false, false}, + {783, 46, false, false}, {880, 149, true, false}, {932, 253, true, false}, {0, 49, false, false}, + {932, 146, true, false}, {932, 103, true, false}, {0, 49, false, false}, {880, 99, false, false}, + {880, 46, false, false}, {783, 149, true, false}, {880, 149, true, true}, {587, 103, false, false}, + {587, 49, false, false}, {587, 99, true, true}, {0, 46, false, false}, {0, 153, true, true}, + {587, 99, false, false}, {587, 46, false, false}, {659, 149, true, true}, {698, 253, true, false}, + {0, 49, false, false}, {698, 146, true, false}, {698, 103, true, false}, {0, 49, false, false}, + {783, 99, false, false}, {783, 49, false, false}, {783, 99, true, false}, {0, 46, false, false}, + {880, 149, true, true}, {587, 103, false, false}, {587, 49, false, false}, {587, 99, true, true}, + {0, 46, false, false}, {0, 153, true, true}, {587, 99, false, false}, {587, 46, false, false}, + {698, 149, true, true}, {659, 253, true, false}, {0, 49, false, false}, {659, 146, true, false}, + {659, 103, true, false}, {0, 49, false, false}, {587, 99, false, false}, {587, 46, false, false}, + {554, 149, true, false}, {587, 253, true, true}, {0, 49, false, false}, {587, 249, true, true}, + {0, 49, false, false}, {659, 249, true, false}, {0, 49, false, false}, {698, 249, true, false}, + {0, 49, false, false}, {698, 146, true, false}, {698, 103, false, false}, {698, 46, false, false}, + {783, 253, true, false}, {0, 49, false, false}, {880, 146, true, false}, {698, 103, false, false}, + {698, 46, false, false}, {0, 149, true, false}, {0, 153, true, false}, {698, 99, false, false}, + {698, 46, false, false}, {587, 149, true, false}, {440, 149, true, false}, {0, 103, false, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 253, true, false}, {0, 49, false, false}, + {0, 146, true, false}, {932, 149, true, false}, {0, 103, false, false}, {0, 49, false, false}, + {0, 146, true, false}, {0, 153, true, false}, {783, 99, false, false}, {783, 46, false, false}, + {587, 149, true, false}, {466, 149, true, false}, {0, 103, false, false}, {0, 49, false, false}, + {0, 146, true, false}, {0, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {329, 149, true, false}, {329, 103, false, false}, {329, 49, false, false}, {329, 99, true, false}, + {0, 46, false, false}, {293, 253, true, true}, {293, 49, false, false}, {293, 99, true, false}, + {0, 46, false, false}, {349, 253, true, true}, {349, 49, false, false}, {349, 99, true, false}, + {0, 46, false, false}, {0, 153, true, false}, {349, 99, false, false}, {349, 46, false, false}, + {391, 149, true, false}, {440, 253, true, true}, {0, 49, false, false}, {440, 146, true, true}, + {440, 103, true, true}, {0, 49, false, false}, {440, 99, false, false}, {440, 49, false, false}, + {440, 99, true, true}, {0, 46, false, false}, {466, 149, true, true}, {440, 103, false, false}, + {440, 46, false, false}, {0, 149, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {0, 149, true, true}, {391, 253, true, false}, {0, 49, false, false}, {391, 146, true, false}, + {391, 103, true, false}, {0, 49, false, false}, {391, 99, false, false}, {391, 49, false, false}, + {391, 99, true, false}, {0, 46, false, false}, {391, 149, true, true}, {440, 103, false, false}, + {440, 46, false, false}, {0, 149, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {0, 149, true, true}, {440, 253, true, true}, {0, 49, false, false}, {440, 146, true, true}, + {440, 103, true, true}, {0, 49, false, false}, {440, 99, false, false}, {440, 49, false, false}, + {440, 99, true, true}, {0, 46, false, false}, {466, 149, true, true}, {440, 103, false, false}, + {440, 46, false, false}, {0, 149, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {0, 149, true, true}, {391, 253, true, false}, {0, 49, false, false}, {349, 146, true, false}, + {349, 103, true, false}, {0, 49, false, false}, {329, 99, false, true}, {329, 49, false, false}, + {329, 99, true, false}, {0, 46, false, false}, {293, 253, true, true}, {0, 49, false, false}, + {0, 146, true, true}, {0, 153, true, true}, {293, 99, false, false}, {293, 46, false, false}, + {329, 149, true, true}, {349, 253, true, true}, {349, 49, false, false}, {349, 146, true, true}, + {349, 78, true, true}, {0, 75, false, false}, {391, 99, false, false}, {391, 46, false, false}, + {440, 149, true, true}, {391, 253, true, false}, {0, 49, false, false}, {349, 146, true, false}, + {349, 103, true, false}, {0, 46, false, false}, {329, 149, true, false}, {329, 103, true, false}, + {0, 46, false, false}, {349, 253, true, true}, {0, 49, false, false}, {391, 146, true, true}, + {391, 103, true, true}, {0, 46, false, false}, {440, 149, true, true}, {440, 103, true, true}, + {0, 46, false, false}, {391, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {349, 149, true, false}, {391, 149, true, false}, {440, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 149, true, true}, {391, 149, true, true}, + {349, 149, true, true}, {329, 253, true, false}, {0, 49, false, false}, {349, 146, true, false}, + {349, 103, true, false}, {0, 46, false, false}, {329, 149, true, false}, {329, 103, true, false}, + {0, 46, false, false}, {293, 253, true, true}, {0, 49, false, false}, {0, 146, true, true}, + {0, 153, true, true}, {329, 99, false, false}, {329, 46, false, false}, {261, 149, true, true}, + {293, 149, true, true}, {0, 103, false, false}, {0, 49, false, false}, {0, 146, true, true}, + {0, 149, true, true}, {587, 149, true, true}, {659, 149, true, true}, {698, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 149, true, true}, {659, 149, true, true}, + {698, 149, true, true}, {783, 253, true, false}, {0, 49, false, false}, {698, 146, true, false}, + {698, 103, true, false}, {0, 46, false, false}, {783, 149, true, false}, {783, 103, true, false}, + {0, 46, false, false}, {880, 253, true, true}, {0, 49, false, false}, {783, 146, true, true}, + {783, 103, true, true}, {0, 46, false, false}, {698, 149, true, true}, {698, 103, true, true}, + {0, 46, false, false}, {587, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {587, 149, true, false}, {659, 149, true, false}, {698, 253, true, true}, + {0, 49, false, false}, {783, 146, true, true}, {783, 103, true, true}, {0, 46, false, false}, + {880, 149, true, true}, {880, 103, true, true}, {0, 46, false, false}, {932, 253, true, false}, + {0, 49, false, false}, {587, 146, true, false}, {587, 103, true, false}, {0, 46, false, false}, + {783, 149, true, false}, {783, 103, true, false}, {0, 46, false, false}, {698, 253, true, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 149, true, false}, {783, 149, true, false}, + {659, 149, true, false}, {587, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {659, 149, true, false}, {554, 149, true, false}, {880, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {0, 149, true, true}, {932, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 149, true, false}, {880, 253, true, true}, + {0, 49, false, false}, {880, 146, true, true}, {880, 103, true, true}, {0, 49, false, false}, + {880, 99, false, false}, {880, 49, false, false}, {880, 99, true, true}, {0, 46, false, false}, + {880, 149, true, false}, {783, 103, false, false}, {783, 46, false, false}, {0, 149, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 149, true, false}, {783, 253, true, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 149, true, false}, {0, 149, true, false}, + {0, 149, true, false}, {698, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 149, true, false}, {698, 253, true, false}, + {0, 49, false, false}, {783, 146, true, false}, {783, 103, true, false}, {0, 46, false, false}, + {659, 149, true, false}, {659, 103, true, false}, {0, 46, false, false}, {587, 253, true, true}, + {587, 49, false, false}, {587, 99, true, true}, {0, 46, false, false}, {587, 149, true, true}, + {659, 149, true, true}, {698, 149, true, true}, {880, 253, true, true}, {880, 49, false, false}, + {880, 99, true, true}, {0, 46, false, false}, {587, 149, true, true}, {659, 149, true, true}, + {698, 149, true, true}, {932, 253, true, false}, {932, 49, false, false}, {932, 99, true, false}, + {0, 46, false, false}, {587, 149, true, false}, {659, 149, true, false}, {698, 149, true, false}, + {880, 253, true, true}, {0, 49, false, false}, {880, 146, true, true}, {880, 103, true, true}, + {0, 46, false, false}, {1046, 149, true, true}, {1046, 103, true, true}, {0, 46, false, false}, + {880, 149, true, false}, {783, 103, false, false}, {783, 46, false, false}, {0, 149, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 149, true, false}, {783, 253, true, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 149, true, false}, {0, 149, true, false}, + {0, 149, true, false}, {698, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 149, true, false}, {698, 253, true, false}, + {0, 49, false, false}, {783, 146, true, false}, {783, 103, true, false}, {0, 46, false, false}, + {659, 149, true, false}, {659, 103, true, false}, {0, 46, false, false}, {587, 403, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {293, 1128, true, false}, + {0, 2000, false, false} +}; + + +// Converted from: potc_2.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_potc_2[] = { + {0, 296, false, true}, {0, 149, false, true}, {0, 300, false, true}, {0, 149, false, true}, + {0, 300, false, true}, {0, 149, false, true}, {0, 149, false, true}, {0, 149, false, true}, + {0, 149, false, true}, {0, 300, false, true}, {0, 149, false, true}, {0, 300, false, true}, + {0, 149, false, true}, {0, 300, false, true}, {0, 149, false, true}, {0, 149, false, true}, + {0, 149, false, true}, {0, 149, false, true}, {293, 300, false, true}, {293, 149, false, true}, + {293, 300, false, true}, {293, 149, false, true}, {293, 300, false, true}, {293, 149, false, true}, + {293, 149, false, true}, {293, 149, false, true}, {293, 149, false, true}, {293, 300, false, true}, + {293, 149, false, true}, {293, 300, false, true}, {293, 149, false, true}, {293, 300, false, true}, + {293, 149, true, true}, {293, 149, true, true}, {293, 149, false, true}, {293, 149, false, true}, + {293, 149, true, true}, {293, 149, true, false}, {293, 149, true, true}, {293, 149, true, true}, + {293, 149, true, false}, {329, 149, true, false}, {349, 149, true, true}, {349, 149, true, false}, + {349, 149, true, true}, {349, 149, true, true}, {391, 149, true, false}, {391, 149, true, true}, + {329, 149, true, true}, {329, 149, true, false}, {329, 149, true, true}, {329, 149, true, true}, + {293, 149, true, false}, {261, 149, true, true}, {293, 149, true, true}, {587, 149, true, true}, + {523, 149, true, true}, {587, 149, true, true}, {0, 149, true, true}, {293, 149, true, true}, + {293, 149, true, true}, {293, 149, true, false}, {293, 149, true, true}, {293, 149, true, true}, + {293, 149, true, false}, {329, 149, true, true}, {349, 149, true, true}, {349, 149, true, false}, + {349, 149, true, true}, {349, 149, true, true}, {391, 149, true, false}, {391, 149, true, true}, + {329, 149, true, true}, {329, 149, true, false}, {329, 149, true, false}, {329, 149, true, true}, + {293, 149, true, false}, {261, 149, true, true}, {293, 149, true, true}, {587, 149, true, true}, + {523, 149, true, true}, {587, 149, true, true}, {0, 149, true, true}, {293, 149, true, true}, + {293, 149, true, true}, {293, 149, true, false}, {293, 149, true, true}, {293, 149, true, true}, + {293, 149, true, false}, {349, 149, true, true}, {391, 149, true, true}, {391, 149, true, false}, + {391, 149, true, true}, {391, 149, true, true}, {440, 149, true, false}, {466, 149, true, true}, + {466, 149, true, true}, {466, 149, true, false}, {466, 149, true, true}, {440, 149, true, true}, + {440, 149, true, false}, {391, 149, true, true}, {440, 149, true, true}, {293, 149, true, true}, + {293, 149, true, true}, {293, 149, true, true}, {293, 149, true, false}, {329, 149, true, true}, + {349, 149, true, true}, {349, 149, true, false}, {391, 149, true, true}, {391, 149, true, true}, + {440, 149, true, false}, {440, 149, true, true}, {293, 149, true, true}, {293, 149, true, false}, + {293, 149, true, true}, {293, 149, true, true}, {349, 149, true, false}, {329, 149, true, true}, + {329, 149, true, true}, {329, 149, true, false}, {329, 149, true, true}, {349, 149, true, true}, + {293, 149, true, true}, {329, 149, true, true}, {329, 149, true, true}, {329, 149, true, true}, + {329, 149, true, true}, {329, 149, true, true}, {440, 149, true, true}, {523, 149, true, true}, + {587, 149, true, true}, {587, 149, true, false}, {587, 149, true, true}, {587, 149, true, true}, + {587, 149, true, false}, {659, 149, true, false}, {698, 149, true, true}, {698, 149, true, false}, + {698, 149, true, true}, {698, 149, true, true}, {783, 149, true, false}, {783, 149, true, true}, + {659, 149, true, true}, {659, 149, true, false}, {659, 149, true, true}, {659, 149, true, true}, + {587, 149, true, false}, {523, 149, true, true}, {587, 149, true, true}, {1174, 149, true, true}, + {1046, 149, true, true}, {1174, 149, true, true}, {440, 149, true, false}, {523, 149, true, true}, + {587, 149, true, true}, {587, 149, true, false}, {587, 149, true, true}, {587, 149, true, true}, + {587, 149, true, false}, {659, 149, true, true}, {698, 149, true, true}, {698, 149, true, false}, + {698, 149, true, true}, {698, 149, true, true}, {783, 149, true, false}, {783, 149, true, true}, + {659, 149, true, true}, {659, 149, true, false}, {659, 149, true, false}, {659, 149, true, true}, + {587, 149, true, false}, {523, 149, true, true}, {587, 149, true, true}, {1174, 149, true, true}, + {1046, 149, true, true}, {1174, 149, true, true}, {440, 149, true, false}, {523, 149, true, true}, + {587, 149, true, true}, {587, 149, true, false}, {587, 149, true, true}, {587, 149, true, true}, + {587, 149, true, false}, {698, 149, true, true}, {783, 149, true, true}, {783, 149, true, false}, + {783, 149, true, true}, {783, 149, true, true}, {880, 149, true, false}, {932, 149, true, true}, + {932, 149, true, true}, {932, 149, true, false}, {932, 149, true, true}, {880, 149, true, true}, + {880, 149, true, false}, {783, 149, true, true}, {880, 149, true, true}, {587, 149, true, true}, + {587, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, {659, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {880, 149, true, false}, {880, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {698, 149, true, false}, {659, 149, true, true}, + {659, 149, true, true}, {659, 149, true, false}, {659, 149, true, true}, {659, 149, true, true}, + {587, 149, true, false}, {554, 149, true, true}, {587, 300, true, true}, {587, 300, true, true}, + {659, 300, true, false}, {698, 149, true, true}, {698, 149, true, true}, {698, 149, true, true}, + {698, 149, true, true}, {783, 149, true, true}, {783, 149, true, true}, {880, 149, true, true}, + {698, 149, false, false}, {698, 149, true, false}, {698, 149, true, false}, {698, 149, false, false}, + {587, 149, true, false}, {440, 300, true, false}, {440, 149, true, false}, {440, 300, true, false}, + {440, 149, true, false}, {932, 149, true, true}, {932, 150, false, false}, {932, 149, true, false}, + {932, 149, true, false}, {783, 149, false, false}, {587, 149, true, false}, {466, 300, true, false}, + {466, 149, true, false}, {466, 300, true, false}, {466, 149, true, false}, {329, 149, true, true}, + {329, 149, true, true}, {329, 149, true, true}, {293, 149, true, true}, {293, 149, true, true}, + {293, 149, true, true}, {349, 149, true, true}, {349, 149, true, false}, {349, 149, true, true}, + {349, 149, true, true}, {349, 149, true, false}, {391, 149, true, true}, {440, 149, true, true}, + {440, 149, true, false}, {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, false}, + {440, 149, true, true}, {466, 149, true, true}, {440, 149, true, false}, {440, 149, true, true}, + {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, true}, {391, 149, true, true}, + {391, 149, true, false}, {391, 149, true, false}, {391, 149, true, true}, {391, 149, true, false}, + {391, 149, true, false}, {440, 149, true, true}, {440, 149, true, false}, {440, 149, true, true}, + {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, true}, + {440, 149, true, false}, {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, false}, + {440, 149, true, true}, {466, 149, true, true}, {440, 149, true, false}, {440, 149, true, true}, + {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, true}, {391, 149, true, true}, + {391, 149, true, false}, {349, 149, true, true}, {349, 149, true, true}, {329, 149, true, false}, + {329, 149, true, true}, {293, 149, true, true}, {293, 149, true, true}, {293, 149, true, true}, + {293, 149, true, true}, {293, 149, true, true}, {329, 149, true, true}, {349, 149, true, true}, + {349, 150, false, false}, {349, 149, false, true}, {349, 149, false, true}, {391, 149, false, false}, + {440, 149, false, true}, {391, 300, true, false}, {349, 149, true, false}, {349, 149, true, false}, + {329, 149, true, false}, {329, 149, true, false}, {349, 300, false, true}, {391, 149, false, true}, + {391, 149, false, true}, {440, 149, false, true}, {440, 149, false, true}, {391, 300, true, false}, + {391, 149, true, false}, {391, 149, true, false}, {349, 149, true, false}, {391, 149, true, false}, + {440, 149, true, true}, {440, 149, true, false}, {440, 149, true, true}, {440, 149, true, true}, + {391, 149, true, true}, {349, 149, true, true}, {329, 149, true, true}, {329, 149, true, false}, + {349, 149, true, true}, {349, 149, true, true}, {329, 149, true, true}, {329, 149, true, true}, + {293, 149, true, true}, {293, 149, true, false}, {293, 149, true, true}, {293, 149, true, true}, + {329, 149, true, false}, {293, 149, true, true}, {293, 149, true, true}, {293, 149, true, false}, + {293, 149, true, true}, {293, 149, true, true}, {587, 149, true, true}, {659, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {698, 149, true, true}, {698, 149, true, true}, + {659, 149, true, true}, {698, 149, true, true}, {783, 149, true, true}, {783, 149, true, false}, + {698, 149, true, false}, {698, 149, true, true}, {783, 149, true, false}, {783, 149, true, false}, + {880, 149, true, true}, {880, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {698, 149, true, true}, {698, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {587, 149, true, true}, {659, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {880, 149, true, true}, {880, 149, true, true}, {932, 149, true, true}, {932, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {783, 149, true, true}, {783, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {698, 149, true, true}, {698, 149, true, true}, + {783, 149, true, true}, {659, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {554, 149, true, true}, {554, 149, true, true}, {554, 149, true, true}, + {880, 149, true, true}, {880, 149, true, false}, {880, 149, true, true}, {880, 149, true, true}, + {880, 149, true, true}, {880, 149, true, true}, {932, 149, true, true}, {932, 149, true, false}, + {932, 149, true, true}, {932, 149, true, true}, {932, 149, true, true}, {932, 149, true, true}, + {880, 149, true, true}, {880, 149, true, false}, {880, 149, true, true}, {880, 149, true, false}, + {880, 149, true, true}, {880, 149, true, false}, {880, 149, true, true}, {783, 149, true, false}, + {783, 149, true, false}, {783, 149, true, true}, {783, 149, true, false}, {783, 149, true, false}, + {783, 149, true, true}, {783, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {783, 149, true, true}, {783, 149, true, true}, {698, 149, true, true}, {698, 149, true, false}, + {698, 149, true, true}, {698, 149, true, true}, {698, 149, true, true}, {698, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {659, 149, true, true}, {659, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {659, 149, true, true}, {698, 149, true, true}, + {880, 149, true, true}, {698, 149, true, false}, {659, 149, true, true}, {587, 149, true, true}, + {659, 149, true, true}, {698, 149, true, true}, {932, 149, true, true}, {698, 149, true, false}, + {659, 149, true, true}, {587, 149, true, true}, {659, 149, true, true}, {698, 149, true, true}, + {880, 149, true, true}, {880, 149, true, false}, {880, 149, true, true}, {880, 149, true, true}, + {1046, 149, true, true}, {1046, 149, true, true}, {880, 149, true, true}, {783, 149, true, false}, + {783, 149, true, false}, {783, 149, true, true}, {783, 149, true, false}, {783, 149, true, false}, + {783, 149, true, true}, {783, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {783, 149, true, true}, {783, 149, true, true}, {698, 149, true, true}, {698, 149, true, false}, + {698, 149, true, true}, {698, 149, true, true}, {698, 149, true, true}, {698, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {659, 149, true, true}, {659, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {293, 149, true, false}, {293, 149, true, true}, {587, 149, true, false}, {659, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {880, 149, true, false}, {880, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {698, 149, true, false}, {659, 149, true, true}, + {659, 149, true, true}, {659, 149, true, false}, {659, 149, true, true}, {659, 149, true, true}, + {587, 149, true, false}, {554, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {0, 300, false, false}, + {0, 2000, false, false} +}; + + + +// Converted from: alla_turca_8.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_alla_turca[] = { + {493, 136, false, false}, {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, + {523, 272, false, true}, {329, 272, false, false}, {587, 136, false, false}, {523, 136, false, false}, + {493, 136, false, false}, {523, 136, false, false}, {659, 272, false, true}, {329, 272, false, false}, + {698, 136, false, false}, {659, 136, false, false}, {622, 136, false, false}, {659, 136, false, false}, + {987, 136, false, true}, {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, + {987, 136, false, true}, {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, + {1046, 272, false, true}, {1046, 272, false, false}, {880, 272, false, false}, {1046, 272, false, false}, + {987, 272, false, true}, {880, 272, false, true}, {783, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {880, 272, false, true}, {783, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {880, 272, false, true}, {783, 272, true, false}, {739, 272, false, true}, + {659, 545, false, true}, {659, 272, false, false}, {698, 272, false, false}, {783, 272, true, false}, + {783, 272, false, false}, {880, 136, false, true}, {783, 136, false, false}, {698, 136, false, false}, + {659, 136, false, false}, {587, 272, false, true}, {391, 272, false, false}, {659, 272, false, false}, + {698, 272, false, false}, {783, 272, true, false}, {783, 272, false, false}, {880, 136, false, true}, + {783, 136, false, false}, {698, 136, false, false}, {659, 136, false, false}, {587, 545, false, true}, + {523, 272, false, false}, {587, 272, false, false}, {659, 272, true, false}, {659, 272, false, true}, + {698, 136, true, false}, {659, 136, false, false}, {587, 136, false, false}, {523, 136, false, false}, + {493, 272, false, true}, {329, 272, false, false}, {523, 272, false, false}, {587, 272, false, false}, + {659, 272, true, false}, {659, 272, false, true}, {698, 136, true, false}, {659, 136, false, false}, + {587, 136, false, false}, {523, 136, false, false}, {493, 545, false, true}, {493, 136, false, false}, + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {523, 272, false, true}, + {329, 272, false, false}, {587, 136, false, false}, {523, 136, false, false}, {493, 136, false, false}, + {523, 136, false, false}, {659, 272, false, true}, {329, 272, false, false}, {698, 136, false, false}, + {659, 136, false, false}, {622, 136, false, false}, {659, 136, false, false}, {987, 136, false, true}, + {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {987, 136, false, true}, + {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {1046, 272, false, true}, + {311, 272, false, true}, {880, 272, false, true}, {987, 272, false, true}, {1046, 272, false, true}, + {987, 272, false, true}, {880, 272, false, true}, {830, 272, false, true}, {880, 272, true, false}, + {659, 272, false, true}, {698, 272, false, true}, {587, 272, false, true}, {523, 272, false, true}, + {523, 272, false, true}, {493, 272, false, true}, {493, 136, false, true}, {440, 68, false, false}, + {493, 68, false, false}, {493, 68, true, true}, {440, 477, false, false}, {880, 272, false, false}, + {987, 272, false, false}, {1108, 272, false, true}, {1108, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, {880, 272, false, true}, + {830, 272, false, true}, {739, 272, false, true}, {830, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {830, 272, false, true}, {659, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, {880, 272, false, true}, + {830, 272, false, true}, {739, 272, false, true}, {987, 272, false, true}, {830, 272, false, true}, + {659, 272, false, true}, {880, 545, true, false}, {1108, 136, false, false}, {1174, 136, false, false}, + {1108, 136, false, false}, {987, 136, false, false}, {880, 136, false, true}, {987, 136, false, false}, + {880, 136, false, true}, {830, 136, false, false}, {739, 136, false, true}, {880, 136, false, false}, + {830, 136, false, true}, {739, 136, false, false}, {698, 136, false, true}, {739, 136, false, false}, + {830, 136, false, true}, {698, 136, false, false}, {554, 136, false, true}, {622, 136, false, false}, + {698, 136, false, true}, {554, 136, false, false}, {739, 136, false, true}, {698, 136, false, false}, + {739, 136, false, true}, {830, 136, false, false}, {880, 136, false, true}, {830, 136, false, false}, + {880, 136, false, true}, {987, 136, false, false}, {1108, 136, false, true}, {1046, 136, false, false}, + {1108, 136, false, true}, {1046, 136, false, false}, {1108, 136, false, true}, {1174, 136, false, false}, + {1108, 136, false, true}, {987, 136, false, false}, {880, 136, false, true}, {987, 136, false, false}, + {880, 136, false, true}, {830, 136, false, false}, {739, 136, false, true}, {880, 136, false, false}, + {830, 136, false, true}, {739, 136, false, false}, {659, 136, false, true}, {739, 136, false, false}, + {830, 136, false, false}, {659, 136, false, false}, {554, 136, false, false}, {622, 136, false, false}, + {659, 136, false, false}, {554, 136, false, false}, {622, 136, false, true}, {659, 136, false, false}, + {739, 136, false, false}, {622, 136, false, false}, {523, 136, false, false}, {554, 136, false, false}, + {622, 136, false, false}, {523, 136, false, false}, {554, 545, false, false}, {659, 136, false, false}, + {587, 136, false, false}, {554, 136, false, false}, {493, 136, false, false}, {440, 136, false, true}, + {493, 136, false, false}, {554, 136, false, false}, {587, 136, false, false}, {659, 136, false, false}, + {739, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {880, 136, false, true}, + {830, 136, false, false}, {739, 136, false, false}, {659, 136, false, false}, {659, 136, false, true}, + {587, 136, false, false}, {554, 136, false, false}, {493, 136, false, false}, {440, 136, false, true}, + {493, 136, false, false}, {554, 136, false, false}, {587, 136, false, false}, {659, 136, false, false}, + {739, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {932, 272, false, true}, + {987, 272, false, true}, {659, 136, false, true}, {587, 136, false, false}, {554, 136, false, true}, + {493, 136, false, false}, {440, 136, false, true}, {493, 136, false, false}, {554, 136, false, false}, + {587, 136, false, false}, {659, 136, false, false}, {739, 136, false, false}, {830, 136, false, false}, + {880, 136, false, false}, {880, 136, false, true}, {830, 136, false, false}, {739, 136, false, false}, + {659, 136, false, false}, {659, 136, false, true}, {587, 136, false, false}, {554, 136, false, false}, + {493, 136, false, false}, {554, 136, false, true}, {659, 136, false, false}, {440, 136, false, true}, + {554, 136, false, false}, {493, 136, false, true}, {587, 136, false, false}, {415, 136, false, true}, + {493, 136, false, false}, {440, 272, true, false}, {440, 272, false, true}, {1108, 136, false, false}, + {1174, 136, false, false}, {1108, 136, false, false}, {987, 136, false, false}, {880, 136, false, true}, + {987, 136, false, false}, {880, 136, false, true}, {830, 136, false, false}, {739, 136, false, true}, + {880, 136, false, false}, {830, 136, false, true}, {739, 136, false, false}, {698, 136, false, true}, + {739, 136, false, false}, {830, 136, false, true}, {698, 136, false, false}, {554, 136, false, true}, + {622, 136, false, false}, {698, 136, false, true}, {554, 136, false, false}, {739, 136, false, true}, + {698, 136, false, false}, {739, 136, false, true}, {830, 136, false, false}, {880, 136, false, true}, + {830, 136, false, false}, {880, 136, false, true}, {987, 136, false, false}, {1108, 136, true, false}, + {1046, 136, false, false}, {1108, 136, false, true}, {1046, 136, false, false}, {1108, 136, false, true}, + {1046, 136, false, false}, {1108, 136, false, true}, {932, 136, false, false}, {1174, 136, true, false}, + {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, {1174, 136, false, true}, + {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, {1174, 136, true, false}, + {1108, 136, false, false}, {987, 136, false, true}, {880, 136, false, false}, {830, 136, false, true}, + {880, 136, false, false}, {987, 136, false, true}, {830, 136, false, false}, {880, 136, true, false}, + {987, 136, false, false}, {1108, 136, false, true}, {739, 136, false, false}, {698, 136, true, false}, + {739, 136, false, false}, {830, 136, false, true}, {698, 136, false, false}, {739, 545, false, true}, + {880, 272, false, false}, {987, 272, false, false}, {1108, 272, false, true}, {1108, 272, false, true}, + {880, 272, false, true}, {987, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, + {880, 272, false, true}, {830, 272, false, true}, {739, 272, false, true}, {830, 272, false, true}, + {880, 272, false, true}, {987, 272, false, true}, {830, 272, false, true}, {659, 272, false, true}, + {880, 272, false, true}, {987, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {880, 272, false, true}, {987, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, + {880, 272, false, true}, {830, 272, false, true}, {739, 272, false, true}, {987, 272, false, true}, + {830, 272, false, true}, {659, 272, false, true}, {880, 545, true, false}, {493, 136, false, false}, + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {523, 272, false, true}, + {329, 272, false, false}, {587, 136, false, false}, {523, 136, false, false}, {493, 136, false, false}, + {523, 136, false, false}, {659, 272, false, true}, {329, 272, false, false}, {698, 136, false, false}, + {659, 136, false, false}, {622, 136, false, false}, {659, 136, false, false}, {987, 136, false, true}, + {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {987, 136, false, true}, + {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {1046, 272, false, true}, + {1046, 272, false, false}, {880, 272, false, false}, {1046, 272, false, false}, {987, 272, false, true}, + {880, 272, false, true}, {783, 272, false, true}, {880, 272, false, true}, {987, 272, false, true}, + {880, 272, false, true}, {783, 272, false, true}, {880, 272, false, true}, {987, 272, false, true}, + {880, 272, false, true}, {783, 272, true, false}, {739, 272, false, true}, {659, 545, false, true}, + {659, 272, false, false}, {698, 272, false, false}, {783, 272, true, false}, {783, 272, false, false}, + {880, 136, false, true}, {783, 136, false, false}, {698, 136, false, false}, {659, 136, false, false}, + {587, 272, false, true}, {391, 272, false, false}, {659, 272, false, false}, {698, 272, false, false}, + {783, 272, true, false}, {783, 272, false, false}, {880, 136, false, true}, {783, 136, false, false}, + {698, 136, false, false}, {659, 136, false, false}, {587, 545, false, true}, {523, 272, false, false}, + {587, 272, false, false}, {659, 272, true, false}, {659, 272, false, true}, {698, 136, true, false}, + {659, 136, false, false}, {587, 136, false, false}, {523, 136, false, false}, {493, 272, false, true}, + {493, 272, false, false}, {523, 272, false, false}, {587, 272, false, false}, {659, 272, true, false}, + {659, 272, false, true}, {698, 136, true, false}, {659, 136, false, false}, {587, 136, false, false}, + {523, 136, false, false}, {493, 545, false, true}, {493, 136, false, false}, {440, 136, false, false}, + {415, 136, false, false}, {440, 136, false, false}, {523, 272, false, true}, {329, 272, false, false}, + {587, 136, false, false}, {523, 136, false, false}, {493, 136, false, false}, {523, 136, false, false}, + {659, 272, false, true}, {329, 272, false, false}, {698, 136, false, false}, {659, 136, false, false}, + {622, 136, false, false}, {659, 136, false, false}, {987, 136, false, true}, {880, 136, false, false}, + {830, 136, false, false}, {880, 136, false, false}, {987, 136, false, true}, {880, 136, false, false}, + {830, 136, false, false}, {880, 136, false, false}, {1046, 272, false, true}, {311, 272, false, true}, + {880, 272, false, true}, {987, 272, false, true}, {1046, 272, false, true}, {987, 272, false, true}, + {880, 272, false, true}, {830, 272, false, true}, {880, 272, true, false}, {659, 272, false, true}, + {698, 272, false, true}, {587, 272, false, true}, {523, 272, false, true}, {523, 272, false, true}, + {493, 272, false, true}, {493, 136, false, true}, {440, 68, false, false}, {493, 68, false, false}, + {493, 68, true, true}, {440, 477, false, false}, {440, 136, false, false}, {880, 136, false, false}, + {493, 136, false, false}, {987, 136, false, false}, {554, 136, false, true}, {1108, 136, false, false}, + {0, 272, false, true}, {440, 136, false, true}, {880, 136, false, false}, {493, 136, false, true}, + {987, 136, false, false}, {554, 136, false, true}, {1108, 136, false, false}, {493, 136, false, true}, + {987, 136, false, false}, {440, 136, false, true}, {880, 136, false, false}, {415, 136, false, true}, + {830, 136, false, false}, {369, 136, false, true}, {739, 136, false, false}, {415, 136, false, true}, + {830, 136, false, false}, {440, 136, false, true}, {880, 136, false, false}, {493, 136, false, true}, + {987, 136, false, false}, {415, 136, false, true}, {830, 136, false, false}, {329, 136, false, true}, + {659, 136, false, false}, {440, 136, false, true}, {880, 136, false, false}, {493, 136, false, true}, + {987, 136, false, false}, {554, 136, false, true}, {1108, 136, false, false}, {0, 272, false, true}, + {440, 136, false, true}, {880, 136, false, false}, {493, 136, false, true}, {987, 136, false, false}, + {554, 136, false, true}, {1108, 136, false, false}, {493, 136, false, true}, {987, 136, false, false}, + {440, 136, false, true}, {880, 136, false, false}, {415, 136, false, true}, {830, 136, false, false}, + {369, 136, false, true}, {739, 136, false, false}, {493, 136, false, true}, {987, 136, false, false}, + {415, 136, false, true}, {830, 136, false, false}, {329, 136, false, true}, {659, 136, false, false}, + {880, 545, true, false}, {880, 272, false, true}, {880, 272, false, true}, {1108, 272, false, true}, + {1108, 136, false, true}, {1108, 136, false, false}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 272, false, true}, {1174, 272, false, true}, + {0, 272, false, true}, {0, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, {987, 272, false, true}, + {987, 272, false, true}, {1318, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 272, false, true}, {1174, 272, false, true}, + {1174, 272, false, true}, {1174, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, {987, 272, false, true}, + {987, 272, false, true}, {987, 272, false, true}, {880, 136, false, true}, {880, 136, false, false}, + {880, 136, false, false}, {880, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, false}, {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, false}, {1108, 136, false, false}, {1174, 136, false, true}, {1174, 136, false, false}, + {1174, 136, false, false}, {1174, 136, false, false}, {1174, 136, false, true}, {1174, 136, false, false}, + {1174, 136, false, false}, {1174, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {987, 136, false, true}, {987, 136, false, false}, + {987, 136, false, true}, {987, 136, false, false}, {987, 136, false, true}, {987, 136, false, false}, + {1318, 136, false, true}, {1318, 136, false, false}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 272, false, true}, {1174, 272, false, true}, + {1174, 272, false, true}, {1174, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, {987, 272, false, true}, + {987, 272, false, true}, {987, 272, false, true}, {880, 272, false, true}, {880, 272, false, true}, + {880, 272, false, true}, {1108, 272, false, true}, {880, 272, false, true}, {880, 272, false, true}, + {880, 272, false, true}, {1318, 272, false, true}, {880, 272, false, true}, {880, 272, false, true}, + {880, 272, false, true}, {1108, 272, false, true}, {880, 272, false, true}, {1108, 272, false, true}, + {880, 272, false, true}, {1318, 272, false, true}, {880, 545, true, false}, {880, 545, true, true}, + {880, 545, true, true}, + {0, 2000, false, false} +}; + + +// Converted from: tetris_1.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_tetris_1[] = { + {659, 266, false, true}, {659, 14, false, false}, {659, 232, false, false}, {493, 15, false, true}, + {493, 216, false, false}, {0, 15, false, false}, {523, 14, false, false}, {523, 219, false, false}, + {329, 15, false, false}, {587, 14, false, true}, {587, 236, false, false}, {587, 14, false, false}, + {587, 236, false, false}, {523, 15, false, true}, {523, 223, false, false}, {0, 15, false, false}, + {493, 15, false, false}, {493, 226, false, false}, {329, 17, false, false}, {440, 13, true, false}, + {440, 256, false, false}, {440, 14, false, true}, {440, 232, false, false}, {440, 15, true, false}, + {440, 216, false, false}, {0, 15, false, false}, {523, 14, false, true}, {523, 219, false, false}, + {0, 15, false, false}, {659, 14, true, false}, {659, 234, false, false}, {659, 14, false, true}, + {659, 231, false, false}, {587, 15, true, false}, {587, 216, false, false}, {0, 15, false, false}, + {523, 14, false, true}, {523, 217, false, false}, {0, 17, false, false}, {493, 12, true, false}, + {493, 251, false, false}, {493, 14, false, true}, {493, 232, false, false}, {493, 15, true, false}, + {493, 216, false, false}, {0, 15, false, false}, {523, 14, false, true}, {523, 219, false, false}, + {0, 15, false, false}, {587, 14, true, false}, {587, 234, false, false}, {587, 14, false, true}, + {587, 231, false, false}, {659, 15, true, false}, {659, 231, false, false}, {659, 14, false, true}, + {659, 232, false, false}, {523, 15, true, false}, {523, 251, false, false}, {523, 14, false, true}, + {523, 232, false, false}, {440, 15, true, false}, {440, 231, false, false}, {440, 14, false, true}, + {440, 233, false, false}, {440, 15, true, false}, {440, 234, false, false}, {440, 14, false, true}, + {440, 231, false, false}, {0, 15, true, true}, {0, 201, false, false}, {0, 30, false, false}, + {261, 14, true, false}, {261, 202, false, false}, {0, 32, false, false}, {0, 12, false, true}, + {0, 251, false, false}, {293, 14, false, false}, {293, 233, false, false}, {587, 14, false, true}, + {587, 231, false, false}, {587, 14, false, false}, {587, 233, false, false}, {698, 15, false, true}, + {698, 219, false, false}, {0, 15, false, false}, {880, 14, false, false}, {880, 231, false, false}, + {880, 14, false, true}, {880, 216, false, false}, {0, 15, false, false}, {293, 14, false, false}, + {293, 234, false, false}, {783, 12, false, true}, {783, 236, false, false}, {0, 15, false, false}, + {698, 14, false, false}, {698, 218, false, false}, {293, 15, false, false}, {659, 14, true, false}, + {659, 231, false, false}, {659, 14, false, false}, {659, 234, false, false}, {659, 14, true, false}, + {659, 234, false, false}, {659, 14, false, false}, {659, 231, false, false}, {523, 15, true, false}, + {523, 216, false, false}, {0, 15, false, false}, {659, 14, false, false}, {659, 234, false, false}, + {659, 12, true, false}, {659, 251, false, false}, {659, 14, false, false}, {659, 232, false, false}, + {587, 15, true, false}, {587, 220, false, false}, {0, 11, false, false}, {523, 14, false, false}, + {523, 219, false, false}, {261, 15, false, false}, {493, 14, true, false}, {493, 234, false, false}, + {493, 14, false, true}, {493, 231, false, false}, {493, 14, true, false}, {493, 229, false, false}, + {523, 17, false, true}, {523, 217, false, false}, {0, 17, false, false}, {587, 12, true, false}, + {587, 251, false, false}, {587, 14, false, true}, {587, 218, false, false}, {0, 15, false, false}, + {659, 14, true, false}, {659, 231, false, false}, {659, 14, false, true}, {659, 233, false, false}, + {523, 15, true, false}, {523, 234, false, false}, {523, 14, false, true}, {523, 231, false, false}, + {440, 15, true, false}, {440, 231, false, false}, {440, 14, false, true}, {440, 232, false, false}, + {440, 15, true, false}, {440, 251, false, false}, {440, 14, false, true}, {440, 232, false, false}, + {0, 15, true, false}, {0, 231, false, false}, {0, 14, false, true}, {0, 249, false, false}, + {0, 977, false, false}, {659, 264, true, false}, {659, 14, false, true}, {659, 233, false, false}, + {659, 14, true, false}, {659, 231, false, false}, {659, 14, false, true}, {659, 233, false, false}, + {523, 15, true, false}, {523, 234, false, false}, {523, 14, false, true}, {523, 231, false, false}, + {523, 14, true, false}, {523, 231, false, false}, {523, 14, false, true}, {523, 232, false, false}, + {587, 15, true, false}, {587, 251, false, false}, {587, 14, false, true}, {587, 233, false, false}, + {587, 14, true, false}, {587, 231, false, false}, {587, 14, false, true}, {587, 233, false, false}, + {493, 15, true, false}, {493, 234, false, false}, {493, 14, false, true}, {493, 231, false, false}, + {493, 14, true, false}, {493, 231, false, false}, {493, 14, false, true}, {493, 232, false, false}, + {523, 15, true, false}, {523, 251, false, false}, {523, 14, false, true}, {523, 233, false, false}, + {523, 14, true, false}, {523, 231, false, false}, {523, 14, false, true}, {523, 233, false, false}, + {440, 15, true, false}, {440, 234, false, false}, {440, 14, false, true}, {440, 231, false, false}, + {440, 14, true, false}, {440, 231, false, false}, {440, 14, false, true}, {440, 232, false, false}, + {415, 15, true, false}, {415, 251, false, false}, {415, 14, false, true}, {415, 233, false, false}, + {415, 14, true, false}, {415, 231, false, false}, {415, 14, false, true}, {415, 233, false, false}, + {493, 15, true, false}, {493, 234, false, false}, {493, 14, false, true}, {493, 231, false, false}, + {493, 14, true, false}, {493, 231, false, false}, {493, 14, false, true}, {493, 232, false, false}, + {659, 15, true, false}, {659, 251, false, false}, {659, 14, false, true}, {659, 233, false, false}, + {659, 14, true, false}, {659, 231, false, false}, {659, 14, false, true}, {659, 233, false, false}, + {523, 15, true, false}, {523, 234, false, false}, {523, 14, false, true}, {523, 231, false, false}, + {523, 14, true, false}, {523, 231, false, false}, {523, 14, false, true}, {523, 232, false, false}, + {587, 15, true, false}, {587, 251, false, false}, {587, 14, false, true}, {587, 233, false, false}, + {587, 14, true, false}, {587, 231, false, false}, {587, 14, false, true}, {587, 233, false, false}, + {493, 15, true, false}, {493, 234, false, false}, {493, 14, false, true}, {493, 231, false, false}, + {493, 14, true, false}, {493, 231, false, false}, {493, 14, false, true}, {493, 232, false, false}, + {523, 15, true, false}, {523, 251, false, false}, {523, 14, false, true}, {523, 232, false, false}, + {659, 15, true, false}, {659, 231, false, false}, {659, 14, false, true}, {659, 233, false, false}, + {880, 15, true, false}, {880, 234, false, false}, {880, 14, false, true}, {880, 231, false, false}, + {880, 14, true, false}, {880, 231, false, false}, {880, 14, false, true}, {880, 232, false, false}, + {830, 15, true, false}, {830, 251, false, false}, {830, 14, false, true}, {830, 233, false, false}, + {830, 14, true, false}, {830, 231, false, false}, {830, 14, false, true}, {830, 234, false, false}, + {830, 14, true, false}, {830, 234, false, false}, {830, 14, false, true}, {830, 231, false, false}, + {830, 14, true, false}, {830, 231, false, false}, {830, 14, false, true}, {830, 232, false, false}, + {0, 15, false, false}, + {0, 2000, false, false} +}; + +// Converted from: sonic.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_sonic[] = { + {880, 114, false, false}, {698, 95, false, false}, {880, 95, true, false}, {698, 87, false, false}, + {698, 11, false, false}, {987, 99, true, false}, {783, 83, false, false}, {783, 11, false, false}, + {987, 95, true, false}, {783, 89, false, false}, {783, 11, false, false}, {1046, 101, true, false}, + {880, 83, false, false}, {880, 11, false, false}, {1046, 95, true, false}, {880, 87, false, false}, + {880, 11, false, false}, {1174, 99, true, false}, {987, 83, false, false}, {987, 11, false, false}, + {1174, 95, true, false}, {987, 87, false, false}, {987, 13, false, false}, {493, 90, true, false}, + {493, 118, false, false}, {493, 77, true, false}, {493, 118, false, false}, {493, 75, true, false}, + {493, 118, false, false}, {440, 78, true, false}, {440, 118, false, false}, {440, 77, true, false}, + {440, 118, false, false}, {440, 75, true, false}, {440, 118, false, false}, {493, 76, true, false}, + {493, 118, false, false}, {493, 76, true, false}, {493, 120, false, false}, {493, 90, true, false}, + {493, 106, false, false}, {493, 11, false, false}, {440, 77, true, false}, {440, 118, false, false}, + {440, 75, true, false}, {440, 118, false, false}, {440, 77, true, false}, {440, 118, false, false}, + {493, 78, true, false}, {493, 118, false, false}, {493, 75, true, false}, {493, 118, false, false}, + {440, 76, true, false}, {440, 118, false, false}, {440, 76, true, false}, {440, 118, false, false}, + {523, 92, true, false}, {523, 118, false, false}, {523, 77, true, false}, {523, 118, false, false}, + {523, 75, true, false}, {523, 118, false, false}, {493, 78, true, false}, {493, 118, false, false}, + {493, 77, true, false}, {493, 118, false, false}, {493, 75, true, false}, {493, 118, false, false}, + {440, 76, true, false}, {440, 118, false, false}, {440, 76, true, false}, {440, 120, false, false}, + {440, 90, true, false}, {440, 118, false, false}, {440, 195, true, false}, {440, 23, true, false}, + {440, 52, false, false}, {440, 118, false, false}, {440, 196, true, false}, {440, 23, true, false}, + {440, 54, false, false}, {440, 118, false, false}, {440, 194, true, false}, {440, 23, true, false}, + {440, 52, false, false}, {440, 118, false, false}, {440, 76, true, false}, {440, 118, false, false}, + {440, 92, true, false}, {440, 118, false, false}, {440, 77, true, false}, {440, 118, false, false}, + {440, 75, true, false}, {440, 118, false, false}, {493, 78, true, false}, {493, 118, false, false}, + {493, 77, true, false}, {493, 118, false, false}, {493, 75, true, false}, {493, 118, false, false}, + {523, 76, true, false}, {523, 118, false, false}, {523, 76, true, false}, {523, 118, false, false}, + {440, 92, true, false}, {440, 118, false, false}, {440, 77, true, false}, {440, 118, false, false}, + {440, 75, true, false}, {440, 118, false, false}, {493, 78, true, false}, {493, 118, false, false}, + {493, 77, true, false}, {493, 118, false, false}, {493, 75, true, false}, {493, 118, false, false}, + {523, 76, true, false}, {523, 118, false, false}, {523, 76, true, false}, {523, 118, false, false}, + {523, 92, true, false}, {523, 118, false, false}, {523, 77, true, false}, {523, 118, false, false}, + {523, 75, true, false}, {523, 118, false, false}, {493, 78, true, false}, {493, 118, false, false}, + {493, 77, true, false}, {493, 118, false, false}, {493, 75, true, false}, {493, 118, false, false}, + {493, 75, true, false}, {493, 118, false, false}, {493, 76, true, false}, {493, 120, false, false}, + {493, 90, true, false}, {493, 118, false, false}, {493, 77, true, false}, {493, 118, false, false}, + {493, 75, true, false}, {493, 118, false, false}, {493, 77, true, false}, {493, 118, false, false}, + {0, 78, true, false}, {0, 118, false, false}, {0, 194, true, false}, {0, 23, true, false}, + {0, 171, false, false}, {0, 23, true, false}, {0, 173, false, false}, {0, 21, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, {880, 75, true, false}, + {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, {1046, 183, true, false}, + {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, {1046, 106, false, false}, + {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, {987, 77, true, false}, + {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, {783, 23, true, false}, + {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, {0, 23, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, + {1318, 11, true, false}, {1318, 66, false, false}, {1318, 118, false, false}, {1318, 11, true, false}, + {1174, 64, false, false}, {1174, 118, false, false}, {1174, 75, true, false}, {1174, 118, false, false}, + {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, + {783, 23, true, false}, {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, + {880, 75, true, false}, {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, + {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, {783, 75, true, false}, + {783, 118, false, false}, {783, 75, true, false}, {783, 118, false, false}, {783, 195, true, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {880, 77, true, false}, + {880, 118, false, false}, {880, 78, true, false}, {880, 118, false, false}, {880, 11, true, false}, + {698, 64, false, false}, {698, 118, false, false}, {698, 75, true, false}, {698, 118, false, false}, + {880, 183, true, false}, {0, 13, false, false}, {783, 21, true, false}, {783, 68, false, false}, + {783, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, {880, 76, true, false}, + {880, 106, false, false}, {0, 11, false, false}, {783, 77, true, false}, {783, 118, false, false}, + {783, 77, true, false}, {783, 106, false, false}, {0, 11, false, false}, {523, 194, true, false}, + {523, 23, true, false}, {523, 171, false, false}, {523, 23, true, false}, {523, 171, false, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, + {880, 75, true, false}, {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, + {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, + {783, 23, true, false}, {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {783, 77, true, false}, + {783, 118, false, false}, {1318, 11, true, false}, {1318, 66, false, false}, {1318, 118, false, false}, + {1318, 11, true, false}, {1174, 64, false, false}, {1174, 118, false, false}, {1174, 75, true, false}, + {1174, 118, false, false}, {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, + {987, 68, false, false}, {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {1046, 76, true, false}, {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, + {783, 194, true, false}, {783, 23, true, false}, {783, 171, false, false}, {783, 23, true, false}, + {783, 171, false, false}, {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, + {0, 77, true, false}, {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, + {0, 77, true, false}, {0, 118, false, false}, {1046, 77, true, false}, {1046, 106, false, false}, + {0, 11, false, false}, {880, 75, true, false}, {880, 118, false, false}, {880, 75, true, false}, + {880, 118, false, false}, {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, + {987, 68, false, false}, {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {1046, 76, true, false}, {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, + {783, 75, true, false}, {783, 118, false, false}, {783, 75, true, false}, {783, 118, false, false}, + {783, 195, true, false}, {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, + {0, 77, true, false}, {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, + {880, 77, true, false}, {880, 118, false, false}, {880, 78, true, false}, {880, 118, false, false}, + {880, 11, true, false}, {698, 64, false, false}, {698, 118, false, false}, {698, 75, true, false}, + {698, 118, false, false}, {880, 183, true, false}, {0, 13, false, false}, {783, 21, true, false}, + {783, 68, false, false}, {783, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, + {880, 76, true, false}, {880, 106, false, false}, {0, 11, false, false}, {783, 77, true, false}, + {783, 118, false, false}, {783, 77, true, false}, {783, 107, false, false}, {0, 12, false, false}, + {523, 76, true, false}, {523, 120, false, false}, {523, 78, true, false}, {523, 109, false, false}, + {0, 12, false, false}, {659, 79, true, false}, {659, 110, false, false}, {0, 13, false, false}, + {587, 602, true, true}, {587, 587, true, true}, {587, 589, true, true}, {587, 11, false, false}, + {587, 587, true, true}, {587, 391, true, true}, {440, 183, true, true}, {349, 11, false, false}, + {523, 183, false, false}, {349, 11, false, false}, {659, 601, true, true}, {659, 591, true, true}, + {659, 604, true, true}, {659, 11, false, false}, {659, 587, false, true}, {659, 196, false, true}, + {659, 194, false, false}, {880, 183, false, true}, {880, 11, false, false}, {880, 183, false, false}, + {880, 11, false, false}, {830, 601, true, true}, {783, 587, true, true}, {698, 390, true, true}, + {698, 198, false, false}, {0, 11, false, false}, {622, 587, true, true}, {587, 391, true, true}, + {523, 183, true, false}, {0, 11, false, false}, {622, 183, false, false}, {0, 11, false, false}, + {587, 601, true, false}, {587, 587, true, true}, {587, 390, true, false}, {587, 198, true, false}, + {587, 11, false, false}, {587, 184, true, false}, {587, 11, false, false}, {587, 182, true, false}, + {587, 11, false, false}, {587, 184, true, false}, {587, 11, false, false}, {587, 185, true, false}, + {587, 11, false, false}, {587, 182, true, false}, {587, 11, false, false}, {587, 183, true, false}, + {587, 11, false, false}, {587, 183, true, false}, {587, 11, false, false}, {0, 92, true, false}, + {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, {0, 75, true, false}, + {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, {1046, 77, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {880, 75, true, false}, {880, 118, false, false}, + {880, 75, true, false}, {880, 118, false, false}, {1046, 183, true, false}, {0, 13, false, false}, + {987, 21, true, false}, {987, 68, false, false}, {987, 118, false, false}, {987, 77, true, false}, + {987, 118, false, false}, {1046, 76, true, false}, {1046, 106, false, false}, {0, 11, false, false}, + {987, 77, true, false}, {987, 118, false, false}, {987, 77, true, false}, {987, 106, false, false}, + {0, 11, false, false}, {783, 194, true, false}, {783, 23, true, false}, {783, 171, false, false}, + {783, 23, true, false}, {783, 171, false, false}, {0, 23, true, false}, {0, 68, false, false}, + {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, {0, 75, true, false}, + {0, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, {1318, 11, true, false}, + {1318, 66, false, false}, {1318, 118, false, false}, {1318, 11, true, false}, {1174, 64, false, false}, + {1174, 118, false, false}, {1174, 75, true, false}, {1174, 118, false, false}, {1046, 183, true, false}, + {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, {1046, 106, false, false}, + {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, {987, 77, true, false}, + {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, {783, 23, true, false}, + {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, {0, 23, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, {880, 75, true, false}, + {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, {1046, 183, true, false}, + {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, {1046, 106, false, false}, + {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, {987, 77, true, false}, + {987, 106, false, false}, {0, 11, false, false}, {783, 75, true, false}, {783, 118, false, false}, + {783, 75, true, false}, {783, 118, false, false}, {783, 195, true, false}, {0, 23, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {880, 77, true, false}, {880, 118, false, false}, + {880, 78, true, false}, {880, 118, false, false}, {880, 11, true, false}, {698, 64, false, false}, + {698, 118, false, false}, {698, 75, true, false}, {698, 118, false, false}, {880, 183, true, false}, + {0, 13, false, false}, {783, 21, true, false}, {783, 68, false, false}, {783, 118, false, false}, + {783, 77, true, false}, {783, 118, false, false}, {880, 76, true, false}, {880, 106, false, false}, + {0, 11, false, false}, {783, 77, true, false}, {783, 118, false, false}, {783, 77, true, false}, + {783, 106, false, false}, {0, 11, false, false}, {523, 194, true, false}, {523, 23, true, false}, + {523, 171, false, false}, {523, 23, true, false}, {523, 171, false, false}, {0, 23, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, {880, 75, true, false}, + {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, {1046, 183, true, false}, + {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, {1046, 106, false, false}, + {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, {987, 77, true, false}, + {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, {783, 23, true, false}, + {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, {0, 23, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, + {1318, 11, true, false}, {1318, 66, false, false}, {1318, 118, false, false}, {1318, 11, true, false}, + {1174, 64, false, false}, {1174, 118, false, false}, {1174, 75, true, false}, {1174, 118, false, false}, + {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, + {783, 23, true, false}, {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, + {880, 75, true, false}, {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, + {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, {783, 75, true, false}, + {783, 118, false, false}, {783, 75, true, false}, {783, 118, false, false}, {783, 195, true, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {880, 77, true, false}, + {880, 118, false, false}, {880, 78, true, false}, {880, 118, false, false}, {880, 11, true, false}, + {698, 64, false, false}, {698, 118, false, false}, {698, 75, true, false}, {698, 118, false, false}, + {880, 183, true, false}, {0, 13, false, false}, {783, 21, true, false}, {783, 68, false, false}, + {783, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, {880, 76, true, false}, + {880, 106, false, false}, {0, 11, false, false}, {783, 77, true, false}, {783, 118, false, false}, + {783, 77, true, false}, {783, 107, false, false}, {0, 12, false, false}, {523, 76, true, false}, + {523, 120, false, false}, {523, 78, true, false}, {523, 109, false, false}, {0, 12, false, false}, + {659, 79, true, false}, {659, 110, false, false}, {0, 13, false, false}, {587, 602, true, true}, + {587, 587, true, true}, {587, 589, true, true}, {587, 11, false, false}, {587, 587, true, true}, + {587, 391, true, true}, {440, 183, true, true}, {349, 11, false, false}, {523, 183, false, false}, + {349, 11, false, false}, {659, 601, true, true}, {659, 591, true, true}, {659, 604, true, true}, + {659, 11, false, false}, {659, 587, false, true}, {659, 196, false, true}, {659, 194, false, false}, + {880, 183, false, true}, {880, 11, false, false}, {880, 183, false, false}, {880, 11, false, false}, + {830, 601, true, true}, {783, 587, true, true}, {698, 390, true, true}, {698, 198, false, false}, + {0, 11, false, false}, {622, 587, true, true}, {587, 391, true, true}, {523, 183, true, false}, + {0, 11, false, false}, {622, 183, false, false}, {0, 11, false, false}, {587, 601, true, false}, + {587, 587, true, true}, {587, 390, true, false}, {587, 198, true, false}, {587, 11, false, false}, + {587, 184, true, false}, {587, 11, false, false}, {587, 182, true, false}, {587, 11, false, false}, + {587, 184, true, false}, {587, 11, false, false}, {587, 185, true, false}, {587, 11, false, false}, + {587, 182, true, false}, {587, 11, false, false}, {587, 183, true, false}, {587, 11, false, false}, + {587, 183, true, false}, {587, 11, false, false}, + {0, 2000, false, false} +}; + +// Converted from: cast.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_cast[] = { + {587, 144, true, false}, {587, 228, true, false}, {587, 14, false, false}, {523, 119, true, false}, + {0, 133, true, false}, {493, 369, false, false}, {493, 249, true, false}, {493, 121, true, false}, + {391, 14, true, false}, {293, 110, false, false}, {293, 125, true, false}, {329, 113, true, false}, + {349, 128, true, false}, {391, 119, true, false}, {440, 14, true, false}, {440, 259, false, false}, + {440, 121, true, false}, {293, 126, true, true}, {293, 231, true, false}, {293, 14, false, false}, + {440, 234, false, false}, {440, 14, false, false}, {391, 121, true, false}, {523, 128, true, false}, + {523, 231, true, false}, {523, 15, false, false}, {523, 246, true, false}, {523, 232, true, false}, + {523, 14, false, false}, {587, 145, true, false}, {587, 228, true, false}, {587, 14, false, false}, + {523, 119, true, false}, {0, 133, true, false}, {493, 369, false, false}, {493, 249, true, false}, + {493, 121, true, false}, {391, 14, true, false}, {293, 110, false, false}, {293, 125, true, false}, + {329, 113, true, false}, {349, 128, true, false}, {391, 119, true, false}, {440, 14, true, false}, + {440, 259, false, false}, {440, 121, true, false}, {293, 126, true, true}, {293, 231, true, false}, + {293, 14, false, false}, {440, 234, false, false}, {440, 14, false, false}, {391, 128, true, false}, + {391, 121, true, false}, {391, 231, true, false}, {391, 15, false, false}, {391, 246, true, false}, + {391, 232, true, false}, {391, 14, false, false}, {0, 266, true, false}, {587, 121, true, false}, + {587, 111, true, false}, {587, 14, false, false}, {0, 126, true, false}, {880, 241, false, false}, + {880, 127, true, false}, {830, 121, true, false}, {880, 120, false, false}, {830, 121, true, false}, + {698, 125, true, false}, {0, 132, true, false}, {0, 121, true, false}, {0, 121, true, false}, + {0, 128, true, false}, {880, 264, true, false}, {880, 114, true, false}, {830, 126, true, false}, + {0, 125, true, false}, {830, 120, true, false}, {783, 121, false, false}, {0, 135, true, false}, + {880, 120, false, false}, {698, 120, true, false}, {880, 14, true, false}, {880, 106, false, false}, + {830, 125, false, false}, {587, 125, true, false}, {830, 121, false, false}, {783, 121, true, false}, + {698, 119, false, false}, {0, 17, false, false}, {0, 264, true, false}, {587, 121, true, false}, + {587, 111, true, false}, {587, 14, false, false}, {0, 126, true, false}, {880, 241, false, false}, + {880, 127, true, false}, {830, 121, true, false}, {880, 120, false, false}, {830, 121, true, false}, + {698, 125, true, false}, {0, 132, true, false}, {0, 121, true, false}, {0, 121, true, false}, + {0, 128, true, false}, {880, 264, true, false}, {880, 114, true, false}, {830, 126, true, false}, + {0, 125, true, false}, {830, 120, true, false}, {783, 121, false, false}, {0, 135, true, false}, + {880, 120, false, false}, {698, 120, true, false}, {880, 14, true, false}, {880, 106, false, false}, + {830, 125, false, false}, {587, 125, true, false}, {830, 121, false, false}, {783, 121, true, false}, + {698, 126, false, false}, {554, 22, true, false}, {554, 373, false, false}, {659, 358, false, false}, + {659, 14, false, false}, {932, 234, false, false}, {932, 14, false, false}, {880, 370, true, false}, + {698, 357, false, false}, {698, 14, false, false}, {587, 232, false, false}, {587, 14, false, false}, + {554, 388, true, false}, {659, 358, false, false}, {659, 14, false, false}, {932, 234, false, false}, + {932, 14, false, false}, {880, 370, true, false}, {587, 118, false, false}, {0, 501, false, false}, + {554, 388, true, false}, {659, 358, false, false}, {659, 14, false, false}, {932, 234, false, false}, + {932, 14, false, false}, {880, 370, true, false}, {698, 357, false, false}, {698, 14, false, false}, + {587, 232, false, false}, {587, 14, false, false}, {659, 388, true, false}, {783, 358, false, false}, + {783, 14, false, false}, {932, 234, false, false}, {932, 14, false, false}, {880, 370, true, false}, + {987, 357, false, false}, {987, 14, false, false}, {1108, 232, false, false}, {1108, 14, false, false}, + {1174, 145, true, false}, {1174, 114, false, false}, {587, 128, true, false}, {587, 141, false, false}, + {587, 111, false, false}, {587, 112, true, false}, {587, 241, true, false}, {587, 15, false, false}, + {587, 495, true, false}, {587, 494, false, false}, {0, 266, true, true}, {0, 248, true, true}, + {293, 15, false, true}, {293, 103, false, false}, {349, 376, false, false}, {261, 249, true, true}, + {261, 246, true, true}, {329, 15, false, false}, {329, 103, false, false}, {391, 375, false, false}, + {1174, 145, true, false}, {1174, 114, false, false}, {587, 128, true, false}, {587, 141, false, false}, + {587, 111, false, false}, {587, 112, true, false}, {587, 241, true, false}, {587, 15, false, false}, + {587, 495, true, false}, {587, 494, false, false}, {0, 266, true, true}, {0, 248, true, true}, + {293, 15, false, true}, {293, 103, false, false}, {349, 376, false, false}, {261, 249, true, true}, + {261, 246, true, false}, {0, 15, true, false}, {0, 103, false, false}, {0, 375, true, false}, + {587, 145, true, false}, {587, 228, true, false}, {587, 14, false, false}, {523, 119, true, false}, + {0, 133, true, false}, {493, 369, false, false}, {493, 249, true, false}, {493, 121, true, false}, + {391, 14, true, false}, {293, 110, false, false}, {293, 125, true, false}, {329, 113, true, false}, + {349, 128, true, false}, {391, 119, true, false}, {440, 14, true, false}, {440, 259, false, false}, + {440, 121, true, false}, {293, 126, true, true}, {293, 231, true, false}, {293, 14, false, false}, + {440, 234, false, false}, {440, 14, false, false}, {391, 121, true, false}, {523, 128, true, false}, + {523, 231, true, false}, {523, 15, false, false}, {523, 246, true, false}, {523, 232, true, false}, + {523, 14, false, false}, {587, 145, true, false}, {587, 228, true, false}, {587, 14, false, false}, + {523, 119, true, false}, {0, 133, true, false}, {493, 369, false, false}, {493, 249, true, false}, + {493, 121, true, false}, {391, 14, true, false}, {293, 110, false, false}, {293, 125, true, false}, + {329, 113, true, false}, {349, 128, true, false}, {391, 119, true, false}, {440, 14, true, false}, + {440, 259, false, false}, {440, 121, true, false}, {293, 126, true, true}, {293, 231, true, false}, + {293, 14, false, false}, {440, 234, false, false}, {440, 14, false, false}, {391, 128, true, false}, + {391, 121, true, false}, {391, 231, true, false}, {391, 15, false, false}, {391, 246, true, false}, + {391, 232, true, false}, {391, 14, false, false}, {0, 266, true, false}, {587, 121, true, false}, + {587, 111, true, false}, {587, 14, false, false}, {0, 126, true, false}, {880, 241, false, false}, + {880, 127, true, false}, {830, 121, true, false}, {880, 120, false, false}, {830, 121, true, false}, + {698, 125, true, false}, {0, 132, true, false}, {0, 121, true, false}, {0, 121, true, false}, + {0, 128, true, false}, {880, 264, true, false}, {880, 114, true, false}, {830, 126, true, false}, + {0, 125, true, false}, {830, 120, true, false}, {783, 121, false, false}, {0, 135, true, false}, + {880, 120, false, false}, {698, 120, true, false}, {880, 14, true, false}, {880, 106, false, false}, + {830, 125, false, false}, {587, 125, true, false}, {830, 121, false, false}, {783, 121, true, false}, + {698, 119, false, false}, {0, 17, false, false}, {0, 264, true, false}, {587, 121, true, false}, + {587, 111, true, false}, {587, 14, false, false}, {0, 126, true, false}, {880, 241, false, false}, + {880, 127, true, false}, {830, 121, true, false}, {880, 120, false, false}, {830, 121, true, false}, + {698, 125, true, false}, {0, 132, true, false}, {0, 121, true, false}, {0, 121, true, false}, + {0, 128, true, false}, {880, 264, true, false}, {880, 114, true, false}, {830, 126, true, false}, + {0, 125, true, false}, {830, 120, true, false}, {783, 121, false, false}, {0, 135, true, false}, + {880, 120, false, false}, {698, 120, true, false}, {880, 14, true, false}, {880, 106, false, false}, + {830, 125, false, false}, {587, 125, true, false}, {830, 121, false, false}, {783, 121, true, false}, + {698, 126, false, false}, {554, 22, true, false}, {554, 373, false, false}, {659, 358, false, false}, + {659, 14, false, false}, {932, 234, false, false}, {932, 14, false, false}, {880, 370, true, false}, + {698, 357, false, false}, {698, 14, false, false}, {587, 232, false, false}, {587, 14, false, false}, + {554, 388, true, false}, {659, 358, false, false}, {659, 14, false, false}, {932, 234, false, false}, + {932, 14, false, false}, {880, 370, true, false}, {587, 118, false, false}, {0, 501, false, false}, + {554, 388, true, false}, {659, 358, false, false}, {659, 14, false, false}, {932, 234, false, false}, + {932, 14, false, false}, {880, 370, true, false}, {698, 357, false, false}, {698, 14, false, false}, + {587, 232, false, false}, {587, 14, false, false}, {659, 388, true, false}, {783, 358, false, false}, + {783, 14, false, false}, {932, 234, false, false}, {932, 14, false, false}, {880, 370, true, false}, + {987, 357, false, false}, {987, 14, false, false}, {1108, 232, false, false}, {1108, 14, false, false}, + {1174, 145, true, false}, {1174, 114, false, false}, {587, 128, true, false}, {587, 141, false, false}, + {587, 111, false, false}, {587, 112, true, false}, {587, 241, true, false}, {587, 15, false, false}, + {587, 495, true, false}, {587, 494, false, false}, {0, 266, true, true}, {0, 248, true, true}, + {293, 15, false, true}, {293, 103, false, false}, {349, 376, false, false}, {261, 249, true, true}, + {261, 246, true, true}, {329, 15, false, false}, {329, 103, false, false}, {391, 375, false, false}, + {1174, 145, true, false}, {1174, 114, false, false}, {587, 128, true, false}, {587, 141, false, false}, + {587, 111, false, false}, {587, 112, true, false}, {587, 241, true, false}, {587, 15, false, false}, + {587, 495, true, false}, {587, 494, false, false}, {0, 266, true, true}, {0, 248, true, true}, + {293, 15, false, true}, {293, 103, false, false}, {349, 376, false, false}, {261, 249, true, true}, + {261, 246, true, false}, {0, 15, true, false}, {0, 103, false, false}, {0, 375, true, false}, + {0, 2000, false, false} +}; + +// Converted from: seven.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_seven[] = { + {NOTE_E4, 750, true, false}, {NOTE_E4, 125, true, false}, {REST, 125, false, false}, {NOTE_G4, 125, true, false}, + {NOTE_E4, 250, false, false}, {NOTE_D4, 125, true, false}, {NOTE_C4, 250, false, false}, {NOTE_B3, 250, true, false}, + {NOTE_E4, 1000, true, false}, {NOTE_E4, 1000, true, false}, {NOTE_E4, 750, true, false}, {NOTE_E4, 125, true, false}, + {REST, 125, false, false}, {NOTE_G4, 125, true, false}, {NOTE_E4, 250, false, false}, {NOTE_D4, 125, true, false}, + {NOTE_C4, 250, false, false}, {NOTE_D4, 250, true, false}, {NOTE_C4, 1000, true, false}, {NOTE_B3, 1000, true, false}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, + {NOTE_G4, 125, true, true}, {NOTE_E4, 250, false, false}, {NOTE_D4, 125, true, false}, {NOTE_C4, 250, true, true}, + {NOTE_B3, 250, true, false}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, false}, + {REST, 125, false, false}, {NOTE_G4, 125, true, true}, {NOTE_E4, 250, false, false}, {NOTE_D4, 125, true, false}, + {NOTE_C4, 250, true, true}, {NOTE_B3, 250, true, false}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 250, true, true}, + {NOTE_E4, 125, true, false}, {REST, 125, false, false}, {NOTE_G4, 125, true, true}, {NOTE_E4, 250, false, false}, + {NOTE_D4, 125, true, false}, {NOTE_C4, 250, true, true}, {NOTE_B3, 250, true, false}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, false}, {REST, 125, false, false}, {NOTE_G4, 125, true, true}, + {NOTE_E4, 250, false, false}, {NOTE_D4, 125, true, false}, {NOTE_C4, 250, true, true}, {NOTE_B3, 250, true, false}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, false}, {REST, 125, false, false}, + {NOTE_G4, 125, true, true}, {NOTE_E4, 250, false, false}, {NOTE_D4, 125, true, false}, {NOTE_C4, 250, true, true}, + {NOTE_B3, 250, true, false}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, false}, + {REST, 125, false, false}, {NOTE_G4, 125, true, true}, {NOTE_E4, 250, false, false}, {NOTE_D4, 125, true, false}, + {NOTE_C4, 250, true, true}, {NOTE_B3, 250, true, false}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 250, true, true}, + {NOTE_E4, 125, true, false}, {REST, 125, false, false}, {NOTE_G4, 125, true, true}, {NOTE_E4, 250, false, false}, + {NOTE_D4, 125, true, false}, {NOTE_C4, 250, true, true}, {NOTE_B3, 250, true, false}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, false}, {REST, 125, false, false}, {NOTE_G4, 125, true, true}, + {NOTE_E4, 250, false, false}, {NOTE_D4, 125, true, false}, {NOTE_C4, 250, true, true}, {NOTE_B3, 250, true, false}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, false}, {REST, 125, false, false}, + {NOTE_G4, 125, true, true}, {NOTE_E4, 250, false, false}, {NOTE_D4, 125, true, false}, {NOTE_C4, 250, true, true}, + {NOTE_B3, 250, true, false}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, false}, + {REST, 125, false, false}, {NOTE_G4, 125, true, true}, {NOTE_E4, 250, false, false}, {NOTE_D4, 125, true, false}, + {NOTE_C4, 250, true, true}, {NOTE_B3, 250, true, false}, {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, + {NOTE_E4, 500, true, true}, {NOTE_E4, 500, true, true}, {NOTE_E4, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, false}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {NOTE_CS4, 250, true, true}, + {NOTE_E4, 250, true, true}, {NOTE_E4, 218, true, true}, {NOTE_E4, 30, true, true}, {NOTE_E4, 501, true, true}, + {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, true}, {REST, 125, false, false}, {NOTE_G4, 125, true, true}, + {NOTE_G4, 125, false, false}, {REST, 125, false, false}, {NOTE_E4, 125, true, true}, {NOTE_E4, 125, true, true}, + {REST, 125, false, false}, {NOTE_D4, 250, true, true}, {NOTE_C4, 500, true, true}, {NOTE_C4, 500, true, true}, + {REST, 500, true, true}, {REST, 468, true, true}, {REST, 30, true, true}, {NOTE_E4, 501, true, true}, + {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, true}, {REST, 125, false, false}, {NOTE_G4, 125, true, true}, + {NOTE_G4, 125, false, false}, {REST, 125, false, false}, {NOTE_E4, 125, true, true}, {NOTE_E4, 125, true, true}, + {REST, 125, false, false}, {NOTE_D4, 250, true, true}, {NOTE_C4, 375, true, true}, {NOTE_D4, 125, true, true}, + {NOTE_D4, 250, true, true}, {NOTE_C4, 250, true, true}, {REST, 500, true, true}, {REST, 468, true, true}, + {REST, 30, true, true}, {NOTE_E4, 501, true, true}, {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, true}, + {REST, 125, false, false}, {NOTE_G4, 125, true, true}, {NOTE_G4, 125, false, false}, {REST, 125, false, false}, + {NOTE_E4, 125, true, true}, {NOTE_E4, 125, true, true}, {REST, 125, false, false}, {NOTE_D4, 250, true, true}, + {NOTE_C4, 500, true, true}, {NOTE_C4, 500, true, true}, {REST, 500, true, true}, {REST, 468, true, true}, + {REST, 30, true, true}, {NOTE_E4, 501, true, true}, {NOTE_E4, 250, true, true}, {NOTE_E4, 125, true, true}, + {REST, 125, false, false}, {NOTE_G4, 125, true, true}, {NOTE_G4, 125, false, false}, {REST, 125, false, false}, + {NOTE_E4, 125, true, true}, {NOTE_E4, 125, true, true}, {REST, 125, false, false}, {NOTE_D4, 250, true, true}, + {NOTE_C4, 375, true, true}, {NOTE_D4, 125, true, true}, {NOTE_D4, 250, true, true}, {NOTE_C4, 250, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, false}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {NOTE_CS4, 250, true, true}, + {NOTE_E4, 250, true, true}, {NOTE_E4, 250, true, true}, {REST, 750, true, true}, {REST, 125, true, false}, + {REST, 125, false, false}, {REST, 125, true, false}, {REST, 250, false, false}, {REST, 125, true, false}, + {REST, 250, false, false}, {REST, 250, true, false}, {REST, 1000, true, false}, {REST, 1000, true, false}, + {REST, 750, true, false}, {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, false}, + {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, false, false}, {REST, 250, true, false}, + {REST, 1000, true, false}, {REST, 1000, true, false}, {REST, 500, true, true}, {REST, 250, true, true}, + {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, {REST, 250, false, false}, + {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, + {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, + {REST, 125, true, true}, {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, true, true}, + {REST, 250, true, false}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 250, true, true}, {REST, 125, true, false}, + {REST, 125, false, false}, {REST, 125, true, true}, {REST, 250, false, false}, {REST, 125, true, false}, + {REST, 250, true, true}, {REST, 250, true, false}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 250, true, true}, + {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, {REST, 250, false, false}, + {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, + {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, + {REST, 125, true, true}, {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, true, true}, + {REST, 250, true, false}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 250, true, true}, {REST, 125, true, false}, + {REST, 125, false, false}, {REST, 125, true, true}, {REST, 250, false, false}, {REST, 125, true, false}, + {REST, 250, true, true}, {REST, 250, true, false}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, false}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {NOTE_CS4, 250, true, true}, + {NOTE_E4, 250, true, true}, {NOTE_E4, 250, true, true}, {REST, 750, true, true}, {REST, 125, true, false}, + {REST, 125, false, false}, {REST, 125, true, false}, {REST, 250, false, false}, {REST, 125, true, false}, + {REST, 250, false, false}, {REST, 250, true, false}, {REST, 1000, true, false}, {REST, 1000, true, false}, + {REST, 750, true, false}, {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, false}, + {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, false, false}, {REST, 250, true, false}, + {REST, 1000, true, false}, {REST, 1000, true, false}, {REST, 500, true, true}, {REST, 250, true, true}, + {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, {REST, 250, false, false}, + {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, + {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, + {REST, 125, true, true}, {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, true, true}, + {REST, 250, true, false}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 250, true, true}, {REST, 125, true, false}, + {REST, 125, false, false}, {REST, 125, true, true}, {REST, 250, false, false}, {REST, 125, true, false}, + {REST, 250, true, true}, {REST, 250, true, false}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 250, true, true}, + {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, {REST, 250, false, false}, + {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, + {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {REST, 250, true, false}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {NOTE_CS4, 250, true, true}, {NOTE_E4, 250, true, true}, {NOTE_E4, 250, true, true}, + {REST, 750, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, false}, + {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, false, false}, {REST, 250, true, false}, + {REST, 1000, true, false}, {REST, 1000, true, false}, {REST, 500, true, true}, {REST, 250, true, true}, + {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, {REST, 250, false, false}, + {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, + {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, + {REST, 125, true, true}, {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, true, true}, + {REST, 250, true, false}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 250, true, true}, {REST, 125, true, false}, + {REST, 125, false, false}, {REST, 125, true, true}, {REST, 250, false, false}, {REST, 125, true, false}, + {REST, 250, true, true}, {REST, 250, true, false}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 250, true, true}, + {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, {REST, 250, false, false}, + {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, {REST, 500, true, true}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 250, true, true}, {REST, 125, true, false}, {REST, 125, false, false}, {REST, 125, true, true}, + {REST, 250, false, false}, {REST, 125, true, false}, {REST, 250, true, true}, {REST, 250, true, false}, + {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, {REST, 500, true, true}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {REST, 250, true, false}, {REST, 250, true, true}, {REST, 250, true, true}, + {REST, 250, true, true}, {NOTE_E4, 2000, true, true}, + {REST, 2000, false, false} +}; + +// Converted from: mega.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_mega[] = { + {659, 125, true, true}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, true}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {0, 2000, false, false} +}; + + + +// TRACK 1: Careless Whisper (Extended Club Edit) +const SequenceStep careless_song[] = { + // Phrase 1: Smooth Intro + {NOTE_D5, 600, false, false}, {NOTE_C5, 300, false, false}, {NOTE_AS4, 300, false, false}, {NOTE_A4, 1200, false, true}, {REST, 200, false, false}, + {NOTE_F4, 300, false, false}, {NOTE_A4, 300, false, false}, {NOTE_D5, 600, false, false}, {NOTE_C5, 300, false, false}, {NOTE_AS4, 300, false, false}, {NOTE_A4, 1200, false, true}, {REST, 200, false, false}, + {NOTE_F4, 300, false, false}, {NOTE_A4, 300, false, false}, {NOTE_D5, 600, false, false}, {NOTE_C5, 300, false, false}, {NOTE_AS4, 300, false, false}, {NOTE_A4, 1200, false, false}, {REST, 200, false, false}, + {NOTE_E4, 300, false, false}, {NOTE_G4, 300, false, false}, {NOTE_C5, 600, false, false}, {NOTE_AS4, 300, false, false}, {NOTE_A4, 300, false, false}, {NOTE_G4, 1200, false, true}, {REST, 600, false, false}, + {NOTE_D4, 200, false, false}, {NOTE_F4, 200, false, false}, {NOTE_A4, 200, false, false}, {NOTE_D5, 400, false, false}, {NOTE_C5, 200, false, false}, {NOTE_A4, 200, false, false}, {NOTE_F4, 200, false, false}, {NOTE_D4, 400, false, false}, + {REST, 500, false, false}, + // Phrase 2: The Beat Drop (Heavy Kick + Hat) + {NOTE_D5, 600, true, false}, {NOTE_C5, 300, false, true}, {NOTE_AS4, 300, true, false}, {NOTE_A4, 1200, true, true}, {REST, 200, false, false}, + {NOTE_F4, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_D5, 600, true, false}, {NOTE_C5, 300, false, true}, {NOTE_AS4, 300, true, false}, {NOTE_A4, 1200, true, true}, {REST, 200, false, false}, + {NOTE_F4, 300, false, true}, {NOTE_A4, 300, true, false}, {NOTE_D5, 600, false, true}, {NOTE_C5, 300, true, false}, {NOTE_AS4, 300, false, true}, {NOTE_A4, 1200, true, false}, {REST, 200, false, false}, + {NOTE_E4, 300, false, true}, {NOTE_G4, 300, true, false}, {NOTE_C5, 600, false, true}, {NOTE_AS4, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_G4, 1200, true, true}, {REST, 600, false, false}, + {NOTE_D4, 200, true, true}, {NOTE_F4, 200, false, false}, {NOTE_A4, 200, false, true}, {NOTE_D5, 400, true, false}, {NOTE_C5, 200, false, true}, {NOTE_A4, 200, true, false}, {NOTE_F4, 200, false, true}, {NOTE_D4, 400, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 2: Take On Me (Extended Build-Up) +const SequenceStep takeonme_song[] = { + // Loop 1: Bass and Hat only + {NOTE_FS5, 200, false, true}, {NOTE_FS5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_D5, 200, false, false}, + {NOTE_CS5, 200, false, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_A4, 200, false, true}, + {NOTE_B4, 200, false, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_D5, 200, false, true}, + {NOTE_E5, 200, false, true}, {NOTE_E5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_GS5, 200, false, false}, + {NOTE_GS5, 200, false, true}, {NOTE_A5, 200, false, false}, {NOTE_B5, 200, false, true}, {REST, 400, false, false}, + // Loop 2: Add the Kick Drum + {NOTE_FS5, 200, true, true}, {NOTE_FS5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_D5, 200, true, false}, + {NOTE_CS5, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_A4, 200, true, true}, + {NOTE_B4, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, true, false}, {NOTE_D5, 200, false, true}, + {NOTE_E5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_GS5, 200, true, false}, + {NOTE_GS5, 200, false, true}, {NOTE_A5, 200, false, false}, {NOTE_B5, 200, true, true}, {REST, 400, false, false}, + // Loop 3: Full Rave + {NOTE_FS5, 200, true, true}, {NOTE_FS5, 200, false, true}, {NOTE_E5, 200, true, true}, {NOTE_D5, 200, false, true}, + {NOTE_CS5, 200, true, true}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, true, true}, {NOTE_A4, 200, false, true}, + {NOTE_B4, 200, true, true}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, true, true}, {NOTE_D5, 200, false, true}, + {NOTE_E5, 200, true, true}, {NOTE_E5, 200, false, true}, {NOTE_E5, 200, true, true}, {NOTE_GS5, 200, false, true}, + {NOTE_GS5, 200, true, true}, {NOTE_A5, 200, false, true}, {NOTE_B5, 200, true, true}, {REST, 1000, false, false} +}; + +// TRACK 3: Rickroll (Extended Double Chorus) +const SequenceStep rickroll_song[] = { + // Chorus 1 + {NOTE_CS5, 300, true, false}, {NOTE_D5, 300, false, true}, {NOTE_CS5, 300, true, false}, {NOTE_B4, 300, false, true}, {NOTE_FS4, 600, true, true}, {REST, 600, false, false}, + {NOTE_A4, 150, true, false}, {NOTE_B4, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_B4, 150, false, true}, {NOTE_FS5, 300, true, false}, {NOTE_FS5, 300, false, true}, {NOTE_E5, 600, true, false}, + {NOTE_A4, 150, false, true}, {NOTE_B4, 150, true, false}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_E5, 300, true, true}, {NOTE_E5, 300, false, false}, {NOTE_D5, 300, true, false}, {NOTE_CS5, 150, false, true}, {NOTE_B4, 150, false, false}, + {NOTE_A4, 150, true, true}, {NOTE_B4, 150, false, false}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_D5, 300, true, false}, {NOTE_E5, 300, false, true}, {NOTE_CS5, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_A4, 300, true, false}, {NOTE_E5, 300, false, true}, {NOTE_D5, 900, true, true}, + {REST, 600, false, false}, + // Chorus 2 (Faster Hat) + {NOTE_CS5, 300, true, true}, {NOTE_D5, 300, false, true}, {NOTE_CS5, 300, true, true}, {NOTE_B4, 300, false, true}, {NOTE_FS4, 600, true, true}, {REST, 600, false, false}, + {NOTE_A4, 150, true, true}, {NOTE_B4, 150, false, true}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, true}, {NOTE_FS5, 300, true, true}, {NOTE_FS5, 300, false, true}, {NOTE_E5, 600, true, true}, + {NOTE_A4, 150, false, true}, {NOTE_B4, 150, true, true}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, true}, {NOTE_E5, 300, true, true}, {NOTE_E5, 300, false, true}, {NOTE_D5, 300, true, true}, {NOTE_CS5, 150, false, true}, {NOTE_B4, 150, false, true}, + {NOTE_A4, 150, true, true}, {NOTE_B4, 150, false, true}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, true}, {NOTE_D5, 300, true, true}, {NOTE_E5, 300, false, true}, {NOTE_CS5, 300, true, true}, {NOTE_A4, 300, false, true}, {NOTE_A4, 300, true, true}, {NOTE_E5, 300, false, true}, {NOTE_D5, 900, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 4: Can't Help Falling In Love (Extended Wedding Mix) +const SequenceStep elvis_song[] = { + // Verse 1 + {NOTE_C4, 400, true, false}, {NOTE_G4, 400, false, true}, {NOTE_C5, 800, true, false}, {NOTE_G4, 400, false, true}, {NOTE_E4, 400, true, false}, + {NOTE_A4, 400, true, true}, {NOTE_B4, 400, false, false}, {NOTE_C5, 400, true, false}, {NOTE_D5, 400, false, true}, {NOTE_E5, 400, true, false}, {NOTE_F5, 400, false, true}, {NOTE_E5, 800, true, true}, {NOTE_D5, 800, false, true}, + {NOTE_G4, 400, true, false}, {NOTE_A4, 400, false, true}, {NOTE_B4, 400, true, false}, {NOTE_C5, 800, true, true}, {NOTE_D5, 400, false, true}, + {NOTE_E5, 400, true, false}, {NOTE_F5, 400, false, true}, {NOTE_G5, 400, true, false}, {NOTE_F5, 400, true, true}, {NOTE_E5, 400, false, true}, {NOTE_D5, 400, true, false}, {NOTE_C5, 1200, true, true}, + {REST, 800, false, false}, + // Verse 2 (Double Drums) + {NOTE_C4, 400, true, true}, {NOTE_G4, 400, false, true}, {NOTE_C5, 800, true, true}, {NOTE_G4, 400, false, true}, {NOTE_E4, 400, true, true}, + {NOTE_A4, 400, true, true}, {NOTE_B4, 400, false, true}, {NOTE_C5, 400, true, true}, {NOTE_D5, 400, false, true}, {NOTE_E5, 400, true, true}, {NOTE_F5, 400, false, true}, {NOTE_E5, 800, true, true}, {NOTE_D5, 800, false, true}, + {NOTE_G4, 400, true, true}, {NOTE_A4, 400, false, true}, {NOTE_B4, 400, true, true}, {NOTE_C5, 800, true, true}, {NOTE_D5, 400, false, true}, + {NOTE_E5, 400, true, true}, {NOTE_F5, 400, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 400, true, true}, {NOTE_E5, 400, false, true}, {NOTE_D5, 400, true, true}, {NOTE_C5, 1200, true, true}, + {REST, 1500, false, false} +}; + +// TRACK 5: Gimme! Gimme! Gimme! (Extended Midnight Rave) +const SequenceStep abba_song[] = { + // Loop 1 + {NOTE_D5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_F5, 400, true, false}, {NOTE_A5, 200, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 200, false, false}, {NOTE_E5, 200, true, false}, {NOTE_F5, 200, false, true}, {NOTE_D5, 600, true, true}, {REST, 200, false, false}, + {NOTE_D5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_F5, 400, true, false}, {NOTE_A5, 200, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 200, false, false}, {NOTE_E5, 200, true, false}, {NOTE_D5, 200, false, true}, {NOTE_CS5, 600, true, true}, {REST, 400, false, false}, + {NOTE_D4, 200, true, true}, {REST, 100, false, false}, {NOTE_D4, 200, false, true}, {NOTE_F4, 200, true, false}, {NOTE_A4, 200, false, true}, {NOTE_G4, 200, true, true}, {REST, 100, false, false}, {NOTE_E4, 200, false, true}, {NOTE_C4, 200, true, false}, {NOTE_D4, 400, true, true}, + {REST, 400, false, false}, + // Loop 2 (More High Hats) + {NOTE_D5, 200, true, true}, {NOTE_E5, 200, false, true}, {NOTE_F5, 400, true, true}, {NOTE_A5, 200, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 200, false, true}, {NOTE_E5, 200, true, true}, {NOTE_F5, 200, false, true}, {NOTE_D5, 600, true, true}, {REST, 200, false, false}, + {NOTE_D5, 200, true, true}, {NOTE_E5, 200, false, true}, {NOTE_F5, 400, true, true}, {NOTE_A5, 200, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 200, false, true}, {NOTE_E5, 200, true, true}, {NOTE_D5, 200, false, true}, {NOTE_CS5, 600, true, true}, {REST, 400, false, false}, + {NOTE_D4, 200, true, true}, {REST, 100, false, true}, {NOTE_D4, 200, false, true}, {NOTE_F4, 200, true, true}, {NOTE_A4, 200, false, true}, {NOTE_G4, 200, true, true}, {REST, 100, false, true}, {NOTE_E4, 200, false, true}, {NOTE_C4, 200, true, true}, {NOTE_D4, 400, true, true}, + {REST, 1000, false, false} +}; + + +// TRACK 7: FΓΌr Elise (Beethoven Extended Trance) +const SequenceStep elise_song[] = { + // Loop 1 + {NOTE_E5, 200, true, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, false, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, true, false}, + {NOTE_B4, 200, false, true}, {NOTE_D5, 200, false, false}, {NOTE_C5, 200, false, true}, {NOTE_A4, 600, true, true}, {REST, 200, false, false}, + {NOTE_C4, 200, false, true}, {NOTE_E4, 200, false, false}, {NOTE_A4, 200, false, true}, {NOTE_B4, 600, true, true}, {REST, 200, false, false}, + {NOTE_E4, 200, false, true}, {NOTE_GS4, 200, false, false}, {NOTE_B4, 200, false, true}, {NOTE_C5, 600, true, true}, {REST, 200, false, false}, + // Loop 2 + {NOTE_E5, 200, true, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, false, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, true, false}, + {NOTE_B4, 200, false, true}, {NOTE_D5, 200, false, false}, {NOTE_C5, 200, false, true}, {NOTE_A4, 600, true, true}, {REST, 200, false, false}, + {NOTE_C4, 200, false, true}, {NOTE_E4, 200, false, false}, {NOTE_A4, 200, false, true}, {NOTE_B4, 600, true, true}, {REST, 200, false, false}, + {NOTE_E4, 200, false, true}, {NOTE_C5, 200, false, false}, {NOTE_B4, 200, false, true}, {NOTE_A4, 800, true, true}, {REST, 200, false, false}, + // Loop 3 (Heavy Beat Drop) + {NOTE_E5, 200, true, true}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, true, true}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, true, true}, + {NOTE_B4, 200, false, true}, {NOTE_D5, 200, true, true}, {NOTE_C5, 200, false, true}, {NOTE_A4, 600, true, true}, {REST, 200, false, false}, + {NOTE_C4, 200, true, true}, {NOTE_E4, 200, false, true}, {NOTE_A4, 200, true, true}, {NOTE_B4, 600, true, true}, {REST, 200, false, false}, + {NOTE_E4, 200, true, true}, {NOTE_C5, 200, false, true}, {NOTE_B4, 200, true, true}, {NOTE_A4, 800, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 8: Symphony No. 40 (Mozart Extended) +const SequenceStep mozart_song[] = { + // Loop 1 + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, + {NOTE_AS5, 600, true, true}, {REST, 300, false, false}, + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, + {NOTE_A5, 600, true, true}, {REST, 300, false, false}, + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, + {NOTE_GS5, 600, true, true}, {REST, 300, false, false}, + // Loop 2 (Intense Drums) + {NOTE_DS5, 150, true, true}, {NOTE_D5, 150, false, true}, {NOTE_D5, 300, true, true}, + {NOTE_DS5, 150, true, true}, {NOTE_D5, 150, false, true}, {NOTE_D5, 300, true, true}, + {NOTE_DS5, 150, true, true}, {NOTE_D5, 150, false, true}, {NOTE_D5, 300, true, true}, + {NOTE_AS5, 600, true, true}, {REST, 300, false, false}, + {NOTE_D5, 150, true, true}, {NOTE_CS5, 150, false, true}, {NOTE_CS5, 300, true, true}, + {NOTE_D5, 150, true, true}, {NOTE_CS5, 150, false, true}, {NOTE_CS5, 300, true, true}, + {NOTE_D5, 150, true, true}, {NOTE_CS5, 150, false, true}, {NOTE_CS5, 300, true, true}, + {NOTE_A5, 600, true, true}, {REST, 300, false, false}, + {NOTE_CS5, 150, true, true}, {NOTE_C5, 150, false, true}, {NOTE_C5, 300, true, true}, + {NOTE_CS5, 150, true, true}, {NOTE_C5, 150, false, true}, {NOTE_C5, 300, true, true}, + {NOTE_CS5, 150, true, true}, {NOTE_C5, 150, false, true}, {NOTE_C5, 300, true, true}, + {NOTE_GS5, 600, true, true}, + {REST, 1000, false, false} +}; + +// ========================================== +// 5. HARDWARE INITIALIZATION +// ========================================== +void init_hardware(void) { + gpio_set_direction(ACTIVE_BUZZER_1_PIN, GPIO_MODE_OUTPUT); gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); + gpio_set_direction(ACTIVE_BUZZER_2_PIN, GPIO_MODE_OUTPUT); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_direction(LED_KICK_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_KICK_PIN, 0); + gpio_set_direction(LED_HAT_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_HAT_PIN, 0); + + gpio_reset_pin(BTN_PAUSE_PIN); gpio_reset_pin(BTN_NEXT_PIN); gpio_reset_pin(ROTARY_SW_PIN); + gpio_set_direction(BTN_PAUSE_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_PAUSE_PIN, GPIO_PULLUP_ONLY); + gpio_set_direction(BTN_NEXT_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_NEXT_PIN, GPIO_PULLUP_ONLY); + gpio_set_direction(ROTARY_SW_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(ROTARY_SW_PIN, GPIO_PULLUP_ONLY); + + ledc_timer_config_t timer_cfg = { .speed_mode = BUZZER_LEDC_MODE, .timer_num = BUZZER_LEDC_TIMER, .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 440, .clk_cfg = LEDC_AUTO_CLK }; + ledc_timer_config(&timer_cfg); + ledc_channel_config_t ch_cfg = { .speed_mode = BUZZER_LEDC_MODE, .channel = BUZZER_LEDC_CHANNEL, .timer_sel = BUZZER_LEDC_TIMER, .intr_type = LEDC_INTR_DISABLE, .gpio_num = PASSIVE_BUZZER_PIN, .duty = 0, .hpoint = 0 }; + ledc_channel_config(&ch_cfg); + + pcnt_unit_config_t unit_config = { .high_limit = 1000, .low_limit = -1000 }; + pcnt_new_unit(&unit_config, &pcnt_unit); + pcnt_glitch_filter_config_t filter_config = { .max_glitch_ns = 1000 }; + pcnt_unit_set_glitch_filter(pcnt_unit, &filter_config); + pcnt_chan_config_t chan_a_config = { .edge_gpio_num = ROTARY_CLK_PIN, .level_gpio_num = ROTARY_DT_PIN }; + pcnt_channel_handle_t pcnt_chan_a = NULL; pcnt_new_channel(pcnt_unit, &chan_a_config, &pcnt_chan_a); + pcnt_chan_config_t chan_b_config = { .edge_gpio_num = ROTARY_DT_PIN, .level_gpio_num = ROTARY_CLK_PIN }; + pcnt_channel_handle_t pcnt_chan_b = NULL; pcnt_new_channel(pcnt_unit, &chan_b_config, &pcnt_chan_b); + pcnt_channel_set_edge_action(pcnt_chan_a, PCNT_CHANNEL_EDGE_ACTION_DECREASE, PCNT_CHANNEL_EDGE_ACTION_INCREASE); + pcnt_channel_set_level_action(pcnt_chan_a, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_channel_set_edge_action(pcnt_chan_b, PCNT_CHANNEL_EDGE_ACTION_INCREASE, PCNT_CHANNEL_EDGE_ACTION_DECREASE); + pcnt_channel_set_level_action(pcnt_chan_b, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_unit_enable(pcnt_unit); pcnt_unit_clear_count(pcnt_unit); pcnt_unit_start(pcnt_unit); + + gpio_set_direction(OLED_DC_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 15) current_song_idx = 0; // 16 Total Songs + trigger_song_change = true; + is_paused = false; + } + + // Toggle Knob Mode (Volume vs Speed) + if(sw_btn == 0 && sw_last == 1) { + encoder_mode_volume = !encoder_mode_volume; + } + + pause_last = pause_btn; + next_last = next_btn; + sw_last = sw_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char ui_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 6) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 7) draw_string(2, 2, "MARIO"); + else if (current_song_idx == 8) draw_string(2, 2, "PIRT1"); + else if (current_song_idx == 9) draw_string(2, 2, "PIRT2"); + else if (current_song_idx == 10) draw_string(2, 2, "ALLA "); + else if (current_song_idx == 11) draw_string(2, 2, "TETRS"); + else if (current_song_idx == 12) draw_string(2, 2, "SONIC"); + else if (current_song_idx == 13) draw_string(2, 2, "CAST "); + else if (current_song_idx == 14) draw_string(2, 2, "SEVEN"); + else if (current_song_idx == 15) draw_string(2, 2, "MEGA "); + + if (is_paused) draw_string(40, 2, "PAUSE"); + + // Dynamic UI for Rotary Mode + if (encoder_mode_volume) { + sprintf(ui_buf, "VOL %d%%", (int)(current_volume * 100)); + } else { + sprintf(ui_buf, "SPD %.1fx", current_speed); + } + draw_string(80, 2, ui_buf); + + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); // ~30 FPS + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + + int last_encoder_count = 0; + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = midi_mario; num_steps = sizeof(midi_mario) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_potc_2; num_steps = sizeof(midi_potc_2) / sizeof(SequenceStep); } + else if (current_song_idx == 9) { active_song = midi_potc_3; num_steps = sizeof(midi_potc_3) / sizeof(SequenceStep); } + else if (current_song_idx == 10){ active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + else if (current_song_idx == 11){ active_song = midi_tetris_1; num_steps = sizeof(midi_tetris_1) / sizeof(SequenceStep); } + else if (current_song_idx == 12){ active_song = midi_sonic; num_steps = sizeof(midi_sonic) / sizeof(SequenceStep); } + else if (current_song_idx == 13){ active_song = midi_cast; num_steps = sizeof(midi_cast) / sizeof(SequenceStep); } + else if (current_song_idx == 14){ active_song = midi_seven; num_steps = sizeof(midi_seven) / sizeof(SequenceStep); } + else if (current_song_idx == 15){ active_song = midi_mega; num_steps = sizeof(midi_mega) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + int diff = encoder_count - last_encoder_count; + last_encoder_count = encoder_count; + + if (encoder_mode_volume) { + current_volume += diff * 0.05; + if (current_volume < 0.0) current_volume = 0.0; + if (current_volume > 1.0) current_volume = 1.0; + } else { + current_speed += diff * 0.05; + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + } + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + uint32_t target_duty = (uint32_t)(BUZZER_LEDC_DUTY * current_volume); + + if (step.frequency > 0 && target_duty > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, target_duty); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 16-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} diff --git a/main/mmcontroller.log b/main/mmcontroller.log new file mode 100644 index 0000000..909b48b --- /dev/null +++ b/main/mmcontroller.log @@ -0,0 +1,4821 @@ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(14): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(15): Expected device instantiation or directive here. +// 1. HARDWARE DEFINITIONS +^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(16): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(39): Expected nodes here. +pcnt_unit_handle_t pcnt_unit = NULL; + ^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(40): Expected node name here. +spi_device_handle_t spi = NULL; + ^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(40): Expected device instantiation or directive here. +spi_device_handle_t spi = NULL; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(42): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(43): Expected device instantiation or directive here. +// 2. INTER-PROCESS COMMUNICATION (IPC) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(44): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(45): Unknown parameter +volatile uint32_t current_freq = 0; + ^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(46): Unknown parameter +volatile bool current_kick = false; + ^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(47): Unknown parameter +volatile bool current_hat = false; + ^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(48): Unknown parameter +volatile float current_speed = 1.0; + ^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(50): Unknown parameter +volatile bool is_paused = false; + ^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(51): Unknown parameter +volatile int current_song_idx = 0; + ^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(52): Unknown parameter +volatile bool trigger_song_change = false; + ^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(54): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(55): Expected device instantiation or directive here. +// 3. GRAPHICS ENGINE & 1.3" OLED DRIVER +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(56): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(57): Expected nodes here. +uint8_t oled_buffer[1024]; + ^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(59): Expected device instantiation or directive here. +const uint8_t font5x7[59][5] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(60): Expected device instantiation or directive here. + {0x00,0x00,0x00,0x00,0x00}, {0x00,0x00,0x5f,0x00,0x00}, {0x00,0x07,0x00,0x07,0x00}, {0x14,0x7f,0x14,0x7f,0x14}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(61): Expected device instantiation or directive here. + {0x24,0x2a,0x7f,0x2a,0x12}, {0x23,0x13,0x08,0x64,0x62}, {0x36,0x49,0x55,0x22,0x50}, {0x00,0x05,0x03,0x00,0x00}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(62): Expected device instantiation or directive here. + {0x00,0x1c,0x22,0x41,0x00}, {0x00,0x41,0x22,0x1c,0x00}, {0x14,0x08,0x3e,0x08,0x14}, {0x08,0x08,0x3e,0x08,0x08}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(63): Expected device instantiation or directive here. + {0x00,0x50,0x30,0x00,0x00}, {0x08,0x08,0x08,0x08,0x08}, {0x00,0x60,0x60,0x00,0x00}, {0x20,0x10,0x08,0x04,0x02}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(64): Expected device instantiation or directive here. + {0x3e,0x51,0x49,0x45,0x3e}, {0x00,0x42,0x7f,0x40,0x00}, {0x42,0x61,0x51,0x49,0x46}, {0x21,0x41,0x45,0x4b,0x31}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(65): Expected device instantiation or directive here. + {0x18,0x14,0x12,0x7f,0x10}, {0x27,0x45,0x45,0x45,0x39}, {0x3c,0x4a,0x49,0x49,0x30}, {0x01,0x71,0x09,0x05,0x03}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(66): Expected device instantiation or directive here. + {0x36,0x49,0x49,0x49,0x36}, {0x06,0x49,0x49,0x29,0x1e}, {0x00,0x36,0x36,0x00,0x00}, {0x00,0x56,0x36,0x00,0x00}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(67): Expected device instantiation or directive here. + {0x08,0x14,0x22,0x41,0x00}, {0x14,0x14,0x14,0x14,0x14}, {0x00,0x41,0x22,0x14,0x08}, {0x02,0x01,0x51,0x09,0x06}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(68): Expected device instantiation or directive here. + {0x32,0x49,0x79,0x41,0x3e}, {0x7e,0x11,0x11,0x11,0x7e}, {0x7f,0x49,0x49,0x49,0x36}, {0x3e,0x41,0x41,0x41,0x22}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(69): Expected device instantiation or directive here. + {0x7f,0x41,0x41,0x22,0x1c}, {0x7f,0x49,0x49,0x49,0x41}, {0x7f,0x09,0x09,0x09,0x01}, {0x3e,0x41,0x49,0x49,0x7a}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(70): Expected device instantiation or directive here. + {0x7f,0x08,0x08,0x08,0x7f}, {0x00,0x41,0x7f,0x41,0x00}, {0x20,0x40,0x41,0x3f,0x01}, {0x7f,0x08,0x14,0x22,0x41}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(71): Expected device instantiation or directive here. + {0x7f,0x40,0x40,0x40,0x40}, {0x7f,0x02,0x0c,0x02,0x7f}, {0x7f,0x04,0x08,0x10,0x7f}, {0x3e,0x41,0x41,0x41,0x3e}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(72): Expected device instantiation or directive here. + {0x7f,0x09,0x09,0x09,0x06}, {0x3e,0x41,0x51,0x21,0x5e}, {0x7f,0x09,0x19,0x29,0x46}, {0x46,0x49,0x49,0x49,0x31}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(73): Expected device instantiation or directive here. + {0x01,0x01,0x7f,0x01,0x01}, {0x3f,0x40,0x40,0x40,0x3f}, {0x1f,0x20,0x40,0x20,0x1f}, {0x3f,0x40,0x38,0x40,0x3f}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(74): Expected device instantiation or directive here. + {0x63,0x14,0x08,0x14,0x63}, {0x07,0x08,0x70,0x08,0x07}, {0x61,0x51,0x49,0x45,0x43} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(75): Expected device instantiation or directive here. +}; +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(77): Expected node name here. +void oled_send_cmd(uint8_t cmd) { + ^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(77): Expected device instantiation or directive here. +void oled_send_cmd(uint8_t cmd) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(78): Expected 2 node names here. + gpio_set_level(OLED_DC_PIN, 0); spi_transaction_t t; memset(&t, 0, sizeof(t)); + uint8_t cmd_ram = cmd; t.length = 8; t.tx_buffer = &cmd_ram; spi_device_polling_transmit(spi, &t); +} + +void oled_send_data(const uint8_t *data, int len) { + gpio_set_level(OLED_DC_PIN, 1); spi_transaction_t t; memset(&t, 0, sizeof(t)); + t.length = len * 8; t.tx_buffer = data; spi_device_polling_transmit(spi, &t); +} + +void draw_pixel(int x, int y, int color) { + if (x < 0 || x >= 128 || y < 0 || y >= 64) return; + if (color) oled_buffer[x + (y / 8) * 128] |= (1 << (y % 8)); + else oled_buffer[x + (y / 8) * 128] &= ~(1 << (y % 8)); +} + +void draw_filled_rect(int x, int y, int w, int h, int color) { + for (int i = x; i < x + w; i++) for (int j = y; j < y + h; j++) draw_pixel(i, j, color); +} + +void draw_rect(int x, int y, int w, int h, int color) { + for (int i = x; i < x + w; i++) { draw_pixel(i, y, color); draw_pixel(i, y + h - 1, color); } + for (int j = y; j < y + h; j++) { draw_pixel(x, j, color); draw_pixel(x + w - 1, j, color); } +} + +void draw_string(int x, int y, const char* str) { + while(*str) { + char c = *str; + if (c >= 32 && c <= 90) { + for(int i=0; i<5; i++) for(int j=0; j<8; j++) if((font5x7[c-32][i] >> j) & 1) draw_pixel(x+i, y+j, 1); + } else if (c >= 97 && c <= 122) { + for(int i=0; i<5; i++) for(int j=0; j<8; j++) if((font5x7[c-64][i] >> j) & 1) draw_pixel(x+i, y+j, 1); + } + x += 6; str++; + } +} + +void oled_push_framebuffer(void) { + for(int page = 0; page < 8; page++) { + oled_send_cmd(0xB0 + page); oled_send_cmd(0x02); oled_send_cmd(0x10); + oled_send_data(&oled_buffer[page * 128], 128); + } +} + +// ========================================== +// 4. THE ULTIMATE 8-TRACK PLAYLIST (FLASH MEMORY STORAGE) +// ========================================== +typedef struct { uint32_t frequency; uint32_t duration; bool kick_drum; bool hi_hat; } SequenceStep; + +#define REST 0 +#define NOTE_G3 196 +#define NOTE_GS3 208 +#define NOTE_A3 220 +#define NOTE_AS3 233 +#define NOTE_B3 247 +#define NOTE_C4 262 +#define NOTE_CS4 277 +#define NOTE_D4 294 +#define NOTE_DS4 311 +#define NOTE_E4 330 +#define NOTE_F4 349 +#define NOTE_FS4 370 +#define NOTE_G4 392 +#define NOTE_GS4 415 +#define NOTE_A4 440 +#define NOTE_AS4 466 +#define NOTE_B4 494 +#define NOTE_C5 523 +#define NOTE_CS5 554 +#define NOTE_D5 587 +#define NOTE_DS5 622 +#define NOTE_E5 659 +#define NOTE_F5 698 +#define NOTE_FS5 740 +#define NOTE_G5 784 +#define NOTE_GS5 831 +#define NOTE_A5 880 +#define NOTE_AS5 932 +#define NOTE_B5 988 +#define NOTE_C6 1047 +#define NOTE_CS6 1109 +#define NOTE_D6 1175 +#define NOTE_DS6 1245 +#define NOTE_E6 1319 + + +// Converted from: alla_turca_8.mid +const SequenceStep midi_alla_turca[] = { + {493, 136, false, false}, {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, + {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, {523, 136, false, false}, + {329, 136, false, false}, {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, + {261, 136, false, false}, {659, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, + {220, 136, false, false}, {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, + {220, 136, false, false}, {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, + {220, 272, false, false}, {329, 272, false, false}, {261, 272, false, false}, {329, 272, false, false}, + {164, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, + {164, 272, false, false}, {246, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, + {164, 272, false, false}, {329, 272, false, false}, {123, 272, false, false}, {246, 272, false, false}, + {164, 545, false, false}, {523, 272, false, false}, {698, 272, false, false}, {130, 272, false, false}, + {261, 272, false, false}, {164, 136, false, false}, {783, 136, false, false}, {329, 136, false, false}, + {659, 136, false, false}, {195, 272, false, false}, {391, 272, false, false}, {523, 272, false, false}, + {698, 272, false, false}, {130, 272, false, false}, {261, 272, false, false}, {164, 136, false, false}, + {783, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {195, 545, false, false}, + {440, 272, false, false}, {587, 272, false, false}, {110, 272, false, false}, {220, 272, false, false}, + {130, 136, false, false}, {659, 136, false, false}, {261, 136, false, false}, {523, 136, false, false}, + {164, 272, false, false}, {329, 272, false, false}, {440, 272, false, false}, {587, 272, false, false}, + {110, 272, false, false}, {220, 272, false, false}, {130, 136, false, false}, {659, 136, false, false}, + {261, 136, false, false}, {523, 136, false, false}, {164, 545, false, false}, {493, 136, false, false}, + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, + {329, 272, false, false}, {261, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, + {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, + {659, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, + {880, 136, false, false}, {261, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {174, 272, false, false}, + {311, 272, false, false}, {311, 272, false, false}, {311, 272, false, false}, {164, 272, false, false}, + {220, 272, false, false}, {146, 272, false, false}, {246, 272, false, false}, {130, 272, false, false}, + {220, 272, false, false}, {146, 272, false, false}, {246, 272, false, false}, {220, 272, false, false}, + {164, 272, false, false}, {207, 272, false, false}, {207, 136, false, false}, {440, 68, false, false}, + {493, 68, false, false}, {220, 68, false, false}, {220, 477, false, false}, {440, 272, false, false}, + {493, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, {155, 272, false, false}, + {155, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {110, 545, false, false}, {1108, 136, false, false}, {1174, 136, false, false}, + {1108, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, {987, 136, false, false}, + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, + {277, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, {739, 136, false, false}, + {246, 136, false, false}, {698, 136, false, false}, {277, 136, false, false}, {622, 136, false, false}, + {277, 136, false, false}, {554, 136, false, false}, {184, 136, false, false}, {698, 136, false, false}, + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, + {277, 136, false, false}, {987, 136, false, false}, {174, 136, false, false}, {1046, 136, false, false}, + {277, 136, false, false}, {1046, 136, false, false}, {277, 136, false, false}, {1174, 136, false, false}, + {277, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, {987, 136, false, false}, + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, + {220, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, {739, 136, false, false}, + {329, 136, false, false}, {659, 136, false, false}, {329, 136, false, false}, {622, 136, false, false}, + {329, 136, false, false}, {554, 136, false, false}, {207, 136, false, false}, {659, 136, false, false}, + {369, 136, false, false}, {622, 136, false, false}, {311, 136, false, false}, {554, 136, false, false}, + {369, 136, false, false}, {523, 136, false, false}, {329, 545, false, false}, {659, 136, false, false}, + {587, 136, false, false}, {554, 136, false, false}, {493, 136, false, false}, {220, 136, false, false}, + {493, 136, false, false}, {329, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, + {739, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {246, 136, false, false}, + {830, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {207, 136, false, false}, + {587, 136, false, false}, {329, 136, false, false}, {493, 136, false, false}, {220, 136, false, false}, + {493, 136, false, false}, {329, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, + {739, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, {164, 272, false, false}, + {293, 272, false, false}, {293, 136, false, false}, {587, 136, false, false}, {293, 136, false, false}, + {493, 136, false, false}, {220, 136, false, false}, {493, 136, false, false}, {329, 136, false, false}, + {587, 136, false, false}, {277, 136, false, false}, {739, 136, false, false}, {329, 136, false, false}, + {880, 136, false, false}, {246, 136, false, false}, {830, 136, false, false}, {329, 136, false, false}, + {659, 136, false, false}, {207, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, + {493, 136, false, false}, {220, 136, false, false}, {659, 136, false, false}, {184, 136, false, false}, + {554, 136, false, false}, {146, 136, false, false}, {587, 136, false, false}, {164, 136, false, false}, + {493, 136, false, false}, {110, 272, false, false}, {220, 272, false, false}, {1108, 136, false, false}, + {1174, 136, false, false}, {1108, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, + {987, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, + {880, 136, false, false}, {277, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, + {739, 136, false, false}, {277, 136, false, false}, {698, 136, false, false}, {246, 136, false, false}, + {622, 136, false, false}, {277, 136, false, false}, {554, 136, false, false}, {184, 136, false, false}, + {698, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, + {830, 136, false, false}, {277, 136, false, false}, {987, 136, false, false}, {138, 136, false, false}, + {1046, 136, false, false}, {207, 136, false, false}, {1046, 136, false, false}, {277, 136, false, false}, + {1046, 136, false, false}, {277, 136, false, false}, {932, 136, false, false}, {123, 136, false, false}, + {1108, 136, false, false}, {246, 136, false, false}, {1108, 136, false, false}, {246, 136, false, false}, + {1108, 136, false, false}, {246, 136, false, false}, {1108, 136, false, false}, {123, 136, false, false}, + {1108, 136, false, false}, {246, 136, false, false}, {880, 136, false, false}, {246, 136, false, false}, + {880, 136, false, false}, {246, 136, false, false}, {830, 136, false, false}, {138, 136, false, false}, + {987, 136, false, false}, {220, 136, false, false}, {739, 136, false, false}, {138, 136, false, false}, + {739, 136, false, false}, {207, 136, false, false}, {698, 136, false, false}, {220, 545, false, false}, + {440, 272, false, false}, {493, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, + {155, 272, false, false}, {155, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, + {164, 272, false, false}, {164, 272, false, false}, {110, 545, false, false}, {493, 136, false, false}, + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, + {329, 272, false, false}, {329, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, + {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, + {659, 136, false, false}, {261, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {220, 272, false, false}, + {329, 272, false, false}, {329, 272, false, false}, {261, 272, false, false}, {164, 272, false, false}, + {329, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, {164, 272, false, false}, + {329, 272, false, false}, {246, 272, false, false}, {329, 272, false, false}, {164, 272, false, false}, + {329, 272, false, false}, {123, 272, false, false}, {246, 272, false, false}, {164, 545, false, false}, + {659, 272, false, false}, {698, 272, false, false}, {130, 272, false, false}, {261, 272, false, false}, + {164, 136, false, false}, {783, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, + {195, 272, false, false}, {391, 272, false, false}, {659, 272, false, false}, {698, 272, false, false}, + {130, 272, false, false}, {261, 272, false, false}, {164, 136, false, false}, {783, 136, false, false}, + {329, 136, false, false}, {659, 136, false, false}, {195, 545, false, false}, {523, 272, false, false}, + {587, 272, false, false}, {110, 272, false, false}, {220, 272, false, false}, {130, 136, false, false}, + {659, 136, false, false}, {261, 136, false, false}, {523, 136, false, false}, {164, 272, false, false}, + {329, 272, false, false}, {523, 272, false, false}, {587, 272, false, false}, {110, 272, false, false}, + {220, 272, false, false}, {130, 136, false, false}, {659, 136, false, false}, {261, 136, false, false}, + {523, 136, false, false}, {164, 545, false, false}, {493, 136, false, false}, {440, 136, false, false}, + {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, + {329, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, {523, 136, false, false}, + {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, {659, 136, false, false}, + {329, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, + {329, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, + {261, 136, false, false}, {880, 136, false, false}, {174, 272, false, false}, {311, 272, false, false}, + {311, 272, false, false}, {311, 272, false, false}, {164, 272, false, false}, {329, 272, false, false}, + {146, 272, false, false}, {174, 272, false, false}, {130, 272, false, false}, {220, 272, false, false}, + {146, 272, false, false}, {246, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {164, 272, false, false}, {207, 136, false, false}, {440, 68, false, false}, {493, 68, false, false}, + {220, 68, false, false}, {220, 477, false, false}, {440, 136, false, false}, {880, 136, false, false}, + {493, 136, false, false}, {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 272, false, false}, {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, + {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, + {987, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, + {830, 136, false, false}, {146, 136, false, false}, {739, 136, false, false}, {146, 136, false, false}, + {830, 136, false, false}, {155, 136, false, false}, {880, 136, false, false}, {155, 136, false, false}, + {987, 136, false, false}, {164, 136, false, false}, {830, 136, false, false}, {164, 136, false, false}, + {659, 136, false, false}, {164, 136, false, false}, {880, 136, false, false}, {164, 136, false, false}, + {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, {220, 272, false, false}, + {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {987, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {987, 136, false, false}, + {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {830, 136, false, false}, + {146, 136, false, false}, {739, 136, false, false}, {146, 136, false, false}, {987, 136, false, false}, + {164, 136, false, false}, {830, 136, false, false}, {164, 136, false, false}, {659, 136, false, false}, + {110, 545, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {164, 272, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {369, 136, false, false}, + {293, 136, false, false}, {369, 136, false, false}, {220, 136, false, false}, {369, 136, false, false}, + {293, 136, false, false}, {369, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {164, 136, false, false}, {329, 136, false, false}, + {207, 136, false, false}, {329, 136, false, false}, {164, 136, false, false}, {329, 136, false, false}, + {207, 136, false, false}, {329, 136, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {110, 545, false, false}, {164, 545, false, false}, + {164, 545, false, false}, + {0, 2000, false, false} +}; + +// TRACK 1: Careless Whisper (Long Sax Solo & Groove) +const SequenceStep careless_song[] = { + {NOTE_D5, 600, true, false}, {NOTE_C5, 300, false, true}, {NOTE_AS4, 300, false, false}, {NOTE_A4, 1200, true, true}, {REST, 200, false, false}, + {NOTE_F4, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_D5, 600, true, false}, {NOTE_C5, 300, false, true}, {NOTE_AS4, 300, false, false}, {NOTE_A4, 1200, true, true}, {REST, 200, false, false}, + {NOTE_F4, 300, false, true}, {NOTE_A4, 300, true, false}, {NOTE_D5, 600, false, true}, {NOTE_C5, 300, true, false}, {NOTE_AS4, 300, false, true}, {NOTE_A4, 1200, true, false}, {REST, 200, false, false}, + {NOTE_E4, 300, false, true}, {NOTE_G4, 300, true, false}, {NOTE_C5, 600, false, true}, {NOTE_AS4, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_G4, 1200, true, true}, {REST, 600, false, false}, + {NOTE_D4, 200, true, true}, {NOTE_F4, 200, false, false}, {NOTE_A4, 200, false, true}, {NOTE_D5, 400, true, false}, {NOTE_C5, 200, false, true}, {NOTE_A4, 200, true, false}, {NOTE_F4, 200, false, true}, {NOTE_D4, 400, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 2: Take On Me (The Iconic Synth Riff + Heavy Drums) +const SequenceStep takeonme_song[] = { + {NOTE_FS5, 200, true, true}, {NOTE_FS5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_D5, 200, false, false}, + {NOTE_CS5, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_A4, 200, false, true}, + {NOTE_B4, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_D5, 200, false, true}, + {NOTE_E5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_GS5, 200, true, false}, + {NOTE_GS5, 200, false, true}, {NOTE_A5, 200, false, false}, {NOTE_B5, 200, true, true}, {REST, 400, false, false}, + {NOTE_FS5, 200, true, true}, {NOTE_FS5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_D5, 200, false, false}, + {NOTE_CS5, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_A4, 200, false, true}, + {NOTE_B4, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_D5, 200, false, true}, + {NOTE_E5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_GS5, 200, true, false}, + {NOTE_GS5, 200, false, true}, {NOTE_A5, 200, false, false}, {NOTE_B5, 200, true, true}, {REST, 1000, false, false} +}; + +// TRACK 3: Rickroll (Intro & Chorus) +const SequenceStep rickroll_song[] = { + {NOTE_CS5, 300, true, false}, {NOTE_D5, 300, false, true}, {NOTE_CS5, 300, true, false}, {NOTE_B4, 300, false, true}, {NOTE_FS4, 600, true, true}, {REST, 600, false, false}, + {NOTE_A4, 150, true, false}, {NOTE_B4, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_B4, 150, false, true}, {NOTE_FS5, 300, true, false}, {NOTE_FS5, 300, false, true}, {NOTE_E5, 600, true, false}, + {NOTE_A4, 150, false, true}, {NOTE_B4, 150, true, false}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_E5, 300, true, true}, {NOTE_E5, 300, false, false}, {NOTE_D5, 300, true, false}, {NOTE_CS5, 150, false, true}, {NOTE_B4, 150, false, false}, + {NOTE_A4, 150, true, true}, {NOTE_B4, 150, false, false}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_D5, 300, true, false}, {NOTE_E5, 300, false, true}, {NOTE_CS5, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_A4, 300, true, false}, {NOTE_E5, 300, false, true}, {NOTE_D5, 900, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 4: Can't Help Falling In Love (Slow, Emotional Rhythm) +const SequenceStep elvis_song[] = { + {NOTE_C4, 400, true, false}, {NOTE_G4, 400, false, true}, {NOTE_C5, 800, true, false}, {NOTE_G4, 400, false, true}, {NOTE_E4, 400, true, false}, + {NOTE_A4, 400, true, true}, {NOTE_B4, 400, false, false}, {NOTE_C5, 400, true, false}, {NOTE_D5, 400, false, true}, {NOTE_E5, 400, true, false}, {NOTE_F5, 400, false, true}, {NOTE_E5, 800, true, true}, {NOTE_D5, 800, false, true}, + {NOTE_G4, 400, true, false}, {NOTE_A4, 400, false, true}, {NOTE_B4, 400, true, false}, {NOTE_C5, 800, true, true}, {NOTE_D5, 400, false, true}, + {NOTE_E5, 400, true, false}, {NOTE_F5, 400, false, true}, {NOTE_G5, 400, true, false}, {NOTE_F5, 400, true, true}, {NOTE_E5, 400, false, true}, {NOTE_D5, 400, true, false}, {NOTE_C5, 1200, true, true}, + {REST, 1500, false, false} +}; + +// TRACK 5: Gimme! Gimme! Gimme! (Midnight Rave Bassline) +const SequenceStep abba_song[] = { + {NOTE_D5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_F5, 400, true, false}, {NOTE_A5, 200, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 200, false, false}, {NOTE_E5, 200, true, false}, {NOTE_F5, 200, false, true}, {NOTE_D5, 600, true, true}, {REST, 200, false, false}, + {NOTE_D5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_F5, 400, true, false}, {NOTE_A5, 200, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 200, false, false}, {NOTE_E5, 200, true, false}, {NOTE_D5, 200, false, true}, {NOTE_CS5, 600, true, true}, {REST, 400, false, false}, + {NOTE_D4, 200, true, true}, {REST, 100, false, false}, {NOTE_D4, 200, false, true}, {NOTE_F4, 200, true, false}, {NOTE_A4, 200, false, true}, {NOTE_G4, 200, true, true}, {REST, 100, false, false}, {NOTE_E4, 200, false, true}, {NOTE_C4, 200, true, false}, {NOTE_D4, 400, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 6: Turkish March / Rondo Alla Turca (Mozart) +const SequenceStep turkish_song[] = { + // The famous ultra-fast piano run! + {NOTE_B4, 150, true, false}, {NOTE_A4, 150, false, true}, {NOTE_GS4, 150, false, false}, {NOTE_A4, 150, false, true}, {NOTE_C5, 600, true, true}, {REST, 150, false, false}, + {NOTE_D5, 150, true, false}, {NOTE_C5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_C5, 150, false, true}, {NOTE_E5, 600, true, true}, {REST, 150, false, false}, + {NOTE_F5, 150, true, false}, {NOTE_E5, 150, false, true}, {NOTE_DS5, 150, false, false}, {NOTE_E5, 150, false, true}, + {NOTE_B5, 150, true, false}, {NOTE_A5, 150, false, true}, {NOTE_GS5, 150, false, false}, {NOTE_A5, 150, false, true}, + {NOTE_B5, 150, true, false}, {NOTE_A5, 150, false, true}, {NOTE_GS5, 150, false, false}, {NOTE_A5, 150, false, true}, + {NOTE_C6, 450, true, true}, {NOTE_A5, 450, false, true}, {NOTE_C6, 450, true, false}, + // The strong driving ending + {NOTE_B5, 300, true, true}, {NOTE_A5, 300, false, false}, {NOTE_G5, 300, false, true}, {NOTE_A5, 300, true, false}, + {NOTE_B5, 300, true, true}, {NOTE_A5, 300, false, false}, {NOTE_G5, 300, false, true}, {NOTE_A5, 300, true, false}, + {NOTE_B5, 300, true, true}, {NOTE_A5, 300, false, false}, {NOTE_G5, 300, false, true}, {NOTE_FS5, 300, true, false}, + {NOTE_E5, 600, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 7: FΓΌr Elise (Beethoven) +const SequenceStep elise_song[] = { + // The iconic looping riff with a modern Trap/Rave beat + {NOTE_E5, 200, true, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, false, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, true, false}, + {NOTE_B4, 200, false, true}, {NOTE_D5, 200, false, false}, {NOTE_C5, 200, false, true}, + {NOTE_A4, 600, true, true}, {REST, 200, false, false}, + {NOTE_C4, 200, false, true}, {NOTE_E4, 200, false, false}, {NOTE_A4, 200, false, true}, + {NOTE_B4, 600, true, true}, {REST, 200, false, false}, + {NOTE_E4, 200, false, true}, {NOTE_GS4, 200, false, false}, {NOTE_B4, 200, false, true}, + {NOTE_C5, 600, true, true}, {REST, 200, false, false}, + + // Repeat to lock the trance + {NOTE_E5, 200, true, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, false, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, true, false}, + {NOTE_B4, 200, false, true}, {NOTE_D5, 200, false, false}, {NOTE_C5, 200, false, true}, + {NOTE_A4, 600, true, true}, {REST, 200, false, false}, + {NOTE_C4, 200, false, true}, {NOTE_E4, 200, false, false}, {NOTE_A4, 200, false, true}, + {NOTE_B4, 600, true, true}, {REST, 200, false, false}, + {NOTE_E4, 200, false, true}, {NOTE_C5, 200, false, false}, {NOTE_B4, 200, false, true}, + {NOTE_A4, 800, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 8: Symphony No. 40 (Mozart) +const SequenceStep mozart_song[] = { + // The intense, frantic strings + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, + {NOTE_AS5, 600, true, true}, {REST, 300, false, false}, + + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, + {NOTE_A5, 600, true, true}, {REST, 300, false, false}, + + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, + {NOTE_GS5, 600, true, true}, + {REST, 1000, false, false} +}; + +// ========================================== +// 5. HARDWARE INITIALIZATION +// ========================================== +void init_hardware(void) { + gpio_set_direction(ACTIVE_BUZZER_1_PIN, GPIO_MODE_OUTPUT); gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); + gpio_set_direction(ACTIVE_BUZZER_2_PIN, GPIO_MODE_OUTPUT); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_direction(LED_KICK_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_KICK_PIN, 0); + gpio_set_direction(LED_HAT_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_HAT_PIN, 0); + + gpio_reset_pin(BTN_PAUSE_PIN); gpio_reset_pin(BTN_NEXT_PIN); + gpio_set_direction(BTN_PAUSE_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_PAUSE_PIN, GPIO_PULLUP_ONLY); + gpio_set_direction(BTN_NEXT_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_NEXT_PIN, GPIO_PULLUP_ONLY); + + ledc_timer_config_t timer_cfg = { .speed_mode = BUZZER_LEDC_MODE, .timer_num = BUZZER_LEDC_TIMER, .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 440, .clk_cfg = LEDC_AUTO_CLK }; + ledc_timer_config(&timer_cfg); + ledc_channel_config_t ch_cfg = { .speed_mode = BUZZER_LEDC_MODE, .channel = BUZZER_LEDC_CHANNEL, .timer_sel = BUZZER_LEDC_TIMER, .intr_type = LEDC_INTR_DISABLE, .gpio_num = PASSIVE_BUZZER_PIN, .duty = 0, .hpoint = 0 }; + ledc_channel_config(&ch_cfg); + + pcnt_unit_config_t unit_config = { .high_limit = 100, .low_limit = -100 }; + pcnt_new_unit(&unit_config, &pcnt_unit); + pcnt_glitch_filter_config_t filter_config = { .max_glitch_ns = 1000 }; + pcnt_unit_set_glitch_filter(pcnt_unit, &filter_config); + pcnt_chan_config_t chan_a_config = { .edge_gpio_num = ROTARY_CLK_PIN, .level_gpio_num = ROTARY_DT_PIN }; + pcnt_channel_handle_t pcnt_chan_a = NULL; pcnt_new_channel(pcnt_unit, &chan_a_config, &pcnt_chan_a); + pcnt_chan_config_t chan_b_config = { .edge_gpio_num = ROTARY_DT_PIN, .level_gpio_num = ROTARY_CLK_PIN }; + pcnt_channel_handle_t pcnt_chan_b = NULL; pcnt_new_channel(pcnt_unit, &chan_b_config, &pcnt_chan_b); + pcnt_channel_set_edge_action(pcnt_chan_a, PCNT_CHANNEL_EDGE_ACTION_DECREASE, PCNT_CHANNEL_EDGE_ACTION_INCREASE); + pcnt_channel_set_level_action(pcnt_chan_a, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_channel_set_edge_action(pcnt_chan_b, PCNT_CHANNEL_EDGE_ACTION_INCREASE, PCNT_CHANNEL_EDGE_ACTION_DECREASE); + pcnt_channel_set_level_action(pcnt_chan_b, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_unit_enable(pcnt_unit); pcnt_unit_clear_count(pcnt_unit); pcnt_unit_start(pcnt_unit); + + gpio_set_direction(OLED_DC_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + trigger_song_change = true; + is_paused = false; + } + + pause_last = pause_btn; + next_last = next_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char speed_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + // 8 Track Interface Updater + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + if (is_paused) draw_string(45, 2, "PAUSE"); + + sprintf(speed_buf, "%.2fx", current_speed); + draw_string(96, 2, speed_buf); + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; spi_transaction_t t; memset(&t, 0, sizeof(t)); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(79): Expected nodes here. + uint8_t cmd_ram = cmd; t.length = 8; t.tx_buffer = &cmd_ram; spi_device_polling_transmit(spi, &t); + ^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(80): Expected device instantiation or directive here. +} +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(82): Expected node name here. +void oled_send_data(const uint8_t *data, int len) { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(82): Expected device instantiation or directive here. +void oled_send_data(const uint8_t *data, int len) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(83): Expected 2 node names here. + gpio_set_level(OLED_DC_PIN, 1); spi_transaction_t t; memset(&t, 0, sizeof(t)); + t.length = len * 8; t.tx_buffer = data; spi_device_polling_transmit(spi, &t); +} + +void draw_pixel(int x, int y, int color) { + if (x < 0 || x >= 128 || y < 0 || y >= 64) return; + if (color) oled_buffer[x + (y / 8) * 128] |= (1 << (y % 8)); + else oled_buffer[x + (y / 8) * 128] &= ~(1 << (y % 8)); +} + +void draw_filled_rect(int x, int y, int w, int h, int color) { + for (int i = x; i < x + w; i++) for (int j = y; j < y + h; j++) draw_pixel(i, j, color); +} + +void draw_rect(int x, int y, int w, int h, int color) { + for (int i = x; i < x + w; i++) { draw_pixel(i, y, color); draw_pixel(i, y + h - 1, color); } + for (int j = y; j < y + h; j++) { draw_pixel(x, j, color); draw_pixel(x + w - 1, j, color); } +} + +void draw_string(int x, int y, const char* str) { + while(*str) { + char c = *str; + if (c >= 32 && c <= 90) { + for(int i=0; i<5; i++) for(int j=0; j<8; j++) if((font5x7[c-32][i] >> j) & 1) draw_pixel(x+i, y+j, 1); + } else if (c >= 97 && c <= 122) { + for(int i=0; i<5; i++) for(int j=0; j<8; j++) if((font5x7[c-64][i] >> j) & 1) draw_pixel(x+i, y+j, 1); + } + x += 6; str++; + } +} + +void oled_push_framebuffer(void) { + for(int page = 0; page < 8; page++) { + oled_send_cmd(0xB0 + page); oled_send_cmd(0x02); oled_send_cmd(0x10); + oled_send_data(&oled_buffer[page * 128], 128); + } +} + +// ========================================== +// 4. THE ULTIMATE 8-TRACK PLAYLIST (FLASH MEMORY STORAGE) +// ========================================== +typedef struct { uint32_t frequency; uint32_t duration; bool kick_drum; bool hi_hat; } SequenceStep; + +#define REST 0 +#define NOTE_G3 196 +#define NOTE_GS3 208 +#define NOTE_A3 220 +#define NOTE_AS3 233 +#define NOTE_B3 247 +#define NOTE_C4 262 +#define NOTE_CS4 277 +#define NOTE_D4 294 +#define NOTE_DS4 311 +#define NOTE_E4 330 +#define NOTE_F4 349 +#define NOTE_FS4 370 +#define NOTE_G4 392 +#define NOTE_GS4 415 +#define NOTE_A4 440 +#define NOTE_AS4 466 +#define NOTE_B4 494 +#define NOTE_C5 523 +#define NOTE_CS5 554 +#define NOTE_D5 587 +#define NOTE_DS5 622 +#define NOTE_E5 659 +#define NOTE_F5 698 +#define NOTE_FS5 740 +#define NOTE_G5 784 +#define NOTE_GS5 831 +#define NOTE_A5 880 +#define NOTE_AS5 932 +#define NOTE_B5 988 +#define NOTE_C6 1047 +#define NOTE_CS6 1109 +#define NOTE_D6 1175 +#define NOTE_DS6 1245 +#define NOTE_E6 1319 + + +// Converted from: alla_turca_8.mid +const SequenceStep midi_alla_turca[] = { + {493, 136, false, false}, {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, + {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, {523, 136, false, false}, + {329, 136, false, false}, {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, + {261, 136, false, false}, {659, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, + {220, 136, false, false}, {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, + {220, 136, false, false}, {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, + {220, 272, false, false}, {329, 272, false, false}, {261, 272, false, false}, {329, 272, false, false}, + {164, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, + {164, 272, false, false}, {246, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, + {164, 272, false, false}, {329, 272, false, false}, {123, 272, false, false}, {246, 272, false, false}, + {164, 545, false, false}, {523, 272, false, false}, {698, 272, false, false}, {130, 272, false, false}, + {261, 272, false, false}, {164, 136, false, false}, {783, 136, false, false}, {329, 136, false, false}, + {659, 136, false, false}, {195, 272, false, false}, {391, 272, false, false}, {523, 272, false, false}, + {698, 272, false, false}, {130, 272, false, false}, {261, 272, false, false}, {164, 136, false, false}, + {783, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {195, 545, false, false}, + {440, 272, false, false}, {587, 272, false, false}, {110, 272, false, false}, {220, 272, false, false}, + {130, 136, false, false}, {659, 136, false, false}, {261, 136, false, false}, {523, 136, false, false}, + {164, 272, false, false}, {329, 272, false, false}, {440, 272, false, false}, {587, 272, false, false}, + {110, 272, false, false}, {220, 272, false, false}, {130, 136, false, false}, {659, 136, false, false}, + {261, 136, false, false}, {523, 136, false, false}, {164, 545, false, false}, {493, 136, false, false}, + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, + {329, 272, false, false}, {261, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, + {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, + {659, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, + {880, 136, false, false}, {261, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {174, 272, false, false}, + {311, 272, false, false}, {311, 272, false, false}, {311, 272, false, false}, {164, 272, false, false}, + {220, 272, false, false}, {146, 272, false, false}, {246, 272, false, false}, {130, 272, false, false}, + {220, 272, false, false}, {146, 272, false, false}, {246, 272, false, false}, {220, 272, false, false}, + {164, 272, false, false}, {207, 272, false, false}, {207, 136, false, false}, {440, 68, false, false}, + {493, 68, false, false}, {220, 68, false, false}, {220, 477, false, false}, {440, 272, false, false}, + {493, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, {155, 272, false, false}, + {155, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {110, 545, false, false}, {1108, 136, false, false}, {1174, 136, false, false}, + {1108, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, {987, 136, false, false}, + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, + {277, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, {739, 136, false, false}, + {246, 136, false, false}, {698, 136, false, false}, {277, 136, false, false}, {622, 136, false, false}, + {277, 136, false, false}, {554, 136, false, false}, {184, 136, false, false}, {698, 136, false, false}, + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, + {277, 136, false, false}, {987, 136, false, false}, {174, 136, false, false}, {1046, 136, false, false}, + {277, 136, false, false}, {1046, 136, false, false}, {277, 136, false, false}, {1174, 136, false, false}, + {277, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, {987, 136, false, false}, + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, + {220, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, {739, 136, false, false}, + {329, 136, false, false}, {659, 136, false, false}, {329, 136, false, false}, {622, 136, false, false}, + {329, 136, false, false}, {554, 136, false, false}, {207, 136, false, false}, {659, 136, false, false}, + {369, 136, false, false}, {622, 136, false, false}, {311, 136, false, false}, {554, 136, false, false}, + {369, 136, false, false}, {523, 136, false, false}, {329, 545, false, false}, {659, 136, false, false}, + {587, 136, false, false}, {554, 136, false, false}, {493, 136, false, false}, {220, 136, false, false}, + {493, 136, false, false}, {329, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, + {739, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {246, 136, false, false}, + {830, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {207, 136, false, false}, + {587, 136, false, false}, {329, 136, false, false}, {493, 136, false, false}, {220, 136, false, false}, + {493, 136, false, false}, {329, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, + {739, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, {164, 272, false, false}, + {293, 272, false, false}, {293, 136, false, false}, {587, 136, false, false}, {293, 136, false, false}, + {493, 136, false, false}, {220, 136, false, false}, {493, 136, false, false}, {329, 136, false, false}, + {587, 136, false, false}, {277, 136, false, false}, {739, 136, false, false}, {329, 136, false, false}, + {880, 136, false, false}, {246, 136, false, false}, {830, 136, false, false}, {329, 136, false, false}, + {659, 136, false, false}, {207, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, + {493, 136, false, false}, {220, 136, false, false}, {659, 136, false, false}, {184, 136, false, false}, + {554, 136, false, false}, {146, 136, false, false}, {587, 136, false, false}, {164, 136, false, false}, + {493, 136, false, false}, {110, 272, false, false}, {220, 272, false, false}, {1108, 136, false, false}, + {1174, 136, false, false}, {1108, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, + {987, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, + {880, 136, false, false}, {277, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, + {739, 136, false, false}, {277, 136, false, false}, {698, 136, false, false}, {246, 136, false, false}, + {622, 136, false, false}, {277, 136, false, false}, {554, 136, false, false}, {184, 136, false, false}, + {698, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, + {830, 136, false, false}, {277, 136, false, false}, {987, 136, false, false}, {138, 136, false, false}, + {1046, 136, false, false}, {207, 136, false, false}, {1046, 136, false, false}, {277, 136, false, false}, + {1046, 136, false, false}, {277, 136, false, false}, {932, 136, false, false}, {123, 136, false, false}, + {1108, 136, false, false}, {246, 136, false, false}, {1108, 136, false, false}, {246, 136, false, false}, + {1108, 136, false, false}, {246, 136, false, false}, {1108, 136, false, false}, {123, 136, false, false}, + {1108, 136, false, false}, {246, 136, false, false}, {880, 136, false, false}, {246, 136, false, false}, + {880, 136, false, false}, {246, 136, false, false}, {830, 136, false, false}, {138, 136, false, false}, + {987, 136, false, false}, {220, 136, false, false}, {739, 136, false, false}, {138, 136, false, false}, + {739, 136, false, false}, {207, 136, false, false}, {698, 136, false, false}, {220, 545, false, false}, + {440, 272, false, false}, {493, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, + {155, 272, false, false}, {155, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, + {164, 272, false, false}, {164, 272, false, false}, {110, 545, false, false}, {493, 136, false, false}, + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, + {329, 272, false, false}, {329, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, + {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, + {659, 136, false, false}, {261, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {220, 272, false, false}, + {329, 272, false, false}, {329, 272, false, false}, {261, 272, false, false}, {164, 272, false, false}, + {329, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, {164, 272, false, false}, + {329, 272, false, false}, {246, 272, false, false}, {329, 272, false, false}, {164, 272, false, false}, + {329, 272, false, false}, {123, 272, false, false}, {246, 272, false, false}, {164, 545, false, false}, + {659, 272, false, false}, {698, 272, false, false}, {130, 272, false, false}, {261, 272, false, false}, + {164, 136, false, false}, {783, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, + {195, 272, false, false}, {391, 272, false, false}, {659, 272, false, false}, {698, 272, false, false}, + {130, 272, false, false}, {261, 272, false, false}, {164, 136, false, false}, {783, 136, false, false}, + {329, 136, false, false}, {659, 136, false, false}, {195, 545, false, false}, {523, 272, false, false}, + {587, 272, false, false}, {110, 272, false, false}, {220, 272, false, false}, {130, 136, false, false}, + {659, 136, false, false}, {261, 136, false, false}, {523, 136, false, false}, {164, 272, false, false}, + {329, 272, false, false}, {523, 272, false, false}, {587, 272, false, false}, {110, 272, false, false}, + {220, 272, false, false}, {130, 136, false, false}, {659, 136, false, false}, {261, 136, false, false}, + {523, 136, false, false}, {164, 545, false, false}, {493, 136, false, false}, {440, 136, false, false}, + {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, + {329, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, {523, 136, false, false}, + {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, {659, 136, false, false}, + {329, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, + {329, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, + {261, 136, false, false}, {880, 136, false, false}, {174, 272, false, false}, {311, 272, false, false}, + {311, 272, false, false}, {311, 272, false, false}, {164, 272, false, false}, {329, 272, false, false}, + {146, 272, false, false}, {174, 272, false, false}, {130, 272, false, false}, {220, 272, false, false}, + {146, 272, false, false}, {246, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {164, 272, false, false}, {207, 136, false, false}, {440, 68, false, false}, {493, 68, false, false}, + {220, 68, false, false}, {220, 477, false, false}, {440, 136, false, false}, {880, 136, false, false}, + {493, 136, false, false}, {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 272, false, false}, {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, + {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, + {987, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, + {830, 136, false, false}, {146, 136, false, false}, {739, 136, false, false}, {146, 136, false, false}, + {830, 136, false, false}, {155, 136, false, false}, {880, 136, false, false}, {155, 136, false, false}, + {987, 136, false, false}, {164, 136, false, false}, {830, 136, false, false}, {164, 136, false, false}, + {659, 136, false, false}, {164, 136, false, false}, {880, 136, false, false}, {164, 136, false, false}, + {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, {220, 272, false, false}, + {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {987, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {987, 136, false, false}, + {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {830, 136, false, false}, + {146, 136, false, false}, {739, 136, false, false}, {146, 136, false, false}, {987, 136, false, false}, + {164, 136, false, false}, {830, 136, false, false}, {164, 136, false, false}, {659, 136, false, false}, + {110, 545, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {164, 272, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {369, 136, false, false}, + {293, 136, false, false}, {369, 136, false, false}, {220, 136, false, false}, {369, 136, false, false}, + {293, 136, false, false}, {369, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, + {277, 136, false, false}, {329, 136, false, false}, {164, 136, false, false}, {329, 136, false, false}, + {207, 136, false, false}, {329, 136, false, false}, {164, 136, false, false}, {329, 136, false, false}, + {207, 136, false, false}, {329, 136, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, + {220, 272, false, false}, {220, 272, false, false}, {110, 545, false, false}, {164, 545, false, false}, + {164, 545, false, false}, + {0, 2000, false, false} +}; + +// TRACK 1: Careless Whisper (Long Sax Solo & Groove) +const SequenceStep careless_song[] = { + {NOTE_D5, 600, true, false}, {NOTE_C5, 300, false, true}, {NOTE_AS4, 300, false, false}, {NOTE_A4, 1200, true, true}, {REST, 200, false, false}, + {NOTE_F4, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_D5, 600, true, false}, {NOTE_C5, 300, false, true}, {NOTE_AS4, 300, false, false}, {NOTE_A4, 1200, true, true}, {REST, 200, false, false}, + {NOTE_F4, 300, false, true}, {NOTE_A4, 300, true, false}, {NOTE_D5, 600, false, true}, {NOTE_C5, 300, true, false}, {NOTE_AS4, 300, false, true}, {NOTE_A4, 1200, true, false}, {REST, 200, false, false}, + {NOTE_E4, 300, false, true}, {NOTE_G4, 300, true, false}, {NOTE_C5, 600, false, true}, {NOTE_AS4, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_G4, 1200, true, true}, {REST, 600, false, false}, + {NOTE_D4, 200, true, true}, {NOTE_F4, 200, false, false}, {NOTE_A4, 200, false, true}, {NOTE_D5, 400, true, false}, {NOTE_C5, 200, false, true}, {NOTE_A4, 200, true, false}, {NOTE_F4, 200, false, true}, {NOTE_D4, 400, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 2: Take On Me (The Iconic Synth Riff + Heavy Drums) +const SequenceStep takeonme_song[] = { + {NOTE_FS5, 200, true, true}, {NOTE_FS5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_D5, 200, false, false}, + {NOTE_CS5, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_A4, 200, false, true}, + {NOTE_B4, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_D5, 200, false, true}, + {NOTE_E5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_GS5, 200, true, false}, + {NOTE_GS5, 200, false, true}, {NOTE_A5, 200, false, false}, {NOTE_B5, 200, true, true}, {REST, 400, false, false}, + {NOTE_FS5, 200, true, true}, {NOTE_FS5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_D5, 200, false, false}, + {NOTE_CS5, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_A4, 200, false, true}, + {NOTE_B4, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_D5, 200, false, true}, + {NOTE_E5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_GS5, 200, true, false}, + {NOTE_GS5, 200, false, true}, {NOTE_A5, 200, false, false}, {NOTE_B5, 200, true, true}, {REST, 1000, false, false} +}; + +// TRACK 3: Rickroll (Intro & Chorus) +const SequenceStep rickroll_song[] = { + {NOTE_CS5, 300, true, false}, {NOTE_D5, 300, false, true}, {NOTE_CS5, 300, true, false}, {NOTE_B4, 300, false, true}, {NOTE_FS4, 600, true, true}, {REST, 600, false, false}, + {NOTE_A4, 150, true, false}, {NOTE_B4, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_B4, 150, false, true}, {NOTE_FS5, 300, true, false}, {NOTE_FS5, 300, false, true}, {NOTE_E5, 600, true, false}, + {NOTE_A4, 150, false, true}, {NOTE_B4, 150, true, false}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_E5, 300, true, true}, {NOTE_E5, 300, false, false}, {NOTE_D5, 300, true, false}, {NOTE_CS5, 150, false, true}, {NOTE_B4, 150, false, false}, + {NOTE_A4, 150, true, true}, {NOTE_B4, 150, false, false}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_D5, 300, true, false}, {NOTE_E5, 300, false, true}, {NOTE_CS5, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_A4, 300, true, false}, {NOTE_E5, 300, false, true}, {NOTE_D5, 900, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 4: Can't Help Falling In Love (Slow, Emotional Rhythm) +const SequenceStep elvis_song[] = { + {NOTE_C4, 400, true, false}, {NOTE_G4, 400, false, true}, {NOTE_C5, 800, true, false}, {NOTE_G4, 400, false, true}, {NOTE_E4, 400, true, false}, + {NOTE_A4, 400, true, true}, {NOTE_B4, 400, false, false}, {NOTE_C5, 400, true, false}, {NOTE_D5, 400, false, true}, {NOTE_E5, 400, true, false}, {NOTE_F5, 400, false, true}, {NOTE_E5, 800, true, true}, {NOTE_D5, 800, false, true}, + {NOTE_G4, 400, true, false}, {NOTE_A4, 400, false, true}, {NOTE_B4, 400, true, false}, {NOTE_C5, 800, true, true}, {NOTE_D5, 400, false, true}, + {NOTE_E5, 400, true, false}, {NOTE_F5, 400, false, true}, {NOTE_G5, 400, true, false}, {NOTE_F5, 400, true, true}, {NOTE_E5, 400, false, true}, {NOTE_D5, 400, true, false}, {NOTE_C5, 1200, true, true}, + {REST, 1500, false, false} +}; + +// TRACK 5: Gimme! Gimme! Gimme! (Midnight Rave Bassline) +const SequenceStep abba_song[] = { + {NOTE_D5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_F5, 400, true, false}, {NOTE_A5, 200, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 200, false, false}, {NOTE_E5, 200, true, false}, {NOTE_F5, 200, false, true}, {NOTE_D5, 600, true, true}, {REST, 200, false, false}, + {NOTE_D5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_F5, 400, true, false}, {NOTE_A5, 200, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 200, false, false}, {NOTE_E5, 200, true, false}, {NOTE_D5, 200, false, true}, {NOTE_CS5, 600, true, true}, {REST, 400, false, false}, + {NOTE_D4, 200, true, true}, {REST, 100, false, false}, {NOTE_D4, 200, false, true}, {NOTE_F4, 200, true, false}, {NOTE_A4, 200, false, true}, {NOTE_G4, 200, true, true}, {REST, 100, false, false}, {NOTE_E4, 200, false, true}, {NOTE_C4, 200, true, false}, {NOTE_D4, 400, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 6: Turkish March / Rondo Alla Turca (Mozart) +const SequenceStep turkish_song[] = { + // The famous ultra-fast piano run! + {NOTE_B4, 150, true, false}, {NOTE_A4, 150, false, true}, {NOTE_GS4, 150, false, false}, {NOTE_A4, 150, false, true}, {NOTE_C5, 600, true, true}, {REST, 150, false, false}, + {NOTE_D5, 150, true, false}, {NOTE_C5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_C5, 150, false, true}, {NOTE_E5, 600, true, true}, {REST, 150, false, false}, + {NOTE_F5, 150, true, false}, {NOTE_E5, 150, false, true}, {NOTE_DS5, 150, false, false}, {NOTE_E5, 150, false, true}, + {NOTE_B5, 150, true, false}, {NOTE_A5, 150, false, true}, {NOTE_GS5, 150, false, false}, {NOTE_A5, 150, false, true}, + {NOTE_B5, 150, true, false}, {NOTE_A5, 150, false, true}, {NOTE_GS5, 150, false, false}, {NOTE_A5, 150, false, true}, + {NOTE_C6, 450, true, true}, {NOTE_A5, 450, false, true}, {NOTE_C6, 450, true, false}, + // The strong driving ending + {NOTE_B5, 300, true, true}, {NOTE_A5, 300, false, false}, {NOTE_G5, 300, false, true}, {NOTE_A5, 300, true, false}, + {NOTE_B5, 300, true, true}, {NOTE_A5, 300, false, false}, {NOTE_G5, 300, false, true}, {NOTE_A5, 300, true, false}, + {NOTE_B5, 300, true, true}, {NOTE_A5, 300, false, false}, {NOTE_G5, 300, false, true}, {NOTE_FS5, 300, true, false}, + {NOTE_E5, 600, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 7: FΓΌr Elise (Beethoven) +const SequenceStep elise_song[] = { + // The iconic looping riff with a modern Trap/Rave beat + {NOTE_E5, 200, true, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, false, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, true, false}, + {NOTE_B4, 200, false, true}, {NOTE_D5, 200, false, false}, {NOTE_C5, 200, false, true}, + {NOTE_A4, 600, true, true}, {REST, 200, false, false}, + {NOTE_C4, 200, false, true}, {NOTE_E4, 200, false, false}, {NOTE_A4, 200, false, true}, + {NOTE_B4, 600, true, true}, {REST, 200, false, false}, + {NOTE_E4, 200, false, true}, {NOTE_GS4, 200, false, false}, {NOTE_B4, 200, false, true}, + {NOTE_C5, 600, true, true}, {REST, 200, false, false}, + + // Repeat to lock the trance + {NOTE_E5, 200, true, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, false, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, true, false}, + {NOTE_B4, 200, false, true}, {NOTE_D5, 200, false, false}, {NOTE_C5, 200, false, true}, + {NOTE_A4, 600, true, true}, {REST, 200, false, false}, + {NOTE_C4, 200, false, true}, {NOTE_E4, 200, false, false}, {NOTE_A4, 200, false, true}, + {NOTE_B4, 600, true, true}, {REST, 200, false, false}, + {NOTE_E4, 200, false, true}, {NOTE_C5, 200, false, false}, {NOTE_B4, 200, false, true}, + {NOTE_A4, 800, true, true}, + {REST, 1000, false, false} +}; + +// TRACK 8: Symphony No. 40 (Mozart) +const SequenceStep mozart_song[] = { + // The intense, frantic strings + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, + {NOTE_AS5, 600, true, true}, {REST, 300, false, false}, + + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, + {NOTE_A5, 600, true, true}, {REST, 300, false, false}, + + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, + {NOTE_GS5, 600, true, true}, + {REST, 1000, false, false} +}; + +// ========================================== +// 5. HARDWARE INITIALIZATION +// ========================================== +void init_hardware(void) { + gpio_set_direction(ACTIVE_BUZZER_1_PIN, GPIO_MODE_OUTPUT); gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); + gpio_set_direction(ACTIVE_BUZZER_2_PIN, GPIO_MODE_OUTPUT); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_direction(LED_KICK_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_KICK_PIN, 0); + gpio_set_direction(LED_HAT_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_HAT_PIN, 0); + + gpio_reset_pin(BTN_PAUSE_PIN); gpio_reset_pin(BTN_NEXT_PIN); + gpio_set_direction(BTN_PAUSE_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_PAUSE_PIN, GPIO_PULLUP_ONLY); + gpio_set_direction(BTN_NEXT_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_NEXT_PIN, GPIO_PULLUP_ONLY); + + ledc_timer_config_t timer_cfg = { .speed_mode = BUZZER_LEDC_MODE, .timer_num = BUZZER_LEDC_TIMER, .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 440, .clk_cfg = LEDC_AUTO_CLK }; + ledc_timer_config(&timer_cfg); + ledc_channel_config_t ch_cfg = { .speed_mode = BUZZER_LEDC_MODE, .channel = BUZZER_LEDC_CHANNEL, .timer_sel = BUZZER_LEDC_TIMER, .intr_type = LEDC_INTR_DISABLE, .gpio_num = PASSIVE_BUZZER_PIN, .duty = 0, .hpoint = 0 }; + ledc_channel_config(&ch_cfg); + + pcnt_unit_config_t unit_config = { .high_limit = 100, .low_limit = -100 }; + pcnt_new_unit(&unit_config, &pcnt_unit); + pcnt_glitch_filter_config_t filter_config = { .max_glitch_ns = 1000 }; + pcnt_unit_set_glitch_filter(pcnt_unit, &filter_config); + pcnt_chan_config_t chan_a_config = { .edge_gpio_num = ROTARY_CLK_PIN, .level_gpio_num = ROTARY_DT_PIN }; + pcnt_channel_handle_t pcnt_chan_a = NULL; pcnt_new_channel(pcnt_unit, &chan_a_config, &pcnt_chan_a); + pcnt_chan_config_t chan_b_config = { .edge_gpio_num = ROTARY_DT_PIN, .level_gpio_num = ROTARY_CLK_PIN }; + pcnt_channel_handle_t pcnt_chan_b = NULL; pcnt_new_channel(pcnt_unit, &chan_b_config, &pcnt_chan_b); + pcnt_channel_set_edge_action(pcnt_chan_a, PCNT_CHANNEL_EDGE_ACTION_DECREASE, PCNT_CHANNEL_EDGE_ACTION_INCREASE); + pcnt_channel_set_level_action(pcnt_chan_a, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_channel_set_edge_action(pcnt_chan_b, PCNT_CHANNEL_EDGE_ACTION_INCREASE, PCNT_CHANNEL_EDGE_ACTION_DECREASE); + pcnt_channel_set_level_action(pcnt_chan_b, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_unit_enable(pcnt_unit); pcnt_unit_clear_count(pcnt_unit); pcnt_unit_start(pcnt_unit); + + gpio_set_direction(OLED_DC_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + trigger_song_change = true; + is_paused = false; + } + + pause_last = pause_btn; + next_last = next_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char speed_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + // 8 Track Interface Updater + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + if (is_paused) draw_string(45, 2, "PAUSE"); + + sprintf(speed_buf, "%.2fx", current_speed); + draw_string(96, 2, speed_buf); + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; spi_transaction_t t; memset(&t, 0, sizeof(t)); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(84): Expected nodes here. + t.length = len * 8; t.tx_buffer = data; spi_device_polling_transmit(spi, &t); + ^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(85): Expected device instantiation or directive here. +} +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(87): Expected node name here. +void draw_pixel(int x, int y, int color) { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(87): Expected device instantiation or directive here. +void draw_pixel(int x, int y, int color) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(88): Unknown parameter + if (x < 0 || x >= 128 || y < 0 || y >= 64) return; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(88): Unknown parameter + if (x < 0 || x >= 128 || y < 0 || y >= 64) return; + ^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(89): Expected node name here. + if (color) oled_buffer[x + (y / 8) * 128] |= (1 << (y % 8)); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(89): Expected device instantiation or directive here. + if (color) oled_buffer[x + (y / 8) * 128] |= (1 << (y % 8)); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(90): Expected 2 node names here. + else oled_buffer[x + (y / 8) * 128] &= ~(1 << (y % 8)); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(91): Expected device instantiation or directive here. +} +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(93): Expected node name here. +void draw_filled_rect(int x, int y, int w, int h, int color) { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(93): Expected device instantiation or directive here. +void draw_filled_rect(int x, int y, int w, int h, int color) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(94): syntax error + for (int i = x; i < x + w; i++) for (int j = y; j < y + h; j++) draw_pixel(i, j, color); + ^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(95): Expected device instantiation or directive here. +} +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(97): Expected node name here. +void draw_rect(int x, int y, int w, int h, int color) { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(97): Expected device instantiation or directive here. +void draw_rect(int x, int y, int w, int h, int color) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(98): syntax error + for (int i = x; i < x + w; i++) { draw_pixel(i, y, color); draw_pixel(i, y + h - 1, color); } + ^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(99): syntax error + for (int j = y; j < y + h; j++) { draw_pixel(x, j, color); draw_pixel(x + w - 1, j, color); } + ^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(100): Expected device instantiation or directive here. +} +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(102): Expected node name here. +void draw_string(int x, int y, const char* str) { + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(102): Expected device instantiation or directive here. +void draw_string(int x, int y, const char* str) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(103): Expected node name here. + while(*str) { + ^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(103): Expected device instantiation or directive here. + while(*str) { +^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(104): Expected device instantiation or directive here. + char c = *str; +^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(105): Unknown parameter + if (c >= 32 && c <= 90) { + ^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(105): Expected expression or literal here. + if (c >= 32 && c <= 90) { + ^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(106): syntax error + for(int i=0; i<5; i++) for(int j=0; j<8; j++) if((font5x7[c-32][i] >> j) & 1) draw_pixel(x+i, y+j, 1); + ^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(107): Expected device instantiation or directive here. + } else if (c >= 97 && c <= 122) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(108): syntax error + for(int i=0; i<5; i++) for(int j=0; j<8; j++) if((font5x7[c-64][i] >> j) & 1) draw_pixel(x+i, y+j, 1); + ^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(109): Expected device instantiation or directive here. + } +^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(110): syntax error + x += 6; str++; + ^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(111): Expected device instantiation or directive here. + } +^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(112): Expected device instantiation or directive here. +} +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(114): Expected node name here. +void oled_push_framebuffer(void) { + ^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(114): Expected device instantiation or directive here. +void oled_push_framebuffer(void) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(115): syntax error + for(int page = 0; page < 8; page++) { + ^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(116): Expected nodes here. + oled_send_cmd(0xB0 + page); oled_send_cmd(0x02); oled_send_cmd(0x10); + ^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(117): Expected nodes here. + oled_send_data(&oled_buffer[page * 128], 128); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(118): Expected device instantiation or directive here. + } +^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(119): Expected device instantiation or directive here. +} +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(121): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(122): Expected device instantiation or directive here. +// 4. THE ULTIMATE 8-TRACK PLAYLIST (FLASH MEMORY STORAGE) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(123): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(124): Expected "}" here. +typedef struct { uint32_t frequency; uint32_t duration; bool kick_drum; bool hi_hat; } SequenceStep; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(124): Expected nodes here. +typedef struct { uint32_t frequency; uint32_t duration; bool kick_drum; bool hi_hat; } SequenceStep; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(163): Expected device instantiation or directive here. +// Converted from: alla_turca_8.mid +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(164): Expected device instantiation or directive here. +const SequenceStep midi_alla_turca[] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(165): Expected device instantiation or directive here. + {493, 136, false, false}, {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(166): Expected device instantiation or directive here. + {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, {523, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(167): Expected device instantiation or directive here. + {329, 136, false, false}, {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(168): Expected device instantiation or directive here. + {261, 136, false, false}, {659, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(169): Expected device instantiation or directive here. + {220, 136, false, false}, {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(170): Expected device instantiation or directive here. + {220, 136, false, false}, {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(171): Expected device instantiation or directive here. + {220, 272, false, false}, {329, 272, false, false}, {261, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(172): Expected device instantiation or directive here. + {164, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(173): Expected device instantiation or directive here. + {164, 272, false, false}, {246, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(174): Expected device instantiation or directive here. + {164, 272, false, false}, {329, 272, false, false}, {123, 272, false, false}, {246, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(175): Expected device instantiation or directive here. + {164, 545, false, false}, {523, 272, false, false}, {698, 272, false, false}, {130, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(176): Expected device instantiation or directive here. + {261, 272, false, false}, {164, 136, false, false}, {783, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(177): Expected device instantiation or directive here. + {659, 136, false, false}, {195, 272, false, false}, {391, 272, false, false}, {523, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(178): Expected device instantiation or directive here. + {698, 272, false, false}, {130, 272, false, false}, {261, 272, false, false}, {164, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(179): Expected device instantiation or directive here. + {783, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {195, 545, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(180): Expected device instantiation or directive here. + {440, 272, false, false}, {587, 272, false, false}, {110, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(181): Expected device instantiation or directive here. + {130, 136, false, false}, {659, 136, false, false}, {261, 136, false, false}, {523, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(182): Expected device instantiation or directive here. + {164, 272, false, false}, {329, 272, false, false}, {440, 272, false, false}, {587, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(183): Expected device instantiation or directive here. + {110, 272, false, false}, {220, 272, false, false}, {130, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(184): Expected device instantiation or directive here. + {261, 136, false, false}, {523, 136, false, false}, {164, 545, false, false}, {493, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(185): Expected device instantiation or directive here. + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(186): Expected device instantiation or directive here. + {329, 272, false, false}, {261, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(187): Expected device instantiation or directive here. + {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(188): Expected device instantiation or directive here. + {659, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(189): Expected device instantiation or directive here. + {880, 136, false, false}, {261, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(190): Expected device instantiation or directive here. + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {174, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(191): Expected device instantiation or directive here. + {311, 272, false, false}, {311, 272, false, false}, {311, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(192): Expected device instantiation or directive here. + {220, 272, false, false}, {146, 272, false, false}, {246, 272, false, false}, {130, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(193): Expected device instantiation or directive here. + {220, 272, false, false}, {146, 272, false, false}, {246, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(194): Expected device instantiation or directive here. + {164, 272, false, false}, {207, 272, false, false}, {207, 136, false, false}, {440, 68, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(195): Expected device instantiation or directive here. + {493, 68, false, false}, {220, 68, false, false}, {220, 477, false, false}, {440, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(196): Expected device instantiation or directive here. + {493, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(197): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(198): Expected device instantiation or directive here. + {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, {155, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(199): Expected device instantiation or directive here. + {155, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(200): Expected device instantiation or directive here. + {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(201): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(202): Expected device instantiation or directive here. + {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(203): Expected device instantiation or directive here. + {164, 272, false, false}, {110, 545, false, false}, {1108, 136, false, false}, {1174, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(204): Expected device instantiation or directive here. + {1108, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, {987, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(205): Expected device instantiation or directive here. + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(206): Expected device instantiation or directive here. + {277, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, {739, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(207): Expected device instantiation or directive here. + {246, 136, false, false}, {698, 136, false, false}, {277, 136, false, false}, {622, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(208): Expected device instantiation or directive here. + {277, 136, false, false}, {554, 136, false, false}, {184, 136, false, false}, {698, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(209): Expected device instantiation or directive here. + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(210): Expected device instantiation or directive here. + {277, 136, false, false}, {987, 136, false, false}, {174, 136, false, false}, {1046, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(211): Expected device instantiation or directive here. + {277, 136, false, false}, {1046, 136, false, false}, {277, 136, false, false}, {1174, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(212): Expected device instantiation or directive here. + {277, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, {987, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(213): Expected device instantiation or directive here. + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(214): Expected device instantiation or directive here. + {220, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, {739, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(215): Expected device instantiation or directive here. + {329, 136, false, false}, {659, 136, false, false}, {329, 136, false, false}, {622, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(216): Expected device instantiation or directive here. + {329, 136, false, false}, {554, 136, false, false}, {207, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(217): Expected device instantiation or directive here. + {369, 136, false, false}, {622, 136, false, false}, {311, 136, false, false}, {554, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(218): Expected device instantiation or directive here. + {369, 136, false, false}, {523, 136, false, false}, {329, 545, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(219): Expected device instantiation or directive here. + {587, 136, false, false}, {554, 136, false, false}, {493, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(220): Expected device instantiation or directive here. + {493, 136, false, false}, {329, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(221): Expected device instantiation or directive here. + {739, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {246, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(222): Expected device instantiation or directive here. + {830, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {207, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(223): Expected device instantiation or directive here. + {587, 136, false, false}, {329, 136, false, false}, {493, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(224): Expected device instantiation or directive here. + {493, 136, false, false}, {329, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(225): Expected device instantiation or directive here. + {739, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(226): Expected device instantiation or directive here. + {293, 272, false, false}, {293, 136, false, false}, {587, 136, false, false}, {293, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(227): Expected device instantiation or directive here. + {493, 136, false, false}, {220, 136, false, false}, {493, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(228): Expected device instantiation or directive here. + {587, 136, false, false}, {277, 136, false, false}, {739, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(229): Expected device instantiation or directive here. + {880, 136, false, false}, {246, 136, false, false}, {830, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(230): Expected device instantiation or directive here. + {659, 136, false, false}, {207, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(231): Expected device instantiation or directive here. + {493, 136, false, false}, {220, 136, false, false}, {659, 136, false, false}, {184, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(232): Expected device instantiation or directive here. + {554, 136, false, false}, {146, 136, false, false}, {587, 136, false, false}, {164, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(233): Expected device instantiation or directive here. + {493, 136, false, false}, {110, 272, false, false}, {220, 272, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(234): Expected device instantiation or directive here. + {1174, 136, false, false}, {1108, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(235): Expected device instantiation or directive here. + {987, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(236): Expected device instantiation or directive here. + {880, 136, false, false}, {277, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(237): Expected device instantiation or directive here. + {739, 136, false, false}, {277, 136, false, false}, {698, 136, false, false}, {246, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(238): Expected device instantiation or directive here. + {622, 136, false, false}, {277, 136, false, false}, {554, 136, false, false}, {184, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(239): Expected device instantiation or directive here. + {698, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(240): Expected device instantiation or directive here. + {830, 136, false, false}, {277, 136, false, false}, {987, 136, false, false}, {138, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(241): Expected device instantiation or directive here. + {1046, 136, false, false}, {207, 136, false, false}, {1046, 136, false, false}, {277, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(242): Expected device instantiation or directive here. + {1046, 136, false, false}, {277, 136, false, false}, {932, 136, false, false}, {123, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(243): Expected device instantiation or directive here. + {1108, 136, false, false}, {246, 136, false, false}, {1108, 136, false, false}, {246, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(244): Expected device instantiation or directive here. + {1108, 136, false, false}, {246, 136, false, false}, {1108, 136, false, false}, {123, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(245): Expected device instantiation or directive here. + {1108, 136, false, false}, {246, 136, false, false}, {880, 136, false, false}, {246, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(246): Expected device instantiation or directive here. + {880, 136, false, false}, {246, 136, false, false}, {830, 136, false, false}, {138, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(247): Expected device instantiation or directive here. + {987, 136, false, false}, {220, 136, false, false}, {739, 136, false, false}, {138, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(248): Expected device instantiation or directive here. + {739, 136, false, false}, {207, 136, false, false}, {698, 136, false, false}, {220, 545, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(249): Expected device instantiation or directive here. + {440, 272, false, false}, {493, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(250): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(251): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(252): Expected device instantiation or directive here. + {155, 272, false, false}, {155, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(253): Expected device instantiation or directive here. + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(254): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(255): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(256): Expected device instantiation or directive here. + {164, 272, false, false}, {164, 272, false, false}, {110, 545, false, false}, {493, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(257): Expected device instantiation or directive here. + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(258): Expected device instantiation or directive here. + {329, 272, false, false}, {329, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(259): Expected device instantiation or directive here. + {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(260): Expected device instantiation or directive here. + {659, 136, false, false}, {261, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(261): Expected device instantiation or directive here. + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(262): Expected device instantiation or directive here. + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(263): Expected device instantiation or directive here. + {329, 272, false, false}, {329, 272, false, false}, {261, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(264): Expected device instantiation or directive here. + {329, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(265): Expected device instantiation or directive here. + {329, 272, false, false}, {246, 272, false, false}, {329, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(266): Expected device instantiation or directive here. + {329, 272, false, false}, {123, 272, false, false}, {246, 272, false, false}, {164, 545, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(267): Expected device instantiation or directive here. + {659, 272, false, false}, {698, 272, false, false}, {130, 272, false, false}, {261, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(268): Expected device instantiation or directive here. + {164, 136, false, false}, {783, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(269): Expected device instantiation or directive here. + {195, 272, false, false}, {391, 272, false, false}, {659, 272, false, false}, {698, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(270): Expected device instantiation or directive here. + {130, 272, false, false}, {261, 272, false, false}, {164, 136, false, false}, {783, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(271): Expected device instantiation or directive here. + {329, 136, false, false}, {659, 136, false, false}, {195, 545, false, false}, {523, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(272): Expected device instantiation or directive here. + {587, 272, false, false}, {110, 272, false, false}, {220, 272, false, false}, {130, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(273): Expected device instantiation or directive here. + {659, 136, false, false}, {261, 136, false, false}, {523, 136, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(274): Expected device instantiation or directive here. + {329, 272, false, false}, {523, 272, false, false}, {587, 272, false, false}, {110, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(275): Expected device instantiation or directive here. + {220, 272, false, false}, {130, 136, false, false}, {659, 136, false, false}, {261, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(276): Expected device instantiation or directive here. + {523, 136, false, false}, {164, 545, false, false}, {493, 136, false, false}, {440, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(277): Expected device instantiation or directive here. + {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(278): Expected device instantiation or directive here. + {329, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, {523, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(279): Expected device instantiation or directive here. + {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(280): Expected device instantiation or directive here. + {329, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(281): Expected device instantiation or directive here. + {329, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(282): Expected device instantiation or directive here. + {261, 136, false, false}, {880, 136, false, false}, {174, 272, false, false}, {311, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(283): Expected device instantiation or directive here. + {311, 272, false, false}, {311, 272, false, false}, {164, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(284): Expected device instantiation or directive here. + {146, 272, false, false}, {174, 272, false, false}, {130, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(285): Expected device instantiation or directive here. + {146, 272, false, false}, {246, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(286): Expected device instantiation or directive here. + {164, 272, false, false}, {207, 136, false, false}, {440, 68, false, false}, {493, 68, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(287): Expected device instantiation or directive here. + {220, 68, false, false}, {220, 477, false, false}, {440, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(288): Expected device instantiation or directive here. + {493, 136, false, false}, {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(289): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(290): Expected device instantiation or directive here. + {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(291): Expected device instantiation or directive here. + {987, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(292): Expected device instantiation or directive here. + {830, 136, false, false}, {146, 136, false, false}, {739, 136, false, false}, {146, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(293): Expected device instantiation or directive here. + {830, 136, false, false}, {155, 136, false, false}, {880, 136, false, false}, {155, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(294): Expected device instantiation or directive here. + {987, 136, false, false}, {164, 136, false, false}, {830, 136, false, false}, {164, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(295): Expected device instantiation or directive here. + {659, 136, false, false}, {164, 136, false, false}, {880, 136, false, false}, {164, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(296): Expected device instantiation or directive here. + {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(297): Expected device instantiation or directive here. + {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {987, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(298): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {987, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(299): Expected device instantiation or directive here. + {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {830, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(300): Expected device instantiation or directive here. + {146, 136, false, false}, {739, 136, false, false}, {146, 136, false, false}, {987, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(301): Expected device instantiation or directive here. + {164, 136, false, false}, {830, 136, false, false}, {164, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(302): Expected device instantiation or directive here. + {110, 545, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(303): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(304): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(305): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(306): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(307): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(308): Expected device instantiation or directive here. + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(309): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(310): Expected device instantiation or directive here. + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(311): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(312): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(313): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(314): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(315): Expected device instantiation or directive here. + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(316): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(317): Expected device instantiation or directive here. + {164, 272, false, false}, {164, 272, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(318): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(319): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(320): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(321): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(322): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(323): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(324): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(325): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {369, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(326): Expected device instantiation or directive here. + {293, 136, false, false}, {369, 136, false, false}, {220, 136, false, false}, {369, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(327): Expected device instantiation or directive here. + {293, 136, false, false}, {369, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(328): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(329): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {164, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(330): Expected device instantiation or directive here. + {207, 136, false, false}, {329, 136, false, false}, {164, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(331): Expected device instantiation or directive here. + {207, 136, false, false}, {329, 136, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(332): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(333): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(334): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(335): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(336): Expected device instantiation or directive here. + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(337): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(338): Expected device instantiation or directive here. + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(339): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(340): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(341): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(342): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {110, 545, false, false}, {164, 545, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(343): Expected device instantiation or directive here. + {164, 545, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(344): Expected device instantiation or directive here. + {0, 2000, false, false} +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(345): Expected device instantiation or directive here. +}; +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(347): Expected device instantiation or directive here. +// TRACK 1: Careless Whisper (Long Sax Solo & Groove) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(348): Expected device instantiation or directive here. +const SequenceStep careless_song[] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(349): Expected device instantiation or directive here. + {NOTE_D5, 600, true, false}, {NOTE_C5, 300, false, true}, {NOTE_AS4, 300, false, false}, {NOTE_A4, 1200, true, true}, {REST, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(350): Expected device instantiation or directive here. + {NOTE_F4, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_D5, 600, true, false}, {NOTE_C5, 300, false, true}, {NOTE_AS4, 300, false, false}, {NOTE_A4, 1200, true, true}, {REST, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(351): Expected device instantiation or directive here. + {NOTE_F4, 300, false, true}, {NOTE_A4, 300, true, false}, {NOTE_D5, 600, false, true}, {NOTE_C5, 300, true, false}, {NOTE_AS4, 300, false, true}, {NOTE_A4, 1200, true, false}, {REST, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(352): Expected device instantiation or directive here. + {NOTE_E4, 300, false, true}, {NOTE_G4, 300, true, false}, {NOTE_C5, 600, false, true}, {NOTE_AS4, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_G4, 1200, true, true}, {REST, 600, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(353): Expected device instantiation or directive here. + {NOTE_D4, 200, true, true}, {NOTE_F4, 200, false, false}, {NOTE_A4, 200, false, true}, {NOTE_D5, 400, true, false}, {NOTE_C5, 200, false, true}, {NOTE_A4, 200, true, false}, {NOTE_F4, 200, false, true}, {NOTE_D4, 400, true, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(354): Expected device instantiation or directive here. + {REST, 1000, false, false} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(355): Expected device instantiation or directive here. +}; +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(357): Expected device instantiation or directive here. +// TRACK 2: Take On Me (The Iconic Synth Riff + Heavy Drums) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(358): Expected device instantiation or directive here. +const SequenceStep takeonme_song[] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(359): Expected device instantiation or directive here. + {NOTE_FS5, 200, true, true}, {NOTE_FS5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_D5, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(360): Expected device instantiation or directive here. + {NOTE_CS5, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_A4, 200, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(361): Expected device instantiation or directive here. + {NOTE_B4, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_D5, 200, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(362): Expected device instantiation or directive here. + {NOTE_E5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_GS5, 200, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(363): Expected device instantiation or directive here. + {NOTE_GS5, 200, false, true}, {NOTE_A5, 200, false, false}, {NOTE_B5, 200, true, true}, {REST, 400, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(364): Expected device instantiation or directive here. + {NOTE_FS5, 200, true, true}, {NOTE_FS5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_D5, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(365): Expected device instantiation or directive here. + {NOTE_CS5, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_A4, 200, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(366): Expected device instantiation or directive here. + {NOTE_B4, 200, true, false}, {NOTE_CS5, 200, false, true}, {NOTE_CS5, 200, false, false}, {NOTE_D5, 200, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(367): Expected device instantiation or directive here. + {NOTE_E5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_E5, 200, false, true}, {NOTE_GS5, 200, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(368): Expected device instantiation or directive here. + {NOTE_GS5, 200, false, true}, {NOTE_A5, 200, false, false}, {NOTE_B5, 200, true, true}, {REST, 1000, false, false} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(369): Expected device instantiation or directive here. +}; +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(371): Expected device instantiation or directive here. +// TRACK 3: Rickroll (Intro & Chorus) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(372): Expected device instantiation or directive here. +const SequenceStep rickroll_song[] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(373): Expected device instantiation or directive here. + {NOTE_CS5, 300, true, false}, {NOTE_D5, 300, false, true}, {NOTE_CS5, 300, true, false}, {NOTE_B4, 300, false, true}, {NOTE_FS4, 600, true, true}, {REST, 600, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(374): Expected device instantiation or directive here. + {NOTE_A4, 150, true, false}, {NOTE_B4, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_B4, 150, false, true}, {NOTE_FS5, 300, true, false}, {NOTE_FS5, 300, false, true}, {NOTE_E5, 600, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(375): Expected device instantiation or directive here. + {NOTE_A4, 150, false, true}, {NOTE_B4, 150, true, false}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_E5, 300, true, true}, {NOTE_E5, 300, false, false}, {NOTE_D5, 300, true, false}, {NOTE_CS5, 150, false, true}, {NOTE_B4, 150, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(376): Expected device instantiation or directive here. + {NOTE_A4, 150, true, true}, {NOTE_B4, 150, false, false}, {NOTE_D5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_D5, 300, true, false}, {NOTE_E5, 300, false, true}, {NOTE_CS5, 300, true, false}, {NOTE_A4, 300, false, true}, {NOTE_A4, 300, true, false}, {NOTE_E5, 300, false, true}, {NOTE_D5, 900, true, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(377): Expected device instantiation or directive here. + {REST, 1000, false, false} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(378): Expected device instantiation or directive here. +}; +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(380): Expected device instantiation or directive here. +// TRACK 4: Can't Help Falling In Love (Slow, Emotional Rhythm) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(381): Expected device instantiation or directive here. +const SequenceStep elvis_song[] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(382): Expected device instantiation or directive here. + {NOTE_C4, 400, true, false}, {NOTE_G4, 400, false, true}, {NOTE_C5, 800, true, false}, {NOTE_G4, 400, false, true}, {NOTE_E4, 400, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(383): Expected device instantiation or directive here. + {NOTE_A4, 400, true, true}, {NOTE_B4, 400, false, false}, {NOTE_C5, 400, true, false}, {NOTE_D5, 400, false, true}, {NOTE_E5, 400, true, false}, {NOTE_F5, 400, false, true}, {NOTE_E5, 800, true, true}, {NOTE_D5, 800, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(384): Expected device instantiation or directive here. + {NOTE_G4, 400, true, false}, {NOTE_A4, 400, false, true}, {NOTE_B4, 400, true, false}, {NOTE_C5, 800, true, true}, {NOTE_D5, 400, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(385): Expected device instantiation or directive here. + {NOTE_E5, 400, true, false}, {NOTE_F5, 400, false, true}, {NOTE_G5, 400, true, false}, {NOTE_F5, 400, true, true}, {NOTE_E5, 400, false, true}, {NOTE_D5, 400, true, false}, {NOTE_C5, 1200, true, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(386): Expected device instantiation or directive here. + {REST, 1500, false, false} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(387): Expected device instantiation or directive here. +}; +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(389): Expected device instantiation or directive here. +// TRACK 5: Gimme! Gimme! Gimme! (Midnight Rave Bassline) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(390): Expected device instantiation or directive here. +const SequenceStep abba_song[] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(391): Expected device instantiation or directive here. + {NOTE_D5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_F5, 400, true, false}, {NOTE_A5, 200, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 200, false, false}, {NOTE_E5, 200, true, false}, {NOTE_F5, 200, false, true}, {NOTE_D5, 600, true, true}, {REST, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(392): Expected device instantiation or directive here. + {NOTE_D5, 200, true, true}, {NOTE_E5, 200, false, false}, {NOTE_F5, 400, true, false}, {NOTE_A5, 200, false, true}, {NOTE_G5, 400, true, true}, {NOTE_F5, 200, false, false}, {NOTE_E5, 200, true, false}, {NOTE_D5, 200, false, true}, {NOTE_CS5, 600, true, true}, {REST, 400, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(393): Expected device instantiation or directive here. + {NOTE_D4, 200, true, true}, {REST, 100, false, false}, {NOTE_D4, 200, false, true}, {NOTE_F4, 200, true, false}, {NOTE_A4, 200, false, true}, {NOTE_G4, 200, true, true}, {REST, 100, false, false}, {NOTE_E4, 200, false, true}, {NOTE_C4, 200, true, false}, {NOTE_D4, 400, true, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(394): Expected device instantiation or directive here. + {REST, 1000, false, false} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(395): Expected device instantiation or directive here. +}; +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(397): Expected device instantiation or directive here. +// TRACK 6: Turkish March / Rondo Alla Turca (Mozart) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(398): Expected device instantiation or directive here. +const SequenceStep turkish_song[] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(399): Expected device instantiation or directive here. + // The famous ultra-fast piano run! +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(400): Expected device instantiation or directive here. + {NOTE_B4, 150, true, false}, {NOTE_A4, 150, false, true}, {NOTE_GS4, 150, false, false}, {NOTE_A4, 150, false, true}, {NOTE_C5, 600, true, true}, {REST, 150, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(401): Expected device instantiation or directive here. + {NOTE_D5, 150, true, false}, {NOTE_C5, 150, false, true}, {NOTE_B4, 150, false, false}, {NOTE_C5, 150, false, true}, {NOTE_E5, 600, true, true}, {REST, 150, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(402): Expected device instantiation or directive here. + {NOTE_F5, 150, true, false}, {NOTE_E5, 150, false, true}, {NOTE_DS5, 150, false, false}, {NOTE_E5, 150, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(403): Expected device instantiation or directive here. + {NOTE_B5, 150, true, false}, {NOTE_A5, 150, false, true}, {NOTE_GS5, 150, false, false}, {NOTE_A5, 150, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(404): Expected device instantiation or directive here. + {NOTE_B5, 150, true, false}, {NOTE_A5, 150, false, true}, {NOTE_GS5, 150, false, false}, {NOTE_A5, 150, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(405): Expected device instantiation or directive here. + {NOTE_C6, 450, true, true}, {NOTE_A5, 450, false, true}, {NOTE_C6, 450, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(406): Expected device instantiation or directive here. + // The strong driving ending +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(407): Expected device instantiation or directive here. + {NOTE_B5, 300, true, true}, {NOTE_A5, 300, false, false}, {NOTE_G5, 300, false, true}, {NOTE_A5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(408): Expected device instantiation or directive here. + {NOTE_B5, 300, true, true}, {NOTE_A5, 300, false, false}, {NOTE_G5, 300, false, true}, {NOTE_A5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(409): Expected device instantiation or directive here. + {NOTE_B5, 300, true, true}, {NOTE_A5, 300, false, false}, {NOTE_G5, 300, false, true}, {NOTE_FS5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(410): Expected device instantiation or directive here. + {NOTE_E5, 600, true, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(411): Expected device instantiation or directive here. + {REST, 1000, false, false} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(412): Expected device instantiation or directive here. +}; +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(414): Expected device instantiation or directive here. +// TRACK 7: FΓΌr Elise (Beethoven) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(415): Expected device instantiation or directive here. +const SequenceStep elise_song[] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(416): Expected device instantiation or directive here. + // The iconic looping riff with a modern Trap/Rave beat +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(417): Expected device instantiation or directive here. + {NOTE_E5, 200, true, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, false, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(418): Expected device instantiation or directive here. + {NOTE_B4, 200, false, true}, {NOTE_D5, 200, false, false}, {NOTE_C5, 200, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(419): Expected device instantiation or directive here. + {NOTE_A4, 600, true, true}, {REST, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(420): Expected device instantiation or directive here. + {NOTE_C4, 200, false, true}, {NOTE_E4, 200, false, false}, {NOTE_A4, 200, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(421): Expected device instantiation or directive here. + {NOTE_B4, 600, true, true}, {REST, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(422): Expected device instantiation or directive here. + {NOTE_E4, 200, false, true}, {NOTE_GS4, 200, false, false}, {NOTE_B4, 200, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(423): Expected device instantiation or directive here. + {NOTE_C5, 600, true, true}, {REST, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(425): Expected device instantiation or directive here. + // Repeat to lock the trance +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(426): Expected device instantiation or directive here. + {NOTE_E5, 200, true, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, false, false}, {NOTE_DS5, 200, false, true}, {NOTE_E5, 200, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(427): Expected device instantiation or directive here. + {NOTE_B4, 200, false, true}, {NOTE_D5, 200, false, false}, {NOTE_C5, 200, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(428): Expected device instantiation or directive here. + {NOTE_A4, 600, true, true}, {REST, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(429): Expected device instantiation or directive here. + {NOTE_C4, 200, false, true}, {NOTE_E4, 200, false, false}, {NOTE_A4, 200, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(430): Expected device instantiation or directive here. + {NOTE_B4, 600, true, true}, {REST, 200, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(431): Expected device instantiation or directive here. + {NOTE_E4, 200, false, true}, {NOTE_C5, 200, false, false}, {NOTE_B4, 200, false, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(432): Expected device instantiation or directive here. + {NOTE_A4, 800, true, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(433): Expected device instantiation or directive here. + {REST, 1000, false, false} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(434): Expected device instantiation or directive here. +}; +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(436): Expected device instantiation or directive here. +// TRACK 8: Symphony No. 40 (Mozart) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(437): Expected device instantiation or directive here. +const SequenceStep mozart_song[] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(438): Expected device instantiation or directive here. + // The intense, frantic strings +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(439): Expected device instantiation or directive here. + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(440): Expected device instantiation or directive here. + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(441): Expected device instantiation or directive here. + {NOTE_DS5, 150, false, true}, {NOTE_D5, 150, false, false}, {NOTE_D5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(442): Expected device instantiation or directive here. + {NOTE_AS5, 600, true, true}, {REST, 300, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(444): Expected device instantiation or directive here. + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(445): Expected device instantiation or directive here. + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(446): Expected device instantiation or directive here. + {NOTE_D5, 150, false, true}, {NOTE_CS5, 150, false, false}, {NOTE_CS5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(447): Expected device instantiation or directive here. + {NOTE_A5, 600, true, true}, {REST, 300, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(449): Expected device instantiation or directive here. + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(450): Expected device instantiation or directive here. + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(451): Expected device instantiation or directive here. + {NOTE_CS5, 150, false, true}, {NOTE_C5, 150, false, false}, {NOTE_C5, 300, true, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(452): Expected device instantiation or directive here. + {NOTE_GS5, 600, true, true}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(453): Expected device instantiation or directive here. + {REST, 1000, false, false} +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(454): Expected device instantiation or directive here. +}; +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(456): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(457): Expected device instantiation or directive here. +// 5. HARDWARE INITIALIZATION +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(458): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(459): Expected node name here. +void init_hardware(void) { + ^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(459): Expected device instantiation or directive here. +void init_hardware(void) { +^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(460): Expected 2 node names here. + gpio_set_direction(ACTIVE_BUZZER_1_PIN, GPIO_MODE_OUTPUT); gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); + gpio_set_direction(ACTIVE_BUZZER_2_PIN, GPIO_MODE_OUTPUT); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_direction(LED_KICK_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_KICK_PIN, 0); + gpio_set_direction(LED_HAT_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_HAT_PIN, 0); + + gpio_reset_pin(BTN_PAUSE_PIN); gpio_reset_pin(BTN_NEXT_PIN); + gpio_set_direction(BTN_PAUSE_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_PAUSE_PIN, GPIO_PULLUP_ONLY); + gpio_set_direction(BTN_NEXT_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_NEXT_PIN, GPIO_PULLUP_ONLY); + + ledc_timer_config_t timer_cfg = { .speed_mode = BUZZER_LEDC_MODE, .timer_num = BUZZER_LEDC_TIMER, .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 440, .clk_cfg = LEDC_AUTO_CLK }; + ledc_timer_config(&timer_cfg); + ledc_channel_config_t ch_cfg = { .speed_mode = BUZZER_LEDC_MODE, .channel = BUZZER_LEDC_CHANNEL, .timer_sel = BUZZER_LEDC_TIMER, .intr_type = LEDC_INTR_DISABLE, .gpio_num = PASSIVE_BUZZER_PIN, .duty = 0, .hpoint = 0 }; + ledc_channel_config(&ch_cfg); + + pcnt_unit_config_t unit_config = { .high_limit = 100, .low_limit = -100 }; + pcnt_new_unit(&unit_config, &pcnt_unit); + pcnt_glitch_filter_config_t filter_config = { .max_glitch_ns = 1000 }; + pcnt_unit_set_glitch_filter(pcnt_unit, &filter_config); + pcnt_chan_config_t chan_a_config = { .edge_gpio_num = ROTARY_CLK_PIN, .level_gpio_num = ROTARY_DT_PIN }; + pcnt_channel_handle_t pcnt_chan_a = NULL; pcnt_new_channel(pcnt_unit, &chan_a_config, &pcnt_chan_a); + pcnt_chan_config_t chan_b_config = { .edge_gpio_num = ROTARY_DT_PIN, .level_gpio_num = ROTARY_CLK_PIN }; + pcnt_channel_handle_t pcnt_chan_b = NULL; pcnt_new_channel(pcnt_unit, &chan_b_config, &pcnt_chan_b); + pcnt_channel_set_edge_action(pcnt_chan_a, PCNT_CHANNEL_EDGE_ACTION_DECREASE, PCNT_CHANNEL_EDGE_ACTION_INCREASE); + pcnt_channel_set_level_action(pcnt_chan_a, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_channel_set_edge_action(pcnt_chan_b, PCNT_CHANNEL_EDGE_ACTION_INCREASE, PCNT_CHANNEL_EDGE_ACTION_DECREASE); + pcnt_channel_set_level_action(pcnt_chan_b, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_unit_enable(pcnt_unit); pcnt_unit_clear_count(pcnt_unit); pcnt_unit_start(pcnt_unit); + + gpio_set_direction(OLED_DC_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + trigger_song_change = true; + is_paused = false; + } + + pause_last = pause_btn; + next_last = next_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char speed_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + // 8 Track Interface Updater + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + if (is_paused) draw_string(45, 2, "PAUSE"); + + sprintf(speed_buf, "%.2fx", current_speed); + draw_string(96, 2, speed_buf); + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(461): Expected 2 node names here. + gpio_set_direction(ACTIVE_BUZZER_2_PIN, GPIO_MODE_OUTPUT); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_direction(LED_KICK_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_KICK_PIN, 0); + gpio_set_direction(LED_HAT_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_HAT_PIN, 0); + + gpio_reset_pin(BTN_PAUSE_PIN); gpio_reset_pin(BTN_NEXT_PIN); + gpio_set_direction(BTN_PAUSE_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_PAUSE_PIN, GPIO_PULLUP_ONLY); + gpio_set_direction(BTN_NEXT_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_NEXT_PIN, GPIO_PULLUP_ONLY); + + ledc_timer_config_t timer_cfg = { .speed_mode = BUZZER_LEDC_MODE, .timer_num = BUZZER_LEDC_TIMER, .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 440, .clk_cfg = LEDC_AUTO_CLK }; + ledc_timer_config(&timer_cfg); + ledc_channel_config_t ch_cfg = { .speed_mode = BUZZER_LEDC_MODE, .channel = BUZZER_LEDC_CHANNEL, .timer_sel = BUZZER_LEDC_TIMER, .intr_type = LEDC_INTR_DISABLE, .gpio_num = PASSIVE_BUZZER_PIN, .duty = 0, .hpoint = 0 }; + ledc_channel_config(&ch_cfg); + + pcnt_unit_config_t unit_config = { .high_limit = 100, .low_limit = -100 }; + pcnt_new_unit(&unit_config, &pcnt_unit); + pcnt_glitch_filter_config_t filter_config = { .max_glitch_ns = 1000 }; + pcnt_unit_set_glitch_filter(pcnt_unit, &filter_config); + pcnt_chan_config_t chan_a_config = { .edge_gpio_num = ROTARY_CLK_PIN, .level_gpio_num = ROTARY_DT_PIN }; + pcnt_channel_handle_t pcnt_chan_a = NULL; pcnt_new_channel(pcnt_unit, &chan_a_config, &pcnt_chan_a); + pcnt_chan_config_t chan_b_config = { .edge_gpio_num = ROTARY_DT_PIN, .level_gpio_num = ROTARY_CLK_PIN }; + pcnt_channel_handle_t pcnt_chan_b = NULL; pcnt_new_channel(pcnt_unit, &chan_b_config, &pcnt_chan_b); + pcnt_channel_set_edge_action(pcnt_chan_a, PCNT_CHANNEL_EDGE_ACTION_DECREASE, PCNT_CHANNEL_EDGE_ACTION_INCREASE); + pcnt_channel_set_level_action(pcnt_chan_a, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_channel_set_edge_action(pcnt_chan_b, PCNT_CHANNEL_EDGE_ACTION_INCREASE, PCNT_CHANNEL_EDGE_ACTION_DECREASE); + pcnt_channel_set_level_action(pcnt_chan_b, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_unit_enable(pcnt_unit); pcnt_unit_clear_count(pcnt_unit); pcnt_unit_start(pcnt_unit); + + gpio_set_direction(OLED_DC_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + trigger_song_change = true; + is_paused = false; + } + + pause_last = pause_btn; + next_last = next_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char speed_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + // 8 Track Interface Updater + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + if (is_paused) draw_string(45, 2, "PAUSE"); + + sprintf(speed_buf, "%.2fx", current_speed); + draw_string(96, 2, speed_buf); + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(462): Expected 2 node names here. + gpio_set_direction(LED_KICK_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_KICK_PIN, 0); + gpio_set_direction(LED_HAT_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_HAT_PIN, 0); + + gpio_reset_pin(BTN_PAUSE_PIN); gpio_reset_pin(BTN_NEXT_PIN); + gpio_set_direction(BTN_PAUSE_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_PAUSE_PIN, GPIO_PULLUP_ONLY); + gpio_set_direction(BTN_NEXT_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_NEXT_PIN, GPIO_PULLUP_ONLY); + + ledc_timer_config_t timer_cfg = { .speed_mode = BUZZER_LEDC_MODE, .timer_num = BUZZER_LEDC_TIMER, .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 440, .clk_cfg = LEDC_AUTO_CLK }; + ledc_timer_config(&timer_cfg); + ledc_channel_config_t ch_cfg = { .speed_mode = BUZZER_LEDC_MODE, .channel = BUZZER_LEDC_CHANNEL, .timer_sel = BUZZER_LEDC_TIMER, .intr_type = LEDC_INTR_DISABLE, .gpio_num = PASSIVE_BUZZER_PIN, .duty = 0, .hpoint = 0 }; + ledc_channel_config(&ch_cfg); + + pcnt_unit_config_t unit_config = { .high_limit = 100, .low_limit = -100 }; + pcnt_new_unit(&unit_config, &pcnt_unit); + pcnt_glitch_filter_config_t filter_config = { .max_glitch_ns = 1000 }; + pcnt_unit_set_glitch_filter(pcnt_unit, &filter_config); + pcnt_chan_config_t chan_a_config = { .edge_gpio_num = ROTARY_CLK_PIN, .level_gpio_num = ROTARY_DT_PIN }; + pcnt_channel_handle_t pcnt_chan_a = NULL; pcnt_new_channel(pcnt_unit, &chan_a_config, &pcnt_chan_a); + pcnt_chan_config_t chan_b_config = { .edge_gpio_num = ROTARY_DT_PIN, .level_gpio_num = ROTARY_CLK_PIN }; + pcnt_channel_handle_t pcnt_chan_b = NULL; pcnt_new_channel(pcnt_unit, &chan_b_config, &pcnt_chan_b); + pcnt_channel_set_edge_action(pcnt_chan_a, PCNT_CHANNEL_EDGE_ACTION_DECREASE, PCNT_CHANNEL_EDGE_ACTION_INCREASE); + pcnt_channel_set_level_action(pcnt_chan_a, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_channel_set_edge_action(pcnt_chan_b, PCNT_CHANNEL_EDGE_ACTION_INCREASE, PCNT_CHANNEL_EDGE_ACTION_DECREASE); + pcnt_channel_set_level_action(pcnt_chan_b, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_unit_enable(pcnt_unit); pcnt_unit_clear_count(pcnt_unit); pcnt_unit_start(pcnt_unit); + + gpio_set_direction(OLED_DC_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + trigger_song_change = true; + is_paused = false; + } + + pause_last = pause_btn; + next_last = next_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char speed_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + // 8 Track Interface Updater + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + if (is_paused) draw_string(45, 2, "PAUSE"); + + sprintf(speed_buf, "%.2fx", current_speed); + draw_string(96, 2, speed_buf); + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_level(LED_KICK_PIN, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(463): Expected 2 node names here. + gpio_set_direction(LED_HAT_PIN, GPIO_MODE_OUTPUT); gpio_set_level(LED_HAT_PIN, 0); + + gpio_reset_pin(BTN_PAUSE_PIN); gpio_reset_pin(BTN_NEXT_PIN); + gpio_set_direction(BTN_PAUSE_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_PAUSE_PIN, GPIO_PULLUP_ONLY); + gpio_set_direction(BTN_NEXT_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_NEXT_PIN, GPIO_PULLUP_ONLY); + + ledc_timer_config_t timer_cfg = { .speed_mode = BUZZER_LEDC_MODE, .timer_num = BUZZER_LEDC_TIMER, .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 440, .clk_cfg = LEDC_AUTO_CLK }; + ledc_timer_config(&timer_cfg); + ledc_channel_config_t ch_cfg = { .speed_mode = BUZZER_LEDC_MODE, .channel = BUZZER_LEDC_CHANNEL, .timer_sel = BUZZER_LEDC_TIMER, .intr_type = LEDC_INTR_DISABLE, .gpio_num = PASSIVE_BUZZER_PIN, .duty = 0, .hpoint = 0 }; + ledc_channel_config(&ch_cfg); + + pcnt_unit_config_t unit_config = { .high_limit = 100, .low_limit = -100 }; + pcnt_new_unit(&unit_config, &pcnt_unit); + pcnt_glitch_filter_config_t filter_config = { .max_glitch_ns = 1000 }; + pcnt_unit_set_glitch_filter(pcnt_unit, &filter_config); + pcnt_chan_config_t chan_a_config = { .edge_gpio_num = ROTARY_CLK_PIN, .level_gpio_num = ROTARY_DT_PIN }; + pcnt_channel_handle_t pcnt_chan_a = NULL; pcnt_new_channel(pcnt_unit, &chan_a_config, &pcnt_chan_a); + pcnt_chan_config_t chan_b_config = { .edge_gpio_num = ROTARY_DT_PIN, .level_gpio_num = ROTARY_CLK_PIN }; + pcnt_channel_handle_t pcnt_chan_b = NULL; pcnt_new_channel(pcnt_unit, &chan_b_config, &pcnt_chan_b); + pcnt_channel_set_edge_action(pcnt_chan_a, PCNT_CHANNEL_EDGE_ACTION_DECREASE, PCNT_CHANNEL_EDGE_ACTION_INCREASE); + pcnt_channel_set_level_action(pcnt_chan_a, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_channel_set_edge_action(pcnt_chan_b, PCNT_CHANNEL_EDGE_ACTION_INCREASE, PCNT_CHANNEL_EDGE_ACTION_DECREASE); + pcnt_channel_set_level_action(pcnt_chan_b, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_unit_enable(pcnt_unit); pcnt_unit_clear_count(pcnt_unit); pcnt_unit_start(pcnt_unit); + + gpio_set_direction(OLED_DC_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + trigger_song_change = true; + is_paused = false; + } + + pause_last = pause_btn; + next_last = next_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char speed_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + // 8 Track Interface Updater + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + if (is_paused) draw_string(45, 2, "PAUSE"); + + sprintf(speed_buf, "%.2fx", current_speed); + draw_string(96, 2, speed_buf); + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_level(LED_HAT_PIN, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(465): Expected 2 node names here. + gpio_reset_pin(BTN_PAUSE_PIN); gpio_reset_pin(BTN_NEXT_PIN); + ^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(466): Expected 2 node names here. + gpio_set_direction(BTN_PAUSE_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_PAUSE_PIN, GPIO_PULLUP_ONLY); + gpio_set_direction(BTN_NEXT_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_NEXT_PIN, GPIO_PULLUP_ONLY); + + ledc_timer_config_t timer_cfg = { .speed_mode = BUZZER_LEDC_MODE, .timer_num = BUZZER_LEDC_TIMER, .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 440, .clk_cfg = LEDC_AUTO_CLK }; + ledc_timer_config(&timer_cfg); + ledc_channel_config_t ch_cfg = { .speed_mode = BUZZER_LEDC_MODE, .channel = BUZZER_LEDC_CHANNEL, .timer_sel = BUZZER_LEDC_TIMER, .intr_type = LEDC_INTR_DISABLE, .gpio_num = PASSIVE_BUZZER_PIN, .duty = 0, .hpoint = 0 }; + ledc_channel_config(&ch_cfg); + + pcnt_unit_config_t unit_config = { .high_limit = 100, .low_limit = -100 }; + pcnt_new_unit(&unit_config, &pcnt_unit); + pcnt_glitch_filter_config_t filter_config = { .max_glitch_ns = 1000 }; + pcnt_unit_set_glitch_filter(pcnt_unit, &filter_config); + pcnt_chan_config_t chan_a_config = { .edge_gpio_num = ROTARY_CLK_PIN, .level_gpio_num = ROTARY_DT_PIN }; + pcnt_channel_handle_t pcnt_chan_a = NULL; pcnt_new_channel(pcnt_unit, &chan_a_config, &pcnt_chan_a); + pcnt_chan_config_t chan_b_config = { .edge_gpio_num = ROTARY_DT_PIN, .level_gpio_num = ROTARY_CLK_PIN }; + pcnt_channel_handle_t pcnt_chan_b = NULL; pcnt_new_channel(pcnt_unit, &chan_b_config, &pcnt_chan_b); + pcnt_channel_set_edge_action(pcnt_chan_a, PCNT_CHANNEL_EDGE_ACTION_DECREASE, PCNT_CHANNEL_EDGE_ACTION_INCREASE); + pcnt_channel_set_level_action(pcnt_chan_a, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_channel_set_edge_action(pcnt_chan_b, PCNT_CHANNEL_EDGE_ACTION_INCREASE, PCNT_CHANNEL_EDGE_ACTION_DECREASE); + pcnt_channel_set_level_action(pcnt_chan_b, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_unit_enable(pcnt_unit); pcnt_unit_clear_count(pcnt_unit); pcnt_unit_start(pcnt_unit); + + gpio_set_direction(OLED_DC_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + trigger_song_change = true; + is_paused = false; + } + + pause_last = pause_btn; + next_last = next_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char speed_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + // 8 Track Interface Updater + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + if (is_paused) draw_string(45, 2, "PAUSE"); + + sprintf(speed_buf, "%.2fx", current_speed); + draw_string(96, 2, speed_buf); + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_pull_mode(BTN_PAUSE_PIN, GPIO_PULLUP_ONLY); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(467): Expected 2 node names here. + gpio_set_direction(BTN_NEXT_PIN, GPIO_MODE_INPUT); gpio_set_pull_mode(BTN_NEXT_PIN, GPIO_PULLUP_ONLY); + + ledc_timer_config_t timer_cfg = { .speed_mode = BUZZER_LEDC_MODE, .timer_num = BUZZER_LEDC_TIMER, .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 440, .clk_cfg = LEDC_AUTO_CLK }; + ledc_timer_config(&timer_cfg); + ledc_channel_config_t ch_cfg = { .speed_mode = BUZZER_LEDC_MODE, .channel = BUZZER_LEDC_CHANNEL, .timer_sel = BUZZER_LEDC_TIMER, .intr_type = LEDC_INTR_DISABLE, .gpio_num = PASSIVE_BUZZER_PIN, .duty = 0, .hpoint = 0 }; + ledc_channel_config(&ch_cfg); + + pcnt_unit_config_t unit_config = { .high_limit = 100, .low_limit = -100 }; + pcnt_new_unit(&unit_config, &pcnt_unit); + pcnt_glitch_filter_config_t filter_config = { .max_glitch_ns = 1000 }; + pcnt_unit_set_glitch_filter(pcnt_unit, &filter_config); + pcnt_chan_config_t chan_a_config = { .edge_gpio_num = ROTARY_CLK_PIN, .level_gpio_num = ROTARY_DT_PIN }; + pcnt_channel_handle_t pcnt_chan_a = NULL; pcnt_new_channel(pcnt_unit, &chan_a_config, &pcnt_chan_a); + pcnt_chan_config_t chan_b_config = { .edge_gpio_num = ROTARY_DT_PIN, .level_gpio_num = ROTARY_CLK_PIN }; + pcnt_channel_handle_t pcnt_chan_b = NULL; pcnt_new_channel(pcnt_unit, &chan_b_config, &pcnt_chan_b); + pcnt_channel_set_edge_action(pcnt_chan_a, PCNT_CHANNEL_EDGE_ACTION_DECREASE, PCNT_CHANNEL_EDGE_ACTION_INCREASE); + pcnt_channel_set_level_action(pcnt_chan_a, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_channel_set_edge_action(pcnt_chan_b, PCNT_CHANNEL_EDGE_ACTION_INCREASE, PCNT_CHANNEL_EDGE_ACTION_DECREASE); + pcnt_channel_set_level_action(pcnt_chan_b, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + pcnt_unit_enable(pcnt_unit); pcnt_unit_clear_count(pcnt_unit); pcnt_unit_start(pcnt_unit); + + gpio_set_direction(OLED_DC_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + trigger_song_change = true; + is_paused = false; + } + + pause_last = pause_btn; + next_last = next_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char speed_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + // 8 Track Interface Updater + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + if (is_paused) draw_string(45, 2, "PAUSE"); + + sprintf(speed_buf, "%.2fx", current_speed); + draw_string(96, 2, speed_buf); + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_pull_mode(BTN_NEXT_PIN, GPIO_PULLUP_ONLY); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(469): Expected nodes here. + ledc_timer_config_t timer_cfg = { .speed_mode = BUZZER_LEDC_MODE, .timer_num = BUZZER_LEDC_TIMER, .duty_resolution = LEDC_TIMER_13_BIT, .freq_hz = 440, .clk_cfg = LEDC_AUTO_CLK }; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(470): Expected nodes here. + ledc_timer_config(&timer_cfg); + ^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(471): Expected nodes here. + ledc_channel_config_t ch_cfg = { .speed_mode = BUZZER_LEDC_MODE, .channel = BUZZER_LEDC_CHANNEL, .timer_sel = BUZZER_LEDC_TIMER, .intr_type = LEDC_INTR_DISABLE, .gpio_num = PASSIVE_BUZZER_PIN, .duty = 0, .hpoint = 0 }; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(472): Expected nodes here. + ledc_channel_config(&ch_cfg); + ^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(474): Expected nodes here. + pcnt_unit_config_t unit_config = { .high_limit = 100, .low_limit = -100 }; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(475): Expected nodes here. + pcnt_new_unit(&unit_config, &pcnt_unit); + ^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(476): Expected nodes here. + pcnt_glitch_filter_config_t filter_config = { .max_glitch_ns = 1000 }; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(477): Expected nodes here. + pcnt_unit_set_glitch_filter(pcnt_unit, &filter_config); + ^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(478): Expected nodes here. + pcnt_chan_config_t chan_a_config = { .edge_gpio_num = ROTARY_CLK_PIN, .level_gpio_num = ROTARY_DT_PIN }; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(479): Expected nodes here. + pcnt_channel_handle_t pcnt_chan_a = NULL; pcnt_new_channel(pcnt_unit, &chan_a_config, &pcnt_chan_a); + ^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(480): Expected nodes here. + pcnt_chan_config_t chan_b_config = { .edge_gpio_num = ROTARY_DT_PIN, .level_gpio_num = ROTARY_CLK_PIN }; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(481): Expected nodes here. + pcnt_channel_handle_t pcnt_chan_b = NULL; pcnt_new_channel(pcnt_unit, &chan_b_config, &pcnt_chan_b); + ^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(482): Expected nodes here. + pcnt_channel_set_edge_action(pcnt_chan_a, PCNT_CHANNEL_EDGE_ACTION_DECREASE, PCNT_CHANNEL_EDGE_ACTION_INCREASE); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(483): Expected nodes here. + pcnt_channel_set_level_action(pcnt_chan_a, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(484): Expected nodes here. + pcnt_channel_set_edge_action(pcnt_chan_b, PCNT_CHANNEL_EDGE_ACTION_INCREASE, PCNT_CHANNEL_EDGE_ACTION_DECREASE); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(485): Expected nodes here. + pcnt_channel_set_level_action(pcnt_chan_b, PCNT_CHANNEL_LEVEL_ACTION_KEEP, PCNT_CHANNEL_LEVEL_ACTION_INVERSE); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(486): Expected nodes here. + pcnt_unit_enable(pcnt_unit); pcnt_unit_clear_count(pcnt_unit); pcnt_unit_start(pcnt_unit); + ^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(488): Expected 2 node names here. + gpio_set_direction(OLED_DC_PIN, GPIO_MODE_OUTPUT); gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + trigger_song_change = true; + is_paused = false; + } + + pause_last = pause_btn; + next_last = next_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char speed_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + // 8 Track Interface Updater + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + if (is_paused) draw_string(45, 2, "PAUSE"); + + sprintf(speed_buf, "%.2fx", current_speed); + draw_string(96, 2, speed_buf); + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_direction(OLED_RES_PIN, GPIO_MODE_OUTPUT); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(489): Expected node name here. + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(489): Expected device instantiation or directive here. + spi_bus_config_t buscfg = { .miso_io_num = -1, .mosi_io_num = OLED_MOSI_PIN, .sclk_io_num = OLED_CLK_PIN, .quadwp_io_num = -1, .quadhd_io_num = -1, .max_transfer_sz = 1024 }; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(490): Expected node name here. + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(490): Expected device instantiation or directive here. + spi_device_interface_config_t devcfg = { .clock_speed_hz = 10 * 1000 * 1000, .mode = 0, .spics_io_num = OLED_CS_PIN, .queue_size = 7 }; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(491): Expected node name here. + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(491): Expected device instantiation or directive here. + spi_bus_initialize(SPI2_HOST, &buscfg, SPI_DMA_CH_AUTO); spi_bus_add_device(SPI2_HOST, &devcfg, &spi); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(492): Expected 2 node names here. + gpio_set_level(OLED_RES_PIN, 0); vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + trigger_song_change = true; + is_paused = false; + } + + pause_last = pause_btn; + next_last = next_btn; + vTaskDelay(pdMS_TO_TICKS(50)); + } +} + +// ========================================== +// 7. CORE 0: OLED GRAPHICS ENGINE +// ========================================== +void oled_visualizer_task(void *pvParameters) { + char speed_buf[16]; + + while(1) { + memset(oled_buffer, 0, 1024); + + // 8 Track Interface Updater + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + if (is_paused) draw_string(45, 2, "PAUSE"); + + sprintf(speed_buf, "%.2fx", current_speed); + draw_string(96, 2, speed_buf); + draw_filled_rect(0, 11, 128, 1, 1); + + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + + if(current_freq > 0 && !is_paused) { + int h = (current_freq - 200) / 12; + if (h < 5) h = 5; + if (h > 40) h = 40; + + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + draw_filled_rect(60, 60 - h, 8, h, 1); + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + } else { + draw_filled_rect(50, 58, 28, 2, 1); + } + + oled_push_framebuffer(); + vTaskDelay(pdMS_TO_TICKS(33)); + } +} + +// ========================================== +// 8. CORE 1: THE MUSIC ENGINE +// ========================================== +void buzzer_sequence_task(void *pvParameters) { + const SequenceStep* active_song = careless_song; + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + int encoder_count = 0; + + while(1) { + for (int i = 0; i < num_steps; i++) { + + while (is_paused) { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; vTaskDelay(pdMS_TO_TICKS(10)); gpio_set_level(OLED_RES_PIN, 1); vTaskDelay(pdMS_TO_TICKS(50)); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(493): Expected device instantiation or directive here. + const uint8_t init_cmds[] = { 0xAE, 0xD5, 0x80, 0xA8, 0x3F, 0xD3, 0x00, 0x40, 0x8D, 0x14, 0x20, 0x02, 0xA1, 0xC8, 0xDA, 0x12, 0x81, 0xCF, 0xD9, 0xF1, 0xDB, 0x40, 0xA4, 0xA6, 0xAF }; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(494): syntax error + for(int i=0; i 8) current_song_idx = 0; // Cycles through 8 songs! + ^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(515): Unknown parameter + if (current_song_idx > 8) current_song_idx = 0; // Cycles through 8 songs! + ^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(516): Expected nodes here. + trigger_song_change = true; + ^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(517): Expected node name here. + is_paused = false; + ^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(517): Expected device instantiation or directive here. + is_paused = false; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(518): Expected device instantiation or directive here. + } +^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(520): Expected nodes here. + pause_last = pause_btn; + ^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(521): Expected device instantiation or directive here. + next_last = next_btn; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(522): Expected node name here. + vTaskDelay(pdMS_TO_TICKS(50)); + ^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(522): Expected device instantiation or directive here. + vTaskDelay(pdMS_TO_TICKS(50)); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(523): Expected device instantiation or directive here. + } +^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(524): Expected device instantiation or directive here. +} +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(526): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(527): Expected device instantiation or directive here. +// 7. CORE 0: OLED GRAPHICS ENGINE +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(528): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(529): Expected node name here. +void oled_visualizer_task(void *pvParameters) { + ^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(529): Expected device instantiation or directive here. +void oled_visualizer_task(void *pvParameters) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(530): Expected device instantiation or directive here. + char speed_buf[16]; +^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(532): Expected node name here. + while(1) { + ^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(532): Expected device instantiation or directive here. + while(1) { +^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(533): Expected node name here. + memset(oled_buffer, 0, 1024); + ^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(533): Expected device instantiation or directive here. + memset(oled_buffer, 0, 1024); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(535): Expected device instantiation or directive here. + // 8 Track Interface Updater +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(536): Expected node name here. + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(536): Expected device instantiation or directive here. + if (current_song_idx == 0) draw_string(2, 2, "WHISP"); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(537): Expected 2 node names here. + else if (current_song_idx == 1) draw_string(2, 2, "TAKE "); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(538): Expected 2 node names here. + else if (current_song_idx == 2) draw_string(2, 2, "RICK "); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(539): Expected 2 node names here. + else if (current_song_idx == 3) draw_string(2, 2, "ELVIS"); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(540): Expected 2 node names here. + else if (current_song_idx == 4) draw_string(2, 2, "GIMME"); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(541): Expected 2 node names here. + else if (current_song_idx == 5) draw_string(2, 2, "TURK "); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(542): Expected 2 node names here. + else if (current_song_idx == 6) draw_string(2, 2, "ELISE"); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(543): Expected 2 node names here. + else if (current_song_idx == 7) draw_string(2, 2, "MOZRT"); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(544): Expected 2 node names here. + else if (current_song_idx == 8) draw_string(2, 2, "ALLA_TURCA"); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(545): Expected node name here. + if (is_paused) draw_string(45, 2, "PAUSE"); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(545): Expected device instantiation or directive here. + if (is_paused) draw_string(45, 2, "PAUSE"); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(547): Expected node name here. + sprintf(speed_buf, "%.2fx", current_speed); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(547): Expected device instantiation or directive here. + sprintf(speed_buf, "%.2fx", current_speed); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(548): Expected node name here. + draw_string(96, 2, speed_buf); + ^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(548): Expected device instantiation or directive here. + draw_string(96, 2, speed_buf); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(549): Expected node name here. + draw_filled_rect(0, 11, 128, 1, 1); + ^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(549): Expected device instantiation or directive here. + draw_filled_rect(0, 11, 128, 1, 1); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(551): Expected node name here. + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(551): Expected device instantiation or directive here. + if(current_kick) draw_filled_rect(10, 25, 20, 30, 1); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(552): Expected "}" here. + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(552): Expected 2 node names here. + else { draw_filled_rect(10, 45, 20, 10, 1); draw_rect(10, 25, 20, 30, 1); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(554): Expected node name here. + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(554): Expected device instantiation or directive here. + if(current_hat) draw_filled_rect(98, 30, 16, 25, 1); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(555): Expected "}" here. + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(555): Expected 2 node names here. + else { draw_filled_rect(98, 45, 16, 10, 1); draw_rect(98, 30, 16, 25, 1); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(557): Unknown parameter + if(current_freq > 0 && !is_paused) { + ^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(558): Expected node name here. + int h = (current_freq - 200) / 12; + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(558): Expected device instantiation or directive here. + int h = (current_freq - 200) / 12; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(559): Unknown parameter + if (h < 5) h = 5; + ^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(560): Unknown parameter + if (h > 40) h = 40; + ^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(562): Expected node name here. + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(562): Expected device instantiation or directive here. + draw_filled_rect(50, 60 - (h/2), 6, (h/2), 1); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(563): Expected node name here. + draw_filled_rect(60, 60 - h, 8, h, 1); + ^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(563): Expected device instantiation or directive here. + draw_filled_rect(60, 60 - h, 8, h, 1); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(564): Expected node name here. + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(564): Expected device instantiation or directive here. + draw_filled_rect(72, 60 - (h/1.5), 6, (h/1.5), 1); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(565): Expected device instantiation or directive here. + } else { +^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(566): Expected node name here. + draw_filled_rect(50, 58, 28, 2, 1); + ^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(566): Expected device instantiation or directive here. + draw_filled_rect(50, 58, 28, 2, 1); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(567): Expected device instantiation or directive here. + } +^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(569): Expected nodes here. + oled_push_framebuffer(); + ^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(570): Expected node name here. + vTaskDelay(pdMS_TO_TICKS(33)); + ^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(570): Expected device instantiation or directive here. + vTaskDelay(pdMS_TO_TICKS(33)); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(571): Expected device instantiation or directive here. + } +^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(572): Expected device instantiation or directive here. +} +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(574): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(575): Expected device instantiation or directive here. +// 8. CORE 1: THE MUSIC ENGINE +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(576): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(577): Expected node name here. +void buzzer_sequence_task(void *pvParameters) { + ^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(577): Expected device instantiation or directive here. +void buzzer_sequence_task(void *pvParameters) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(578): Expected device instantiation or directive here. + const SequenceStep* active_song = careless_song; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(579): Expected node name here. + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(579): Expected device instantiation or directive here. + int num_steps = sizeof(careless_song) / sizeof(SequenceStep); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(580): Expected node name here. + int encoder_count = 0; + ^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(580): Expected device instantiation or directive here. + int encoder_count = 0; +^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(582): Expected node name here. + while(1) { + ^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(582): Expected device instantiation or directive here. + while(1) { +^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(583): syntax error + for (int i = 0; i < num_steps; i++) { + ^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(585): Expected node name here. + while (is_paused) { + ^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(585): Expected device instantiation or directive here. + while (is_paused) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(586): Expected nodes here. + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(587): Expected 2 node names here. + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(588): Expected 2 node names here. + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_freq = 0; current_kick = false; current_hat = false; + + vTaskDelay(pdMS_TO_TICKS(50)); + if (trigger_song_change) break; + } + + if (trigger_song_change) { + // 8 Track Router + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + trigger_song_change = false; + break; + } + + SequenceStep step = active_song[i]; + + pcnt_unit_get_count(pcnt_unit, &encoder_count); + current_speed = 1.0 + (encoder_count * 0.05); + if (current_speed < 0.2) current_speed = 0.2; + if (current_speed > 3.0) current_speed = 3.0; + + int adj_duration = (int)(step.duration / current_speed); + int adj_drum_hit = (int)(45 / current_speed); + + current_freq = step.frequency; + if (step.frequency > 0) { + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + } else { + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + } + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + + current_kick = step.kick_drum; + current_hat = step.hi_hat; + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + + if (adj_duration > adj_drum_hit) { + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_level(LED_HAT_PIN, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(589): Expected device instantiation or directive here. + current_freq = 0; current_kick = false; current_hat = false; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(591): Expected node name here. + vTaskDelay(pdMS_TO_TICKS(50)); + ^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(591): Expected device instantiation or directive here. + vTaskDelay(pdMS_TO_TICKS(50)); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(592): Expected node name here. + if (trigger_song_change) break; + ^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(592): Expected device instantiation or directive here. + if (trigger_song_change) break; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(593): Expected device instantiation or directive here. + } +^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(595): Expected node name here. + if (trigger_song_change) { + ^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(595): Expected device instantiation or directive here. + if (trigger_song_change) { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(596): Expected device instantiation or directive here. + // 8 Track Router +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(597): Expected node name here. + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(597): Expected device instantiation or directive here. + if (current_song_idx == 0) { active_song = careless_song; num_steps = sizeof(careless_song) / sizeof(SequenceStep); } +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(598): Expected 2 node names here. + else if (current_song_idx == 1) { active_song = takeonme_song; num_steps = sizeof(takeonme_song) / sizeof(SequenceStep); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(599): Expected 2 node names here. + else if (current_song_idx == 2) { active_song = rickroll_song; num_steps = sizeof(rickroll_song) / sizeof(SequenceStep); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(600): Expected 2 node names here. + else if (current_song_idx == 3) { active_song = elvis_song; num_steps = sizeof(elvis_song) / sizeof(SequenceStep); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(601): Expected 2 node names here. + else if (current_song_idx == 4) { active_song = abba_song; num_steps = sizeof(abba_song) / sizeof(SequenceStep); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(602): Expected 2 node names here. + else if (current_song_idx == 5) { active_song = turkish_song; num_steps = sizeof(turkish_song) / sizeof(SequenceStep); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(603): Expected 2 node names here. + else if (current_song_idx == 6) { active_song = elise_song; num_steps = sizeof(elise_song) / sizeof(SequenceStep); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(604): Expected 2 node names here. + else if (current_song_idx == 7) { active_song = mozart_song; num_steps = sizeof(mozart_song) / sizeof(SequenceStep); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(605): Expected 2 node names here. + else if (current_song_idx == 8) { active_song = midi_alla_turca; num_steps = sizeof(midi_alla_turca) / sizeof(SequenceStep); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(606): Expected nodes here. + trigger_song_change = false; + ^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(607): Expected node name here. + break; + ^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(607): Expected device instantiation or directive here. + break; +^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(608): Expected device instantiation or directive here. + } +^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(610): Expected node name here. + SequenceStep step = active_song[i]; + ^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(610): Expected device instantiation or directive here. + SequenceStep step = active_song[i]; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(612): Expected nodes here. + pcnt_unit_get_count(pcnt_unit, &encoder_count); + ^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(613): Expected device instantiation or directive here. + current_speed = 1.0 + (encoder_count * 0.05); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(614): Unknown parameter + if (current_speed < 0.2) current_speed = 0.2; + ^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(614): Unknown parameter + if (current_speed < 0.2) current_speed = 0.2; + ^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(615): Unknown parameter + if (current_speed > 3.0) current_speed = 3.0; + ^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(615): Unknown parameter + if (current_speed > 3.0) current_speed = 3.0; + ^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(617): Expected node name here. + int adj_duration = (int)(step.duration / current_speed); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(617): Expected device instantiation or directive here. + int adj_duration = (int)(step.duration / current_speed); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(618): Expected node name here. + int adj_drum_hit = (int)(45 / current_speed); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(618): Expected device instantiation or directive here. + int adj_drum_hit = (int)(45 / current_speed); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(620): Expected device instantiation or directive here. + current_freq = step.frequency; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(621): Unknown parameter + if (step.frequency > 0) { + ^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(622): Expected nodes here. + ledc_set_freq(BUZZER_LEDC_MODE, BUZZER_LEDC_TIMER, step.frequency); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(623): Expected nodes here. + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, BUZZER_LEDC_DUTY); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(624): Expected device instantiation or directive here. + } else { +^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(625): Expected nodes here. + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(626): Expected device instantiation or directive here. + } +^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(627): Expected nodes here. + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(629): Expected device instantiation or directive here. + current_kick = step.kick_drum; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(630): Expected device instantiation or directive here. + current_hat = step.hi_hat; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(631): Expected node name here. + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(631): Expected device instantiation or directive here. + if (step.kick_drum) { gpio_set_level(ACTIVE_BUZZER_1_PIN, 1); gpio_set_level(LED_KICK_PIN, 1); } +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(632): Expected node name here. + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(632): Expected device instantiation or directive here. + if (step.hi_hat) { gpio_set_level(ACTIVE_BUZZER_2_PIN, 1); gpio_set_level(LED_HAT_PIN, 1); } +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(634): Unknown parameter + if (adj_duration > adj_drum_hit) { + ^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(635): Expected node name here. + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); + ^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(635): Expected device instantiation or directive here. + vTaskDelay(pdMS_TO_TICKS(adj_drum_hit)); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(636): Expected 2 node names here. + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(637): Expected 2 node names here. + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + } else { + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_level(LED_HAT_PIN, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(638): Expected device instantiation or directive here. + current_kick = false; current_hat = false; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(639): Expected node name here. + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(639): Expected device instantiation or directive here. + vTaskDelay(pdMS_TO_TICKS(adj_duration - adj_drum_hit)); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(640): Expected device instantiation or directive here. + } else { +^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(641): Expected node name here. + vTaskDelay(pdMS_TO_TICKS(adj_duration)); + ^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(641): Expected device instantiation or directive here. + vTaskDelay(pdMS_TO_TICKS(adj_duration)); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(642): Expected 2 node names here. + gpio_set_level(ACTIVE_BUZZER_1_PIN, 0); gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_level(ACTIVE_BUZZER_2_PIN, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(643): Expected 2 node names here. + gpio_set_level(LED_KICK_PIN, 0); gpio_set_level(LED_HAT_PIN, 0); + current_kick = false; current_hat = false; + } + + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + current_freq = 0; + vTaskDelay(pdMS_TO_TICKS(15)); + } + } +} + +// ========================================== +// 9. MAIN APPLICATION ENTRY +// ========================================== +void app_main(void) { + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + init_hardware(); + + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); +} +; gpio_set_level(LED_HAT_PIN, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(644): Expected device instantiation or directive here. + current_kick = false; current_hat = false; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(645): Expected device instantiation or directive here. + } +^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(647): Expected nodes here. + ledc_set_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(648): Expected nodes here. + ledc_update_duty(BUZZER_LEDC_MODE, BUZZER_LEDC_CHANNEL); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(649): Expected device instantiation or directive here. + current_freq = 0; +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(650): Expected node name here. + vTaskDelay(pdMS_TO_TICKS(15)); + ^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(650): Expected device instantiation or directive here. + vTaskDelay(pdMS_TO_TICKS(15)); +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(651): Expected device instantiation or directive here. + } +^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(652): Expected device instantiation or directive here. + } +^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(653): Expected device instantiation or directive here. +} +^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(655): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(656): Expected device instantiation or directive here. +// 9. MAIN APPLICATION ENTRY +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(657): Expected device instantiation or directive here. +// ========================================== +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(658): Expected node name here. +void app_main(void) { + ^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(658): Expected device instantiation or directive here. +void app_main(void) { +^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(659): Expected nodes here. + printf("Desk Rave: 8-Track Symphony Edition Initializing...\n"); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(660): Expected node name here. + init_hardware(); + ^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(660): Expected device instantiation or directive here. + init_hardware(); +^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(662): Expected subckt name here. + xTaskCreatePinnedToCore(oled_visualizer_task, "oled_task", 4096, NULL, 4, NULL, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(663): Expected subckt name here. + xTaskCreatePinnedToCore(button_task, "btn_task", 4096, NULL, 5, NULL, 0); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(664): Expected subckt name here. + xTaskCreatePinnedToCore(buzzer_sequence_task, "music_task", 4096, NULL, 5, NULL, 1); + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\esp\mmcontroller\main\mmcontroller.c(665): Expected device instantiation or directive here. +} +^ diff --git a/scripts/midi_to_c.py b/scripts/midi_to_c.py new file mode 100644 index 0000000..3cf8c43 --- /dev/null +++ b/scripts/midi_to_c.py @@ -0,0 +1,107 @@ +#!/usr/bin/env python3 +import sys +import mido + +def convert_midi_to_c(midi_filename): + try: + mid = mido.MidiFile(midi_filename) + except Exception as e: + print(f"Error loading MIDI: {e}") + sys.exit(1) + + safe_name = midi_filename.split('/')[-1].replace('.mid', '').replace('-', '_').replace(' ', '_') + print(f"// Converted from: {midi_filename} (RLE Compressed & Bass-Routed Edition)") + print(f"const SequenceStep midi_{safe_name}[] = {{") + + active_melody_notes = set() + time_accum = 0.0 + + # Incoming MIDI drum triggers + trigger_kick = False + trigger_hat = False + + # === RLE COMPRESSION STATE === + rle_freq = -1 + rle_dur = 0 + rle_kick = False + rle_hat = False + + output_lines = [] + line_buffer = " " + items_on_line = 0 + + # Function to print the compressed note once it finally changes + def flush_rle(): + nonlocal rle_freq, rle_dur, rle_kick, rle_hat, line_buffer, items_on_line, output_lines + if rle_dur > 0: + k_str = "true" if rle_kick else "false" + h_str = "true" if rle_hat else "false" + line_buffer += f"{{{rle_freq}, {rle_dur}, {k_str}, {h_str}}}, " + items_on_line += 1 + if items_on_line >= 4: + output_lines.append(line_buffer) + line_buffer = " " + items_on_line = 0 + + for msg in mid: + time_accum += msg.time + + if msg.type in ['note_on', 'note_off'] and time_accum > 0.01: + duration_ms = int(time_accum * 1000) + + if active_melody_notes: + note = max(active_melody_notes) + freq = int(440.0 * (2.0 ** ((note - 69) / 12.0))) + else: + freq = 0 + + # === RLE ENGINE === + # If nothing changed, just add the time to the current note! + if freq == rle_freq and trigger_kick == rle_kick and trigger_hat == rle_hat: + rle_dur += duration_ms + else: + # The note changed! Flush the old one and start tracking the new one. + flush_rle() + rle_freq = freq + rle_dur = duration_ms + rle_kick = trigger_kick + rle_hat = trigger_hat + + # Reset triggers for the next loop + time_accum = 0.0 + trigger_kick = False + trigger_hat = False + + if hasattr(msg, 'note'): + if msg.type == 'note_on' and msg.velocity > 0: + if msg.channel == 9: + if msg.note in [35, 36, 38, 40]: trigger_kick = True + else: trigger_hat = True + else: + if msg.note >= 60: + active_melody_notes.add(msg.note) + elif msg.note < 50: + trigger_kick = True + else: + trigger_hat = True + + elif msg.type == 'note_off' or (msg.type == 'note_on' and msg.velocity == 0): + if msg.channel != 9 and msg.note >= 60: + active_melody_notes.discard(msg.note) + + # Flush the very last note + flush_rle() + + if items_on_line > 0: + output_lines.append(line_buffer) + + for line in output_lines: + print(line) + + print(" {0, 2000, false, false}\n};") + +if __name__ == "__main__": + if len(sys.argv) < 2: + print("Usage: python midi_to_c.py ") + sys.exit(1) + convert_midi_to_c(sys.argv[1]) diff --git a/scripts/midillis/Alla_Turca/DRE.mid b/scripts/midillis/Alla_Turca/DRE.mid new file mode 100644 index 0000000..8767d81 Binary files /dev/null and b/scripts/midillis/Alla_Turca/DRE.mid differ diff --git a/scripts/midillis/Alla_Turca/RICK.mid b/scripts/midillis/Alla_Turca/RICK.mid new file mode 100644 index 0000000..6f6567c Binary files /dev/null and b/scripts/midillis/Alla_Turca/RICK.mid differ diff --git a/scripts/midillis/Alla_Turca/RICK_c.txt b/scripts/midillis/Alla_Turca/RICK_c.txt new file mode 100644 index 0000000..845a1f0 --- /dev/null +++ b/scripts/midillis/Alla_Turca/RICK_c.txt @@ -0,0 +1,1356 @@ +// Converted from: RICK.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_RICK[] = { + {0, 4999, false, false}, {0, 21, false, true}, {0, 109, false, false}, {0, 21, false, true}, + {0, 241, false, false}, {0, 21, false, true}, {0, 109, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, false, true}, {0, 109, false, false}, {0, 21, true, true}, + {0, 109, false, false}, {0, 19, true, true}, {0, 106, false, false}, {0, 27, true, true}, + {0, 82, false, false}, {0, 27, false, false}, {0, 21, true, true}, {0, 98, false, false}, + {0, 10, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 87, false, false}, {1108, 90, true, false}, + {369, 24, false, false}, {369, 16, false, false}, {1244, 21, true, true}, {1244, 32, false, false}, + {1244, 38, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, + {1244, 169, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, + {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 241, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 38, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, + {1244, 43, false, true}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 87, false, false}, {1244, 93, true, false}, + {1244, 13, false, false}, {1244, 24, false, false}, {1396, 21, true, true}, {1396, 71, false, false}, + {1396, 38, false, false}, {1396, 21, false, true}, {1396, 21, false, false}, {1396, 87, false, false}, + {1396, 21, true, true}, {1396, 21, false, false}, {1396, 219, false, false}, {1396, 21, true, true}, + {1396, 21, false, false}, {1396, 49, false, false}, {1396, 38, false, false}, {1396, 21, true, true}, + {1396, 71, false, false}, {1396, 30, false, false}, {1661, 27, true, true}, {1661, 24, false, false}, + {1661, 49, false, false}, {1661, 38, false, false}, {1479, 43, true, true}, {1479, 49, false, false}, + {1479, 38, false, false}, {1396, 21, true, true}, {1396, 71, false, false}, {1396, 38, false, false}, + {1396, 19, false, false}, {1108, 65, false, false}, {1108, 46, false, false}, {1108, 10, true, true}, + {1108, 10, false, false}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, + {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {1108, 87, false, false}, {1108, 93, true, false}, {1108, 21, false, false}, + {1108, 16, false, false}, {1244, 21, true, true}, {1244, 10, false, false}, {1244, 60, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, {1244, 169, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, {1244, 38, false, false}, + {1244, 21, false, true}, {1244, 84, false, false}, {415, 24, false, false}, {830, 21, true, true}, + {830, 241, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, + {830, 43, false, true}, {830, 87, false, false}, {830, 21, true, true}, {830, 71, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, {830, 16, false, false}, + {830, 21, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 87, false, false}, + {830, 93, true, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, + {830, 38, false, false}, {830, 43, false, true}, {830, 87, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {830, 13, false, false}, {830, 27, false, false}, {349, 46, false, false}, + {1108, 63, false, false}, {415, 19, false, false}, {349, 49, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 49, false, false}, {349, 38, false, false}, {1108, 21, false, true}, + {1108, 16, false, false}, {1108, 16, false, false}, {349, 76, false, false}, {1108, 21, true, true}, + {1108, 41, false, false}, {349, 30, false, false}, {349, 38, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {1108, 19, false, false}, {349, 30, false, false}, {349, 38, false, false}, + {1108, 21, false, true}, {1108, 41, false, false}, {277, 21, false, false}, {277, 13, false, false}, + {0, 32, false, false}, {1108, 21, true, true}, {1108, 16, false, false}, {1108, 32, false, false}, + {0, 21, false, false}, {0, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {1108, 87, false, false}, + {1108, 90, true, false}, {369, 24, false, false}, {369, 16, false, false}, {1244, 21, true, true}, + {1244, 32, false, false}, {1244, 38, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 49, false, false}, {1244, 169, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 241, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 49, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 49, false, false}, {830, 38, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 43, false, true}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 71, false, false}, {1244, 38, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 93, true, false}, {1244, 13, false, false}, {1244, 24, false, false}, {1396, 21, true, true}, + {1396, 71, false, false}, {1396, 38, false, false}, {1396, 21, false, true}, {1396, 21, false, false}, + {1396, 87, false, false}, {1396, 21, true, true}, {1396, 21, false, false}, {1396, 219, false, false}, + {1396, 21, true, true}, {1396, 21, false, false}, {1396, 49, false, false}, {1396, 38, false, false}, + {1396, 21, true, true}, {1396, 71, false, false}, {1396, 30, false, false}, {1661, 27, true, true}, + {1661, 24, false, false}, {1661, 49, false, false}, {1661, 38, false, false}, {1479, 43, true, true}, + {1479, 49, false, false}, {1479, 38, false, false}, {1396, 21, true, true}, {1396, 71, false, false}, + {1396, 38, false, false}, {1396, 19, false, false}, {1108, 65, false, false}, {1108, 46, false, false}, + {1108, 10, true, true}, {1108, 10, false, false}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 87, false, false}, {1108, 27, true, false}, + {1108, 16, false, false}, {1108, 49, false, false}, {1108, 21, false, false}, {1108, 16, false, false}, + {1244, 21, true, true}, {1244, 10, false, false}, {1244, 60, false, false}, {1244, 38, false, false}, + {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 21, false, false}, {1244, 49, false, false}, {1244, 169, false, false}, {1244, 21, true, true}, + {1244, 21, false, false}, {1244, 49, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 84, false, false}, {415, 24, false, false}, {830, 21, true, true}, {830, 241, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, + {830, 87, false, false}, {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 16, false, false}, {830, 21, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 87, false, false}, {830, 93, true, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, + {830, 43, false, true}, {830, 87, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, + {830, 13, false, false}, {830, 27, false, false}, {349, 46, false, false}, {1108, 63, false, false}, + {415, 19, false, false}, {349, 49, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 49, false, false}, {349, 38, false, false}, {1108, 21, false, true}, {1108, 16, false, false}, + {1108, 16, false, false}, {349, 76, false, false}, {1108, 21, true, true}, {1108, 41, false, false}, + {349, 30, false, false}, {349, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, + {1108, 19, false, false}, {349, 30, false, false}, {349, 38, false, false}, {1108, 21, false, true}, + {1108, 41, false, false}, {277, 21, false, false}, {277, 13, false, false}, {0, 32, false, false}, + {1108, 21, true, true}, {1108, 16, false, false}, {1108, 32, false, false}, {0, 21, false, false}, + {0, 38, false, false}, {349, 21, true, true}, {349, 52, false, false}, {349, 57, false, false}, + {349, 43, false, true}, {349, 87, false, false}, {349, 21, true, true}, {349, 46, false, false}, + {349, 63, false, false}, {349, 21, true, true}, {349, 74, false, false}, {349, 35, false, false}, + {349, 21, true, true}, {349, 21, false, false}, {349, 87, false, false}, {349, 87, true, false}, + {349, 27, false, false}, {349, 16, false, false}, {349, 21, true, true}, {349, 38, false, false}, + {349, 32, false, false}, {349, 38, false, false}, {349, 21, false, true}, {349, 21, false, false}, + {349, 87, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 95, false, false}, + {349, 82, false, false}, {349, 41, false, false}, {349, 21, true, true}, {349, 74, false, false}, + {349, 35, false, false}, {349, 10, false, true}, {349, 10, false, false}, {349, 21, false, false}, + {349, 87, false, false}, {349, 21, true, true}, {349, 84, false, false}, {349, 156, false, false}, + {349, 21, true, true}, {349, 21, false, false}, {349, 52, false, false}, {349, 35, false, false}, + {349, 21, true, true}, {349, 21, false, false}, {349, 24, false, false}, {349, 63, false, false}, + {311, 21, true, true}, {311, 41, false, false}, {311, 68, false, false}, {311, 43, false, true}, + {311, 21, false, false}, {311, 65, false, false}, {311, 21, true, true}, {311, 43, false, false}, + {311, 65, false, false}, {311, 21, true, true}, {311, 63, false, false}, {311, 46, false, false}, + {311, 21, true, true}, {311, 21, false, false}, {311, 87, false, false}, {311, 82, true, false}, + {311, 49, false, false}, {311, 21, true, true}, {311, 54, false, false}, {311, 54, false, false}, + {311, 21, false, true}, {311, 21, false, false}, {311, 52, false, false}, {311, 35, false, false}, + {311, 21, true, true}, {311, 21, false, false}, {311, 219, false, false}, {311, 21, true, true}, + {311, 21, false, false}, {311, 46, false, false}, {311, 41, false, false}, {311, 21, false, true}, + {311, 109, false, false}, {311, 21, true, true}, {311, 21, false, false}, {311, 87, false, false}, + {311, 43, false, true}, {311, 87, false, false}, {311, 21, true, true}, {311, 35, false, false}, + {311, 74, false, false}, {311, 76, true, false}, {311, 54, false, false}, {349, 21, true, true}, + {349, 82, false, false}, {349, 27, false, false}, {349, 43, false, true}, {349, 87, false, false}, + {349, 21, true, true}, {349, 52, false, false}, {349, 57, false, false}, {349, 21, true, true}, + {349, 46, false, false}, {349, 19, false, false}, {349, 43, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 87, false, false}, {349, 84, true, false}, {349, 46, false, false}, + {349, 21, true, true}, {349, 54, false, false}, {349, 54, false, false}, {349, 21, false, true}, + {349, 21, false, false}, {349, 30, false, false}, {349, 57, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 87, false, false}, {349, 74, false, false}, {349, 57, false, false}, + {349, 21, true, true}, {349, 21, false, false}, {349, 49, false, false}, {349, 38, false, false}, + {349, 21, false, true}, {349, 109, false, false}, {349, 21, true, true}, {349, 241, false, false}, + {415, 21, true, true}, {415, 21, false, false}, {415, 13, false, false}, {415, 57, false, false}, + {415, 16, false, false}, {415, 21, true, true}, {415, 21, false, false}, {415, 13, false, false}, + {415, 13, false, false}, {349, 60, false, false}, {830, 21, true, true}, {830, 109, false, false}, + {415, 10, false, true}, {349, 32, false, false}, {349, 87, false, false}, {349, 19, true, true}, + {349, 57, false, false}, {349, 54, false, false}, {349, 21, true, true}, {349, 106, false, false}, + {830, 24, true, true}, {830, 21, false, false}, {830, 87, false, false}, {830, 46, true, false}, + {830, 57, false, false}, {349, 27, false, false}, {622, 21, true, true}, {622, 60, false, false}, + {622, 49, false, false}, {622, 43, false, true}, {622, 87, false, false}, {622, 21, true, true}, + {622, 21, false, false}, {622, 189, false, false}, {311, 13, false, false}, {261, 16, false, false}, + {698, 21, true, true}, {698, 21, false, false}, {698, 10, false, false}, {698, 76, false, false}, + {698, 21, true, true}, {698, 76, false, false}, {698, 19, false, false}, {698, 13, false, false}, + {698, 13, true, true}, {622, 117, false, false}, {622, 21, true, true}, {622, 21, false, false}, + {622, 24, false, false}, {622, 43, false, false}, {622, 19, false, false}, {622, 13, true, true}, + {554, 30, false, false}, {554, 60, false, false}, {277, 10, false, false}, {261, 16, false, false}, + {261, 21, true, true}, {261, 21, false, false}, {261, 16, false, false}, {261, 71, false, false}, + {349, 21, true, true}, {349, 52, false, false}, {349, 57, false, false}, {349, 43, false, true}, + {349, 87, false, false}, {349, 21, true, true}, {349, 46, false, false}, {349, 19, false, false}, + {349, 43, false, false}, {349, 21, true, true}, {349, 74, false, false}, {349, 35, false, false}, + {349, 21, true, true}, {349, 21, false, false}, {349, 87, false, false}, {349, 71, true, false}, + {349, 43, false, false}, {349, 16, false, false}, {349, 21, true, true}, {349, 35, false, false}, + {349, 35, false, false}, {349, 38, false, false}, {349, 21, false, true}, {349, 21, false, false}, + {349, 87, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 95, false, false}, + {349, 93, false, false}, {349, 30, false, false}, {349, 21, true, true}, {349, 68, false, false}, + {349, 41, false, false}, {349, 21, false, true}, {349, 21, false, false}, {349, 87, false, false}, + {349, 21, true, true}, {349, 202, false, false}, {349, 38, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 30, false, false}, {349, 21, false, false}, {349, 35, false, false}, + {349, 21, true, true}, {349, 21, false, false}, {349, 24, false, false}, {349, 63, false, false}, + {311, 21, true, true}, {311, 109, false, false}, {311, 43, false, true}, {311, 87, false, false}, + {311, 21, true, true}, {311, 43, false, false}, {311, 65, false, false}, {311, 21, true, true}, + {311, 63, false, false}, {311, 46, false, false}, {311, 21, true, true}, {311, 21, false, false}, + {311, 87, false, false}, {311, 60, true, false}, {311, 21, false, false}, {311, 49, false, false}, + {311, 21, true, true}, {311, 46, false, false}, {311, 63, false, false}, {311, 21, false, true}, + {311, 21, false, false}, {311, 13, false, false}, {311, 74, false, false}, {311, 21, true, true}, + {311, 21, false, false}, {311, 219, false, false}, {311, 21, true, true}, {311, 21, false, false}, + {311, 46, false, false}, {311, 41, false, false}, {311, 21, false, true}, {311, 109, false, false}, + {311, 21, true, true}, {311, 21, false, false}, {311, 87, false, false}, {311, 43, false, true}, + {311, 87, false, false}, {311, 21, true, true}, {311, 35, false, false}, {311, 74, false, false}, + {311, 76, true, false}, {311, 54, false, false}, {830, 21, true, true}, {830, 82, false, false}, + {830, 27, false, false}, {830, 43, false, true}, {830, 87, false, false}, {830, 21, true, true}, + {830, 52, false, false}, {830, 57, false, false}, {830, 21, true, true}, {830, 27, false, false}, + {830, 38, false, false}, {830, 43, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 87, false, false}, {830, 74, true, false}, {830, 16, false, false}, {830, 41, false, false}, + {830, 21, true, true}, {830, 54, false, false}, {830, 49, false, false}, {830, 27, false, true}, + {830, 21, false, false}, {830, 87, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 87, false, false}, {830, 84, false, false}, {830, 46, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, {830, 21, false, true}, + {830, 109, false, false}, {830, 21, true, true}, {830, 241, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 13, false, false}, {830, 32, false, false}, {830, 41, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 13, false, false}, {830, 74, false, false}, + {349, 21, true, true}, {349, 109, false, false}, {349, 43, false, true}, {349, 35, false, false}, + {349, 52, false, false}, {698, 21, true, true}, {698, 54, false, false}, {698, 54, false, false}, + {698, 21, true, true}, {698, 13, false, false}, {349, 21, false, false}, {277, 71, false, false}, + {311, 24, true, true}, {311, 21, false, false}, {311, 87, false, false}, {311, 46, true, false}, + {311, 16, false, false}, {277, 68, false, false}, {622, 21, true, true}, {622, 60, false, false}, + {622, 49, false, false}, {622, 38, false, true}, {349, 19, false, false}, {261, 74, false, false}, + {311, 21, true, true}, {311, 21, false, false}, {311, 219, false, false}, {554, 21, true, true}, + {554, 21, false, false}, {554, 10, false, false}, {554, 76, false, false}, {554, 21, true, true}, + {554, 19, false, false}, {554, 16, false, false}, {311, 41, false, false}, {311, 32, false, false}, + {311, 21, true, true}, {261, 109, false, false}, {261, 21, true, true}, {261, 21, false, false}, + {261, 24, false, false}, {261, 63, false, false}, {466, 21, true, true}, {466, 21, false, false}, + {466, 87, false, false}, {466, 21, true, true}, {466, 21, false, false}, {466, 16, false, false}, + {466, 71, false, false}, {554, 21, true, true}, {554, 52, false, false}, {554, 57, false, false}, + {554, 43, false, true}, {554, 87, false, false}, {554, 21, true, true}, {554, 46, false, false}, + {554, 63, false, false}, {554, 21, true, true}, {554, 74, false, false}, {554, 35, false, false}, + {554, 21, true, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 115, true, false}, + {554, 16, false, false}, {554, 21, true, true}, {554, 71, false, false}, {554, 38, false, false}, + {554, 21, false, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 21, true, true}, + {554, 21, false, false}, {554, 32, false, false}, {554, 63, false, false}, {554, 123, false, false}, + {554, 21, true, true}, {554, 74, false, false}, {554, 35, false, false}, {554, 21, false, true}, + {554, 21, false, false}, {554, 87, false, false}, {554, 21, true, true}, {554, 24, false, false}, + {349, 16, false, false}, {349, 145, false, false}, {0, 54, false, false}, {622, 21, false, true}, + {622, 21, false, false}, {622, 87, false, false}, {622, 21, true, true}, {622, 21, false, false}, + {622, 24, false, false}, {622, 63, false, false}, {622, 21, true, true}, {622, 57, false, false}, + {622, 52, false, false}, {622, 38, false, true}, {622, 93, false, false}, {622, 21, true, true}, + {622, 43, false, false}, {622, 21, false, false}, {622, 43, false, false}, {622, 21, true, true}, + {622, 63, false, false}, {622, 46, false, false}, {622, 21, true, true}, {622, 21, false, false}, + {622, 87, false, false}, {622, 71, true, false}, {622, 10, false, false}, {622, 49, false, false}, + {622, 21, true, true}, {622, 54, false, false}, {622, 54, false, false}, {622, 21, false, true}, + {622, 21, false, false}, {622, 87, false, false}, {622, 21, true, true}, {622, 21, false, false}, + {622, 52, false, false}, {622, 120, false, false}, {622, 46, false, false}, {622, 21, true, true}, + {622, 21, false, false}, {622, 46, false, false}, {622, 41, false, false}, {622, 21, false, true}, + {622, 19, false, false}, {622, 90, false, false}, {622, 21, true, true}, {622, 21, false, false}, + {622, 24, false, false}, {622, 38, false, false}, {261, 24, false, false}, {261, 43, false, true}, + {261, 87, false, false}, {698, 21, true, true}, {698, 35, false, false}, {698, 74, false, false}, + {698, 21, true, false}, {698, 54, false, false}, {698, 54, false, false}, {698, 21, true, true}, + {698, 82, false, false}, {698, 27, false, false}, {698, 43, false, true}, {698, 87, false, false}, + {698, 21, true, true}, {698, 52, false, false}, {698, 57, false, false}, {698, 21, true, true}, + {698, 65, false, false}, {698, 43, false, false}, {698, 21, true, true}, {698, 21, false, false}, + {698, 87, false, false}, {698, 90, true, false}, {698, 41, false, false}, {698, 21, true, true}, + {698, 54, false, false}, {698, 30, false, false}, {698, 24, false, false}, {698, 21, false, true}, + {698, 21, false, false}, {698, 87, false, false}, {698, 21, true, true}, {698, 21, false, false}, + {698, 87, false, false}, {698, 74, false, false}, {698, 57, false, false}, {698, 21, true, true}, + {698, 21, false, false}, {698, 49, false, false}, {698, 27, false, false}, {698, 10, false, false}, + {698, 21, false, true}, {698, 109, false, false}, {698, 21, true, true}, {698, 200, false, false}, + {698, 16, false, false}, {698, 24, false, false}, {698, 16, false, true}, {554, 10, false, false}, + {554, 10, false, false}, {369, 38, false, false}, {0, 32, false, false}, {0, 21, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 13, false, false}, {0, 74, false, false}, + {554, 21, true, true}, {554, 38, false, false}, {554, 16, false, false}, {554, 13, false, false}, + {349, 41, false, false}, {349, 43, false, true}, {349, 87, false, false}, {349, 21, true, true}, + {349, 57, false, false}, {349, 52, false, false}, {554, 21, true, true}, {554, 43, false, false}, + {554, 10, false, false}, {554, 16, false, false}, {349, 38, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 87, false, false}, {349, 21, true, false}, {349, 16, false, false}, + {277, 68, false, false}, {277, 24, false, false}, {622, 21, true, true}, {622, 68, false, false}, + {622, 41, false, false}, {622, 43, false, true}, {622, 87, false, false}, {622, 21, true, true}, + {622, 21, false, false}, {622, 65, false, false}, {622, 153, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 10, false, false}, {622, 46, false, false}, {622, 30, false, false}, + {830, 10, true, true}, {830, 10, false, false}, {830, 32, false, false}, {261, 76, false, false}, + {830, 21, true, true}, {830, 30, false, false}, {261, 24, false, false}, {261, 54, false, false}, + {932, 10, true, true}, {932, 10, false, false}, {932, 21, false, false}, {932, 10, false, false}, + {932, 21, false, false}, {261, 10, false, false}, {261, 43, false, false}, {1108, 21, true, true}, + {1108, 43, false, false}, {277, 13, false, false}, {261, 32, false, false}, {261, 19, false, false}, + {932, 21, true, true}, {932, 21, false, false}, {932, 21, false, false}, {466, 21, false, false}, + {261, 43, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 87, false, false}, {1108, 13, true, false}, + {1108, 76, false, false}, {369, 24, false, false}, {369, 16, false, false}, {1244, 21, true, true}, + {1244, 32, false, false}, {1244, 38, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 49, false, false}, {1244, 82, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 71, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 52, false, false}, {1244, 57, false, false}, + {1244, 52, false, true}, {1244, 79, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 38, false, false}, {830, 10, false, false}, {830, 38, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, {1244, 21, true, true}, + {1244, 71, false, false}, {1244, 38, false, false}, {1244, 43, false, true}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 27, false, false}, {1244, 43, false, false}, {1244, 38, false, false}, + {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, {1244, 21, true, true}, + {1244, 21, false, false}, {1244, 87, false, false}, {1244, 16, true, false}, {1244, 76, false, false}, + {1244, 13, false, false}, {1244, 24, false, false}, {1396, 21, true, true}, {1396, 71, false, false}, + {1396, 38, false, false}, {1396, 21, false, true}, {1396, 21, false, false}, {1396, 87, false, false}, + {1396, 21, true, true}, {1396, 13, false, false}, {1396, 95, false, false}, {1396, 76, false, false}, + {1396, 54, false, false}, {1396, 21, true, true}, {1396, 21, false, false}, {1396, 49, false, false}, + {1396, 38, false, false}, {1396, 21, true, true}, {1396, 63, false, false}, {1396, 38, false, false}, + {1661, 27, true, true}, {1661, 24, false, false}, {1661, 21, false, false}, {1661, 27, false, false}, + {1661, 38, false, false}, {1479, 43, true, true}, {1479, 10, false, false}, {1479, 38, false, false}, + {1479, 38, false, false}, {1396, 21, true, true}, {1396, 54, false, false}, {1396, 16, false, false}, + {1396, 38, false, false}, {1396, 19, false, true}, {1108, 30, false, false}, {1108, 35, false, false}, + {1108, 46, false, false}, {1108, 10, true, true}, {1108, 10, false, false}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {1108, 68, false, false}, + {1108, 19, false, false}, {1108, 93, true, false}, {1108, 21, false, false}, {1108, 16, false, false}, + {1244, 21, true, true}, {1244, 10, false, false}, {1244, 60, false, false}, {1244, 38, false, false}, + {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 21, false, false}, {1244, 27, false, false}, {1244, 21, false, false}, {1244, 38, false, false}, + {1244, 60, false, true}, {1244, 71, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 49, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 84, false, false}, + {415, 24, false, false}, {830, 21, true, true}, {830, 128, false, false}, {830, 112, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 27, false, false}, + {830, 10, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, + {830, 43, false, true}, {830, 60, false, false}, {830, 27, false, false}, {830, 21, true, true}, + {830, 71, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 41, false, false}, + {830, 30, false, false}, {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 87, false, false}, {830, 93, true, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, + {830, 43, false, false}, {830, 43, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 13, false, false}, {830, 27, false, false}, {349, 46, false, false}, {830, 71, false, false}, + {415, 10, false, false}, {349, 49, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 49, false, false}, {349, 38, false, false}, {830, 21, false, true}, {830, 16, false, false}, + {415, 24, false, false}, {349, 68, false, false}, {830, 21, true, true}, {830, 41, false, false}, + {349, 30, false, false}, {349, 38, false, false}, {932, 21, true, true}, {932, 21, false, false}, + {932, 13, false, false}, {466, 13, false, false}, {349, 21, false, false}, {349, 38, false, false}, + {1108, 21, false, true}, {1108, 41, false, false}, {277, 19, false, false}, {0, 16, false, false}, + {0, 32, false, false}, {1108, 21, true, true}, {1108, 16, false, false}, {1108, 13, false, false}, + {1108, 19, false, false}, {0, 21, false, false}, {0, 38, false, false}, {1108, 21, true, true}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {1108, 49, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {1108, 87, false, false}, {1108, 46, true, false}, {1108, 43, false, false}, + {369, 24, false, false}, {369, 16, false, false}, {1244, 21, true, true}, {1244, 32, false, false}, + {1244, 38, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, + {1244, 134, false, false}, {1244, 35, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 46, false, false}, {1244, 63, false, false}, {1244, 49, false, true}, + {1244, 82, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 41, false, false}, + {830, 46, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 38, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, + {1244, 43, false, true}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 21, true, true}, {1244, 38, false, false}, {1244, 32, false, false}, + {1244, 38, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 43, false, false}, + {1244, 43, false, false}, {1244, 93, true, false}, {1244, 13, false, false}, {1244, 24, false, false}, + {1396, 21, true, true}, {1396, 71, false, false}, {1396, 38, false, false}, {1396, 21, false, true}, + {1396, 21, false, false}, {1396, 87, false, false}, {1396, 21, true, true}, {1396, 21, false, false}, + {1396, 68, false, false}, {1396, 19, false, false}, {1396, 65, false, false}, {1396, 65, false, false}, + {1396, 21, true, true}, {1396, 21, false, false}, {1396, 49, false, false}, {1396, 38, false, false}, + {1396, 21, true, true}, {1396, 60, false, false}, {1396, 10, false, false}, {1396, 30, false, false}, + {1661, 27, true, true}, {1661, 24, false, false}, {1661, 21, false, false}, {1661, 27, false, false}, + {1661, 38, false, false}, {1479, 41, true, true}, {1479, 52, false, false}, {1479, 38, false, false}, + {1396, 21, true, true}, {1396, 71, false, false}, {1396, 38, false, false}, {1396, 19, false, true}, + {1108, 21, false, false}, {1108, 43, false, false}, {1108, 46, false, false}, {1108, 10, true, true}, + {1108, 10, false, false}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, + {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 35, false, false}, {1108, 35, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 49, false, false}, {1108, 38, false, false}, + {1108, 27, true, false}, {1108, 16, false, false}, {1108, 49, false, false}, {1108, 21, false, false}, + {1108, 16, false, false}, {1244, 21, true, true}, {1244, 10, false, false}, {1244, 60, false, false}, + {1244, 19, false, false}, {1244, 19, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, + {1244, 38, false, false}, {1244, 57, false, true}, {1244, 74, false, false}, {1244, 21, true, true}, + {1244, 21, false, false}, {1244, 49, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 84, false, false}, {415, 24, false, false}, {830, 21, true, true}, {830, 139, false, false}, + {830, 101, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 49, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, + {830, 38, false, false}, {830, 43, false, true}, {830, 87, false, false}, {830, 21, true, true}, + {830, 71, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 30, false, false}, + {830, 41, false, false}, {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 87, false, false}, {830, 93, true, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, + {830, 87, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {830, 13, false, false}, + {830, 27, false, false}, {349, 46, false, false}, {1108, 63, false, false}, {415, 19, false, false}, + {349, 49, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 49, false, false}, + {349, 38, false, false}, {1108, 21, false, true}, {1108, 16, false, false}, {1108, 16, false, false}, + {349, 76, false, false}, {1108, 21, true, true}, {1108, 41, false, false}, {349, 30, false, false}, + {349, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {1108, 19, false, false}, + {349, 30, false, false}, {349, 38, false, false}, {1108, 21, false, true}, {1108, 41, false, false}, + {0, 21, false, false}, {0, 13, false, false}, {0, 32, false, false}, {1108, 21, true, true}, + {1108, 16, false, false}, {1108, 32, false, false}, {0, 21, false, false}, {0, 38, false, false}, + {349, 21, true, true}, {349, 52, false, false}, {349, 57, false, false}, {349, 43, false, true}, + {349, 87, false, false}, {349, 21, true, true}, {349, 46, false, false}, {349, 63, false, false}, + {349, 21, true, true}, {349, 74, false, false}, {349, 35, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 87, false, false}, {349, 87, true, false}, {349, 27, false, false}, + {349, 16, false, false}, {349, 21, true, true}, {349, 38, false, false}, {349, 32, false, false}, + {349, 38, false, false}, {349, 21, false, true}, {349, 21, false, false}, {349, 87, false, false}, + {349, 21, true, true}, {349, 21, false, false}, {349, 95, false, false}, {349, 82, false, false}, + {349, 41, false, false}, {349, 21, true, true}, {349, 74, false, false}, {349, 35, false, false}, + {349, 10, false, true}, {349, 10, false, false}, {349, 21, false, false}, {349, 87, false, false}, + {349, 21, true, true}, {349, 84, false, false}, {349, 156, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 52, false, false}, {349, 35, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 24, false, false}, {349, 63, false, false}, {311, 21, true, true}, + {311, 41, false, false}, {311, 68, false, false}, {311, 43, false, true}, {311, 21, false, false}, + {311, 65, false, false}, {311, 21, true, true}, {311, 43, false, false}, {311, 65, false, false}, + {311, 21, true, true}, {311, 63, false, false}, {311, 46, false, false}, {311, 21, true, true}, + {311, 21, false, false}, {311, 87, false, false}, {311, 82, true, false}, {311, 49, false, false}, + {311, 21, true, true}, {311, 54, false, false}, {311, 54, false, false}, {311, 21, false, true}, + {311, 21, false, false}, {311, 52, false, false}, {311, 35, false, false}, {311, 21, true, true}, + {311, 21, false, false}, {311, 219, false, false}, {311, 21, true, true}, {311, 21, false, false}, + {311, 46, false, false}, {311, 41, false, false}, {311, 21, false, true}, {311, 109, false, false}, + {311, 21, true, true}, {311, 21, false, false}, {311, 87, false, false}, {311, 43, false, true}, + {311, 87, false, false}, {311, 21, true, true}, {311, 35, false, false}, {311, 74, false, false}, + {311, 76, true, false}, {311, 54, false, false}, {349, 21, true, true}, {349, 82, false, false}, + {349, 27, false, false}, {349, 43, false, true}, {349, 87, false, false}, {349, 21, true, true}, + {349, 52, false, false}, {349, 57, false, false}, {349, 21, true, true}, {349, 46, false, false}, + {349, 19, false, false}, {349, 43, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 87, false, false}, {349, 84, true, false}, {349, 46, false, false}, {349, 21, true, true}, + {349, 54, false, false}, {349, 54, false, false}, {349, 21, false, true}, {349, 21, false, false}, + {349, 30, false, false}, {349, 57, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 87, false, false}, {349, 74, false, false}, {349, 57, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 49, false, false}, {349, 38, false, false}, {349, 21, false, true}, + {349, 109, false, false}, {349, 21, true, true}, {349, 241, false, false}, {415, 21, true, true}, + {415, 21, false, false}, {415, 13, false, false}, {415, 57, false, false}, {415, 16, false, false}, + {415, 21, true, true}, {415, 21, false, false}, {415, 13, false, false}, {415, 13, false, false}, + {349, 60, false, false}, {830, 21, true, true}, {830, 109, false, false}, {415, 10, false, true}, + {349, 32, false, false}, {349, 87, false, false}, {349, 19, true, true}, {349, 57, false, false}, + {349, 54, false, false}, {349, 21, true, true}, {349, 106, false, false}, {830, 24, true, true}, + {830, 21, false, false}, {830, 87, false, false}, {830, 46, true, false}, {830, 57, false, false}, + {349, 27, false, false}, {622, 21, true, true}, {622, 60, false, false}, {622, 49, false, false}, + {622, 43, false, true}, {622, 87, false, false}, {622, 21, true, true}, {622, 21, false, false}, + {622, 189, false, false}, {311, 13, false, false}, {261, 16, false, false}, {698, 21, true, true}, + {698, 21, false, false}, {698, 10, false, false}, {698, 76, false, false}, {698, 21, true, true}, + {698, 76, false, false}, {698, 19, false, false}, {698, 13, false, false}, {698, 13, true, true}, + {622, 117, false, false}, {622, 21, true, true}, {622, 21, false, false}, {622, 24, false, false}, + {622, 43, false, false}, {622, 19, false, false}, {622, 13, true, true}, {554, 30, false, false}, + {554, 60, false, false}, {277, 10, false, false}, {261, 16, false, false}, {261, 21, true, true}, + {261, 21, false, false}, {261, 16, false, false}, {261, 71, false, false}, {349, 21, true, true}, + {349, 52, false, false}, {349, 57, false, false}, {349, 43, false, true}, {349, 87, false, false}, + {349, 21, true, true}, {349, 46, false, false}, {349, 19, false, false}, {349, 43, false, false}, + {349, 21, true, true}, {349, 74, false, false}, {349, 35, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 87, false, false}, {349, 71, true, false}, {349, 43, false, false}, + {349, 16, false, false}, {349, 21, true, true}, {349, 35, false, false}, {349, 35, false, false}, + {349, 38, false, false}, {349, 21, false, true}, {349, 21, false, false}, {349, 87, false, false}, + {349, 21, true, true}, {349, 21, false, false}, {349, 95, false, false}, {349, 93, false, false}, + {349, 30, false, false}, {349, 21, true, true}, {349, 68, false, false}, {349, 41, false, false}, + {349, 21, false, true}, {349, 21, false, false}, {349, 87, false, false}, {349, 21, true, true}, + {349, 202, false, false}, {349, 38, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 30, false, false}, {349, 21, false, false}, {349, 35, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 24, false, false}, {349, 63, false, false}, {311, 21, true, true}, + {311, 109, false, false}, {311, 43, false, true}, {311, 87, false, false}, {311, 21, true, true}, + {311, 43, false, false}, {311, 65, false, false}, {311, 21, true, true}, {311, 63, false, false}, + {311, 46, false, false}, {311, 21, true, true}, {311, 21, false, false}, {311, 87, false, false}, + {311, 60, true, false}, {311, 21, false, false}, {311, 49, false, false}, {311, 21, true, true}, + {311, 46, false, false}, {311, 63, false, false}, {311, 21, false, true}, {311, 21, false, false}, + {311, 13, false, false}, {311, 74, false, false}, {311, 21, true, true}, {311, 21, false, false}, + {311, 219, false, false}, {311, 21, true, true}, {311, 21, false, false}, {311, 46, false, false}, + {311, 41, false, false}, {311, 21, false, true}, {311, 109, false, false}, {311, 21, true, true}, + {311, 21, false, false}, {311, 87, false, false}, {311, 43, false, true}, {311, 87, false, false}, + {311, 21, true, true}, {311, 35, false, false}, {311, 74, false, false}, {311, 76, true, false}, + {311, 54, false, false}, {349, 21, true, true}, {349, 82, false, false}, {349, 27, false, false}, + {349, 43, false, true}, {349, 87, false, false}, {349, 21, true, true}, {349, 52, false, false}, + {349, 57, false, false}, {349, 21, true, true}, {349, 27, false, false}, {349, 38, false, false}, + {349, 43, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 87, false, false}, + {349, 74, true, false}, {349, 16, false, false}, {349, 41, false, false}, {349, 21, true, true}, + {349, 54, false, false}, {349, 49, false, false}, {349, 27, false, true}, {349, 21, false, false}, + {349, 87, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 87, false, false}, + {349, 84, false, false}, {349, 46, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 49, false, false}, {349, 38, false, false}, {349, 21, false, true}, {349, 109, false, false}, + {349, 21, true, true}, {349, 241, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 13, false, false}, {349, 32, false, false}, {349, 41, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 13, false, false}, {349, 74, false, false}, {622, 21, true, true}, + {622, 109, false, false}, {622, 43, false, true}, {622, 35, false, false}, {622, 41, false, false}, + {349, 10, false, false}, {622, 10, true, true}, {622, 10, false, false}, {622, 54, false, false}, + {622, 54, false, false}, {622, 21, true, true}, {622, 35, false, false}, {622, 63, false, false}, + {349, 10, false, false}, {622, 21, true, true}, {622, 21, false, false}, {622, 87, false, false}, + {622, 46, true, false}, {622, 16, false, false}, {622, 57, false, false}, {349, 10, false, false}, + {698, 21, true, true}, {698, 60, false, false}, {698, 49, false, false}, {698, 43, false, true}, + {698, 13, false, false}, {698, 74, false, false}, {622, 21, true, true}, {622, 21, false, false}, + {622, 219, false, false}, {622, 21, true, true}, {622, 21, false, false}, {622, 10, false, false}, + {622, 76, false, false}, {622, 21, true, true}, {622, 76, false, false}, {622, 32, false, false}, + {622, 21, true, true}, {622, 109, false, false}, {622, 21, true, true}, {622, 21, false, false}, + {622, 24, false, false}, {622, 63, false, false}, {622, 21, true, true}, {622, 21, false, false}, + {622, 87, false, false}, {622, 21, true, true}, {622, 21, false, false}, {622, 16, false, false}, + {622, 49, false, false}, {261, 21, false, false}, {554, 21, true, true}, {554, 52, false, false}, + {554, 57, false, false}, {554, 43, false, true}, {554, 87, false, false}, {554, 21, true, true}, + {554, 46, false, false}, {554, 63, false, false}, {554, 21, true, true}, {554, 74, false, false}, + {554, 35, false, false}, {554, 21, true, true}, {554, 21, false, false}, {554, 87, false, false}, + {554, 115, true, false}, {554, 16, false, false}, {554, 21, true, true}, {554, 71, false, false}, + {554, 38, false, false}, {554, 21, false, true}, {554, 21, false, false}, {554, 87, false, false}, + {554, 21, true, true}, {554, 21, false, false}, {554, 32, false, false}, {554, 63, false, false}, + {554, 123, false, false}, {554, 21, true, true}, {554, 74, false, false}, {554, 35, false, false}, + {554, 21, false, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 21, true, true}, + {554, 24, false, false}, {349, 16, false, false}, {349, 145, false, false}, {0, 54, false, false}, + {622, 21, false, true}, {622, 21, false, false}, {622, 87, false, false}, {622, 21, true, true}, + {622, 21, false, false}, {622, 24, false, false}, {622, 63, false, false}, {622, 21, true, true}, + {622, 57, false, false}, {622, 52, false, false}, {622, 38, false, true}, {622, 93, false, false}, + {622, 21, true, true}, {622, 43, false, false}, {622, 21, false, false}, {622, 43, false, false}, + {622, 21, true, true}, {622, 63, false, false}, {622, 46, false, false}, {622, 21, true, true}, + {622, 21, false, false}, {622, 87, false, false}, {622, 71, true, false}, {622, 10, false, false}, + {622, 49, false, false}, {622, 21, true, true}, {622, 54, false, false}, {622, 54, false, false}, + {622, 21, false, true}, {622, 21, false, false}, {622, 87, false, false}, {622, 21, true, true}, + {622, 21, false, false}, {622, 52, false, false}, {622, 120, false, false}, {622, 46, false, false}, + {622, 21, true, true}, {622, 21, false, false}, {622, 46, false, false}, {622, 41, false, false}, + {622, 21, false, true}, {622, 19, false, false}, {622, 90, false, false}, {622, 21, true, true}, + {622, 21, false, false}, {622, 24, false, false}, {622, 38, false, false}, {261, 24, false, false}, + {261, 43, false, true}, {261, 87, false, false}, {698, 21, true, true}, {698, 35, false, false}, + {698, 74, false, false}, {698, 21, true, false}, {698, 54, false, false}, {698, 54, false, false}, + {698, 21, true, true}, {698, 82, false, false}, {698, 27, false, false}, {698, 43, false, true}, + {698, 87, false, false}, {698, 21, true, true}, {698, 52, false, false}, {698, 57, false, false}, + {698, 21, true, true}, {698, 65, false, false}, {698, 43, false, false}, {698, 21, true, true}, + {698, 21, false, false}, {698, 87, false, false}, {698, 90, true, false}, {698, 41, false, false}, + {698, 21, true, true}, {698, 54, false, false}, {698, 30, false, false}, {698, 24, false, false}, + {698, 21, false, true}, {698, 21, false, false}, {698, 87, false, false}, {698, 21, true, true}, + {698, 21, false, false}, {698, 87, false, false}, {698, 74, false, false}, {698, 57, false, false}, + {698, 21, true, true}, {698, 21, false, false}, {698, 49, false, false}, {698, 27, false, false}, + {698, 10, false, false}, {698, 21, false, true}, {698, 109, false, false}, {698, 21, true, true}, + {698, 200, false, false}, {698, 16, false, false}, {698, 24, false, false}, {698, 16, false, true}, + {554, 10, false, false}, {554, 10, false, false}, {369, 38, false, false}, {0, 32, false, false}, + {0, 21, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 13, false, false}, + {0, 74, false, false}, {554, 21, true, true}, {554, 38, false, false}, {554, 16, false, false}, + {554, 13, false, false}, {349, 41, false, false}, {349, 43, false, true}, {349, 87, false, false}, + {349, 21, true, true}, {349, 57, false, false}, {349, 52, false, false}, {554, 21, true, true}, + {554, 43, false, false}, {554, 10, false, false}, {554, 16, false, false}, {349, 38, false, false}, + {349, 21, true, true}, {349, 21, false, false}, {349, 87, false, false}, {349, 21, true, false}, + {349, 16, false, false}, {277, 68, false, false}, {277, 24, false, false}, {622, 21, true, true}, + {622, 68, false, false}, {622, 41, false, false}, {622, 43, false, true}, {622, 87, false, false}, + {622, 21, true, true}, {622, 21, false, false}, {622, 65, false, false}, {622, 153, false, false}, + {622, 21, true, true}, {622, 21, false, false}, {622, 57, false, false}, {622, 30, false, false}, + {622, 10, true, true}, {261, 10, false, false}, {261, 109, false, false}, {415, 21, true, true}, + {415, 30, false, false}, {261, 24, false, false}, {261, 54, false, false}, {466, 10, true, true}, + {466, 10, false, false}, {466, 21, false, false}, {466, 10, false, false}, {466, 21, false, false}, + {261, 10, false, false}, {261, 43, false, false}, {554, 21, true, true}, {554, 43, false, false}, + {261, 13, false, false}, {261, 32, false, false}, {261, 19, false, false}, {466, 21, true, true}, + {466, 21, false, false}, {466, 21, false, false}, {261, 21, false, false}, {261, 43, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, + {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {1108, 87, false, false}, {1108, 13, true, false}, {1108, 76, false, false}, + {369, 24, false, false}, {369, 16, false, false}, {1244, 21, true, true}, {1244, 32, false, false}, + {1244, 38, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, + {1244, 82, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 52, false, false}, {1244, 57, false, false}, {1244, 52, false, true}, + {1244, 79, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 38, false, false}, + {830, 10, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 49, false, false}, {830, 38, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 43, false, true}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 27, false, false}, {1244, 43, false, false}, {1244, 38, false, false}, {1244, 21, true, true}, + {1244, 71, false, false}, {1244, 38, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 16, true, false}, {1244, 76, false, false}, {1244, 13, false, false}, + {1244, 24, false, false}, {1396, 21, true, true}, {1396, 71, false, false}, {1396, 38, false, false}, + {1396, 21, false, true}, {1396, 21, false, false}, {1396, 87, false, false}, {1396, 21, true, true}, + {1396, 13, false, false}, {1396, 95, false, false}, {1396, 76, false, false}, {1396, 54, false, false}, + {1396, 21, true, true}, {1396, 21, false, false}, {1396, 49, false, false}, {1396, 38, false, false}, + {1396, 21, true, true}, {1396, 63, false, false}, {1396, 38, false, false}, {1661, 27, true, true}, + {1661, 24, false, false}, {1661, 21, false, false}, {1661, 27, false, false}, {1661, 38, false, false}, + {1479, 43, true, true}, {1479, 10, false, false}, {1479, 38, false, false}, {1479, 38, false, false}, + {1396, 21, true, true}, {1396, 54, false, false}, {1396, 16, false, false}, {1396, 38, false, false}, + {1396, 19, false, true}, {1108, 30, false, false}, {1108, 35, false, false}, {1108, 46, false, false}, + {1108, 10, true, true}, {1108, 10, false, false}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 68, false, false}, {1108, 19, false, false}, + {1108, 93, true, false}, {1108, 21, false, false}, {1108, 16, false, false}, {1244, 21, true, true}, + {1244, 10, false, false}, {1244, 60, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 27, false, false}, {1244, 21, false, false}, {1244, 38, false, false}, {1244, 60, false, true}, + {1244, 71, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 84, false, false}, {415, 24, false, false}, + {830, 21, true, true}, {830, 128, false, false}, {830, 112, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 49, false, false}, {830, 27, false, false}, {830, 10, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, + {830, 60, false, false}, {830, 27, false, false}, {830, 21, true, true}, {830, 71, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 41, false, false}, {830, 30, false, false}, + {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 87, false, false}, {830, 93, true, false}, {830, 38, false, false}, {830, 21, true, true}, + {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, {830, 43, false, false}, + {830, 43, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 13, false, false}, + {830, 27, false, false}, {349, 46, false, false}, {830, 71, false, false}, {415, 10, false, false}, + {349, 49, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 49, false, false}, + {349, 38, false, false}, {830, 21, false, true}, {830, 16, false, false}, {415, 24, false, false}, + {349, 68, false, false}, {830, 21, true, true}, {830, 41, false, false}, {349, 30, false, false}, + {349, 38, false, false}, {932, 21, true, true}, {932, 21, false, false}, {932, 13, false, false}, + {466, 13, false, false}, {349, 21, false, false}, {349, 38, false, false}, {1108, 21, false, true}, + {1108, 41, false, false}, {277, 19, false, false}, {0, 16, false, false}, {0, 32, false, false}, + {1108, 21, true, true}, {1108, 16, false, false}, {1108, 13, false, false}, {1108, 19, false, false}, + {0, 21, false, false}, {0, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, + {1108, 49, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, + {1108, 87, false, false}, {1108, 46, true, false}, {1108, 43, false, false}, {369, 24, false, false}, + {369, 16, false, false}, {1244, 21, true, true}, {1244, 32, false, false}, {1244, 38, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, {1244, 134, false, false}, + {1244, 35, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, + {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 46, false, false}, {1244, 63, false, false}, {1244, 49, false, true}, {1244, 82, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 41, false, false}, {830, 46, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, + {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, {1244, 43, false, true}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, + {1244, 21, true, true}, {1244, 38, false, false}, {1244, 32, false, false}, {1244, 38, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 43, false, false}, {1244, 43, false, false}, + {1244, 93, true, false}, {1244, 13, false, false}, {1244, 24, false, false}, {1396, 21, true, true}, + {1396, 71, false, false}, {1396, 38, false, false}, {1396, 21, false, true}, {1396, 21, false, false}, + {1396, 87, false, false}, {1396, 21, true, true}, {1396, 21, false, false}, {1396, 68, false, false}, + {1396, 19, false, false}, {1396, 65, false, false}, {1396, 65, false, false}, {1396, 21, true, true}, + {1396, 21, false, false}, {1396, 49, false, false}, {1396, 38, false, false}, {1396, 21, true, true}, + {1396, 60, false, false}, {1396, 10, false, false}, {1396, 30, false, false}, {1661, 27, true, true}, + {1661, 24, false, false}, {1661, 21, false, false}, {1661, 27, false, false}, {1661, 38, false, false}, + {1479, 41, true, true}, {1479, 52, false, false}, {1479, 38, false, false}, {1396, 21, true, true}, + {1396, 71, false, false}, {1396, 38, false, false}, {1396, 19, false, true}, {1108, 21, false, false}, + {1108, 43, false, false}, {1108, 46, false, false}, {1108, 10, true, true}, {1108, 10, false, false}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 35, false, false}, {1108, 35, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {1108, 49, false, false}, {1108, 38, false, false}, {1108, 27, true, false}, + {1108, 16, false, false}, {1108, 49, false, false}, {1108, 21, false, false}, {1108, 16, false, false}, + {1244, 21, true, true}, {1244, 10, false, false}, {1244, 60, false, false}, {1244, 19, false, false}, + {1244, 19, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, {1244, 38, false, false}, + {1244, 57, false, true}, {1244, 74, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 49, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 84, false, false}, + {415, 24, false, false}, {830, 21, true, true}, {830, 139, false, false}, {830, 101, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 16, false, false}, + {830, 21, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, + {830, 43, false, true}, {830, 82, false, false}, {830, 21, true, true}, {830, 76, false, false}, + {830, 35, false, false}, {830, 21, true, true}, {830, 32, false, false}, {830, 41, false, false}, + {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 87, false, false}, {830, 24, true, true}, {830, 68, false, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, + {830, 87, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {830, 13, false, false}, + {830, 27, false, false}, {349, 46, false, false}, {1108, 27, false, true}, {1108, 35, false, false}, + {415, 19, false, false}, {349, 49, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 49, false, false}, {349, 38, false, false}, {1108, 10, false, true}, {1108, 10, false, true}, + {1108, 10, false, false}, {1108, 21, false, false}, {349, 76, false, false}, {1108, 10, true, true}, + {1108, 10, false, true}, {1108, 10, false, false}, {1108, 27, false, false}, {349, 32, false, false}, + {349, 38, false, false}, {1108, 19, true, true}, {1108, 21, false, true}, {1108, 19, false, false}, + {415, 10, false, false}, {349, 21, false, false}, {349, 30, false, false}, {1108, 21, false, true}, + {1108, 49, false, false}, {277, 10, false, false}, {0, 10, false, false}, {0, 13, false, false}, + {0, 32, false, false}, {1108, 21, true, true}, {1108, 16, false, false}, {1108, 32, false, false}, + {0, 21, false, false}, {0, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {1108, 87, false, false}, + {1108, 13, true, false}, {1108, 76, false, false}, {369, 24, false, false}, {369, 16, false, false}, + {1244, 21, true, true}, {1244, 32, false, false}, {1244, 38, false, false}, {1244, 38, false, false}, + {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 21, false, false}, {1244, 49, false, false}, {1244, 82, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 52, false, false}, + {1244, 57, false, false}, {1244, 52, false, true}, {1244, 79, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 38, false, false}, {830, 10, false, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, + {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, {1244, 43, false, true}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 27, false, false}, {1244, 43, false, false}, + {1244, 38, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 87, false, false}, {1244, 16, true, false}, + {1244, 76, false, false}, {1244, 13, false, false}, {1244, 24, false, false}, {1396, 21, true, true}, + {1396, 71, false, false}, {1396, 38, false, false}, {1396, 21, false, true}, {1396, 21, false, false}, + {1396, 87, false, false}, {1396, 21, true, true}, {1396, 13, false, false}, {1396, 95, false, false}, + {1396, 76, false, false}, {1396, 54, false, false}, {1396, 21, true, true}, {1396, 21, false, false}, + {1396, 49, false, false}, {1396, 38, false, false}, {1396, 21, true, true}, {1396, 63, false, false}, + {1396, 38, false, false}, {1661, 27, true, true}, {1661, 24, false, false}, {1661, 21, false, false}, + {1661, 27, false, false}, {1661, 38, false, false}, {1479, 43, true, true}, {1479, 10, false, false}, + {1479, 38, false, false}, {1479, 38, false, false}, {1396, 21, true, true}, {1396, 54, false, false}, + {1396, 16, false, false}, {1396, 38, false, false}, {1396, 19, false, true}, {1108, 30, false, false}, + {1108, 35, false, false}, {1108, 46, false, false}, {1108, 10, true, true}, {1108, 10, false, false}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, + {1108, 68, false, false}, {1108, 19, false, false}, {1108, 93, true, false}, {1108, 21, false, false}, + {1108, 16, false, false}, {1244, 21, true, true}, {1244, 10, false, false}, {1244, 60, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 27, false, false}, {1244, 21, false, false}, + {1244, 38, false, false}, {1244, 60, false, true}, {1244, 71, false, false}, {1244, 21, true, true}, + {1244, 21, false, false}, {1244, 49, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 84, false, false}, {415, 24, false, false}, {830, 21, true, true}, {830, 128, false, false}, + {830, 112, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 27, false, false}, {830, 10, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 49, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, + {830, 38, false, false}, {830, 43, false, true}, {830, 60, false, false}, {830, 27, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, {830, 21, true, true}, + {830, 41, false, false}, {830, 30, false, false}, {830, 16, false, false}, {830, 21, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 87, false, false}, {830, 93, true, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, + {830, 43, false, true}, {830, 43, false, false}, {830, 43, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 13, false, false}, {830, 27, false, false}, {349, 46, false, false}, + {830, 71, false, false}, {415, 10, false, false}, {349, 49, false, false}, {349, 21, true, true}, + {349, 21, false, false}, {349, 49, false, false}, {349, 38, false, false}, {830, 21, false, true}, + {830, 16, false, false}, {415, 24, false, false}, {349, 68, false, false}, {830, 21, true, true}, + {830, 41, false, false}, {349, 30, false, false}, {349, 38, false, false}, {932, 21, true, true}, + {932, 21, false, false}, {932, 13, false, false}, {466, 13, false, false}, {349, 21, false, false}, + {349, 38, false, false}, {1108, 21, false, true}, {1108, 41, false, false}, {277, 19, false, false}, + {0, 16, false, false}, {0, 32, false, false}, {1108, 21, true, true}, {1108, 16, false, false}, + {1108, 13, false, false}, {1108, 19, false, false}, {0, 21, false, false}, {0, 38, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, + {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 49, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 87, false, false}, {1108, 46, true, false}, + {1108, 43, false, false}, {369, 24, false, false}, {369, 16, false, false}, {1244, 21, true, true}, + {1244, 32, false, false}, {1244, 38, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 49, false, false}, {1244, 134, false, false}, {1244, 35, false, false}, {1244, 21, true, true}, + {1244, 71, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 46, false, false}, {1244, 63, false, false}, + {1244, 49, false, true}, {1244, 82, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 41, false, false}, {830, 46, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 49, false, false}, {830, 38, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 43, false, true}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 71, false, false}, {1244, 38, false, false}, {1244, 21, true, true}, {1244, 38, false, false}, + {1244, 32, false, false}, {1244, 38, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 43, false, false}, {1244, 43, false, false}, {1244, 93, true, false}, {1244, 13, false, false}, + {1244, 24, false, false}, {1396, 21, true, true}, {1396, 71, false, false}, {1396, 38, false, false}, + {1396, 21, false, true}, {1396, 21, false, false}, {1396, 87, false, false}, {1396, 21, true, true}, + {1396, 21, false, false}, {1396, 68, false, false}, {1396, 19, false, false}, {1396, 65, false, false}, + {1396, 65, false, false}, {1396, 21, true, true}, {1396, 21, false, false}, {1396, 49, false, false}, + {1396, 38, false, false}, {1396, 21, true, true}, {1396, 60, false, false}, {1396, 10, false, false}, + {1396, 30, false, false}, {1661, 27, true, true}, {1661, 24, false, false}, {1661, 21, false, false}, + {1661, 27, false, false}, {1661, 38, false, false}, {1479, 41, true, true}, {1479, 52, false, false}, + {1479, 38, false, false}, {1396, 21, true, true}, {1396, 71, false, false}, {1396, 38, false, false}, + {1396, 19, false, true}, {1108, 21, false, false}, {1108, 43, false, false}, {1108, 46, false, false}, + {1108, 10, true, true}, {1108, 10, false, false}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 35, false, false}, {1108, 35, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {1108, 49, false, false}, + {1108, 38, false, false}, {1108, 27, true, false}, {1108, 16, false, false}, {1108, 49, false, false}, + {1108, 21, false, false}, {1108, 16, false, false}, {1244, 21, true, true}, {1244, 10, false, false}, + {1244, 60, false, false}, {1244, 19, false, false}, {1244, 19, false, false}, {1244, 21, false, true}, + {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 49, false, false}, {1244, 38, false, false}, {1244, 57, false, true}, {1244, 74, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, {1244, 38, false, false}, + {1244, 21, false, true}, {1244, 84, false, false}, {415, 24, false, false}, {830, 21, true, true}, + {830, 139, false, false}, {830, 101, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 49, false, false}, {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, {830, 21, true, true}, + {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, {830, 87, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, {830, 21, true, true}, + {830, 30, false, false}, {830, 41, false, false}, {830, 16, false, false}, {830, 21, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 87, false, false}, {830, 21, true, true}, + {830, 71, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, + {830, 38, false, false}, {830, 21, false, true}, {830, 21, false, false}, {830, 87, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {830, 13, false, false}, {830, 27, false, false}, + {349, 46, false, false}, {1108, 21, false, true}, {1108, 41, false, false}, {415, 19, false, false}, + {349, 49, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 49, false, false}, + {349, 38, false, false}, {1108, 21, false, true}, {1108, 16, false, false}, {1108, 16, false, false}, + {349, 76, false, false}, {1108, 21, true, true}, {1108, 38, false, false}, {349, 32, false, false}, + {349, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {1108, 16, false, false}, + {415, 10, false, false}, {349, 21, false, false}, {349, 38, false, false}, {1108, 21, false, true}, + {1108, 41, false, false}, {277, 10, false, false}, {0, 10, false, false}, {0, 13, false, false}, + {0, 32, false, false}, {1108, 21, true, true}, {1108, 16, false, false}, {1108, 32, false, false}, + {0, 21, false, false}, {0, 38, false, false}, {415, 21, true, true}, {415, 52, false, false}, + {415, 57, false, false}, {415, 43, false, true}, {415, 87, false, false}, {415, 21, true, true}, + {415, 46, false, false}, {415, 63, false, false}, {415, 21, true, true}, {415, 74, false, false}, + {415, 35, false, false}, {415, 21, true, true}, {415, 21, false, false}, {415, 87, false, false}, + {415, 115, true, false}, {415, 16, false, false}, {415, 21, true, true}, {415, 71, false, false}, + {415, 38, false, false}, {415, 21, false, true}, {415, 21, false, false}, {415, 87, false, false}, + {415, 21, true, true}, {415, 21, false, false}, {415, 95, false, false}, {415, 123, false, false}, + {415, 21, true, true}, {415, 74, false, false}, {415, 35, false, false}, {415, 21, false, true}, + {415, 21, false, false}, {415, 87, false, false}, {415, 21, true, true}, {415, 178, false, false}, + {0, 63, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 52, false, false}, + {349, 35, false, false}, {311, 21, true, true}, {311, 21, false, false}, {311, 24, false, false}, + {311, 10, false, false}, {0, 52, false, false}, {554, 21, true, true}, {554, 109, false, false}, + {554, 43, false, true}, {554, 87, false, false}, {0, 21, true, true}, {0, 43, false, false}, + {0, 65, false, false}, {554, 21, true, true}, {554, 63, false, false}, {554, 46, false, false}, + {554, 21, true, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 82, true, false}, + {554, 49, false, false}, {523, 21, true, true}, {523, 54, false, false}, {523, 54, false, false}, + {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 219, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 46, false, false}, {0, 41, false, false}, {0, 21, false, true}, {0, 109, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 43, false, true}, + {0, 87, false, false}, {0, 21, true, true}, {0, 35, false, false}, {0, 74, false, false}, + {0, 76, true, false}, {0, 16, false, false}, {0, 38, false, false}, {415, 21, true, true}, + {415, 82, false, false}, {415, 27, false, false}, {415, 43, false, true}, {415, 87, false, false}, + {415, 21, true, true}, {415, 52, false, false}, {415, 57, false, false}, {415, 21, true, true}, + {415, 65, false, false}, {415, 43, false, false}, {415, 21, true, true}, {415, 21, false, false}, + {415, 87, false, false}, {415, 90, true, false}, {415, 41, false, false}, {415, 21, true, true}, + {415, 54, false, false}, {415, 54, false, false}, {415, 21, false, true}, {415, 21, false, false}, + {415, 87, false, false}, {415, 21, true, true}, {415, 21, false, false}, {415, 87, false, false}, + {415, 131, false, false}, {415, 21, true, true}, {415, 21, false, false}, {415, 49, false, false}, + {415, 38, false, false}, {415, 21, false, true}, {415, 109, false, false}, {415, 21, true, true}, + {415, 213, false, false}, {0, 27, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 13, false, false}, {349, 74, false, false}, {311, 21, true, true}, {311, 21, false, false}, + {311, 13, false, false}, {311, 32, false, false}, {0, 41, false, false}, {554, 21, true, true}, + {554, 109, false, false}, {554, 43, false, true}, {554, 87, false, false}, {0, 21, true, true}, + {0, 54, false, false}, {0, 54, false, false}, {554, 21, true, true}, {554, 106, false, false}, + {554, 24, true, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 46, true, false}, + {554, 84, false, false}, {523, 21, true, true}, {523, 60, false, false}, {523, 49, false, false}, + {0, 43, false, true}, {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 219, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 10, false, false}, + {0, 76, false, false}, {0, 21, true, true}, {0, 76, false, false}, {0, 32, false, false}, + {0, 21, true, true}, {0, 109, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 24, false, false}, {0, 63, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 16, false, false}, + {0, 27, false, false}, {0, 43, false, false}, {415, 21, true, true}, {415, 52, false, false}, + {415, 57, false, false}, {415, 43, false, true}, {415, 87, false, false}, {415, 21, true, true}, + {415, 46, false, false}, {415, 63, false, false}, {415, 21, true, true}, {415, 74, false, false}, + {415, 35, false, false}, {415, 21, true, true}, {415, 21, false, false}, {415, 87, false, false}, + {415, 115, true, false}, {415, 16, false, false}, {415, 21, true, true}, {415, 71, false, false}, + {415, 38, false, false}, {415, 21, false, true}, {415, 21, false, false}, {415, 87, false, false}, + {415, 21, true, true}, {415, 21, false, false}, {415, 95, false, false}, {415, 123, false, false}, + {415, 21, true, true}, {415, 74, false, false}, {415, 35, false, false}, {415, 21, false, true}, + {415, 21, false, false}, {415, 87, false, false}, {415, 21, true, true}, {415, 178, false, false}, + {0, 63, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 52, false, false}, + {349, 35, false, false}, {311, 21, true, true}, {311, 21, false, false}, {311, 24, false, false}, + {311, 10, false, false}, {0, 52, false, false}, {554, 21, true, true}, {554, 109, false, false}, + {554, 43, false, true}, {554, 87, false, false}, {0, 21, true, true}, {0, 43, false, false}, + {0, 65, false, false}, {554, 21, true, true}, {554, 63, false, false}, {554, 46, false, false}, + {554, 21, true, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 82, true, false}, + {554, 49, false, false}, {523, 21, true, true}, {523, 54, false, false}, {523, 54, false, false}, + {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 219, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 46, false, false}, {0, 41, false, false}, {0, 21, false, true}, {0, 109, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 43, false, true}, + {0, 87, false, false}, {0, 21, true, true}, {0, 35, false, false}, {0, 74, false, false}, + {0, 76, true, false}, {0, 16, false, false}, {0, 38, false, false}, {415, 21, true, true}, + {415, 82, false, false}, {415, 27, false, false}, {415, 43, false, true}, {415, 87, false, false}, + {415, 21, true, true}, {415, 52, false, false}, {415, 57, false, false}, {415, 21, true, true}, + {415, 65, false, false}, {415, 43, false, false}, {415, 21, true, true}, {415, 21, false, false}, + {415, 87, false, false}, {415, 90, true, false}, {415, 41, false, false}, {415, 21, true, true}, + {415, 54, false, false}, {415, 54, false, false}, {415, 21, false, true}, {415, 21, false, false}, + {415, 87, false, false}, {415, 21, true, true}, {415, 21, false, false}, {415, 87, false, false}, + {415, 131, false, false}, {415, 21, true, true}, {415, 21, false, false}, {415, 49, false, false}, + {415, 38, false, false}, {415, 21, false, true}, {415, 109, false, false}, {415, 21, true, true}, + {415, 213, false, false}, {0, 27, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 13, false, false}, {349, 74, false, false}, {311, 21, true, true}, {311, 21, false, false}, + {311, 13, false, false}, {311, 32, false, false}, {0, 41, false, false}, {554, 21, true, true}, + {554, 109, false, false}, {554, 43, false, true}, {554, 87, false, false}, {0, 21, true, true}, + {0, 54, false, false}, {0, 54, false, false}, {554, 21, true, true}, {554, 106, false, false}, + {554, 24, true, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 46, true, false}, + {554, 84, false, false}, {523, 21, true, true}, {523, 60, false, false}, {523, 49, false, false}, + {0, 43, false, true}, {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 219, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 10, false, false}, + {0, 76, false, false}, {0, 21, true, true}, {0, 76, false, false}, {0, 32, false, false}, + {0, 21, true, true}, {0, 109, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 24, false, false}, {0, 63, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 16, false, false}, + {0, 27, false, false}, {0, 43, false, false}, {415, 21, true, true}, {415, 52, false, false}, + {415, 57, false, false}, {415, 43, false, true}, {415, 87, false, false}, {415, 21, true, true}, + {415, 46, false, false}, {415, 21, false, false}, {0, 41, false, false}, {466, 21, true, true}, + {466, 43, false, false}, {0, 30, false, false}, {0, 35, false, false}, {554, 21, true, true}, + {554, 21, false, false}, {554, 16, false, false}, {0, 71, false, false}, {466, 54, true, false}, + {0, 60, false, false}, {0, 16, false, false}, {698, 21, true, true}, {698, 71, false, false}, + {698, 38, false, false}, {698, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, + {415, 21, true, true}, {415, 21, false, false}, {415, 52, false, false}, {0, 35, false, false}, + {466, 76, false, false}, {0, 54, false, false}, {554, 21, true, true}, {554, 63, false, false}, + {0, 10, false, false}, {0, 35, false, false}, {466, 21, false, true}, {466, 21, false, false}, + {0, 87, false, false}, {698, 21, true, true}, {698, 178, false, false}, {698, 16, false, false}, + {0, 46, false, false}, {466, 21, true, true}, {466, 19, false, false}, {349, 54, false, false}, + {349, 35, false, false}, {311, 21, true, true}, {311, 21, false, false}, {311, 24, false, false}, + {311, 10, false, false}, {0, 52, false, false}, {554, 21, true, true}, {554, 109, false, false}, + {554, 43, false, true}, {554, 87, false, false}, {0, 21, true, true}, {0, 43, false, false}, + {0, 65, false, false}, {554, 21, true, true}, {554, 63, false, false}, {554, 46, false, false}, + {554, 21, true, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 82, true, false}, + {554, 49, false, false}, {523, 21, true, true}, {523, 54, false, false}, {523, 54, false, false}, + {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 219, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 46, false, false}, {0, 41, false, false}, {0, 21, false, true}, {0, 109, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 43, false, true}, + {0, 87, false, false}, {0, 21, true, true}, {0, 35, false, false}, {0, 74, false, false}, + {0, 76, true, false}, {0, 16, false, false}, {0, 38, false, false}, {415, 21, true, true}, + {415, 82, false, false}, {415, 27, false, false}, {415, 43, false, true}, {415, 87, false, false}, + {415, 21, true, true}, {415, 52, false, false}, {415, 16, false, false}, {0, 41, false, false}, + {466, 21, true, true}, {466, 43, false, false}, {0, 21, false, false}, {0, 43, false, false}, + {554, 21, true, true}, {554, 21, false, false}, {554, 16, false, false}, {0, 71, false, false}, + {466, 54, true, false}, {0, 35, false, false}, {0, 41, false, false}, {698, 21, true, true}, + {698, 54, false, false}, {698, 54, false, false}, {698, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {415, 21, true, true}, {415, 21, false, false}, {415, 52, false, false}, + {0, 35, false, false}, {466, 76, false, false}, {0, 54, false, false}, {554, 21, true, true}, + {554, 21, false, false}, {554, 41, false, false}, {0, 46, false, false}, {466, 21, false, true}, + {466, 27, false, false}, {0, 82, false, false}, {698, 21, true, true}, {698, 194, false, false}, + {0, 19, false, false}, {0, 27, false, false}, {466, 21, true, true}, {466, 19, false, false}, + {349, 16, false, false}, {349, 74, false, false}, {311, 21, true, true}, {311, 21, false, false}, + {311, 13, false, false}, {311, 32, false, false}, {0, 41, false, false}, {554, 21, true, true}, + {554, 109, false, false}, {554, 43, false, true}, {554, 87, false, false}, {0, 21, true, true}, + {0, 54, false, false}, {0, 54, false, false}, {554, 21, true, true}, {554, 106, false, false}, + {554, 24, true, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 46, true, false}, + {554, 84, false, false}, {523, 21, true, true}, {523, 60, false, false}, {523, 49, false, false}, + {0, 43, false, true}, {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 219, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 10, false, false}, + {0, 76, false, false}, {0, 21, true, true}, {0, 76, false, false}, {0, 32, false, false}, + {0, 21, true, true}, {0, 109, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 24, false, false}, {0, 63, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 16, false, false}, + {0, 27, false, false}, {0, 43, false, false}, {415, 21, true, true}, {415, 52, false, false}, + {415, 57, false, false}, {415, 43, false, true}, {415, 87, false, false}, {415, 21, true, true}, + {415, 46, false, false}, {415, 21, false, false}, {0, 41, false, false}, {466, 21, true, true}, + {466, 43, false, false}, {0, 30, false, false}, {0, 35, false, false}, {554, 21, true, true}, + {554, 21, false, false}, {554, 16, false, false}, {0, 71, false, false}, {466, 54, true, false}, + {0, 60, false, false}, {0, 16, false, false}, {698, 21, true, true}, {698, 71, false, false}, + {698, 38, false, false}, {698, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, + {415, 21, true, true}, {415, 21, false, false}, {415, 52, false, false}, {0, 35, false, false}, + {466, 76, false, false}, {0, 54, false, false}, {554, 21, true, true}, {554, 63, false, false}, + {0, 10, false, false}, {0, 35, false, false}, {466, 21, false, true}, {466, 21, false, false}, + {0, 87, false, false}, {698, 21, true, true}, {698, 178, false, false}, {698, 16, false, false}, + {0, 46, false, false}, {466, 21, true, true}, {466, 19, false, false}, {349, 54, false, false}, + {349, 35, false, false}, {311, 21, true, true}, {311, 21, false, false}, {311, 24, false, false}, + {311, 10, false, false}, {0, 52, false, false}, {554, 21, true, true}, {554, 109, false, false}, + {554, 43, false, true}, {554, 87, false, false}, {0, 21, true, true}, {0, 43, false, false}, + {0, 65, false, false}, {554, 21, true, true}, {554, 63, false, false}, {554, 46, false, false}, + {554, 21, true, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 82, true, false}, + {554, 49, false, false}, {523, 21, true, true}, {523, 54, false, false}, {523, 54, false, false}, + {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 219, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 46, false, false}, {0, 41, false, false}, {0, 21, false, true}, {0, 109, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 43, false, true}, + {0, 87, false, false}, {0, 21, true, true}, {0, 35, false, false}, {0, 74, false, false}, + {0, 76, true, false}, {0, 16, false, false}, {0, 38, false, false}, {415, 21, true, true}, + {415, 82, false, false}, {415, 27, false, false}, {415, 43, false, true}, {415, 87, false, false}, + {415, 21, true, true}, {415, 52, false, false}, {415, 16, false, false}, {0, 41, false, false}, + {466, 21, true, true}, {466, 43, false, false}, {0, 21, false, false}, {0, 43, false, false}, + {554, 21, true, true}, {554, 21, false, false}, {554, 16, false, false}, {0, 71, false, false}, + {466, 54, true, false}, {0, 35, false, false}, {0, 41, false, false}, {698, 21, true, true}, + {698, 54, false, false}, {698, 54, false, false}, {698, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {415, 21, true, true}, {415, 21, false, false}, {415, 52, false, false}, + {0, 35, false, false}, {466, 76, false, false}, {0, 54, false, false}, {554, 21, true, true}, + {554, 21, false, false}, {554, 41, false, false}, {0, 46, false, false}, {466, 21, false, true}, + {466, 27, false, false}, {0, 82, false, false}, {698, 21, true, true}, {698, 194, false, false}, + {0, 19, false, false}, {0, 27, false, false}, {466, 21, true, true}, {466, 19, false, false}, + {349, 16, false, false}, {349, 74, false, false}, {311, 21, true, true}, {311, 21, false, false}, + {311, 13, false, false}, {311, 32, false, false}, {0, 41, false, false}, {554, 21, true, true}, + {554, 109, false, false}, {554, 43, false, true}, {554, 87, false, false}, {0, 21, true, true}, + {0, 54, false, false}, {0, 54, false, false}, {554, 21, true, true}, {554, 106, false, false}, + {554, 24, true, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 21, true, true}, + {554, 24, false, false}, {554, 84, false, false}, {523, 21, true, true}, {523, 60, false, false}, + {523, 49, false, false}, {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 10, false, false}, + {0, 76, false, false}, {0, 21, true, true}, {0, 76, false, false}, {0, 32, false, false}, + {0, 21, true, true}, {0, 109, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 24, false, false}, {0, 63, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 16, false, false}, + {0, 71, false, false}, {0, 21, true, true}, {0, 241, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, false, true}, {0, 109, false, false}, {0, 21, true, true}, + {0, 197, false, false}, {0, 43, false, false}, {261, 21, false, true}, {261, 38, false, false}, + {0, 71, false, false}, {0, 21, false, true}, {0, 65, false, false}, {0, 43, false, false}, + {277, 21, true, true}, {277, 38, false, false}, {277, 161, false, false}, {0, 41, false, false}, + {277, 21, false, true}, {277, 109, false, false}, {277, 10, false, true}, {0, 10, false, false}, + {0, 109, false, false}, {311, 21, true, true}, {311, 84, false, false}, {277, 35, false, false}, + {0, 120, false, false}, {311, 21, false, true}, {311, 84, false, false}, {261, 24, false, false}, + {261, 21, false, true}, {261, 109, false, false}, {261, 21, true, true}, {261, 41, false, false}, + {0, 68, false, false}, {0, 65, false, true}, {0, 65, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, false, true}, {0, 43, false, false}, {0, 65, false, false}, + {0, 21, true, true}, {0, 241, false, false}, {0, 21, false, true}, {0, 109, false, false}, + {0, 21, false, true}, {0, 74, false, false}, {0, 35, false, false}, {0, 21, true, true}, + {0, 241, false, false}, {0, 21, false, true}, {0, 109, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, true, true}, {0, 241, false, false}, {0, 21, false, true}, + {0, 241, false, false}, {0, 21, true, true}, {0, 241, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, false, true}, {0, 46, false, false}, {0, 63, false, false}, + {0, 21, true, true}, {0, 178, false, false}, {0, 63, false, false}, {261, 21, false, true}, + {261, 109, false, false}, {261, 21, false, true}, {261, 52, false, false}, {0, 10, false, false}, + {0, 46, false, false}, {277, 21, true, true}, {277, 183, false, false}, {0, 57, false, false}, + {277, 21, false, true}, {277, 71, false, false}, {277, 38, false, false}, {277, 21, false, true}, + {277, 52, false, false}, {0, 57, false, false}, {0, 21, true, true}, {0, 71, false, false}, + {0, 169, false, false}, {415, 21, false, true}, {415, 93, false, false}, {415, 16, false, false}, + {415, 21, false, true}, {415, 49, false, false}, {0, 60, false, false}, {830, 21, true, true}, + {830, 93, false, false}, {830, 21, false, false}, {349, 126, false, false}, {415, 19, false, true}, + {349, 112, false, false}, {349, 21, false, true}, {349, 109, false, false}, {830, 19, true, true}, + {830, 54, false, false}, {830, 19, false, false}, {830, 10, false, false}, {830, 131, false, false}, + {0, 27, false, false}, {622, 21, false, true}, {622, 164, false, false}, {622, 76, false, false}, + {622, 21, true, true}, {622, 211, false, false}, {311, 13, false, false}, {261, 16, false, false}, + {698, 21, false, true}, {698, 109, false, false}, {698, 21, false, true}, {698, 95, false, false}, + {698, 13, false, false}, {698, 13, true, true}, {622, 117, false, false}, {622, 19, false, true}, + {622, 10, false, false}, {622, 82, false, false}, {622, 19, false, false}, {622, 13, false, true}, + {554, 90, false, false}, {277, 10, false, false}, {0, 16, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, true, true}, {0, 241, false, false}, {0, 21, false, true}, + {0, 65, false, false}, {0, 43, false, false}, {0, 21, false, true}, {0, 109, false, false}, + {0, 21, true, true}, {0, 65, false, false}, {0, 175, false, false}, {261, 21, false, true}, + {261, 35, false, false}, {0, 74, false, false}, {0, 21, false, true}, {0, 49, false, false}, + {0, 60, false, false}, {277, 21, true, true}, {277, 35, false, false}, {277, 175, false, false}, + {0, 30, false, false}, {277, 21, false, true}, {277, 68, false, false}, {277, 41, false, false}, + {277, 21, false, true}, {277, 79, false, false}, {0, 30, false, false}, {277, 21, true, true}, + {277, 68, false, false}, {277, 134, false, false}, {0, 38, false, false}, {311, 21, false, true}, + {311, 52, false, false}, {277, 57, false, false}, {277, 21, false, true}, {277, 71, false, false}, + {0, 38, false, false}, {311, 21, true, true}, {311, 52, false, false}, {0, 189, false, false}, + {261, 21, false, true}, {261, 109, false, false}, {261, 21, false, true}, {261, 71, false, false}, + {0, 38, false, false}, {261, 21, true, true}, {261, 169, false, false}, {261, 32, false, false}, + {0, 38, false, false}, {261, 21, false, true}, {261, 46, false, false}, {0, 63, false, false}, + {0, 21, false, true}, {0, 35, false, false}, {0, 74, false, false}, {261, 21, true, true}, + {261, 46, false, false}, {0, 63, false, false}, {0, 57, false, true}, {0, 74, false, false}, + {0, 21, false, true}, {0, 109, false, false}, {0, 21, false, true}, {0, 109, false, false}, + {0, 21, true, true}, {0, 241, false, false}, {0, 21, false, true}, {0, 241, false, false}, + {0, 21, true, true}, {0, 241, false, false}, {0, 21, false, true}, {0, 109, false, false}, + {0, 21, false, true}, {0, 27, false, false}, {0, 82, false, false}, {0, 21, true, true}, + {0, 158, false, false}, {0, 82, false, false}, {261, 21, false, true}, {261, 104, false, false}, + {0, 27, false, true}, {0, 52, false, false}, {0, 57, false, false}, {277, 21, true, true}, + {277, 104, false, false}, {277, 90, false, false}, {0, 46, false, false}, {277, 21, false, true}, + {277, 79, false, false}, {277, 30, false, false}, {277, 21, false, true}, {277, 63, false, false}, + {0, 46, false, false}, {0, 21, true, true}, {0, 79, false, false}, {0, 161, false, false}, + {0, 21, false, true}, {0, 68, false, false}, {0, 41, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {622, 21, true, true}, {622, 189, false, false}, {622, 41, false, false}, + {349, 10, false, false}, {622, 10, false, true}, {622, 10, false, false}, {622, 109, false, false}, + {622, 21, false, true}, {622, 35, false, false}, {622, 63, false, false}, {349, 10, false, false}, + {622, 21, true, true}, {622, 52, false, false}, {622, 19, false, false}, {622, 10, false, false}, + {622, 84, false, false}, {622, 63, false, false}, {0, 10, false, false}, {698, 21, false, true}, + {698, 167, false, false}, {698, 74, false, false}, {622, 21, true, true}, {622, 167, false, false}, + {622, 74, false, false}, {622, 21, false, true}, {622, 109, false, false}, {622, 21, false, true}, + {622, 109, false, false}, {622, 21, true, true}, {622, 109, false, false}, {622, 19, false, true}, + {622, 10, false, false}, {622, 101, false, false}, {622, 21, false, true}, {622, 109, false, false}, + {622, 21, false, true}, {622, 87, false, false}, {0, 21, false, false}, {554, 21, true, true}, + {554, 52, false, false}, {554, 57, false, false}, {554, 43, false, true}, {554, 87, false, false}, + {554, 21, true, true}, {554, 46, false, false}, {554, 63, false, false}, {554, 21, true, true}, + {554, 74, false, false}, {554, 35, false, false}, {554, 21, true, true}, {554, 21, false, false}, + {554, 87, false, false}, {554, 115, true, false}, {554, 16, false, false}, {554, 21, true, true}, + {554, 71, false, false}, {554, 38, false, false}, {554, 21, false, true}, {554, 21, false, false}, + {554, 87, false, false}, {554, 21, true, true}, {554, 21, false, false}, {554, 32, false, false}, + {554, 63, false, false}, {554, 123, false, false}, {554, 21, true, true}, {554, 74, false, false}, + {554, 35, false, false}, {554, 21, false, true}, {554, 21, false, false}, {554, 87, false, false}, + {554, 21, true, true}, {554, 24, false, false}, {349, 16, false, false}, {349, 145, false, false}, + {0, 54, false, false}, {622, 21, false, true}, {622, 21, false, false}, {622, 87, false, false}, + {622, 21, true, true}, {622, 21, false, false}, {622, 24, false, false}, {622, 63, false, false}, + {622, 21, true, true}, {622, 57, false, false}, {622, 52, false, false}, {622, 38, false, true}, + {622, 93, false, false}, {622, 21, true, true}, {622, 43, false, false}, {622, 21, false, false}, + {622, 43, false, false}, {622, 21, true, true}, {622, 63, false, false}, {622, 46, false, false}, + {622, 21, true, true}, {622, 21, false, false}, {622, 87, false, false}, {622, 71, true, false}, + {622, 10, false, false}, {622, 49, false, false}, {622, 21, true, true}, {622, 54, false, false}, + {622, 54, false, false}, {622, 21, false, true}, {622, 21, false, false}, {622, 87, false, false}, + {622, 21, true, true}, {622, 21, false, false}, {622, 52, false, false}, {622, 120, false, false}, + {622, 46, false, false}, {622, 21, true, true}, {622, 21, false, false}, {622, 46, false, false}, + {622, 41, false, false}, {622, 21, false, true}, {622, 19, false, false}, {622, 90, false, false}, + {622, 21, true, true}, {622, 21, false, false}, {622, 24, false, false}, {622, 38, false, false}, + {261, 24, false, false}, {261, 43, false, true}, {261, 87, false, false}, {698, 21, true, true}, + {698, 35, false, false}, {698, 74, false, false}, {698, 21, true, false}, {698, 54, false, false}, + {698, 54, false, false}, {698, 21, true, true}, {698, 82, false, false}, {698, 27, false, false}, + {698, 43, false, true}, {698, 87, false, false}, {698, 21, true, true}, {698, 52, false, false}, + {698, 57, false, false}, {698, 21, true, true}, {698, 65, false, false}, {698, 43, false, false}, + {698, 21, true, true}, {698, 21, false, false}, {698, 87, false, false}, {698, 90, true, false}, + {698, 41, false, false}, {698, 21, true, true}, {698, 54, false, false}, {698, 30, false, false}, + {698, 24, false, false}, {698, 21, false, true}, {698, 21, false, false}, {698, 87, false, false}, + {698, 21, true, true}, {698, 21, false, false}, {698, 87, false, false}, {698, 74, false, false}, + {698, 57, false, false}, {698, 21, true, true}, {698, 21, false, false}, {698, 49, false, false}, + {698, 27, false, false}, {698, 10, false, false}, {698, 21, false, true}, {698, 109, false, false}, + {698, 21, true, true}, {698, 200, false, false}, {698, 16, false, false}, {698, 24, false, false}, + {698, 16, false, true}, {554, 10, false, false}, {554, 10, false, false}, {369, 38, false, false}, + {0, 32, false, false}, {0, 21, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 13, false, false}, {0, 74, false, false}, {554, 21, true, true}, {554, 38, false, false}, + {554, 16, false, false}, {554, 13, false, false}, {349, 41, false, false}, {349, 43, false, true}, + {349, 87, false, false}, {349, 21, true, true}, {349, 57, false, false}, {349, 52, false, false}, + {554, 21, true, true}, {554, 43, false, false}, {554, 10, false, false}, {554, 16, false, false}, + {349, 38, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 87, false, false}, + {349, 21, true, false}, {349, 16, false, false}, {277, 68, false, false}, {277, 24, false, false}, + {622, 21, true, true}, {622, 68, false, false}, {622, 41, false, false}, {622, 43, false, true}, + {622, 87, false, false}, {622, 21, true, true}, {622, 21, false, false}, {622, 65, false, false}, + {622, 153, false, false}, {622, 21, true, true}, {622, 21, false, false}, {622, 57, false, false}, + {622, 30, false, false}, {622, 10, true, true}, {261, 10, false, false}, {261, 109, false, false}, + {415, 21, true, true}, {415, 30, false, false}, {261, 24, false, false}, {261, 54, false, false}, + {466, 10, true, true}, {466, 10, false, false}, {466, 21, false, false}, {466, 10, false, false}, + {466, 21, false, false}, {261, 10, false, false}, {261, 43, false, false}, {554, 21, true, true}, + {554, 43, false, false}, {261, 13, false, false}, {261, 32, false, false}, {261, 19, false, false}, + {466, 21, true, true}, {466, 21, false, false}, {466, 21, false, false}, {261, 21, false, false}, + {261, 43, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 87, false, false}, {1108, 13, true, false}, + {1108, 76, false, false}, {369, 24, false, false}, {369, 16, false, false}, {1244, 21, true, true}, + {1244, 32, false, false}, {1244, 38, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 49, false, false}, {1244, 82, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 71, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 52, false, false}, {1244, 57, false, false}, + {1244, 52, false, true}, {1244, 79, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 38, false, false}, {830, 10, false, false}, {830, 38, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, {1244, 21, true, true}, + {1244, 71, false, false}, {1244, 38, false, false}, {1244, 43, false, true}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 27, false, false}, {1244, 43, false, false}, {1244, 38, false, false}, + {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, {1244, 21, true, true}, + {1244, 21, false, false}, {1244, 87, false, false}, {1244, 16, true, false}, {1244, 76, false, false}, + {1244, 13, false, false}, {1244, 24, false, false}, {1396, 21, true, true}, {1396, 71, false, false}, + {1396, 38, false, false}, {1396, 21, false, true}, {1396, 21, false, false}, {1396, 87, false, false}, + {1396, 21, true, true}, {1396, 13, false, false}, {1396, 95, false, false}, {1396, 76, false, false}, + {1396, 54, false, false}, {1396, 21, true, true}, {1396, 21, false, false}, {1396, 49, false, false}, + {1396, 38, false, false}, {1396, 21, true, true}, {1396, 63, false, false}, {1396, 38, false, false}, + {1661, 27, true, true}, {1661, 24, false, false}, {1661, 21, false, false}, {1661, 27, false, false}, + {1661, 38, false, false}, {1479, 43, true, true}, {1479, 10, false, false}, {1479, 38, false, false}, + {1479, 38, false, false}, {1396, 21, true, true}, {1396, 54, false, false}, {1396, 16, false, false}, + {1396, 38, false, false}, {1396, 19, false, true}, {1108, 30, false, false}, {1108, 35, false, false}, + {1108, 46, false, false}, {1108, 10, true, true}, {1108, 10, false, false}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {1108, 68, false, false}, + {1108, 19, false, false}, {1108, 93, true, false}, {1108, 21, false, false}, {1108, 16, false, false}, + {1244, 21, true, true}, {1244, 10, false, false}, {1244, 60, false, false}, {1244, 38, false, false}, + {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 21, false, false}, {1244, 27, false, false}, {1244, 21, false, false}, {1244, 38, false, false}, + {1244, 60, false, true}, {1244, 71, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 49, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 84, false, false}, + {415, 24, false, false}, {830, 21, true, true}, {830, 128, false, false}, {830, 112, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 27, false, false}, + {830, 10, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, + {830, 43, false, true}, {830, 60, false, false}, {830, 27, false, false}, {830, 21, true, true}, + {830, 71, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 41, false, false}, + {830, 30, false, false}, {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 87, false, false}, {830, 93, true, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, + {830, 43, false, false}, {830, 43, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 13, false, false}, {830, 27, false, false}, {349, 46, false, false}, {830, 71, false, false}, + {415, 10, false, false}, {349, 49, false, false}, {349, 21, true, true}, {349, 21, false, false}, + {349, 49, false, false}, {349, 38, false, false}, {830, 21, false, true}, {830, 16, false, false}, + {415, 24, false, false}, {349, 68, false, false}, {830, 21, true, true}, {830, 41, false, false}, + {349, 30, false, false}, {349, 38, false, false}, {932, 21, true, true}, {932, 21, false, false}, + {932, 13, false, false}, {466, 13, false, false}, {349, 21, false, false}, {349, 38, false, false}, + {1108, 21, false, true}, {1108, 41, false, false}, {277, 19, false, false}, {0, 16, false, false}, + {0, 32, false, false}, {1108, 21, true, true}, {1108, 16, false, false}, {1108, 13, false, false}, + {1108, 19, false, false}, {0, 21, false, false}, {0, 38, false, false}, {1108, 21, true, true}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {1108, 49, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {1108, 87, false, false}, {1108, 46, true, false}, {1108, 43, false, false}, + {369, 24, false, false}, {369, 16, false, false}, {1244, 21, true, true}, {1244, 32, false, false}, + {1244, 38, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, + {1244, 134, false, false}, {1244, 35, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 46, false, false}, {1244, 63, false, false}, {1244, 49, false, true}, + {1244, 82, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 41, false, false}, + {830, 46, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 38, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, + {1244, 43, false, true}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 21, true, true}, {1244, 38, false, false}, {1244, 32, false, false}, + {1244, 38, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 43, false, false}, + {1244, 43, false, false}, {1244, 93, true, false}, {1244, 13, false, false}, {1244, 24, false, false}, + {1396, 21, true, true}, {1396, 71, false, false}, {1396, 38, false, false}, {1396, 21, false, true}, + {1396, 21, false, false}, {1396, 87, false, false}, {1396, 21, true, true}, {1396, 21, false, false}, + {1396, 68, false, false}, {1396, 19, false, false}, {1396, 65, false, false}, {1396, 65, false, false}, + {1396, 21, true, true}, {1396, 21, false, false}, {1396, 49, false, false}, {1396, 38, false, false}, + {1396, 21, true, true}, {1396, 60, false, false}, {1396, 10, false, false}, {1396, 30, false, false}, + {1661, 27, true, true}, {1661, 24, false, false}, {1661, 21, false, false}, {1661, 27, false, false}, + {1661, 38, false, false}, {1479, 41, true, true}, {1479, 52, false, false}, {1479, 38, false, false}, + {1396, 21, true, true}, {1396, 71, false, false}, {1396, 38, false, false}, {1396, 19, false, true}, + {1108, 21, false, false}, {1108, 43, false, false}, {1108, 46, false, false}, {1108, 10, true, true}, + {1108, 10, false, false}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, + {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 35, false, false}, {1108, 35, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 49, false, false}, {1108, 38, false, false}, + {1108, 27, true, false}, {1108, 16, false, false}, {1108, 49, false, false}, {1108, 21, false, false}, + {1108, 16, false, false}, {1244, 21, true, true}, {1244, 10, false, false}, {1244, 60, false, false}, + {1244, 19, false, false}, {1244, 19, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, + {1244, 38, false, false}, {1244, 57, false, true}, {1244, 74, false, false}, {1244, 21, true, true}, + {1244, 21, false, false}, {1244, 49, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 84, false, false}, {415, 24, false, false}, {830, 21, true, true}, {830, 139, false, false}, + {830, 101, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 49, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, + {830, 38, false, false}, {830, 43, false, true}, {830, 87, false, false}, {830, 21, true, true}, + {830, 71, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 30, false, false}, + {830, 41, false, false}, {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 87, false, false}, {830, 93, true, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, + {830, 87, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {830, 13, false, false}, + {830, 27, false, false}, {349, 46, false, false}, {1108, 63, false, false}, {415, 19, false, false}, + {349, 49, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 49, false, false}, + {349, 38, false, false}, {1108, 21, false, true}, {1108, 16, false, false}, {1108, 16, false, false}, + {349, 76, false, false}, {1108, 21, true, true}, {1108, 41, false, false}, {349, 30, false, false}, + {349, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, {1108, 19, false, false}, + {349, 30, false, false}, {349, 38, false, false}, {1108, 21, false, true}, {1108, 41, false, false}, + {0, 21, false, false}, {0, 13, false, false}, {0, 32, false, false}, {1108, 21, true, true}, + {1108, 16, false, false}, {1108, 32, false, false}, {0, 21, false, false}, {0, 38, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, + {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {1108, 87, false, false}, {1108, 13, true, false}, {1108, 76, false, false}, + {369, 24, false, false}, {369, 16, false, false}, {1244, 21, true, true}, {1244, 32, false, false}, + {1244, 38, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, + {1244, 82, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 52, false, false}, {1244, 57, false, false}, {1244, 52, false, true}, + {1244, 79, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 38, false, false}, + {830, 10, false, false}, {830, 38, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 49, false, false}, {830, 38, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, + {1244, 38, false, false}, {1244, 43, false, true}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 27, false, false}, {1244, 43, false, false}, {1244, 38, false, false}, {1244, 21, true, true}, + {1244, 71, false, false}, {1244, 38, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 87, false, false}, {1244, 16, true, false}, {1244, 76, false, false}, {1244, 13, false, false}, + {1244, 24, false, false}, {1396, 21, true, true}, {1396, 71, false, false}, {1396, 38, false, false}, + {1396, 21, false, true}, {1396, 21, false, false}, {1396, 87, false, false}, {1396, 21, true, true}, + {1396, 13, false, false}, {1396, 95, false, false}, {1396, 76, false, false}, {1396, 54, false, false}, + {1396, 21, true, true}, {1396, 21, false, false}, {1396, 49, false, false}, {1396, 38, false, false}, + {1396, 21, true, true}, {1396, 63, false, false}, {1396, 38, false, false}, {1661, 27, true, true}, + {1661, 24, false, false}, {1661, 21, false, false}, {1661, 27, false, false}, {1661, 38, false, false}, + {1479, 43, true, true}, {1479, 10, false, false}, {1479, 38, false, false}, {1479, 38, false, false}, + {1396, 21, true, true}, {1396, 54, false, false}, {1396, 16, false, false}, {1396, 38, false, false}, + {1396, 19, false, true}, {1108, 30, false, false}, {1108, 35, false, false}, {1108, 46, false, false}, + {1108, 10, true, true}, {1108, 10, false, false}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 68, false, false}, {1108, 19, false, false}, + {1108, 93, true, false}, {1108, 21, false, false}, {1108, 16, false, false}, {1244, 21, true, true}, + {1244, 10, false, false}, {1244, 60, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, + {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 27, false, false}, {1244, 21, false, false}, {1244, 38, false, false}, {1244, 60, false, true}, + {1244, 71, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 84, false, false}, {415, 24, false, false}, + {830, 21, true, true}, {830, 128, false, false}, {830, 112, false, false}, {830, 21, true, true}, + {830, 21, false, false}, {830, 49, false, false}, {830, 27, false, false}, {830, 10, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, + {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, + {830, 60, false, false}, {830, 27, false, false}, {830, 21, true, true}, {830, 71, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 41, false, false}, {830, 30, false, false}, + {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 87, false, false}, {830, 93, true, false}, {830, 38, false, false}, {830, 21, true, true}, + {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, {830, 43, false, false}, + {830, 43, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 13, false, false}, + {830, 27, false, false}, {349, 46, false, false}, {830, 71, false, false}, {415, 10, false, false}, + {349, 49, false, false}, {349, 21, true, true}, {349, 21, false, false}, {349, 49, false, false}, + {349, 38, false, false}, {830, 21, false, true}, {830, 16, false, false}, {415, 24, false, false}, + {349, 68, false, false}, {830, 21, true, true}, {830, 41, false, false}, {349, 30, false, false}, + {349, 38, false, false}, {932, 21, true, true}, {932, 21, false, false}, {932, 13, false, false}, + {466, 13, false, false}, {349, 21, false, false}, {349, 38, false, false}, {1108, 21, false, true}, + {1108, 41, false, false}, {277, 19, false, false}, {0, 16, false, false}, {0, 32, false, false}, + {1108, 21, true, true}, {1108, 16, false, false}, {1108, 13, false, false}, {1108, 19, false, false}, + {0, 21, false, false}, {0, 38, false, false}, {1108, 21, true, true}, {1108, 71, false, false}, + {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, {1108, 21, true, true}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, + {1108, 49, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, {1108, 21, false, false}, + {1108, 87, false, false}, {1108, 46, true, false}, {1108, 43, false, false}, {369, 24, false, false}, + {369, 16, false, false}, {1244, 21, true, true}, {1244, 32, false, false}, {1244, 38, false, false}, + {1244, 38, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, {1244, 134, false, false}, + {1244, 35, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, + {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, {1244, 21, true, true}, + {1244, 46, false, false}, {1244, 63, false, false}, {1244, 49, false, true}, {1244, 82, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 41, false, false}, {830, 46, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 38, false, false}, + {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, {1244, 43, false, true}, + {1244, 87, false, false}, {1244, 21, true, true}, {1244, 71, false, false}, {1244, 38, false, false}, + {1244, 21, true, true}, {1244, 38, false, false}, {1244, 32, false, false}, {1244, 38, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 43, false, false}, {1244, 43, false, false}, + {1244, 93, true, false}, {1244, 13, false, false}, {1244, 24, false, false}, {1396, 21, true, true}, + {1396, 71, false, false}, {1396, 38, false, false}, {1396, 21, false, true}, {1396, 21, false, false}, + {1396, 87, false, false}, {1396, 21, true, true}, {1396, 21, false, false}, {1396, 68, false, false}, + {1396, 19, false, false}, {1396, 65, false, false}, {1396, 65, false, false}, {1396, 21, true, true}, + {1396, 21, false, false}, {1396, 49, false, false}, {1396, 38, false, false}, {1396, 21, true, true}, + {1396, 60, false, false}, {1396, 10, false, false}, {1396, 30, false, false}, {1661, 27, true, true}, + {1661, 24, false, false}, {1661, 21, false, false}, {1661, 27, false, false}, {1661, 38, false, false}, + {1479, 41, true, true}, {1479, 52, false, false}, {1479, 38, false, false}, {1396, 21, true, true}, + {1396, 71, false, false}, {1396, 38, false, false}, {1396, 19, false, true}, {1108, 21, false, false}, + {1108, 43, false, false}, {1108, 46, false, false}, {1108, 10, true, true}, {1108, 10, false, false}, + {1108, 71, false, false}, {1108, 38, false, false}, {1108, 43, false, true}, {1108, 87, false, false}, + {1108, 21, true, true}, {1108, 71, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 35, false, false}, {1108, 35, false, false}, {1108, 38, false, false}, {1108, 21, true, true}, + {1108, 21, false, false}, {1108, 49, false, false}, {1108, 38, false, false}, {1108, 27, true, false}, + {1108, 16, false, false}, {1108, 49, false, false}, {1108, 21, false, false}, {1108, 16, false, false}, + {1244, 21, true, true}, {1244, 10, false, false}, {1244, 60, false, false}, {1244, 19, false, false}, + {1244, 19, false, false}, {1244, 21, false, true}, {1244, 21, false, false}, {1244, 87, false, false}, + {1244, 21, true, true}, {1244, 21, false, false}, {1244, 49, false, false}, {1244, 38, false, false}, + {1244, 57, false, true}, {1244, 74, false, false}, {1244, 21, true, true}, {1244, 21, false, false}, + {1244, 49, false, false}, {1244, 38, false, false}, {1244, 21, false, true}, {1244, 84, false, false}, + {415, 24, false, false}, {830, 21, true, true}, {830, 139, false, false}, {830, 101, false, false}, + {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, {830, 16, false, false}, + {830, 21, false, false}, {830, 21, true, true}, {830, 21, false, false}, {830, 49, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 71, false, false}, {830, 38, false, false}, + {830, 43, false, true}, {830, 87, false, false}, {830, 21, true, true}, {830, 71, false, false}, + {830, 38, false, false}, {830, 21, true, true}, {830, 30, false, false}, {830, 41, false, false}, + {830, 16, false, false}, {830, 21, false, false}, {830, 21, true, true}, {830, 21, false, false}, + {830, 87, false, false}, {830, 93, true, false}, {830, 38, false, false}, {830, 21, true, true}, + {830, 71, false, false}, {830, 38, false, false}, {830, 43, false, true}, {830, 87, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {830, 13, false, false}, {830, 27, false, false}, + {349, 46, false, false}, {1108, 63, false, false}, {415, 19, false, false}, {349, 49, false, false}, + {349, 21, true, true}, {349, 21, false, false}, {349, 49, false, false}, {349, 38, false, false}, + {1108, 21, false, true}, {1108, 16, false, false}, {1108, 16, false, false}, {349, 76, false, false}, + {1108, 21, true, true}, {1108, 38, false, false}, {349, 32, false, false}, {349, 38, false, false}, + {1108, 21, true, true}, {1108, 21, false, false}, {1108, 16, false, false}, {415, 10, false, false}, + {349, 21, false, false}, {349, 38, false, false}, {1108, 21, false, true}, {1108, 41, false, false}, + {277, 10, false, false}, {0, 10, false, false}, {0, 13, false, false}, {0, 32, false, false}, + {1108, 21, true, true}, {1108, 16, false, false}, {1108, 32, false, false}, {0, 21, false, false}, + {0, 38, false, false}, {0, 21, true, true}, {0, 52, false, false}, {0, 57, false, false}, + {0, 43, false, true}, {0, 87, false, false}, {0, 21, true, true}, {0, 46, false, false}, + {0, 63, false, false}, {0, 21, true, true}, {0, 74, false, false}, {0, 35, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 115, true, false}, + {0, 16, false, false}, {0, 21, true, true}, {0, 71, false, false}, {0, 38, false, false}, + {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 95, false, false}, {0, 123, false, false}, {0, 21, true, true}, + {0, 74, false, false}, {0, 35, false, false}, {0, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, true, true}, {0, 241, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 52, false, false}, {0, 35, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 24, false, false}, {0, 63, false, false}, {554, 21, true, true}, + {554, 109, false, false}, {554, 43, false, true}, {554, 87, false, false}, {0, 21, true, true}, + {0, 43, false, false}, {0, 65, false, false}, {554, 21, true, true}, {554, 63, false, false}, + {554, 46, false, false}, {554, 21, true, true}, {554, 21, false, false}, {554, 87, false, false}, + {554, 82, true, false}, {554, 49, false, false}, {523, 21, true, true}, {523, 54, false, false}, + {523, 54, false, false}, {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 219, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 46, false, false}, {0, 41, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 87, false, false}, + {0, 43, false, true}, {0, 87, false, false}, {0, 21, true, true}, {0, 35, false, false}, + {0, 74, false, false}, {0, 76, true, false}, {0, 54, false, false}, {0, 21, true, true}, + {0, 82, false, false}, {0, 27, false, false}, {0, 43, false, true}, {0, 87, false, false}, + {0, 21, true, true}, {0, 52, false, false}, {0, 57, false, false}, {0, 21, true, true}, + {0, 65, false, false}, {0, 43, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 90, true, false}, {0, 41, false, false}, {0, 21, true, true}, + {0, 54, false, false}, {0, 54, false, false}, {0, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 87, false, false}, + {0, 131, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 49, false, false}, + {0, 38, false, false}, {0, 21, false, true}, {0, 109, false, false}, {0, 21, true, true}, + {0, 241, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 13, false, false}, + {0, 74, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 13, false, false}, + {0, 74, false, false}, {554, 21, true, true}, {554, 109, false, false}, {554, 43, false, true}, + {554, 87, false, false}, {0, 21, true, true}, {0, 54, false, false}, {0, 54, false, false}, + {554, 21, true, true}, {554, 106, false, false}, {554, 24, true, true}, {554, 21, false, false}, + {554, 87, false, false}, {554, 46, true, false}, {554, 84, false, false}, {523, 21, true, true}, + {523, 60, false, false}, {523, 49, false, false}, {0, 43, false, true}, {0, 87, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 219, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 10, false, false}, {0, 76, false, false}, {0, 21, true, true}, + {0, 76, false, false}, {0, 32, false, false}, {0, 21, true, true}, {0, 109, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 24, false, false}, {0, 63, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 16, false, false}, {0, 71, false, false}, {0, 21, true, true}, + {0, 52, false, false}, {0, 57, false, false}, {0, 43, false, true}, {0, 87, false, false}, + {0, 21, true, true}, {0, 46, false, false}, {0, 63, false, false}, {0, 21, true, true}, + {0, 74, false, false}, {0, 35, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 115, true, false}, {0, 16, false, false}, {0, 21, true, true}, + {0, 71, false, false}, {0, 38, false, false}, {0, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 95, false, false}, + {0, 123, false, false}, {0, 21, true, true}, {0, 74, false, false}, {0, 35, false, false}, + {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 21, true, true}, + {0, 241, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 52, false, false}, + {0, 35, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 24, false, false}, + {0, 63, false, false}, {554, 21, true, true}, {554, 109, false, false}, {554, 43, false, true}, + {554, 87, false, false}, {0, 21, true, true}, {0, 43, false, false}, {0, 65, false, false}, + {554, 21, true, true}, {554, 63, false, false}, {554, 46, false, false}, {554, 21, true, true}, + {554, 21, false, false}, {554, 87, false, false}, {554, 82, true, false}, {554, 49, false, false}, + {523, 21, true, true}, {523, 54, false, false}, {523, 54, false, false}, {0, 21, false, true}, + {0, 21, false, false}, {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 219, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 46, false, false}, + {0, 41, false, false}, {0, 21, false, true}, {0, 109, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 87, false, false}, {0, 43, false, true}, {0, 87, false, false}, + {0, 21, true, true}, {0, 35, false, false}, {0, 74, false, false}, {0, 76, true, false}, + {0, 54, false, false}, {0, 21, true, true}, {0, 82, false, false}, {0, 27, false, false}, + {0, 43, false, true}, {0, 87, false, false}, {0, 21, true, true}, {0, 52, false, false}, + {0, 57, false, false}, {0, 21, true, true}, {0, 65, false, false}, {0, 43, false, false}, + {0, 21, true, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 90, true, false}, + {0, 41, false, false}, {0, 21, true, true}, {0, 54, false, false}, {0, 54, false, false}, + {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 87, false, false}, {0, 131, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 49, false, false}, {0, 38, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, true, true}, {0, 241, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 13, false, false}, {0, 74, false, false}, {0, 21, true, true}, + {0, 21, false, false}, {0, 13, false, false}, {0, 74, false, false}, {554, 21, true, true}, + {554, 109, false, false}, {554, 43, false, true}, {554, 87, false, false}, {0, 21, true, true}, + {0, 54, false, false}, {0, 54, false, false}, {554, 21, true, true}, {554, 106, false, false}, + {554, 24, true, true}, {554, 21, false, false}, {554, 87, false, false}, {554, 46, true, false}, + {554, 84, false, false}, {523, 21, true, true}, {523, 60, false, false}, {523, 49, false, false}, + {0, 43, false, true}, {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 219, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 10, false, false}, + {0, 76, false, false}, {0, 21, true, true}, {0, 76, false, false}, {0, 32, false, false}, + {0, 21, true, true}, {0, 109, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 24, false, false}, {0, 63, false, false}, {0, 21, true, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, true, true}, {0, 21, false, false}, {0, 16, false, false}, + {0, 71, false, false}, {0, 21, false, true}, {0, 109, false, false}, {0, 43, false, true}, + {0, 87, false, false}, {0, 21, false, true}, {0, 109, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, false, true}, {0, 21, false, false}, {0, 219, false, false}, + {0, 21, false, true}, {0, 109, false, false}, {0, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, false, true}, {0, 21, false, false}, {0, 219, false, false}, + {0, 21, false, true}, {0, 109, false, false}, {0, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, false, true}, {0, 241, false, false}, {0, 21, false, true}, + {0, 21, false, false}, {0, 87, false, false}, {0, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {554, 21, false, true}, {554, 109, false, false}, {554, 43, false, true}, + {554, 87, false, false}, {0, 21, false, true}, {0, 109, false, false}, {554, 21, false, true}, + {554, 109, false, false}, {554, 21, false, true}, {554, 21, false, false}, {554, 219, false, false}, + {523, 21, false, true}, {523, 109, false, false}, {0, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, false, true}, {0, 21, false, false}, {0, 219, false, false}, + {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, + {0, 43, false, true}, {0, 87, false, false}, {0, 21, false, true}, {0, 241, false, false}, + {0, 21, false, true}, {0, 109, false, false}, {0, 43, false, true}, {0, 87, false, false}, + {0, 21, false, true}, {0, 109, false, false}, {0, 21, false, true}, {0, 109, false, false}, + {0, 21, false, true}, {0, 21, false, false}, {0, 219, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, + {0, 21, false, true}, {0, 21, false, false}, {0, 219, false, false}, {0, 21, false, true}, + {0, 21, false, false}, {0, 87, false, false}, {0, 21, false, true}, {0, 109, false, false}, + {0, 21, false, true}, {0, 241, false, false}, {0, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, + {554, 21, false, true}, {554, 109, false, false}, {554, 43, false, true}, {554, 87, false, false}, + {0, 21, false, true}, {0, 109, false, false}, {554, 21, false, true}, {554, 109, false, false}, + {554, 21, false, true}, {554, 21, false, false}, {554, 219, false, false}, {523, 21, false, true}, + {523, 109, false, false}, {0, 43, false, true}, {0, 87, false, false}, {0, 21, false, true}, + {0, 21, false, false}, {0, 219, false, false}, {0, 21, false, true}, {0, 21, false, false}, + {0, 87, false, false}, {0, 21, false, true}, {0, 109, false, false}, {0, 21, false, true}, + {0, 109, false, false}, {0, 21, false, true}, {0, 21, false, false}, {0, 87, false, false}, + {0, 10, false, true}, {932, 10, true, false}, {932, 109, false, false}, {932, 43, false, true}, + {932, 16, false, false}, {932, 19, false, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/UtS.mid b/scripts/midillis/Alla_Turca/UtS.mid new file mode 100644 index 0000000..92d2b13 Binary files /dev/null and b/scripts/midillis/Alla_Turca/UtS.mid differ diff --git a/scripts/midillis/Alla_Turca/UtS_c.txt b/scripts/midillis/Alla_Turca/UtS_c.txt new file mode 100644 index 0000000..d315581 --- /dev/null +++ b/scripts/midillis/Alla_Turca/UtS_c.txt @@ -0,0 +1,801 @@ +// Converted from: UtS.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_UtS[] = { + {0, 1200, false, false}, {0, 150, true, false}, {0, 150, false, false}, {0, 150, false, false}, + {587, 159, false, false}, {587, 140, false, false}, {587, 300, false, false}, {466, 150, false, false}, + {523, 300, false, false}, {622, 300, false, false}, {587, 278, false, false}, {587, 21, true, false}, + {466, 278, false, false}, {466, 21, true, false}, {0, 150, false, true}, {0, 150, false, false}, + {0, 43, false, false}, {0, 106, false, false}, {466, 300, false, false}, {466, 300, false, false}, + {0, 150, false, false}, {440, 75, false, false}, {2093, 75, false, false}, {2349, 150, false, false}, + {2093, 150, false, false}, {1864, 150, false, false}, {2093, 150, false, false}, {1864, 150, false, false}, + {1396, 150, false, false}, {1174, 75, false, false}, {0, 68, false, false}, {1174, 156, true, false}, + {1396, 150, false, false}, {1864, 34, false, false}, {1864, 115, false, false}, {2349, 150, false, false}, + {587, 150, false, false}, {2349, 150, false, false}, {587, 150, false, false}, {1864, 150, false, false}, + {2093, 150, false, false}, {523, 150, false, false}, {2489, 150, false, false}, {622, 150, false, false}, + {2349, 150, false, false}, {587, 118, false, false}, {587, 31, true, false}, {1864, 150, false, false}, + {466, 110, false, false}, {466, 39, true, false}, {932, 150, false, true}, {1174, 99, false, false}, + {1174, 49, false, false}, {1396, 150, false, false}, {1864, 150, false, false}, {466, 150, false, false}, + {1864, 150, false, false}, {466, 150, false, false}, {1046, 150, false, false}, {1760, 150, false, false}, + {440, 143, false, false}, {2093, 156, true, false}, {523, 62, false, false}, {523, 87, false, false}, + {1864, 74, false, false}, {2093, 74, false, false}, {1864, 74, false, false}, {2093, 56, false, false}, + {2093, 18, true, false}, {1864, 74, false, false}, {2093, 74, false, false}, {1864, 43, false, false}, + {1864, 87, false, false}, {1864, 18, true, false}, {293, 150, false, true}, {0, 114, false, false}, + {698, 10, false, false}, {698, 101, false, false}, {349, 35, false, false}, {698, 18, true, false}, + {698, 18, false, false}, {698, 75, false, false}, {349, 48, false, false}, {349, 26, true, false}, + {0, 123, false, false}, {466, 26, false, false}, {466, 101, false, true}, {587, 10, true, false}, + {698, 37, false, false}, {698, 70, false, false}, {0, 34, false, false}, {466, 42, false, false}, + {466, 60, false, false}, {0, 39, false, false}, {440, 53, false, false}, {440, 150, false, true}, + {0, 90, false, false}, {523, 29, true, false}, {698, 29, false, false}, {698, 82, false, true}, + {261, 67, false, false}, {0, 15, false, false}, {0, 85, false, false}, {466, 48, false, false}, + {466, 150, false, true}, {466, 42, false, false}, {0, 56, false, false}, {698, 51, true, false}, + {698, 60, false, true}, {349, 65, false, false}, {293, 23, false, false}, {0, 99, false, false}, + {0, 49, true, false}, {293, 150, false, true}, {349, 106, false, false}, {698, 43, false, false}, + {698, 21, false, false}, {698, 46, false, false}, {349, 20, false, false}, {349, 29, false, false}, + {698, 18, true, false}, {698, 12, false, false}, {698, 81, false, false}, {0, 62, false, false}, + {0, 103, false, false}, {0, 26, false, false}, {349, 26, false, false}, {587, 115, false, false}, + {698, 15, true, false}, {698, 18, false, false}, {698, 78, false, false}, {0, 21, false, false}, + {349, 49, false, false}, {587, 21, false, false}, {587, 89, false, false}, {587, 39, false, false}, + {523, 150, false, false}, {261, 56, false, false}, {0, 37, false, false}, {698, 18, true, false}, + {698, 37, false, false}, {698, 56, false, false}, {349, 87, false, false}, {0, 21, false, false}, + {0, 81, false, false}, {293, 53, false, false}, {293, 150, false, true}, {0, 112, false, false}, + {698, 29, true, false}, {698, 82, false, false}, {0, 79, false, false}, {0, 107, false, false}, + {0, 37, true, false}, {293, 150, false, true}, {0, 124, false, false}, {349, 18, false, false}, + {698, 90, false, false}, {698, 21, false, false}, {0, 34, false, false}, {466, 10, true, false}, + {698, 112, false, false}, {349, 35, false, false}, {0, 53, false, false}, {0, 70, false, false}, + {466, 26, false, false}, {466, 51, true, true}, {261, 75, false, false}, {587, 12, false, false}, + {698, 10, false, false}, {698, 35, false, false}, {698, 53, false, false}, {698, 12, false, false}, + {0, 67, false, false}, {0, 92, false, false}, {0, 12, true, false}, {440, 26, false, false}, + {440, 131, false, true}, {440, 18, false, false}, {0, 112, false, false}, {698, 12, true, false}, + {698, 24, false, false}, {698, 82, false, true}, {261, 67, false, false}, {0, 14, false, false}, + {0, 96, false, false}, {466, 18, false, false}, {466, 20, true, false}, {466, 150, false, true}, + {466, 57, false, false}, {0, 49, false, false}, {698, 18, true, false}, {698, 23, false, false}, + {698, 70, false, true}, {349, 64, false, false}, {349, 15, false, false}, {349, 17, false, false}, + {0, 92, false, false}, {0, 40, true, false}, {293, 150, false, true}, {349, 82, false, false}, + {349, 37, false, false}, {698, 29, false, false}, {698, 10, false, false}, {698, 59, false, false}, + {698, 12, false, false}, {349, 35, false, false}, {587, 12, false, false}, {698, 18, true, false}, + {698, 87, false, false}, {0, 42, false, false}, {0, 20, false, false}, {0, 117, false, false}, + {349, 32, false, false}, {587, 107, false, false}, {698, 42, true, false}, {698, 70, false, false}, + {0, 34, false, false}, {349, 45, false, false}, {587, 31, false, false}, {587, 75, false, false}, + {587, 14, false, false}, {587, 29, false, false}, {523, 150, false, false}, {261, 31, false, false}, + {0, 60, false, false}, {698, 20, true, false}, {698, 37, false, false}, {698, 57, false, false}, + {349, 92, false, false}, {349, 24, false, false}, {0, 59, false, false}, {293, 65, false, false}, + {466, 150, false, false}, {0, 84, false, false}, {0, 15, true, false}, {698, 96, false, false}, + {698, 15, false, false}, {0, 89, false, false}, {0, 110, false, false}, {0, 37, true, false}, + {391, 150, false, false}, {466, 99, false, false}, {466, 10, false, false}, {622, 39, false, false}, + {622, 73, false, false}, {0, 14, false, false}, {0, 24, false, false}, {622, 17, false, false}, + {622, 20, true, false}, {783, 75, false, false}, {783, 71, false, false}, {0, 128, false, false}, + {466, 24, false, false}, {783, 46, false, false}, {783, 65, false, false}, {783, 37, true, false}, + {391, 76, false, false}, {0, 35, false, false}, {391, 71, false, false}, {391, 59, false, false}, + {0, 26, false, false}, {349, 29, false, false}, {698, 150, false, false}, {349, 43, false, false}, + {0, 71, false, false}, {587, 34, true, false}, {587, 78, false, false}, {0, 39, false, false}, + {587, 32, false, false}, {349, 14, false, false}, {349, 65, false, false}, {0, 26, false, false}, + {349, 43, false, false}, {466, 150, false, false}, {0, 45, false, false}, {0, 59, false, false}, + {587, 26, true, false}, {587, 18, false, false}, {587, 67, false, false}, {0, 53, false, false}, + {0, 29, false, false}, {0, 12, false, false}, {0, 93, false, false}, {0, 43, true, false}, + {349, 150, false, false}, {440, 112, false, false}, {523, 37, false, false}, {523, 75, false, false}, + {0, 12, false, false}, {0, 29, false, false}, {523, 26, false, false}, {698, 85, true, false}, + {698, 70, false, false}, {0, 12, false, false}, {0, 123, false, false}, {523, 14, false, false}, + {622, 68, false, false}, {622, 34, false, false}, {622, 46, true, false}, {440, 12, false, false}, + {440, 53, false, false}, {0, 42, false, false}, {466, 51, false, false}, {466, 31, false, false}, + {0, 53, false, false}, {523, 32, false, false}, {587, 190, false, false}, {0, 82, false, false}, + {587, 12, false, false}, {587, 37, true, false}, {587, 62, false, false}, {523, 43, false, false}, + {587, 43, false, false}, {523, 18, false, false}, {349, 18, false, false}, {349, 31, false, false}, + {0, 48, false, false}, {466, 260, false, false}, {349, 14, true, false}, {587, 57, false, false}, + {587, 48, false, false}, {0, 101, false, false}, {0, 40, false, false}, {0, 78, false, false}, + {0, 31, true, false}, {1864, 150, false, false}, {1760, 103, false, false}, {1760, 28, false, false}, + {1760, 18, false, false}, {1567, 65, false, false}, {1567, 24, false, false}, {1567, 18, false, false}, + {1567, 21, false, false}, {1567, 18, false, false}, {1396, 71, true, false}, {1396, 78, false, false}, + {1244, 117, false, false}, {1244, 32, false, false}, {1174, 114, false, false}, {1174, 35, true, false}, + {1046, 76, false, false}, {1046, 24, false, false}, {1046, 48, false, false}, {932, 31, false, false}, + {932, 43, false, false}, {932, 32, false, false}, {932, 42, false, false}, {932, 150, false, false}, + {932, 56, false, false}, {932, 31, false, false}, {932, 18, false, false}, {932, 15, false, false}, + {932, 28, true, false}, {1174, 49, false, false}, {1174, 43, false, false}, {1174, 56, false, false}, + {1174, 56, false, false}, {1174, 43, false, false}, {1174, 49, false, false}, {1396, 150, false, false}, + {1864, 75, false, false}, {1864, 18, false, false}, {1864, 24, false, false}, {1864, 31, true, false}, + {1760, 56, false, false}, {1760, 56, false, false}, {1760, 37, false, false}, {1864, 23, false, false}, + {1864, 99, false, false}, {1864, 26, true, false}, {1396, 37, false, false}, {1396, 37, false, false}, + {1396, 37, false, false}, {1396, 37, false, false}, {1244, 37, false, false}, {1174, 37, false, false}, + {1046, 28, false, false}, {932, 15, false, false}, {932, 31, false, false}, {880, 37, false, false}, + {783, 28, false, false}, {698, 46, false, false}, {622, 18, false, false}, {622, 14, true, false}, + {587, 42, false, false}, {523, 37, false, false}, {466, 37, false, false}, {391, 35, false, false}, + {391, 39, false, false}, {311, 37, false, false}, {311, 37, false, true}, {293, 18, false, false}, + {523, 18, false, false}, {523, 37, false, false}, {523, 37, false, false}, {523, 37, false, false}, + {523, 18, false, false}, {523, 18, false, false}, {440, 37, false, false}, {466, 37, false, false}, + {523, 15, false, false}, {466, 21, false, false}, {587, 37, false, false}, {622, 26, false, false}, + {622, 10, false, false}, {698, 28, false, false}, {783, 29, false, false}, {783, 17, false, false}, + {880, 15, true, false}, {880, 21, false, false}, {932, 37, false, false}, {932, 37, false, false}, + {932, 37, false, false}, {932, 37, false, false}, {0, 62, false, false}, {0, 23, false, false}, + {587, 26, false, false}, {587, 85, false, false}, {523, 95, false, false}, {0, 96, false, false}, + {466, 246, false, false}, {0, 56, false, false}, {1174, 56, false, false}, {1174, 264, true, false}, + {932, 35, false, true}, {932, 300, true, false}, {0, 49, false, false}, {0, 235, false, false}, + {0, 45, true, false}, {587, 84, false, false}, {587, 48, false, false}, {0, 40, true, false}, + {523, 85, false, false}, {523, 73, false, false}, {0, 70, false, false}, {0, 28, true, false}, + {466, 118, false, false}, {0, 18, true, false}, {783, 17, false, true}, {783, 132, false, false}, + {783, 132, false, true}, {783, 17, false, false}, {783, 84, false, false}, {783, 10, false, false}, + {783, 49, false, false}, {783, 79, true, false}, {783, 35, false, false}, {783, 39, false, false}, + {783, 75, false, false}, {783, 75, false, false}, {783, 75, false, false}, {783, 31, false, false}, + {783, 21, false, false}, {783, 21, true, false}, {783, 115, false, false}, {783, 34, false, false}, + {783, 73, false, false}, {783, 76, false, false}, {698, 150, false, false}, {698, 106, false, false}, + {698, 28, true, false}, {698, 15, false, false}, {698, 34, false, false}, {698, 62, false, false}, + {698, 17, false, false}, {698, 28, true, false}, {698, 15, false, false}, {698, 96, false, false}, + {698, 24, false, false}, {698, 20, true, false}, {698, 18, false, false}, {698, 106, false, false}, + {698, 24, false, false}, {698, 115, false, false}, {698, 12, true, false}, {698, 15, false, false}, + {698, 96, false, true}, {698, 59, false, false}, {698, 21, false, false}, {698, 79, false, false}, + {698, 10, false, false}, {698, 37, true, false}, {880, 150, false, true}, {880, 114, false, false}, + {880, 35, false, false}, {880, 76, false, false}, {880, 32, false, false}, {880, 20, false, false}, + {880, 10, false, false}, {880, 84, true, false}, {880, 75, false, false}, {880, 75, false, false}, + {880, 75, false, false}, {880, 75, false, false}, {880, 40, false, false}, {880, 34, true, false}, + {880, 78, false, false}, {880, 29, false, false}, {880, 42, false, false}, {880, 128, false, false}, + {880, 21, true, false}, {932, 56, false, false}, {932, 71, false, false}, {932, 21, true, false}, + {932, 49, false, false}, {932, 64, false, false}, {932, 12, false, false}, {932, 23, true, false}, + {932, 34, false, false}, {932, 42, false, false}, {932, 29, false, false}, {932, 43, true, false}, + {932, 18, false, false}, {932, 62, false, false}, {932, 68, false, false}, {932, 29, false, false}, + {932, 104, true, false}, {932, 15, false, false}, {932, 129, false, false}, {932, 20, true, false}, + {932, 21, false, false}, {932, 70, false, false}, {932, 57, false, false}, {932, 101, false, false}, + {932, 10, false, false}, {932, 18, false, false}, {932, 18, true, false}, {783, 150, false, true}, + {783, 112, false, true}, {783, 14, false, false}, {783, 23, false, false}, {783, 68, false, false}, + {783, 20, false, false}, {783, 46, false, false}, {783, 14, false, false}, {783, 75, true, false}, + {783, 28, false, false}, {783, 46, false, false}, {783, 39, false, false}, {783, 35, false, false}, + {783, 43, false, false}, {783, 31, false, false}, {783, 65, false, false}, {783, 59, false, false}, + {783, 12, true, false}, {783, 12, false, false}, {783, 96, false, false}, {783, 53, false, false}, + {783, 21, false, false}, {783, 59, false, false}, {783, 40, false, false}, {783, 28, false, false}, + {698, 150, false, true}, {698, 76, false, false}, {698, 37, false, false}, {698, 35, true, false}, + {698, 42, false, false}, {698, 39, false, false}, {349, 35, false, false}, {698, 21, true, false}, + {698, 10, false, false}, {698, 75, false, false}, {587, 12, false, false}, {587, 39, false, false}, + {587, 23, true, false}, {440, 75, false, false}, {523, 51, false, false}, {523, 23, false, false}, + {440, 75, false, false}, {523, 12, false, false}, {698, 34, false, false}, {698, 28, true, false}, + {698, 12, false, false}, {698, 37, false, false}, {349, 48, false, false}, {466, 51, false, false}, + {466, 49, false, false}, {0, 42, false, false}, {0, 14, false, false}, {587, 12, false, false}, + {587, 31, true, false}, {932, 150, false, true}, {932, 95, false, false}, {932, 54, false, false}, + {932, 29, false, false}, {932, 28, false, false}, {932, 45, false, false}, {932, 28, false, false}, + {932, 18, true, false}, {932, 65, false, false}, {932, 84, false, false}, {932, 48, false, false}, + {932, 26, false, false}, {932, 75, false, false}, {932, 75, false, false}, {932, 37, false, false}, + {932, 18, false, false}, {932, 18, true, false}, {932, 75, false, false}, {932, 90, false, false}, + {932, 134, false, false}, {830, 143, false, false}, {830, 71, true, false}, {830, 57, false, false}, + {830, 10, false, false}, {830, 15, true, false}, {830, 49, false, false}, {830, 35, false, false}, + {830, 28, false, false}, {830, 17, false, false}, {830, 18, true, false}, {830, 10, false, false}, + {830, 65, false, false}, {830, 10, false, false}, {830, 34, false, false}, {830, 28, true, false}, + {830, 42, false, false}, {830, 101, false, false}, {830, 109, false, false}, {830, 23, true, false}, + {830, 23, false, false}, {830, 35, false, false}, {830, 53, false, false}, {830, 31, false, false}, + {830, 29, false, false}, {830, 45, false, false}, {830, 37, false, false}, {830, 32, false, false}, + {830, 34, true, false}, {783, 150, false, false}, {783, 62, false, false}, {783, 56, false, false}, + {783, 31, false, false}, {783, 28, false, true}, {783, 53, false, false}, {783, 40, false, false}, + {783, 10, true, false}, {783, 17, false, false}, {783, 35, false, true}, {783, 56, false, false}, + {783, 46, false, false}, {783, 10, false, false}, {783, 150, false, false}, {783, 56, false, false}, + {783, 56, false, false}, {783, 26, true, false}, {783, 10, false, false}, {783, 81, false, false}, + {783, 20, false, false}, {783, 29, false, false}, {783, 18, false, false}, {783, 149, false, false}, + {880, 57, false, false}, {880, 92, false, false}, {880, 120, false, false}, {880, 29, true, false}, + {880, 37, false, false}, {880, 45, false, false}, {880, 28, false, false}, {880, 14, true, false}, + {880, 24, false, false}, {880, 79, false, false}, {880, 31, false, false}, {880, 39, true, false}, + {880, 34, false, false}, {880, 107, false, false}, {880, 114, false, false}, {880, 14, true, false}, + {880, 18, false, false}, {880, 10, false, false}, {1046, 82, false, false}, {1046, 21, false, false}, + {1046, 45, false, false}, {1046, 32, false, false}, {1046, 17, false, false}, {1046, 65, false, false}, + {1046, 34, true, false}, {932, 150, false, false}, {932, 18, false, false}, {932, 87, false, false}, + {932, 21, false, false}, {932, 21, false, false}, {932, 65, false, false}, {932, 40, false, false}, + {932, 12, false, false}, {932, 14, false, false}, {932, 17, true, false}, {932, 68, false, false}, + {932, 12, false, false}, {932, 68, false, false}, {932, 123, false, false}, {932, 26, false, false}, + {932, 89, false, false}, {932, 10, false, false}, {932, 20, false, false}, {932, 29, true, false}, + {932, 51, false, false}, {932, 98, false, false}, {932, 21, false, false}, {932, 67, false, false}, + {932, 60, false, false}, {783, 134, false, false}, {783, 15, true, false}, {783, 51, false, false}, + {783, 60, false, false}, {783, 10, false, false}, {783, 26, true, false}, {1046, 37, false, false}, + {1046, 37, false, false}, {1046, 31, false, false}, {1046, 10, true, false}, {1046, 32, false, false}, + {1046, 62, false, false}, {1046, 14, false, false}, {1046, 73, true, false}, {1318, 12, true, false}, + {1318, 107, false, false}, {1318, 29, false, false}, {1318, 109, false, false}, {1318, 40, true, false}, + {1567, 76, false, false}, {1567, 73, false, false}, {1567, 51, false, false}, {1567, 45, false, false}, + {1567, 42, false, false}, {1567, 10, true, false}, {783, 150, false, false}, {783, 60, false, false}, + {783, 37, false, false}, {783, 15, false, false}, {783, 35, false, false}, {783, 76, false, false}, + {783, 12, false, false}, {783, 12, false, false}, {783, 20, false, false}, {783, 28, false, false}, + {783, 64, true, false}, {783, 85, false, false}, {783, 112, false, false}, {783, 37, false, false}, + {783, 46, false, false}, {783, 65, false, false}, {783, 24, false, false}, {783, 12, true, false}, + {783, 12, false, false}, {783, 62, false, false}, {783, 26, false, false}, {783, 48, false, false}, + {783, 42, false, false}, {783, 64, false, false}, {783, 37, false, false}, {880, 131, true, false}, + {880, 21, false, false}, {880, 64, true, false}, {880, 20, false, false}, {880, 12, false, false}, + {880, 20, false, false}, {880, 20, false, false}, {880, 15, true, false}, {880, 56, false, false}, + {880, 17, false, false}, {880, 20, false, false}, {880, 20, false, false}, {880, 23, false, false}, + {880, 12, true, false}, {880, 56, false, false}, {880, 71, false, false}, {880, 21, true, false}, + {880, 21, false, false}, {880, 96, false, false}, {880, 31, false, false}, {880, 123, false, false}, + {880, 26, true, false}, {880, 18, false, false}, {880, 73, false, false}, {880, 57, false, false}, + {880, 42, false, false}, {880, 79, false, false}, {880, 28, true, false}, {466, 150, false, false}, + {466, 96, false, false}, {466, 53, false, false}, {0, 150, false, false}, {587, 46, false, false}, + {587, 253, false, false}, {587, 300, false, false}, {466, 150, false, false}, {523, 300, false, false}, + {622, 300, false, false}, {587, 279, false, false}, {587, 20, true, false}, {466, 271, false, false}, + {466, 28, false, false}, {0, 150, false, true}, {0, 150, false, false}, {0, 150, false, false}, + {466, 300, false, false}, {466, 300, false, false}, {0, 150, false, false}, {440, 273, false, false}, + {440, 26, true, false}, {523, 203, false, false}, {523, 96, false, false}, {0, 74, false, false}, + {0, 74, false, false}, {0, 74, false, false}, {0, 62, false, false}, {0, 12, true, false}, + {0, 74, false, false}, {0, 74, false, false}, {0, 34, false, false}, {0, 82, false, false}, + {0, 32, true, false}, {698, 150, false, true}, {698, 137, false, false}, {698, 78, false, false}, + {698, 17, false, false}, {698, 48, false, false}, {698, 18, true, false}, {698, 134, false, false}, + {698, 15, true, false}, {698, 24, false, false}, {698, 115, false, false}, {698, 128, false, true}, + {698, 31, true, false}, {698, 110, false, false}, {698, 60, false, false}, {698, 68, false, false}, + {698, 29, false, false}, {698, 29, false, false}, {698, 150, false, true}, {698, 32, false, false}, + {698, 73, false, false}, {698, 18, true, false}, {698, 24, false, false}, {698, 150, false, true}, + {698, 71, false, false}, {698, 42, false, false}, {698, 35, false, false}, {698, 150, false, true}, + {698, 60, false, false}, {698, 45, false, false}, {698, 21, true, false}, {698, 21, false, true}, + {698, 140, false, true}, {698, 62, false, false}, {698, 59, false, false}, {698, 37, true, false}, + {587, 150, false, true}, {587, 131, false, false}, {587, 18, false, false}, {587, 37, false, false}, + {587, 32, false, false}, {587, 70, false, false}, {587, 143, true, false}, {587, 15, false, false}, + {0, 137, false, false}, {349, 12, false, false}, {587, 34, false, false}, {587, 81, false, false}, + {587, 17, true, false}, {587, 17, false, false}, {0, 112, false, false}, {349, 37, false, false}, + {587, 121, false, false}, {587, 28, false, false}, {349, 150, false, false}, {349, 28, false, false}, + {349, 84, false, false}, {349, 37, true, false}, {349, 142, false, false}, {0, 40, false, false}, + {0, 46, false, false}, {293, 70, false, false}, {587, 150, false, true}, {587, 118, false, false}, + {587, 175, true, false}, {587, 137, false, false}, {587, 18, true, false}, {698, 150, false, true}, + {698, 156, false, false}, {698, 24, false, false}, {698, 46, false, false}, {698, 56, false, false}, + {698, 15, true, false}, {698, 10, false, false}, {698, 139, false, false}, {698, 39, false, false}, + {698, 110, false, false}, {698, 10, false, true}, {698, 26, false, false}, {698, 60, false, false}, + {698, 51, true, false}, {698, 24, false, false}, {698, 112, false, false}, {698, 49, false, false}, + {698, 70, false, false}, {698, 42, true, false}, {698, 146, false, true}, {698, 40, false, false}, + {698, 71, false, false}, {698, 32, true, false}, {698, 157, false, true}, {698, 26, false, false}, + {698, 60, false, false}, {698, 29, false, false}, {698, 23, true, false}, {698, 153, false, true}, + {698, 117, false, false}, {698, 39, true, false}, {698, 150, false, true}, {698, 15, false, false}, + {698, 59, false, false}, {698, 56, false, false}, {698, 18, true, false}, {587, 150, false, true}, + {587, 142, false, false}, {587, 31, false, false}, {587, 70, false, false}, {587, 54, false, false}, + {587, 32, true, false}, {587, 118, false, false}, {0, 150, false, false}, {587, 56, false, false}, + {587, 59, false, false}, {587, 21, true, false}, {587, 12, false, false}, {0, 118, false, false}, + {349, 17, false, false}, {349, 14, false, false}, {587, 81, false, false}, {587, 31, false, false}, + {587, 37, false, false}, {349, 132, false, false}, {349, 17, false, false}, {349, 110, false, false}, + {349, 39, true, false}, {523, 145, false, false}, {349, 104, false, false}, {349, 49, false, false}, + {587, 150, false, false}, {587, 137, false, false}, {587, 14, true, false}, {587, 204, false, false}, + {587, 71, false, false}, {587, 21, true, false}, {622, 150, false, false}, {622, 118, false, false}, + {622, 31, false, false}, {622, 103, false, false}, {622, 34, false, false}, {622, 10, false, false}, + {783, 151, true, false}, {0, 135, false, false}, {466, 14, false, false}, {783, 71, false, false}, + {783, 31, false, false}, {783, 46, true, false}, {0, 124, false, false}, {391, 24, false, false}, + {466, 53, false, false}, {466, 40, false, false}, {466, 26, false, false}, {466, 29, false, false}, + {880, 74, false, false}, {932, 75, false, false}, {932, 31, false, false}, {932, 71, false, false}, + {932, 21, false, false}, {932, 24, true, false}, {932, 139, false, false}, {932, 10, false, false}, + {932, 34, false, false}, {932, 78, false, false}, {932, 37, false, false}, {1174, 150, false, false}, + {1174, 67, false, false}, {1174, 48, false, false}, {1174, 34, true, false}, {932, 150, false, false}, + {932, 23, false, false}, {932, 39, false, false}, {932, 49, false, false}, {932, 37, true, false}, + {523, 150, false, false}, {523, 118, false, false}, {523, 31, false, false}, {698, 51, false, false}, + {698, 24, false, false}, {698, 53, false, false}, {698, 20, true, false}, {880, 150, false, false}, + {0, 129, false, false}, {523, 20, false, false}, {880, 103, false, false}, {880, 20, false, false}, + {880, 15, true, false}, {880, 10, false, false}, {0, 92, false, false}, {466, 57, false, false}, + {783, 15, false, false}, {783, 15, false, false}, {783, 56, false, false}, {783, 46, false, false}, + {783, 15, false, false}, {698, 150, false, false}, {466, 18, false, false}, {466, 90, false, false}, + {523, 28, false, false}, {523, 12, true, false}, {622, 140, false, false}, {466, 53, false, false}, + {466, 75, false, false}, {466, 31, false, false}, {587, 150, false, false}, {293, 32, false, false}, + {0, 82, false, false}, {0, 256, true, false}, {0, 53, false, false}, {0, 24, true, false}, + {466, 150, false, false}, {466, 134, false, false}, {466, 15, false, false}, {622, 65, false, false}, + {622, 39, false, false}, {622, 26, false, false}, {622, 18, true, false}, {783, 145, false, false}, + {0, 131, false, false}, {466, 23, false, false}, {783, 56, false, false}, {783, 42, false, false}, + {783, 51, true, false}, {466, 24, false, false}, {0, 89, false, false}, {391, 35, false, false}, + {466, 15, false, false}, {466, 84, false, false}, {466, 17, false, false}, {466, 32, false, false}, + {587, 150, false, false}, {349, 71, false, false}, {293, 54, false, false}, {466, 23, true, false}, + {587, 146, false, false}, {293, 59, false, false}, {293, 70, false, false}, {349, 23, false, false}, + {698, 150, false, false}, {349, 59, false, false}, {293, 49, false, false}, {293, 23, true, false}, + {466, 17, false, false}, {587, 145, false, false}, {293, 43, false, false}, {293, 65, false, false}, + {293, 45, true, false}, {440, 245, false, false}, {440, 54, true, false}, {2093, 76, false, false}, + {2093, 42, false, false}, {2093, 35, true, false}, {2093, 145, true, false}, {440, 10, false, false}, + {440, 114, false, false}, {440, 24, true, false}, {2093, 85, false, false}, {2093, 92, true, false}, + {2093, 78, false, false}, {2093, 43, true, false}, {1864, 40, false, false}, {1864, 18, false, false}, + {1864, 65, false, false}, {1864, 24, true, false}, {2093, 75, false, false}, {2349, 75, false, false}, + {2349, 112, false, false}, {2349, 10, true, false}, {2349, 26, true, false}, {2093, 165, false, false}, + {2093, 23, false, false}, {2093, 82, false, false}, {2093, 28, true, false}, {1864, 164, false, false}, + {1864, 110, false, false}, {1864, 14, true, false}, {1864, 10, false, false}, {2349, 214, false, false}, + {2349, 26, false, false}, {2349, 31, false, false}, {2349, 28, true, false}, {1864, 199, false, false}, + {1864, 99, false, false}, {0, 281, false, false}, {587, 12, false, false}, {587, 112, true, false}, + {587, 42, false, false}, {523, 126, true, false}, {523, 60, false, false}, {0, 90, false, false}, + {466, 31, false, false}, {466, 82, true, false}, {0, 54, false, false}, {783, 79, true, false}, + {783, 75, false, false}, {783, 75, false, false}, {783, 75, false, false}, {783, 65, false, false}, + {783, 68, false, false}, {783, 15, true, false}, {783, 75, false, false}, {783, 74, false, false}, + {783, 75, false, false}, {783, 75, false, false}, {783, 62, false, false}, {783, 12, false, false}, + {783, 35, false, false}, {783, 39, true, false}, {783, 75, false, false}, {783, 75, false, false}, + {783, 34, false, false}, {783, 40, false, false}, {783, 75, false, false}, {698, 75, false, false}, + {698, 75, false, false}, {698, 75, false, false}, {698, 37, false, false}, {698, 37, true, false}, + {698, 45, false, false}, {698, 29, false, false}, {698, 24, false, false}, {698, 45, true, false}, + {698, 67, false, false}, {698, 12, false, false}, {698, 43, false, false}, {698, 31, true, false}, + {698, 74, true, false}, {698, 59, false, false}, {698, 15, false, false}, {698, 75, false, false}, + {698, 53, false, false}, {698, 21, true, false}, {698, 23, false, false}, {698, 51, false, false}, + {698, 37, false, false}, {698, 37, false, false}, {698, 39, false, false}, {698, 29, false, false}, + {698, 59, false, false}, {698, 21, true, false}, {880, 75, false, false}, {880, 75, false, false}, + {880, 75, false, false}, {880, 75, false, false}, {880, 75, false, false}, {880, 75, false, false}, + {880, 75, true, false}, {880, 24, false, false}, {880, 49, false, false}, {880, 75, false, false}, + {880, 75, false, false}, {880, 53, false, false}, {880, 21, false, false}, {880, 39, false, false}, + {880, 35, true, false}, {880, 75, false, false}, {880, 35, false, false}, {880, 39, false, false}, + {880, 75, false, false}, {880, 56, false, false}, {880, 18, true, false}, {932, 65, false, false}, + {932, 84, false, false}, {932, 75, false, false}, {932, 68, false, false}, {932, 64, true, false}, + {932, 17, false, false}, {932, 43, false, false}, {932, 26, true, false}, {932, 79, false, false}, + {932, 24, false, false}, {932, 28, false, false}, {932, 21, true, false}, {830, 32, false, false}, + {830, 42, false, false}, {830, 62, false, false}, {830, 12, false, false}, {830, 75, false, false}, + {830, 37, false, false}, {830, 37, true, false}, {830, 35, false, false}, {830, 39, false, false}, + {830, 46, false, false}, {830, 28, false, false}, {830, 48, false, false}, {830, 26, false, false}, + {830, 42, false, false}, {830, 14, true, false}, {830, 18, false, false}, {783, 75, false, false}, + {783, 75, false, false}, {783, 62, false, false}, {783, 12, false, false}, {783, 37, false, false}, + {783, 37, false, false}, {783, 65, false, false}, {783, 67, false, false}, {783, 17, true, false}, + {783, 75, false, false}, {783, 75, false, false}, {783, 45, false, false}, {783, 20, false, false}, + {783, 65, false, false}, {783, 18, false, false}, {783, 75, false, false}, {783, 49, false, false}, + {783, 24, true, false}, {783, 12, false, false}, {783, 62, false, false}, {783, 18, false, false}, + {783, 49, false, false}, {783, 75, false, false}, {783, 45, false, false}, {783, 35, false, false}, + {880, 75, false, false}, {880, 75, false, false}, {880, 46, true, false}, {880, 24, false, false}, + {880, 37, false, false}, {880, 28, false, false}, {880, 12, true, false}, {880, 59, false, false}, + {880, 15, false, false}, {880, 43, false, false}, {880, 12, false, false}, {880, 18, true, false}, + {880, 74, false, false}, {880, 43, false, false}, {880, 31, true, false}, {880, 24, false, false}, + {880, 49, false, false}, {880, 57, false, false}, {880, 17, false, false}, {880, 75, false, false}, + {880, 45, false, false}, {880, 29, true, false}, {880, 31, false, false}, {880, 43, false, false}, + {880, 26, false, false}, {880, 48, false, false}, {880, 57, false, false}, {880, 17, false, false}, + {880, 37, false, false}, {880, 18, false, false}, {880, 18, true, false}, {932, 75, false, false}, + {932, 75, false, false}, {932, 21, false, false}, {932, 53, false, false}, {932, 75, false, false}, + {932, 75, false, false}, {932, 65, false, false}, {932, 84, true, false}, {932, 53, false, false}, + {932, 21, false, false}, {932, 28, false, false}, {932, 46, false, false}, {932, 75, false, false}, + {466, 75, false, false}, {293, 53, false, false}, {293, 21, true, false}, {466, 75, false, false}, + {293, 70, false, false}, {466, 79, false, false}, {293, 75, false, false}, {415, 75, false, false}, + {293, 71, false, false}, {415, 70, true, false}, {293, 65, false, false}, {293, 17, true, false}, + {415, 49, false, false}, {415, 24, false, false}, {293, 53, false, false}, {293, 21, true, false}, + {415, 24, false, false}, {587, 49, false, false}, {587, 18, false, false}, {587, 28, false, false}, + {587, 28, true, false}, {587, 49, false, false}, {415, 24, false, false}, {349, 75, false, false}, + {415, 15, false, false}, {523, 59, false, false}, {523, 46, false, false}, {523, 28, true, false}, + {523, 70, false, false}, {293, 53, false, false}, {466, 26, false, false}, {466, 56, false, false}, + {466, 18, false, false}, {466, 14, false, false}, {293, 35, false, false}, {293, 18, true, false}, + {391, 81, false, false}, {311, 75, false, false}, {391, 53, false, false}, {0, 21, false, false}, + {311, 51, false, false}, {466, 23, false, false}, {466, 75, false, false}, {466, 51, false, false}, + {466, 23, true, false}, {622, 74, false, false}, {622, 62, false, false}, {622, 12, false, false}, + {391, 65, false, false}, {311, 84, false, false}, {391, 75, false, false}, {311, 37, false, false}, + {311, 21, true, false}, {391, 15, false, false}, {391, 75, false, false}, {311, 34, false, false}, + {311, 29, false, false}, {523, 10, false, false}, {523, 75, false, false}, {523, 75, false, false}, + {523, 75, false, false}, {523, 26, false, false}, {349, 32, false, false}, {349, 15, true, false}, + {440, 54, false, false}, {440, 20, false, false}, {349, 46, false, false}, {349, 28, true, false}, + {440, 43, false, false}, {440, 31, false, false}, {349, 43, false, false}, {349, 31, true, false}, + {523, 75, false, false}, {523, 37, false, false}, {523, 37, true, false}, {523, 57, false, false}, + {440, 17, false, false}, {349, 75, false, false}, {440, 14, false, false}, {466, 60, false, false}, + {466, 34, false, false}, {466, 40, true, false}, {523, 24, false, false}, {523, 49, false, false}, + {523, 53, false, false}, {523, 21, false, false}, {523, 68, false, false}, {349, 10, false, false}, + {349, 10, false, false}, {523, 35, false, false}, {523, 18, true, false}, {587, 79, false, false}, + {587, 75, false, false}, {587, 18, false, false}, {466, 56, false, false}, {391, 46, false, false}, + {391, 12, false, false}, {587, 15, false, false}, {587, 75, false, false}, {587, 39, false, false}, + {391, 26, false, false}, {783, 21, true, false}, {783, 62, false, false}, {783, 75, false, false}, + {783, 37, false, false}, {783, 37, false, false}, {783, 75, false, false}, {783, 34, false, false}, + {783, 40, false, false}, {783, 29, false, false}, {783, 35, true, false}, {466, 84, false, false}, + {391, 75, false, false}, {466, 10, false, false}, {466, 64, false, false}, {391, 23, false, false}, + {391, 51, false, false}, {523, 75, false, false}, {329, 56, false, false}, {329, 18, true, false}, + {783, 53, false, false}, {783, 21, false, false}, {783, 53, false, false}, {783, 21, true, false}, + {783, 40, false, false}, {783, 34, false, false}, {783, 34, false, false}, {783, 17, true, false}, + {783, 23, false, false}, {783, 64, false, false}, {783, 10, false, false}, {783, 15, false, false}, + {783, 59, true, false}, {587, 10, false, false}, {587, 14, true, false}, {466, 49, false, false}, + {329, 57, false, false}, {523, 17, false, false}, {523, 75, false, false}, {523, 31, false, false}, + {523, 43, true, false}, {783, 26, false, false}, {783, 48, false, false}, {783, 51, false, false}, + {783, 23, false, false}, {466, 49, false, false}, {466, 24, false, false}, {329, 39, false, false}, + {329, 10, false, false}, {329, 14, true, false}, {391, 10, false, false}, {466, 75, false, false}, + {391, 75, false, false}, {466, 75, false, false}, {391, 18, false, false}, {311, 21, false, false}, + {311, 34, false, false}, {466, 74, false, false}, {311, 37, false, false}, {0, 23, false, false}, + {0, 14, true, false}, {622, 20, false, false}, {622, 54, false, false}, {622, 75, false, false}, + {622, 75, false, false}, {622, 10, false, false}, {622, 64, false, false}, {622, 15, false, false}, + {622, 59, false, false}, {622, 34, false, false}, {622, 40, true, false}, {523, 59, false, false}, + {391, 15, false, false}, {311, 28, false, false}, {466, 37, false, false}, {466, 84, false, false}, + {311, 64, false, false}, {391, 10, false, false}, {440, 75, false, false}, {391, 62, false, false}, + {391, 12, true, false}, {440, 64, false, false}, {440, 10, false, false}, {349, 48, false, false}, + {349, 12, true, false}, {349, 14, false, false}, {440, 46, false, false}, {440, 28, false, false}, + {349, 43, false, false}, {349, 17, true, false}, {0, 14, false, false}, {698, 17, false, false}, + {698, 57, false, false}, {698, 37, false, false}, {698, 37, true, false}, {698, 60, false, false}, + {698, 14, false, false}, {698, 75, false, false}, {698, 75, false, false}, {698, 32, false, false}, + {698, 42, true, false}, {523, 43, false, false}, {0, 31, false, false}, {440, 45, false, false}, + {466, 29, false, false}, {523, 56, false, false}, {523, 15, false, false}, {440, 20, false, false}, + {440, 45, true, false}, {466, 12, false, false}, {622, 75, false, false}, {466, 75, false, false}, + {622, 75, false, false}, {466, 17, false, false}, {466, 57, false, false}, {622, 75, false, false}, + {466, 65, false, false}, {622, 84, true, false}, {466, 75, false, false}, {622, 24, false, false}, + {622, 49, false, false}, {391, 56, false, false}, {391, 18, false, false}, {622, 75, false, false}, + {391, 71, false, false}, {622, 78, true, false}, {391, 75, false, false}, {622, 20, false, false}, + {622, 54, false, false}, {391, 75, false, false}, {587, 75, false, false}, {349, 75, false, false}, + {587, 75, false, false}, {349, 59, false, false}, {349, 15, true, false}, {587, 59, false, false}, + {587, 15, false, false}, {349, 43, false, false}, {349, 31, true, false}, {587, 75, false, false}, + {349, 37, false, false}, {349, 21, false, false}, {349, 15, true, false}, {587, 34, false, false}, + {0, 40, false, false}, {349, 75, false, false}, {587, 75, false, false}, {523, 46, false, false}, + {523, 14, false, false}, {523, 14, true, false}, {587, 45, false, false}, {587, 29, false, false}, + {349, 31, false, false}, {466, 43, false, false}, {587, 54, false, false}, {587, 20, false, false}, + {349, 34, false, false}, {349, 21, false, false}, {523, 18, false, false}, {698, 75, true, false}, + {523, 75, false, false}, {698, 75, false, false}, {523, 75, false, false}, {698, 29, false, false}, + {698, 45, false, false}, {523, 75, false, false}, {698, 31, false, false}, {698, 43, true, false}, + {523, 75, false, false}, {698, 18, false, false}, {698, 56, false, false}, {440, 75, false, false}, + {698, 24, false, false}, {698, 49, false, false}, {440, 49, false, false}, {440, 24, true, false}, + {698, 32, false, true}, {698, 42, true, false}, {440, 75, false, false}, {698, 75, false, false}, + {440, 71, false, false}, {587, 78, false, false}, {349, 75, false, false}, {932, 75, false, false}, + {932, 75, false, false}, {932, 40, false, false}, {932, 34, true, false}, {932, 51, false, false}, + {932, 14, false, false}, {932, 42, false, false}, {932, 42, true, false}, {932, 59, false, false}, + {932, 15, false, false}, {932, 42, false, false}, {932, 32, true, false}, {932, 71, false, false}, + {587, 78, false, false}, {523, 21, false, false}, {523, 53, false, false}, {587, 17, false, false}, + {587, 34, true, false}, {587, 23, false, false}, {349, 54, false, false}, {466, 20, false, false}, + {587, 75, false, false}, {466, 10, false, false}, {466, 28, false, false}, {349, 17, false, false}, + {349, 18, true, false}, {622, 75, false, true}, {391, 75, false, false}, {622, 75, false, false}, + {391, 35, false, false}, {0, 39, false, false}, {622, 14, false, false}, {622, 60, false, false}, + {391, 51, false, false}, {391, 23, true, false}, {622, 34, false, false}, {622, 40, false, false}, + {587, 75, false, false}, {622, 75, false, false}, {587, 12, false, false}, {391, 62, false, false}, + {622, 18, false, false}, {622, 56, false, false}, {523, 40, false, false}, {523, 34, true, false}, + {622, 51, false, false}, {622, 23, false, false}, {391, 49, false, false}, {466, 24, false, false}, + {622, 75, false, false}, {466, 70, false, false}, {698, 79, false, true}, {440, 75, false, false}, + {698, 75, false, false}, {440, 56, false, false}, {440, 18, true, false}, {698, 56, false, false}, + {698, 18, false, false}, {440, 46, false, false}, {440, 24, true, false}, {698, 28, false, false}, + {698, 49, false, false}, {587, 46, false, false}, {587, 28, true, false}, {698, 75, false, false}, + {587, 12, false, false}, {440, 62, false, false}, {698, 15, false, false}, {698, 59, false, false}, + {523, 37, false, false}, {523, 37, true, false}, {698, 64, false, false}, {698, 10, false, false}, + {440, 45, false, false}, {466, 29, false, false}, {698, 45, false, false}, {698, 29, false, false}, + {466, 10, false, false}, {440, 26, false, false}, {440, 23, true, false}, {587, 14, false, false}, + {587, 75, false, false}, {349, 75, false, false}, {587, 75, false, false}, {349, 28, false, false}, + {349, 46, false, false}, {587, 75, false, true}, {349, 45, false, false}, {349, 29, true, false}, + {587, 75, false, true}, {349, 75, false, false}, {587, 23, false, false}, {293, 51, false, false}, + {349, 37, false, false}, {349, 37, false, false}, {587, 75, false, false}, {349, 21, false, false}, + {349, 53, true, false}, {587, 75, false, false}, {349, 65, false, false}, {587, 84, false, false}, + {349, 75, false, false}, {415, 75, false, false}, {587, 75, false, false}, {415, 75, false, false}, + {587, 37, false, false}, {587, 37, true, false}, {415, 43, false, false}, {415, 31, false, false}, + {587, 28, false, false}, {587, 46, true, false}, {415, 34, false, false}, {587, 40, false, false}, + {587, 12, false, false}, {587, 28, false, false}, {587, 34, true, false}, {415, 75, false, false}, + {587, 18, false, false}, {349, 56, false, false}, {415, 24, false, false}, {523, 49, false, false}, + {587, 40, false, false}, {587, 12, false, false}, {587, 21, true, false}, {523, 75, false, false}, + {587, 51, false, false}, {587, 23, false, false}, {466, 59, false, false}, {466, 15, false, false}, + {587, 14, false, false}, {587, 34, false, false}, {587, 15, true, false}, {587, 10, false, false}, + {622, 75, false, false}, {391, 75, false, false}, {622, 49, false, false}, {622, 24, false, false}, + {391, 23, false, false}, {391, 42, false, false}, {622, 84, false, true}, {466, 53, false, false}, + {466, 21, true, false}, {622, 34, false, true}, {622, 40, false, false}, {391, 71, false, false}, + {622, 78, false, false}, {466, 75, false, false}, {622, 23, false, true}, {622, 51, false, false}, + {466, 32, false, false}, {466, 28, true, false}, {391, 14, false, false}, {622, 75, false, true}, + {391, 29, false, false}, {311, 45, false, false}, {622, 75, false, false}, {523, 75, false, false}, + {698, 75, false, false}, {523, 20, false, false}, {440, 20, false, false}, {440, 34, true, false}, + {698, 37, false, false}, {698, 37, false, false}, {440, 32, false, false}, {440, 42, true, false}, + {698, 26, false, false}, {698, 48, false, false}, {440, 32, false, false}, {440, 37, true, false}, + {698, 79, false, false}, {523, 29, false, false}, {523, 45, true, false}, {698, 70, false, false}, + {440, 79, false, false}, {698, 74, false, false}, {466, 28, false, false}, {466, 46, true, false}, + {698, 74, false, false}, {440, 42, false, false}, {523, 32, false, false}, {698, 54, false, false}, + {698, 20, false, false}, {440, 53, false, false}, {587, 21, true, false}, {783, 75, false, false}, + {587, 64, false, false}, {466, 10, false, false}, {783, 75, false, false}, {466, 43, false, false}, + {587, 31, false, false}, {783, 65, false, true}, {587, 34, false, false}, {466, 32, false, false}, + {466, 12, true, false}, {783, 79, false, true}, {523, 75, false, false}, {783, 20, false, false}, + {783, 54, false, false}, {466, 71, false, false}, {783, 78, false, true}, {523, 21, false, false}, + {523, 31, false, false}, {523, 21, true, false}, {783, 75, false, false}, {466, 75, false, false}, + {783, 21, false, false}, {783, 53, false, false}, {466, 32, false, false}, {329, 42, false, false}, + {932, 75, false, false}, {932, 67, false, false}, {783, 68, true, false}, {783, 14, false, false}, + {783, 62, false, false}, {783, 12, true, false}, {783, 49, false, false}, {783, 24, false, false}, + {783, 46, false, false}, {783, 28, true, false}, {783, 37, false, false}, {783, 37, false, false}, + {783, 17, false, false}, {783, 57, true, false}, {783, 21, false, false}, {783, 51, true, false}, + {783, 76, false, false}, {783, 18, false, false}, {783, 56, false, false}, {783, 45, false, false}, + {783, 29, true, false}, {932, 53, false, false}, {932, 21, false, false}, {932, 54, false, false}, + {932, 20, false, false}, {932, 75, false, false}, {932, 17, false, false}, {932, 51, false, false}, + {622, 81, true, true}, {391, 75, false, false}, {622, 75, false, true}, {311, 74, false, false}, + {783, 14, false, false}, {783, 60, false, false}, {783, 14, false, false}, {783, 45, false, false}, + {783, 15, true, false}, {932, 10, false, true}, {932, 64, false, false}, {932, 75, false, false}, + {932, 64, false, false}, {932, 10, false, false}, {932, 37, false, false}, {932, 37, false, false}, + {932, 75, false, true}, {932, 45, false, false}, {932, 29, true, false}, {783, 64, false, false}, + {783, 10, false, false}, {783, 40, false, false}, {783, 10, false, false}, {783, 23, false, false}, + {783, 75, false, true}, {783, 20, false, false}, {783, 26, false, false}, {783, 23, true, false}, + {698, 79, false, true}, {440, 49, false, false}, {440, 17, true, false}, {698, 67, false, true}, + {698, 15, false, false}, {440, 37, false, false}, {440, 20, true, false}, {440, 17, false, false}, + {880, 48, false, false}, {880, 26, false, false}, {880, 45, false, false}, {880, 29, true, false}, + {1046, 75, false, true}, {1046, 40, false, false}, {1046, 34, true, false}, {1046, 60, false, false}, + {1046, 14, false, false}, {1046, 68, false, false}, {1046, 81, false, true}, {1046, 24, false, false}, + {1046, 49, true, false}, {1396, 74, false, false}, {1396, 24, false, false}, {1396, 49, false, false}, + {1396, 54, false, true}, {1396, 20, false, false}, {1396, 21, false, false}, {1396, 46, true, false}, + {466, 199, false, true}, {466, 106, false, false}, {587, 150, false, false}, {587, 181, false, false}, + {587, 118, false, false}, {587, 300, false, false}, {587, 121, false, false}, {587, 28, true, false}, + {523, 131, false, false}, {523, 142, false, false}, {523, 26, true, false}, {622, 156, false, false}, + {622, 115, false, false}, {622, 28, true, false}, {587, 209, false, false}, {587, 90, false, false}, + {0, 139, false, false}, {0, 29, false, false}, {440, 131, false, false}, {1046, 45, false, false}, + {1046, 128, false, false}, {1046, 126, false, false}, {1396, 18, false, true}, {1396, 123, false, false}, + {1046, 92, false, false}, {1046, 65, false, false}, {1661, 20, false, false}, {1661, 54, false, false}, + {1760, 75, false, false}, {1396, 89, false, false}, {1396, 60, false, false}, {1046, 95, false, true}, + {1046, 54, false, false}, {1864, 31, false, false}, {1864, 118, false, false}, {698, 37, false, false}, + {698, 112, false, false}, {698, 10, false, false}, {698, 139, false, false}, {698, 131, false, false}, + {698, 18, false, false}, {698, 76, false, false}, {698, 62, false, false}, {698, 10, false, false}, + {698, 150, false, false}, {698, 150, false, false}, {698, 131, false, false}, {698, 18, false, false}, + {698, 150, false, true}, {698, 32, false, false}, {698, 117, false, false}, {698, 18, false, true}, + {698, 131, true, false}, {698, 24, false, false}, {698, 103, false, false}, {698, 28, false, false}, + {698, 64, true, false}, {698, 60, false, false}, {698, 12, false, false}, {698, 15, false, false}, + {698, 140, true, false}, {698, 49, false, false}, {698, 49, false, false}, {698, 24, false, false}, + {698, 26, false, false}, {698, 62, true, false}, {698, 65, false, false}, {698, 20, false, false}, + {698, 17, false, true}, {698, 132, true, false}, {698, 60, false, false}, {698, 76, false, false}, + {698, 21, false, false}, {698, 112, true, false}, {698, 121, false, false}, {698, 14, false, false}, + {698, 75, false, false}, {698, 81, false, false}, {698, 160, false, false}, {698, 156, false, false}, + {698, 101, false, false}, {698, 49, false, false}, {698, 167, false, false}, {783, 137, true, false}, + {783, 12, false, false}, {932, 135, false, false}, {932, 14, false, false}, {932, 120, false, false}, + {932, 26, false, false}, {932, 84, true, false}, {932, 46, false, false}, {932, 21, false, false}, + {932, 150, false, false}, {932, 53, false, false}, {932, 76, false, false}, {932, 15, true, false}, + {932, 146, false, false}, {932, 34, false, true}, {932, 75, false, false}, {932, 48, false, false}, + {698, 45, false, false}, {698, 112, false, false}, {698, 154, false, false}, {698, 112, false, false}, + {698, 118, false, false}, {698, 32, false, false}, {698, 199, false, false}, {698, 262, false, false}, + {698, 143, false, false}, {698, 10, false, false}, {523, 156, true, false}, {523, 12, false, false}, + {523, 118, false, false}, {523, 18, false, false}, {523, 37, false, false}, {523, 81, false, false}, + {523, 29, false, false}, {523, 107, true, false}, {523, 43, false, false}, {523, 150, false, false}, + {523, 46, false, false}, {0, 54, false, false}, {0, 20, false, false}, {466, 28, true, false}, + {466, 148, false, false}, {293, 51, false, true}, {293, 62, false, false}, {466, 37, false, false}, + {587, 150, false, false}, {587, 37, false, false}, {587, 112, false, false}, {587, 150, false, false}, + {587, 150, false, false}, {587, 150, true, false}, {587, 182, false, false}, {587, 84, false, false}, + {587, 57, false, false}, {587, 124, false, false}, {523, 51, true, true}, {523, 98, false, false}, + {698, 28, false, false}, {698, 121, false, false}, {659, 28, false, false}, {659, 114, false, false}, + {698, 90, true, false}, {698, 67, false, false}, {880, 10, false, false}, {880, 139, false, false}, + {1046, 104, false, false}, {1046, 45, false, false}, {1174, 81, false, false}, {1174, 68, false, false}, + {932, 14, true, true}, {932, 135, false, false}, {698, 24, false, false}, {698, 98, false, false}, + {698, 26, true, false}, {698, 43, false, false}, {698, 62, false, false}, {698, 34, true, false}, + {698, 39, false, false}, {698, 76, false, false}, {698, 23, true, false}, {698, 20, false, false}, + {698, 57, false, false}, {698, 29, false, false}, {698, 35, false, false}, {698, 26, true, false}, + {698, 146, false, true}, {698, 96, false, false}, {698, 21, false, false}, {698, 32, true, false}, + {698, 115, false, true}, {698, 35, false, false}, {698, 15, false, false}, {698, 103, false, false}, + {698, 31, true, false}, {698, 37, false, true}, {698, 112, false, false}, {698, 17, false, false}, + {698, 115, false, false}, {698, 17, false, false}, {659, 21, false, false}, {659, 96, false, false}, + {659, 20, true, false}, {659, 10, false, false}, {698, 79, false, false}, {698, 70, false, false}, + {1174, 90, false, false}, {1174, 59, false, false}, {1046, 68, false, false}, {1046, 42, false, false}, + {1046, 28, true, false}, {1046, 10, false, false}, {932, 70, false, false}, {932, 79, false, false}, + {698, 20, false, true}, {698, 126, false, false}, {698, 124, false, false}, {698, 23, true, false}, + {698, 54, false, false}, {698, 68, false, false}, {698, 14, true, false}, {698, 17, false, false}, + {698, 43, false, true}, {698, 57, false, false}, {698, 17, false, false}, {698, 64, true, false}, + {698, 53, false, false}, {698, 20, false, false}, {698, 21, false, false}, {698, 153, true, false}, + {698, 68, false, false}, {698, 60, false, false}, {698, 20, true, false}, {698, 107, false, false}, + {698, 28, false, false}, {698, 17, false, false}, {698, 165, false, false}, {466, 112, true, false}, + {466, 15, false, false}, {466, 21, false, false}, {466, 126, false, false}, {466, 98, false, false}, + {0, 48, false, false}, {391, 26, false, false}, {466, 92, true, false}, {466, 20, false, false}, + {311, 14, false, false}, {466, 23, false, false}, {466, 112, true, false}, {0, 37, false, false}, + {466, 54, false, false}, {0, 57, false, false}, {0, 31, false, false}, {466, 118, true, false}, + {391, 18, false, false}, {0, 18, false, false}, {466, 24, true, false}, {466, 124, false, false}, + {587, 28, true, false}, {587, 46, false, false}, {587, 75, false, false}, {587, 12, false, false}, + {587, 99, false, false}, {587, 37, false, false}, {587, 24, false, false}, {587, 87, false, false}, + {587, 34, false, false}, {587, 115, true, false}, {587, 10, false, false}, {587, 20, false, false}, + {587, 156, false, false}, {587, 28, false, false}, {587, 46, false, false}, {587, 75, false, false}, + {587, 151, true, false}, {587, 73, false, false}, {587, 70, false, false}, {523, 14, true, false}, + {523, 140, false, false}, {523, 75, false, false}, {523, 37, false, false}, {523, 32, false, false}, + {523, 117, false, false}, {523, 37, false, false}, {523, 81, true, false}, {523, 31, false, false}, + {523, 31, false, false}, {523, 156, false, false}, {523, 75, false, false}, {523, 29, false, false}, + {0, 21, false, false}, {466, 23, false, false}, {466, 150, true, false}, {466, 39, false, false}, + {349, 89, false, false}, {466, 21, false, false}, {349, 224, true, false}, {349, 75, false, false}, + {349, 270, false, false}, {349, 73, false, false}, {523, 21, false, false}, {587, 218, false, false}, + {523, 199, false, false}, {466, 112, false, false}, {622, 78, true, false}, {622, 26, false, false}, + {622, 48, false, false}, {622, 75, false, false}, {622, 12, false, false}, {622, 62, false, false}, + {622, 75, false, false}, {622, 53, false, false}, {622, 21, true, false}, {622, 75, false, false}, + {622, 75, false, false}, {622, 71, false, false}, {622, 48, false, false}, {622, 29, false, false}, + {622, 75, false, false}, {622, 34, false, false}, {622, 40, true, false}, {622, 75, false, false}, + {622, 75, false, false}, {622, 15, false, false}, {622, 59, false, false}, {622, 43, false, false}, + {622, 31, true, false}, {587, 75, false, false}, {587, 75, false, false}, {587, 75, false, false}, + {587, 62, false, false}, {587, 12, false, false}, {587, 75, false, false}, {587, 64, false, false}, + {587, 10, true, false}, {1174, 15, false, false}, {1174, 59, false, false}, {1174, 53, false, false}, + {1174, 21, true, false}, {1174, 40, false, false}, {1174, 34, false, false}, {1174, 75, false, false}, + {1046, 37, false, false}, {1046, 37, false, false}, {1046, 42, false, false}, {1046, 32, true, false}, + {1046, 57, false, false}, {1046, 17, false, false}, {1046, 54, false, false}, {1046, 20, false, false}, + {932, 35, false, false}, {932, 39, false, false}, {932, 18, false, false}, {932, 29, false, false}, + {932, 26, true, false}, {1046, 75, false, false}, {1174, 75, false, false}, {1046, 75, false, false}, + {1174, 75, false, false}, {1046, 28, false, false}, {1046, 46, false, false}, {1174, 62, false, false}, + {1174, 12, true, false}, {1046, 75, false, false}, {1174, 75, false, false}, {1046, 18, false, false}, + {1046, 56, false, false}, {1174, 60, false, false}, {1174, 14, false, false}, {1046, 75, false, false}, + {1174, 28, false, false}, {1174, 46, true, false}, {1046, 75, false, false}, {1046, 75, false, false}, + {311, 75, false, false}, {261, 75, false, false}, {466, 75, false, false}, {466, 53, false, false}, + {466, 21, true, false}, {466, 46, false, false}, {466, 28, false, false}, {466, 46, false, false}, + {466, 28, true, false}, {466, 43, false, false}, {466, 31, false, false}, {466, 40, false, false}, + {466, 34, true, false}, {466, 12, false, false}, {587, 62, false, false}, {587, 10, false, false}, + {587, 29, false, false}, {587, 34, true, false}, {587, 45, false, false}, {415, 29, false, false}, + {415, 71, false, false}, {523, 56, false, false}, {523, 21, false, false}, {523, 31, false, false}, + {523, 43, true, false}, {523, 31, false, false}, {415, 43, false, false}, {415, 24, false, false}, + {466, 49, false, false}, {466, 31, false, false}, {466, 32, false, false}, {415, 10, false, false}, + {415, 37, false, false}, {415, 37, true, false}, {391, 75, false, false}, {391, 75, false, false}, + {311, 75, false, false}, {391, 51, false, false}, {391, 20, false, false}, {311, 75, false, false}, + {391, 53, false, false}, {587, 24, true, false}, {587, 75, false, false}, {587, 75, false, false}, + {587, 49, false, false}, {466, 24, false, false}, {466, 53, false, false}, {523, 21, false, false}, + {523, 75, false, false}, {523, 29, false, false}, {523, 45, true, false}, {466, 75, false, false}, + {466, 75, false, false}, {466, 60, false, false}, {311, 14, false, false}, {391, 32, false, false}, + {391, 32, false, false}, {440, 84, true, false}, {440, 75, false, false}, {349, 62, false, false}, + {349, 12, false, false}, {440, 37, false, false}, {440, 37, false, false}, {349, 24, false, false}, + {349, 49, false, false}, {440, 26, false, false}, {440, 31, false, false}, {587, 17, true, false}, + {587, 75, false, false}, {587, 75, false, false}, {587, 20, false, false}, {523, 54, false, false}, + {523, 49, false, false}, {523, 24, false, false}, {523, 37, false, false}, {523, 37, false, false}, + {523, 28, false, false}, {523, 46, true, false}, {523, 24, false, false}, {349, 49, false, false}, + {440, 18, false, false}, {466, 56, false, false}, {466, 56, false, false}, {349, 18, false, false}, + {440, 31, false, false}, {587, 12, false, false}, {587, 31, true, false}, {587, 75, false, false}, + {587, 75, false, false}, {587, 75, false, false}, {587, 75, false, false}, {587, 14, false, false}, + {587, 60, false, false}, {587, 54, false, false}, {587, 20, true, false}, {587, 75, false, false}, + {587, 45, false, false}, {466, 29, false, false}, {698, 75, false, false}, {698, 75, false, false}, + {698, 75, false, false}, {698, 31, false, false}, {698, 43, true, false}, {2093, 75, false, false}, + {2349, 75, false, false}, {2349, 12, false, false}, {2349, 62, false, false}, {2349, 45, false, false}, + {2349, 29, true, false}, {2093, 75, false, false}, {2093, 75, false, false}, {2093, 15, false, false}, + {2093, 59, false, false}, {2093, 75, false, false}, {2093, 75, false, false}, {2093, 57, false, false}, + {2093, 17, true, false}, {2093, 20, false, false}, {2093, 54, false, false}, {2093, 62, false, false}, + {2093, 12, true, false}, {1174, 51, false, false}, {1174, 23, false, false}, {1174, 75, false, false}, + {1174, 75, false, false}, {1174, 32, false, false}, {1174, 42, true, false}, {1174, 39, false, false}, + {1174, 35, false, false}, {1174, 48, false, false}, {1174, 26, false, false}, {1174, 65, false, false}, + {1174, 21, false, false}, {1174, 23, false, false}, {1174, 10, false, false}, {1174, 28, true, false}, + {1244, 75, false, false}, {1244, 75, false, false}, {1244, 46, false, false}, {1244, 28, false, false}, + {1244, 46, false, false}, {1244, 28, false, false}, {1244, 12, false, false}, {1244, 62, false, false}, + {1244, 46, false, false}, {1244, 28, true, false}, {1244, 75, false, false}, {1244, 40, false, false}, + {1244, 34, false, false}, {1244, 75, false, false}, {1244, 65, false, false}, {1244, 84, false, false}, + {1244, 45, true, false}, {1244, 29, false, false}, {1244, 73, false, false}, {1244, 15, false, false}, + {1244, 54, false, false}, {1244, 81, false, false}, {1244, 31, false, false}, {1244, 43, true, false}, + {1174, 75, false, false}, {1174, 21, false, false}, {1174, 14, true, false}, {1174, 39, false, false}, + {1174, 24, false, false}, {1174, 49, false, false}, {1174, 18, false, false}, {1174, 56, true, false}, + {1174, 18, false, false}, {1174, 56, false, false}, {1174, 24, false, false}, {1174, 32, true, false}, + {1174, 17, false, false}, {1174, 75, false, false}, {1174, 34, false, false}, {1174, 40, true, false}, + {1046, 43, false, false}, {1046, 31, false, false}, {1046, 49, false, false}, {1046, 24, false, false}, + {1046, 75, false, false}, {1046, 35, false, false}, {1046, 32, true, false}, {1046, 81, false, false}, + {1046, 14, false, false}, {1046, 60, false, false}, {1046, 37, false, false}, {1046, 29, false, false}, + {1046, 26, false, false}, {1046, 32, false, false}, {1046, 23, true, false}, {1174, 75, false, false}, + {1174, 49, false, false}, {1174, 24, false, false}, {1174, 75, false, false}, {1174, 31, false, false}, + {1174, 43, false, false}, {1174, 21, false, false}, {1174, 53, false, false}, {1174, 14, false, false}, + {1174, 29, false, false}, {1174, 26, false, false}, {1174, 79, true, false}, {1174, 70, false, false}, + {1174, 79, false, false}, {1174, 43, false, false}, {1174, 31, false, false}, {1174, 75, false, false}, + {1174, 18, false, false}, {1174, 20, true, false}, {1174, 35, false, false}, {1174, 75, false, false}, + {1174, 59, false, false}, {1174, 15, false, false}, {1174, 75, false, false}, {1174, 12, false, false}, + {1174, 62, false, false}, {1046, 75, false, false}, {1046, 46, false, false}, {1046, 28, true, false}, + {1046, 48, false, false}, {1046, 26, false, false}, {1046, 43, false, false}, {1046, 31, true, false}, + {1046, 37, false, false}, {1046, 37, false, false}, {1046, 34, false, false}, {1046, 26, true, false}, + {1046, 14, false, false}, {1046, 75, false, false}, {1046, 71, true, false}, {932, 23, true, false}, + {932, 54, false, false}, {932, 45, false, false}, {932, 29, false, false}, {932, 75, false, false}, + {932, 24, false, false}, {932, 49, true, false}, {932, 75, false, false}, {932, 75, false, false}, + {932, 45, false, false}, {932, 29, false, false}, {932, 29, false, false}, {932, 15, false, false}, + {932, 29, true, false}, {783, 75, false, false}, {783, 75, false, false}, {783, 59, false, false}, + {783, 15, false, false}, {783, 37, false, false}, {783, 37, false, false}, {783, 70, false, false}, + {783, 57, false, false}, {783, 18, false, false}, {783, 78, true, false}, {783, 75, false, false}, + {783, 31, false, false}, {783, 43, false, false}, {783, 15, false, false}, {783, 39, false, false}, + {783, 20, false, false}, {783, 75, false, false}, {783, 40, false, false}, {783, 34, true, false}, + {783, 74, false, false}, {783, 21, false, false}, {783, 53, false, false}, {783, 57, false, false}, + {783, 17, false, false}, {783, 39, false, false}, {783, 14, false, false}, {783, 21, true, false}, + {698, 75, false, false}, {698, 75, false, false}, {440, 34, false, false}, {440, 12, false, false}, + {440, 28, false, false}, {698, 21, false, false}, {698, 14, false, false}, {698, 39, true, false}, + {440, 75, false, false}, {698, 29, false, false}, {698, 20, false, false}, {698, 24, false, false}, + {587, 43, false, false}, {587, 31, false, false}, {698, 42, false, false}, {698, 32, true, false}, + {587, 21, false, false}, {440, 53, false, false}, {698, 46, false, false}, {698, 28, false, false}, + {523, 40, false, false}, {523, 34, false, false}, {698, 46, false, false}, {698, 28, true, false}, + {622, 65, false, false}, {698, 84, false, false}, {622, 31, false, false}, {622, 43, false, false}, + {698, 24, false, false}, {698, 28, false, false}, {698, 21, true, false}, {587, 148, false, false}, + {698, 39, false, false}, {698, 112, false, false}, {932, 150, false, false}, {1174, 181, false, false}, + {1174, 118, false, false}, {1174, 300, false, false}, {932, 150, false, false}, {1046, 300, false, false}, + {1244, 300, false, false}, {1174, 278, false, false}, {1174, 21, true, false}, {932, 265, false, false}, + {932, 34, true, false}, {932, 74, false, true}, {1046, 75, false, false}, {932, 53, false, false}, + {932, 21, false, false}, {1046, 75, false, false}, {932, 74, false, false}, {1046, 75, false, false}, + {932, 75, false, false}, {1046, 75, false, false}, {932, 75, false, false}, {1046, 75, false, false}, + {932, 75, false, false}, {1046, 75, false, false}, {932, 75, false, false}, {1046, 75, false, false}, + {932, 74, false, false}, {1046, 75, false, false}, {932, 75, false, false}, {1046, 75, false, false}, + {932, 75, false, false}, {1046, 53, false, false}, {1046, 21, true, false}, {932, 75, false, false}, + {1046, 75, false, false}, {932, 21, false, false}, {932, 53, false, false}, {1046, 75, false, false}, + {466, 284, false, false}, {466, 15, true, false}, {0, 284, false, false}, {0, 15, true, false}, + {659, 150, false, false}, {783, 78, false, false}, {783, 71, false, false}, {1046, 150, false, false}, + {1318, 300, false, false}, {1318, 300, false, false}, {783, 150, false, false}, {1174, 300, false, false}, + {1396, 300, false, false}, {1318, 292, false, false}, {1046, 282, true, false}, {1046, 15, false, false}, + {523, 418, true, false}, {523, 20, false, false}, {523, 20, true, false}, {659, 150, false, true}, + {659, 237, false, false}, {659, 62, true, false}, {783, 135, false, true}, {783, 164, false, false}, + {783, 150, false, false}, {1046, 89, false, false}, {1046, 60, false, false}, {659, 300, true, false}, + {1046, 118, false, false}, {1046, 56, false, false}, {1046, 124, false, false}, {587, 79, true, false}, + {523, 189, false, false}, {523, 28, true, false}, {440, 78, false, false}, {349, 75, false, false}, + {440, 75, false, false}, {349, 75, false, false}, {440, 43, false, true}, {440, 31, false, false}, + {349, 37, false, false}, {349, 37, true, false}, {440, 75, false, true}, {349, 64, false, false}, + {349, 10, false, false}, {440, 75, false, false}, {349, 75, false, false}, {440, 75, false, true}, + {349, 28, false, false}, {349, 46, true, false}, {440, 75, false, true}, {349, 12, false, false}, + {349, 62, false, false}, {440, 75, false, false}, {349, 75, false, false}, {391, 75, false, false}, + {329, 75, false, false}, {391, 75, false, false}, {329, 56, false, false}, {329, 18, true, false}, + {391, 51, false, false}, {391, 23, false, false}, {329, 43, false, false}, {329, 20, true, false}, + {659, 10, false, false}, {659, 75, false, false}, {659, 28, false, false}, {659, 46, true, false}, + {659, 21, false, false}, {659, 15, true, false}, {391, 37, false, false}, {329, 46, false, false}, + {587, 28, false, false}, {587, 75, false, false}, {587, 35, false, false}, {587, 39, true, false}, + {587, 35, false, false}, {391, 39, false, false}, {329, 42, false, false}, {523, 32, false, false}, + {523, 46, false, false}, {391, 28, false, false}, {329, 34, false, false}, {329, 12, false, false}, + {587, 28, true, false}, {587, 75, false, false}, {587, 75, false, false}, {587, 75, false, false}, + {587, 75, false, false}, {587, 45, false, true}, {587, 29, false, false}, {587, 53, false, false}, + {587, 21, true, false}, {587, 75, false, true}, {587, 62, false, false}, {391, 12, false, false}, + {493, 75, false, false}, {391, 75, false, false}, {493, 56, false, true}, {493, 18, false, false}, + {391, 32, false, false}, {391, 42, true, false}, {493, 75, false, true}, {391, 75, false, false}, + {493, 21, false, false}, {493, 53, false, false}, {391, 75, false, false}, {523, 75, false, false}, + {329, 56, false, false}, {329, 18, true, false}, {523, 53, false, false}, {523, 21, false, false}, + {329, 53, false, false}, {329, 21, true, false}, {523, 49, false, false}, {523, 24, false, false}, + {329, 51, false, false}, {329, 15, true, false}, {659, 82, false, false}, {659, 24, false, false}, + {659, 21, false, false}, {659, 28, true, false}, {659, 40, false, false}, {523, 34, false, false}, + {329, 57, false, false}, {587, 17, false, false}, {587, 54, false, false}, {587, 20, false, false}, + {587, 34, false, false}, {587, 40, true, false}, {587, 31, false, false}, {523, 43, false, false}, + {329, 23, false, false}, {523, 51, false, false}, {523, 53, false, false}, {523, 21, false, false}, + {329, 35, false, false}, {440, 39, true, false}, {440, 75, false, true}, {349, 75, false, false}, + {440, 43, false, false}, {261, 31, false, false}, {349, 49, false, false}, {349, 24, false, false}, + {440, 73, false, false}, {349, 10, false, false}, {261, 49, false, false}, {659, 15, true, false}, + {659, 75, false, false}, {659, 75, false, false}, {659, 62, false, false}, {440, 12, false, false}, + {349, 62, false, false}, {587, 12, false, false}, {587, 62, false, false}, {587, 12, false, false}, + {587, 34, false, false}, {587, 40, true, false}, {587, 23, false, false}, {440, 51, false, false}, + {349, 39, false, false}, {523, 35, false, false}, {523, 28, false, false}, {523, 46, false, false}, + {523, 26, false, false}, {349, 24, false, false}, {440, 23, false, false}, {440, 75, false, true}, + {440, 60, false, true}, {440, 14, true, false}, {440, 59, false, false}, {391, 15, false, false}, + {293, 54, false, true}, {391, 20, true, false}, {391, 57, false, false}, {391, 17, false, false}, + {293, 53, false, true}, {293, 17, true, false}, {391, 24, false, false}, {659, 54, false, false}, + {659, 40, false, true}, {659, 34, true, false}, {659, 59, false, false}, {391, 15, false, false}, + {293, 75, false, true}, {391, 12, false, false}, {587, 62, false, false}, {587, 51, false, true}, + {587, 10, false, false}, {587, 12, true, false}, {587, 56, false, false}, {391, 18, false, false}, + {293, 49, false, true}, {523, 24, false, false}, {523, 53, false, false}, {523, 21, false, false}, + {523, 18, false, true}, {293, 43, false, false}, {659, 12, true, false}, {659, 75, false, true}, + {659, 75, false, false}, {659, 75, false, false}, {659, 75, false, false}, {659, 75, false, true}, + {659, 60, false, false}, {659, 14, true, false}, {659, 75, false, true}, {659, 62, false, false}, + {293, 12, false, false}, {329, 75, false, false}, {293, 75, false, false}, {329, 56, false, true}, + {329, 18, false, false}, {293, 18, false, false}, {293, 56, true, false}, {261, 74, false, false}, + {261, 70, false, false}, {329, 79, false, false}, {261, 60, false, false}, {261, 14, true, false}, + {329, 49, false, false}, {329, 24, false, false}, {0, 49, false, true}, {0, 24, true, false}, + {329, 51, false, false}, {329, 23, false, false}, {0, 54, false, true}, {0, 20, true, false}, + {329, 56, false, false}, {329, 18, false, false}, {0, 57, false, true}, {0, 17, true, false}, + {329, 14, false, false}, {659, 60, false, false}, {659, 20, false, true}, {659, 26, false, false}, + {659, 28, true, false}, {659, 34, false, false}, {659, 35, true, false}, {0, 79, false, true}, + {587, 75, false, false}, {587, 53, false, true}, {587, 21, true, false}, {587, 45, false, false}, + {329, 29, false, false}, {0, 39, false, true}, {523, 35, false, false}, {523, 59, false, false}, + {523, 15, false, false}, {0, 42, false, true}, {440, 18, false, false}, {440, 14, true, false}, + {698, 75, false, false}, {440, 75, false, false}, {698, 75, false, false}, {0, 45, false, false}, + {523, 29, false, false}, {698, 51, false, true}, {698, 23, false, false}, {523, 57, false, false}, + {523, 17, true, false}, {698, 14, false, true}, {698, 60, false, false}, {440, 46, false, false}, + {523, 28, false, false}, {698, 75, false, false}, {523, 75, false, false}, {698, 75, false, true}, + {523, 12, false, false}, {440, 32, false, false}, {440, 29, true, false}, {698, 75, false, true}, + {440, 32, false, false}, {293, 42, false, false}, {698, 56, false, false}, {698, 18, false, false}, + {587, 75, false, false}, {783, 51, false, false}, {783, 23, false, false}, {493, 75, false, false}, + {783, 75, false, false}, {493, 57, false, false}, {493, 17, true, false}, {783, 59, false, false}, + {783, 15, false, false}, {493, 43, false, false}, {493, 31, true, false}, {783, 54, false, false}, + {783, 20, false, false}, {587, 18, false, false}, {587, 12, false, false}, {587, 43, true, false}, + {587, 75, false, false}, {493, 75, true, false}, {587, 42, false, false}, {587, 32, false, false}, + {523, 60, false, false}, {523, 14, true, false}, {587, 43, false, false}, {587, 31, false, false}, + {493, 65, false, false}, {587, 84, false, false}, {493, 14, false, false}, {493, 17, false, false}, + {493, 34, false, false}, {659, 84, true, true}, {523, 75, false, false}, {659, 75, false, false}, + {523, 75, false, false}, {659, 42, false, true}, {659, 32, false, false}, {523, 70, false, false}, + {659, 79, true, true}, {587, 75, false, false}, {659, 75, false, false}, {587, 75, false, false}, + {659, 14, false, true}, {659, 60, false, false}, {523, 37, false, false}, {523, 37, true, false}, + {659, 75, false, true}, {587, 75, false, false}, {659, 15, false, false}, {659, 59, false, false}, + {587, 75, false, false}, {587, 75, false, true}, {369, 53, false, false}, {369, 21, true, false}, + {587, 56, false, false}, {587, 18, false, false}, {369, 49, false, false}, {369, 24, true, false}, + {587, 48, false, false}, {587, 26, false, false}, {369, 45, false, false}, {369, 29, true, false}, + {587, 23, false, false}, {659, 51, false, false}, {659, 31, false, false}, {659, 43, true, false}, + {659, 59, false, false}, {587, 15, false, false}, {369, 75, false, false}, {587, 10, false, false}, + {587, 64, false, false}, {369, 42, false, false}, {369, 32, true, false}, {587, 43, false, false}, + {0, 31, false, false}, {369, 35, false, false}, {523, 39, false, false}, {587, 75, false, false}, + {369, 28, false, false}, {369, 12, false, false}, {440, 34, true, false}, {440, 75, false, false}, + {261, 75, false, false}, {440, 70, false, false}, {261, 53, false, false}, {349, 26, false, false}, + {440, 75, false, false}, {261, 21, false, false}, {261, 40, false, false}, {659, 12, true, false}, + {659, 75, false, false}, {659, 75, false, false}, {659, 75, false, false}, {659, 12, false, false}, + {261, 59, false, false}, {587, 78, false, false}, {587, 34, false, false}, {587, 40, true, false}, + {587, 26, false, false}, {440, 48, false, false}, {261, 15, false, false}, {523, 59, false, false}, + {523, 18, false, false}, {523, 56, false, false}, {523, 32, false, false}, {261, 23, false, false}, + {440, 18, false, false}, {493, 75, false, false}, {440, 53, false, false}, {440, 21, true, false}, + {493, 56, false, false}, {493, 18, false, false}, {293, 46, false, false}, {391, 28, true, false}, + {493, 43, false, false}, {493, 31, false, false}, {391, 35, false, false}, {391, 32, true, false}, + {659, 20, false, false}, {659, 60, false, false}, {659, 31, false, false}, {659, 43, true, false}, + {659, 65, false, false}, {391, 78, false, false}, {587, 81, false, false}, {587, 18, false, false}, + {587, 24, false, false}, {587, 31, true, false}, {587, 42, false, false}, {493, 32, false, false}, + {440, 35, false, false}, {523, 39, false, false}, {523, 62, false, false}, {493, 12, false, false}, + {391, 21, false, false}, {391, 15, false, false}, {391, 26, true, false}, {523, 10, false, false}, + {659, 150, false, false}, {783, 24, false, false}, {783, 124, false, false}, {1046, 150, false, false}, + {1174, 75, false, false}, {1318, 101, false, false}, {1318, 123, false, false}, {1174, 75, false, false}, + {1318, 224, false, false}, {783, 150, false, false}, {1174, 300, false, false}, {1396, 181, false, false}, + {1396, 118, false, false}, {1318, 81, false, false}, {1318, 70, false, false}, {1318, 120, false, false}, + {1318, 28, true, false}, {1046, 42, false, false}, {1046, 70, false, false}, {1046, 93, false, false}, + {1046, 37, false, false}, {1046, 39, false, false}, {1046, 17, true, false}, {698, 74, false, false}, + {698, 75, false, false}, {698, 75, false, false}, {698, 12, false, false}, {698, 39, false, false}, + {698, 23, false, false}, {698, 75, false, false}, {698, 12, false, false}, {698, 56, false, false}, + {698, 26, true, false}, {698, 54, false, false}, {698, 75, false, false}, {698, 75, false, false}, + {698, 14, false, false}, {698, 60, false, false}, {698, 34, false, false}, {698, 40, false, false}, + {698, 40, false, false}, {698, 34, true, false}, {698, 56, false, false}, {698, 18, false, false}, + {698, 56, false, false}, {698, 18, false, false}, {698, 74, false, false}, {698, 42, false, false}, + {698, 32, false, false}, {783, 74, false, false}, {783, 70, false, false}, {783, 79, true, false}, + {783, 62, false, false}, {783, 12, true, false}, {783, 56, false, false}, {783, 18, false, false}, + {783, 53, false, false}, {783, 12, true, false}, {783, 29, false, false}, {783, 54, false, false}, + {783, 53, false, false}, {783, 21, true, false}, {783, 65, false, false}, {783, 79, false, false}, + {783, 79, false, false}, {783, 43, false, false}, {783, 12, false, false}, {783, 18, true, false}, + {783, 18, false, false}, {783, 56, false, false}, {783, 20, false, false}, {783, 54, false, false}, + {783, 68, false, false}, {783, 23, false, false}, {783, 39, false, false}, {783, 18, true, false}, + {523, 150, false, false}, {783, 92, false, false}, {783, 57, false, false}, {1046, 150, false, false}, + {1174, 75, false, false}, {1318, 121, false, false}, {1318, 103, false, false}, {1174, 75, false, false}, + {1318, 224, false, false}, {783, 150, false, false}, {1174, 300, false, false}, {1396, 181, false, false}, + {1396, 118, false, false}, {1318, 67, false, false}, {1318, 89, false, false}, {1318, 118, false, false}, + {1318, 24, true, false}, {1046, 32, false, false}, {1046, 90, false, false}, {1046, 121, false, false}, + {1046, 29, false, false}, {1046, 18, true, false}, {698, 187, false, false}, {698, 124, false, false}, + {698, 75, false, false}, {698, 51, false, false}, {698, 48, true, false}, {698, 199, false, false}, + {698, 85, false, false}, {698, 57, false, false}, {698, 31, false, false}, {698, 87, true, false}, + {698, 68, false, false}, {698, 78, false, false}, {698, 57, false, false}, {698, 40, false, false}, + {698, 10, false, false}, {783, 145, false, false}, {783, 64, true, false}, {783, 12, false, false}, + {783, 62, false, false}, {783, 15, true, false}, {783, 45, false, false}, {783, 67, false, false}, + {783, 31, true, false}, {783, 32, false, false}, {783, 54, false, false}, {783, 85, true, false}, + {783, 60, true, false}, {783, 71, false, false}, {783, 104, false, false}, {783, 78, true, false}, + {783, 60, false, false}, {783, 106, false, false}, {783, 20, false, false}, {783, 40, false, false}, + {783, 39, true, false}, {880, 193, false, false}, {880, 56, false, false}, {880, 106, false, false}, + {880, 67, false, false}, {880, 15, false, false}, {880, 184, true, false}, {880, 84, false, false}, + {880, 110, false, false}, {880, 35, false, false}, {880, 39, true, false}, {880, 76, false, false}, + {880, 90, false, false}, {880, 87, false, false}, {880, 51, false, false}, {739, 124, false, false}, + {739, 78, true, false}, {739, 49, false, false}, {739, 17, false, false}, {739, 70, true, false}, + {739, 21, false, false}, {739, 49, false, false}, {739, 18, true, false}, {739, 110, false, false}, + {739, 89, true, false}, {739, 31, false, false}, {739, 51, true, false}, {739, 164, false, false}, + {739, 17, true, false}, {739, 68, false, false}, {739, 99, false, false}, {739, 12, false, false}, + {739, 73, false, false}, {739, 24, false, false}, {739, 24, true, false}, {698, 228, false, false}, + {698, 17, false, false}, {698, 126, false, false}, {698, 65, false, false}, {698, 187, true, false}, + {698, 90, false, false}, {698, 135, false, false}, {698, 10, false, false}, {698, 29, true, false}, + {698, 95, false, false}, {698, 107, false, false}, {698, 79, false, false}, {698, 24, false, false}, + {783, 139, false, false}, {783, 76, true, false}, {783, 14, false, false}, {783, 37, false, false}, + {783, 20, false, false}, {783, 71, true, false}, {783, 20, false, false}, {783, 48, false, false}, + {783, 10, true, false}, {783, 123, false, false}, {783, 76, true, false}, {783, 84, false, false}, + {783, 129, false, false}, {783, 21, false, false}, {783, 29, true, false}, {783, 75, false, false}, + {783, 112, false, false}, {783, 76, false, false}, {783, 31, true, false}, {523, 150, false, false}, + {523, 150, false, false}, {0, 150, false, false}, {1318, 75, false, false}, {1318, 103, false, false}, + {1318, 121, false, false}, {1318, 75, false, false}, {1318, 224, false, false}, {391, 150, false, false}, + {587, 300, false, false}, {698, 300, false, false}, {659, 268, false, false}, {659, 31, true, false}, + {523, 285, false, false}, {523, 14, true, false}, {0, 150, false, false}, {0, 150, false, false}, + {0, 150, false, false}, {523, 300, false, false}, {523, 300, false, false}, {0, 150, false, false}, + {493, 293, false, false}, {587, 306, true, false}, {523, 150, false, false}, {0, 129, false, false}, + {1046, 20, false, false}, {2093, 150, true, false}, {0, 67, false, false}, {0, 46, false, false}, + {0, 35, false, false}, {0, 24, false, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/alla-turca.mid b/scripts/midillis/Alla_Turca/alla-turca.mid new file mode 100644 index 0000000..8b61f87 Binary files /dev/null and b/scripts/midillis/Alla_Turca/alla-turca.mid differ diff --git a/scripts/midillis/Alla_Turca/alla_turca_8.mid b/scripts/midillis/Alla_Turca/alla_turca_8.mid new file mode 100644 index 0000000..b0af1fd Binary files /dev/null and b/scripts/midillis/Alla_Turca/alla_turca_8.mid differ diff --git a/scripts/midillis/Alla_Turca/alla_turca_8_c.log b/scripts/midillis/Alla_Turca/alla_turca_8_c.log new file mode 100644 index 0000000..f587825 --- /dev/null +++ b/scripts/midillis/Alla_Turca/alla_turca_8_c.log @@ -0,0 +1,546 @@ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(2): Expected device instantiation or directive here. +const SequenceStep custom_song[] = { +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(3): Expected device instantiation or directive here. + {493, 136, false, false}, {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(4): Expected device instantiation or directive here. + {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, {523, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(5): Expected device instantiation or directive here. + {329, 136, false, false}, {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(6): Expected device instantiation or directive here. + {261, 136, false, false}, {659, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(7): Expected device instantiation or directive here. + {220, 136, false, false}, {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(8): Expected device instantiation or directive here. + {220, 136, false, false}, {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(9): Expected device instantiation or directive here. + {220, 272, false, false}, {329, 272, false, false}, {261, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(10): Expected device instantiation or directive here. + {164, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(11): Expected device instantiation or directive here. + {164, 272, false, false}, {246, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(12): Expected device instantiation or directive here. + {164, 272, false, false}, {329, 272, false, false}, {123, 272, false, false}, {246, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(13): Expected device instantiation or directive here. + {164, 545, false, false}, {523, 272, false, false}, {698, 272, false, false}, {130, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(14): Expected device instantiation or directive here. + {261, 272, false, false}, {164, 136, false, false}, {783, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(15): Expected device instantiation or directive here. + {659, 136, false, false}, {195, 272, false, false}, {391, 272, false, false}, {523, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(16): Expected device instantiation or directive here. + {698, 272, false, false}, {130, 272, false, false}, {261, 272, false, false}, {164, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(17): Expected device instantiation or directive here. + {783, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {195, 545, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(18): Expected device instantiation or directive here. + {440, 272, false, false}, {587, 272, false, false}, {110, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(19): Expected device instantiation or directive here. + {130, 136, false, false}, {659, 136, false, false}, {261, 136, false, false}, {523, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(20): Expected device instantiation or directive here. + {164, 272, false, false}, {329, 272, false, false}, {440, 272, false, false}, {587, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(21): Expected device instantiation or directive here. + {110, 272, false, false}, {220, 272, false, false}, {130, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(22): Expected device instantiation or directive here. + {261, 136, false, false}, {523, 136, false, false}, {164, 545, false, false}, {493, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(23): Expected device instantiation or directive here. + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(24): Expected device instantiation or directive here. + {329, 272, false, false}, {261, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(25): Expected device instantiation or directive here. + {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(26): Expected device instantiation or directive here. + {659, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(27): Expected device instantiation or directive here. + {880, 136, false, false}, {261, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(28): Expected device instantiation or directive here. + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {174, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(29): Expected device instantiation or directive here. + {311, 272, false, false}, {311, 272, false, false}, {311, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(30): Expected device instantiation or directive here. + {220, 272, false, false}, {146, 272, false, false}, {246, 272, false, false}, {130, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(31): Expected device instantiation or directive here. + {220, 272, false, false}, {146, 272, false, false}, {246, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(32): Expected device instantiation or directive here. + {164, 272, false, false}, {207, 272, false, false}, {207, 136, false, false}, {440, 68, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(33): Expected device instantiation or directive here. + {493, 68, false, false}, {220, 68, false, false}, {220, 477, false, false}, {440, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(34): Expected device instantiation or directive here. + {493, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(35): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(36): Expected device instantiation or directive here. + {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, {155, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(37): Expected device instantiation or directive here. + {155, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(38): Expected device instantiation or directive here. + {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(39): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(40): Expected device instantiation or directive here. + {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(41): Expected device instantiation or directive here. + {164, 272, false, false}, {110, 545, false, false}, {1108, 136, false, false}, {1174, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(42): Expected device instantiation or directive here. + {1108, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, {987, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(43): Expected device instantiation or directive here. + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(44): Expected device instantiation or directive here. + {277, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, {739, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(45): Expected device instantiation or directive here. + {246, 136, false, false}, {698, 136, false, false}, {277, 136, false, false}, {622, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(46): Expected device instantiation or directive here. + {277, 136, false, false}, {554, 136, false, false}, {184, 136, false, false}, {698, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(47): Expected device instantiation or directive here. + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(48): Expected device instantiation or directive here. + {277, 136, false, false}, {987, 136, false, false}, {174, 136, false, false}, {1046, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(49): Expected device instantiation or directive here. + {277, 136, false, false}, {1046, 136, false, false}, {277, 136, false, false}, {1174, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(50): Expected device instantiation or directive here. + {277, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, {987, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(51): Expected device instantiation or directive here. + {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(52): Expected device instantiation or directive here. + {220, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, {739, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(53): Expected device instantiation or directive here. + {329, 136, false, false}, {659, 136, false, false}, {329, 136, false, false}, {622, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(54): Expected device instantiation or directive here. + {329, 136, false, false}, {554, 136, false, false}, {207, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(55): Expected device instantiation or directive here. + {369, 136, false, false}, {622, 136, false, false}, {311, 136, false, false}, {554, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(56): Expected device instantiation or directive here. + {369, 136, false, false}, {523, 136, false, false}, {329, 545, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(57): Expected device instantiation or directive here. + {587, 136, false, false}, {554, 136, false, false}, {493, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(58): Expected device instantiation or directive here. + {493, 136, false, false}, {329, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(59): Expected device instantiation or directive here. + {739, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {246, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(60): Expected device instantiation or directive here. + {830, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, {207, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(61): Expected device instantiation or directive here. + {587, 136, false, false}, {329, 136, false, false}, {493, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(62): Expected device instantiation or directive here. + {493, 136, false, false}, {329, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(63): Expected device instantiation or directive here. + {739, 136, false, false}, {277, 136, false, false}, {880, 136, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(64): Expected device instantiation or directive here. + {293, 272, false, false}, {293, 136, false, false}, {587, 136, false, false}, {293, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(65): Expected device instantiation or directive here. + {493, 136, false, false}, {220, 136, false, false}, {493, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(66): Expected device instantiation or directive here. + {587, 136, false, false}, {277, 136, false, false}, {739, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(67): Expected device instantiation or directive here. + {880, 136, false, false}, {246, 136, false, false}, {830, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(68): Expected device instantiation or directive here. + {659, 136, false, false}, {207, 136, false, false}, {587, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(69): Expected device instantiation or directive here. + {493, 136, false, false}, {220, 136, false, false}, {659, 136, false, false}, {184, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(70): Expected device instantiation or directive here. + {554, 136, false, false}, {146, 136, false, false}, {587, 136, false, false}, {164, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(71): Expected device instantiation or directive here. + {493, 136, false, false}, {110, 272, false, false}, {220, 272, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(72): Expected device instantiation or directive here. + {1174, 136, false, false}, {1108, 136, false, false}, {987, 136, false, false}, {184, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(73): Expected device instantiation or directive here. + {987, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(74): Expected device instantiation or directive here. + {880, 136, false, false}, {277, 136, false, false}, {739, 136, false, false}, {207, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(75): Expected device instantiation or directive here. + {739, 136, false, false}, {277, 136, false, false}, {698, 136, false, false}, {246, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(76): Expected device instantiation or directive here. + {622, 136, false, false}, {277, 136, false, false}, {554, 136, false, false}, {184, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(77): Expected device instantiation or directive here. + {698, 136, false, false}, {277, 136, false, false}, {830, 136, false, false}, {277, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(78): Expected device instantiation or directive here. + {830, 136, false, false}, {277, 136, false, false}, {987, 136, false, false}, {138, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(79): Expected device instantiation or directive here. + {1046, 136, false, false}, {207, 136, false, false}, {1046, 136, false, false}, {277, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(80): Expected device instantiation or directive here. + {1046, 136, false, false}, {277, 136, false, false}, {932, 136, false, false}, {123, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(81): Expected device instantiation or directive here. + {1108, 136, false, false}, {246, 136, false, false}, {1108, 136, false, false}, {246, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(82): Expected device instantiation or directive here. + {1108, 136, false, false}, {246, 136, false, false}, {1108, 136, false, false}, {123, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(83): Expected device instantiation or directive here. + {1108, 136, false, false}, {246, 136, false, false}, {880, 136, false, false}, {246, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(84): Expected device instantiation or directive here. + {880, 136, false, false}, {246, 136, false, false}, {830, 136, false, false}, {138, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(85): Expected device instantiation or directive here. + {987, 136, false, false}, {220, 136, false, false}, {739, 136, false, false}, {138, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(86): Expected device instantiation or directive here. + {739, 136, false, false}, {207, 136, false, false}, {698, 136, false, false}, {220, 545, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(87): Expected device instantiation or directive here. + {440, 272, false, false}, {493, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(88): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(89): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(90): Expected device instantiation or directive here. + {155, 272, false, false}, {155, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(91): Expected device instantiation or directive here. + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(92): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(93): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {146, 272, false, false}, {146, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(94): Expected device instantiation or directive here. + {164, 272, false, false}, {164, 272, false, false}, {110, 545, false, false}, {493, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(95): Expected device instantiation or directive here. + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(96): Expected device instantiation or directive here. + {329, 272, false, false}, {329, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(97): Expected device instantiation or directive here. + {523, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(98): Expected device instantiation or directive here. + {659, 136, false, false}, {261, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(99): Expected device instantiation or directive here. + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(100): Expected device instantiation or directive here. + {880, 136, false, false}, {329, 136, false, false}, {880, 136, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(101): Expected device instantiation or directive here. + {329, 272, false, false}, {329, 272, false, false}, {261, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(102): Expected device instantiation or directive here. + {329, 272, false, false}, {329, 272, false, false}, {329, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(103): Expected device instantiation or directive here. + {329, 272, false, false}, {246, 272, false, false}, {329, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(104): Expected device instantiation or directive here. + {329, 272, false, false}, {123, 272, false, false}, {246, 272, false, false}, {164, 545, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(105): Expected device instantiation or directive here. + {659, 272, false, false}, {698, 272, false, false}, {130, 272, false, false}, {261, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(106): Expected device instantiation or directive here. + {164, 136, false, false}, {783, 136, false, false}, {329, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(107): Expected device instantiation or directive here. + {195, 272, false, false}, {391, 272, false, false}, {659, 272, false, false}, {698, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(108): Expected device instantiation or directive here. + {130, 272, false, false}, {261, 272, false, false}, {164, 136, false, false}, {783, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(109): Expected device instantiation or directive here. + {329, 136, false, false}, {659, 136, false, false}, {195, 545, false, false}, {523, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(110): Expected device instantiation or directive here. + {587, 272, false, false}, {110, 272, false, false}, {220, 272, false, false}, {130, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(111): Expected device instantiation or directive here. + {659, 136, false, false}, {261, 136, false, false}, {523, 136, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(112): Expected device instantiation or directive here. + {329, 272, false, false}, {523, 272, false, false}, {587, 272, false, false}, {110, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(113): Expected device instantiation or directive here. + {220, 272, false, false}, {130, 136, false, false}, {659, 136, false, false}, {261, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(114): Expected device instantiation or directive here. + {523, 136, false, false}, {164, 545, false, false}, {493, 136, false, false}, {440, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(115): Expected device instantiation or directive here. + {415, 136, false, false}, {440, 136, false, false}, {220, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(116): Expected device instantiation or directive here. + {329, 136, false, false}, {523, 136, false, false}, {329, 136, false, false}, {523, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(117): Expected device instantiation or directive here. + {220, 272, false, false}, {329, 272, false, false}, {329, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(118): Expected device instantiation or directive here. + {329, 136, false, false}, {659, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(119): Expected device instantiation or directive here. + {329, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(120): Expected device instantiation or directive here. + {261, 136, false, false}, {880, 136, false, false}, {174, 272, false, false}, {311, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(121): Expected device instantiation or directive here. + {311, 272, false, false}, {311, 272, false, false}, {164, 272, false, false}, {329, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(122): Expected device instantiation or directive here. + {146, 272, false, false}, {174, 272, false, false}, {130, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(123): Expected device instantiation or directive here. + {146, 272, false, false}, {246, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(124): Expected device instantiation or directive here. + {164, 272, false, false}, {207, 136, false, false}, {440, 68, false, false}, {493, 68, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(125): Expected device instantiation or directive here. + {220, 68, false, false}, {220, 477, false, false}, {440, 136, false, false}, {880, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(126): Expected device instantiation or directive here. + {493, 136, false, false}, {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(127): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(128): Expected device instantiation or directive here. + {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(129): Expected device instantiation or directive here. + {987, 136, false, false}, {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(130): Expected device instantiation or directive here. + {830, 136, false, false}, {146, 136, false, false}, {739, 136, false, false}, {146, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(131): Expected device instantiation or directive here. + {830, 136, false, false}, {155, 136, false, false}, {880, 136, false, false}, {155, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(132): Expected device instantiation or directive here. + {987, 136, false, false}, {164, 136, false, false}, {830, 136, false, false}, {164, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(133): Expected device instantiation or directive here. + {659, 136, false, false}, {164, 136, false, false}, {880, 136, false, false}, {164, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(134): Expected device instantiation or directive here. + {987, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(135): Expected device instantiation or directive here. + {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {987, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(136): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {987, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(137): Expected device instantiation or directive here. + {220, 136, false, false}, {880, 136, false, false}, {220, 136, false, false}, {830, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(138): Expected device instantiation or directive here. + {146, 136, false, false}, {739, 136, false, false}, {146, 136, false, false}, {987, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(139): Expected device instantiation or directive here. + {164, 136, false, false}, {830, 136, false, false}, {164, 136, false, false}, {659, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(140): Expected device instantiation or directive here. + {110, 545, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(141): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(142): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(143): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(144): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(145): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(146): Expected device instantiation or directive here. + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(147): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(148): Expected device instantiation or directive here. + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(149): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(150): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(151): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(152): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(153): Expected device instantiation or directive here. + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(154): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(155): Expected device instantiation or directive here. + {164, 272, false, false}, {164, 272, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(156): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(157): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(158): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(159): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(160): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(161): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(162): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(163): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {369, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(164): Expected device instantiation or directive here. + {293, 136, false, false}, {369, 136, false, false}, {220, 136, false, false}, {369, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(165): Expected device instantiation or directive here. + {293, 136, false, false}, {369, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(166): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {220, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(167): Expected device instantiation or directive here. + {277, 136, false, false}, {329, 136, false, false}, {164, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(168): Expected device instantiation or directive here. + {207, 136, false, false}, {329, 136, false, false}, {164, 136, false, false}, {329, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(169): Expected device instantiation or directive here. + {207, 136, false, false}, {329, 136, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(170): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(171): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(172): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {220, 136, false, false}, {1108, 136, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(173): Expected device instantiation or directive here. + {220, 136, false, false}, {1108, 136, false, false}, {146, 272, false, false}, {146, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(174): Expected device instantiation or directive here. + {146, 272, false, false}, {146, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(175): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {164, 272, false, false}, {164, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(176): Expected device instantiation or directive here. + {164, 272, false, false}, {164, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(177): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(178): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(179): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, {220, 272, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(180): Expected device instantiation or directive here. + {220, 272, false, false}, {220, 272, false, false}, {110, 545, false, false}, {164, 545, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(181): Expected device instantiation or directive here. + {164, 545, false, false}, +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(182): Expected device instantiation or directive here. + {0, 2000, false, false} +^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Z:\home\gateleven\midillis\Alla_Turca\alla_turca_8_c.txt(183): Expected device instantiation or directive here. +}; +^ diff --git a/scripts/midillis/Alla_Turca/alla_turca_8_c.txt b/scripts/midillis/Alla_Turca/alla_turca_8_c.txt new file mode 100644 index 0000000..bc7adfe --- /dev/null +++ b/scripts/midillis/Alla_Turca/alla_turca_8_c.txt @@ -0,0 +1,183 @@ +// Converted from: alla_turca_8.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_alla_turca_8[] = { + {493, 136, false, false}, {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, + {523, 272, false, true}, {329, 272, false, false}, {587, 136, false, false}, {523, 136, false, false}, + {493, 136, false, false}, {523, 136, false, false}, {659, 272, false, true}, {329, 272, false, false}, + {698, 136, false, false}, {659, 136, false, false}, {622, 136, false, false}, {659, 136, false, false}, + {987, 136, false, true}, {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, + {987, 136, false, true}, {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, + {1046, 272, false, true}, {1046, 272, false, false}, {880, 272, false, false}, {1046, 272, false, false}, + {987, 272, false, true}, {880, 272, false, true}, {783, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {880, 272, false, true}, {783, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {880, 272, false, true}, {783, 272, true, false}, {739, 272, false, true}, + {659, 545, false, true}, {659, 272, false, false}, {698, 272, false, false}, {783, 272, true, false}, + {783, 272, false, false}, {880, 136, false, true}, {783, 136, false, false}, {698, 136, false, false}, + {659, 136, false, false}, {587, 272, false, true}, {391, 272, false, false}, {659, 272, false, false}, + {698, 272, false, false}, {783, 272, true, false}, {783, 272, false, false}, {880, 136, false, true}, + {783, 136, false, false}, {698, 136, false, false}, {659, 136, false, false}, {587, 545, false, true}, + {523, 272, false, false}, {587, 272, false, false}, {659, 272, true, false}, {659, 272, false, true}, + {698, 136, true, false}, {659, 136, false, false}, {587, 136, false, false}, {523, 136, false, false}, + {493, 272, false, true}, {329, 272, false, false}, {523, 272, false, false}, {587, 272, false, false}, + {659, 272, true, false}, {659, 272, false, true}, {698, 136, true, false}, {659, 136, false, false}, + {587, 136, false, false}, {523, 136, false, false}, {493, 545, false, true}, {493, 136, false, false}, + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {523, 272, false, true}, + {329, 272, false, false}, {587, 136, false, false}, {523, 136, false, false}, {493, 136, false, false}, + {523, 136, false, false}, {659, 272, false, true}, {329, 272, false, false}, {698, 136, false, false}, + {659, 136, false, false}, {622, 136, false, false}, {659, 136, false, false}, {987, 136, false, true}, + {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {987, 136, false, true}, + {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {1046, 272, false, true}, + {311, 272, false, true}, {880, 272, false, true}, {987, 272, false, true}, {1046, 272, false, true}, + {987, 272, false, true}, {880, 272, false, true}, {830, 272, false, true}, {880, 272, true, false}, + {659, 272, false, true}, {698, 272, false, true}, {587, 272, false, true}, {523, 272, false, true}, + {523, 272, false, true}, {493, 272, false, true}, {493, 136, false, true}, {440, 68, false, false}, + {493, 68, false, false}, {493, 68, true, true}, {440, 477, false, false}, {880, 272, false, false}, + {987, 272, false, false}, {1108, 272, false, true}, {1108, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, {880, 272, false, true}, + {830, 272, false, true}, {739, 272, false, true}, {830, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {830, 272, false, true}, {659, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, {880, 272, false, true}, + {987, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, {880, 272, false, true}, + {830, 272, false, true}, {739, 272, false, true}, {987, 272, false, true}, {830, 272, false, true}, + {659, 272, false, true}, {880, 545, true, false}, {1108, 136, false, false}, {1174, 136, false, false}, + {1108, 136, false, false}, {987, 136, false, false}, {880, 136, false, true}, {987, 136, false, false}, + {880, 136, false, true}, {830, 136, false, false}, {739, 136, false, true}, {880, 136, false, false}, + {830, 136, false, true}, {739, 136, false, false}, {698, 136, false, true}, {739, 136, false, false}, + {830, 136, false, true}, {698, 136, false, false}, {554, 136, false, true}, {622, 136, false, false}, + {698, 136, false, true}, {554, 136, false, false}, {739, 136, false, true}, {698, 136, false, false}, + {739, 136, false, true}, {830, 136, false, false}, {880, 136, false, true}, {830, 136, false, false}, + {880, 136, false, true}, {987, 136, false, false}, {1108, 136, false, true}, {1046, 136, false, false}, + {1108, 136, false, true}, {1046, 136, false, false}, {1108, 136, false, true}, {1174, 136, false, false}, + {1108, 136, false, true}, {987, 136, false, false}, {880, 136, false, true}, {987, 136, false, false}, + {880, 136, false, true}, {830, 136, false, false}, {739, 136, false, true}, {880, 136, false, false}, + {830, 136, false, true}, {739, 136, false, false}, {659, 136, false, true}, {739, 136, false, false}, + {830, 136, false, false}, {659, 136, false, false}, {554, 136, false, false}, {622, 136, false, false}, + {659, 136, false, false}, {554, 136, false, false}, {622, 136, false, true}, {659, 136, false, false}, + {739, 136, false, false}, {622, 136, false, false}, {523, 136, false, false}, {554, 136, false, false}, + {622, 136, false, false}, {523, 136, false, false}, {554, 545, false, false}, {659, 136, false, false}, + {587, 136, false, false}, {554, 136, false, false}, {493, 136, false, false}, {440, 136, false, true}, + {493, 136, false, false}, {554, 136, false, false}, {587, 136, false, false}, {659, 136, false, false}, + {739, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {880, 136, false, true}, + {830, 136, false, false}, {739, 136, false, false}, {659, 136, false, false}, {659, 136, false, true}, + {587, 136, false, false}, {554, 136, false, false}, {493, 136, false, false}, {440, 136, false, true}, + {493, 136, false, false}, {554, 136, false, false}, {587, 136, false, false}, {659, 136, false, false}, + {739, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {932, 272, false, true}, + {987, 272, false, true}, {659, 136, false, true}, {587, 136, false, false}, {554, 136, false, true}, + {493, 136, false, false}, {440, 136, false, true}, {493, 136, false, false}, {554, 136, false, false}, + {587, 136, false, false}, {659, 136, false, false}, {739, 136, false, false}, {830, 136, false, false}, + {880, 136, false, false}, {880, 136, false, true}, {830, 136, false, false}, {739, 136, false, false}, + {659, 136, false, false}, {659, 136, false, true}, {587, 136, false, false}, {554, 136, false, false}, + {493, 136, false, false}, {554, 136, false, true}, {659, 136, false, false}, {440, 136, false, true}, + {554, 136, false, false}, {493, 136, false, true}, {587, 136, false, false}, {415, 136, false, true}, + {493, 136, false, false}, {440, 272, true, false}, {440, 272, false, true}, {1108, 136, false, false}, + {1174, 136, false, false}, {1108, 136, false, false}, {987, 136, false, false}, {880, 136, false, true}, + {987, 136, false, false}, {880, 136, false, true}, {830, 136, false, false}, {739, 136, false, true}, + {880, 136, false, false}, {830, 136, false, true}, {739, 136, false, false}, {698, 136, false, true}, + {739, 136, false, false}, {830, 136, false, true}, {698, 136, false, false}, {554, 136, false, true}, + {622, 136, false, false}, {698, 136, false, true}, {554, 136, false, false}, {739, 136, false, true}, + {698, 136, false, false}, {739, 136, false, true}, {830, 136, false, false}, {880, 136, false, true}, + {830, 136, false, false}, {880, 136, false, true}, {987, 136, false, false}, {1108, 136, true, false}, + {1046, 136, false, false}, {1108, 136, false, true}, {1046, 136, false, false}, {1108, 136, false, true}, + {1046, 136, false, false}, {1108, 136, false, true}, {932, 136, false, false}, {1174, 136, true, false}, + {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, {1174, 136, false, true}, + {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, {1174, 136, true, false}, + {1108, 136, false, false}, {987, 136, false, true}, {880, 136, false, false}, {830, 136, false, true}, + {880, 136, false, false}, {987, 136, false, true}, {830, 136, false, false}, {880, 136, true, false}, + {987, 136, false, false}, {1108, 136, false, true}, {739, 136, false, false}, {698, 136, true, false}, + {739, 136, false, false}, {830, 136, false, true}, {698, 136, false, false}, {739, 545, false, true}, + {880, 272, false, false}, {987, 272, false, false}, {1108, 272, false, true}, {1108, 272, false, true}, + {880, 272, false, true}, {987, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, + {880, 272, false, true}, {830, 272, false, true}, {739, 272, false, true}, {830, 272, false, true}, + {880, 272, false, true}, {987, 272, false, true}, {830, 272, false, true}, {659, 272, false, true}, + {880, 272, false, true}, {987, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {880, 272, false, true}, {987, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, + {880, 272, false, true}, {830, 272, false, true}, {739, 272, false, true}, {987, 272, false, true}, + {830, 272, false, true}, {659, 272, false, true}, {880, 545, true, false}, {493, 136, false, false}, + {440, 136, false, false}, {415, 136, false, false}, {440, 136, false, false}, {523, 272, false, true}, + {329, 272, false, false}, {587, 136, false, false}, {523, 136, false, false}, {493, 136, false, false}, + {523, 136, false, false}, {659, 272, false, true}, {329, 272, false, false}, {698, 136, false, false}, + {659, 136, false, false}, {622, 136, false, false}, {659, 136, false, false}, {987, 136, false, true}, + {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {987, 136, false, true}, + {880, 136, false, false}, {830, 136, false, false}, {880, 136, false, false}, {1046, 272, false, true}, + {1046, 272, false, false}, {880, 272, false, false}, {1046, 272, false, false}, {987, 272, false, true}, + {880, 272, false, true}, {783, 272, false, true}, {880, 272, false, true}, {987, 272, false, true}, + {880, 272, false, true}, {783, 272, false, true}, {880, 272, false, true}, {987, 272, false, true}, + {880, 272, false, true}, {783, 272, true, false}, {739, 272, false, true}, {659, 545, false, true}, + {659, 272, false, false}, {698, 272, false, false}, {783, 272, true, false}, {783, 272, false, false}, + {880, 136, false, true}, {783, 136, false, false}, {698, 136, false, false}, {659, 136, false, false}, + {587, 272, false, true}, {391, 272, false, false}, {659, 272, false, false}, {698, 272, false, false}, + {783, 272, true, false}, {783, 272, false, false}, {880, 136, false, true}, {783, 136, false, false}, + {698, 136, false, false}, {659, 136, false, false}, {587, 545, false, true}, {523, 272, false, false}, + {587, 272, false, false}, {659, 272, true, false}, {659, 272, false, true}, {698, 136, true, false}, + {659, 136, false, false}, {587, 136, false, false}, {523, 136, false, false}, {493, 272, false, true}, + {493, 272, false, false}, {523, 272, false, false}, {587, 272, false, false}, {659, 272, true, false}, + {659, 272, false, true}, {698, 136, true, false}, {659, 136, false, false}, {587, 136, false, false}, + {523, 136, false, false}, {493, 545, false, true}, {493, 136, false, false}, {440, 136, false, false}, + {415, 136, false, false}, {440, 136, false, false}, {523, 272, false, true}, {329, 272, false, false}, + {587, 136, false, false}, {523, 136, false, false}, {493, 136, false, false}, {523, 136, false, false}, + {659, 272, false, true}, {329, 272, false, false}, {698, 136, false, false}, {659, 136, false, false}, + {622, 136, false, false}, {659, 136, false, false}, {987, 136, false, true}, {880, 136, false, false}, + {830, 136, false, false}, {880, 136, false, false}, {987, 136, false, true}, {880, 136, false, false}, + {830, 136, false, false}, {880, 136, false, false}, {1046, 272, false, true}, {311, 272, false, true}, + {880, 272, false, true}, {987, 272, false, true}, {1046, 272, false, true}, {987, 272, false, true}, + {880, 272, false, true}, {830, 272, false, true}, {880, 272, true, false}, {659, 272, false, true}, + {698, 272, false, true}, {587, 272, false, true}, {523, 272, false, true}, {523, 272, false, true}, + {493, 272, false, true}, {493, 136, false, true}, {440, 68, false, false}, {493, 68, false, false}, + {493, 68, true, true}, {440, 477, false, false}, {440, 136, false, false}, {880, 136, false, false}, + {493, 136, false, false}, {987, 136, false, false}, {554, 136, false, true}, {1108, 136, false, false}, + {0, 272, false, true}, {440, 136, false, true}, {880, 136, false, false}, {493, 136, false, true}, + {987, 136, false, false}, {554, 136, false, true}, {1108, 136, false, false}, {493, 136, false, true}, + {987, 136, false, false}, {440, 136, false, true}, {880, 136, false, false}, {415, 136, false, true}, + {830, 136, false, false}, {369, 136, false, true}, {739, 136, false, false}, {415, 136, false, true}, + {830, 136, false, false}, {440, 136, false, true}, {880, 136, false, false}, {493, 136, false, true}, + {987, 136, false, false}, {415, 136, false, true}, {830, 136, false, false}, {329, 136, false, true}, + {659, 136, false, false}, {440, 136, false, true}, {880, 136, false, false}, {493, 136, false, true}, + {987, 136, false, false}, {554, 136, false, true}, {1108, 136, false, false}, {0, 272, false, true}, + {440, 136, false, true}, {880, 136, false, false}, {493, 136, false, true}, {987, 136, false, false}, + {554, 136, false, true}, {1108, 136, false, false}, {493, 136, false, true}, {987, 136, false, false}, + {440, 136, false, true}, {880, 136, false, false}, {415, 136, false, true}, {830, 136, false, false}, + {369, 136, false, true}, {739, 136, false, false}, {493, 136, false, true}, {987, 136, false, false}, + {415, 136, false, true}, {830, 136, false, false}, {329, 136, false, true}, {659, 136, false, false}, + {880, 545, true, false}, {880, 272, false, true}, {880, 272, false, true}, {1108, 272, false, true}, + {1108, 136, false, true}, {1108, 136, false, false}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 272, false, true}, {1174, 272, false, true}, + {0, 272, false, true}, {0, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, {987, 272, false, true}, + {987, 272, false, true}, {1318, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 272, false, true}, {1174, 272, false, true}, + {1174, 272, false, true}, {1174, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, {987, 272, false, true}, + {987, 272, false, true}, {987, 272, false, true}, {880, 136, false, true}, {880, 136, false, false}, + {880, 136, false, false}, {880, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, false}, {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, false}, {1108, 136, false, false}, {1174, 136, false, true}, {1174, 136, false, false}, + {1174, 136, false, false}, {1174, 136, false, false}, {1174, 136, false, true}, {1174, 136, false, false}, + {1174, 136, false, false}, {1174, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {1108, 136, false, true}, {1108, 136, false, false}, + {1108, 136, false, false}, {1108, 136, false, false}, {987, 136, false, true}, {987, 136, false, false}, + {987, 136, false, true}, {987, 136, false, false}, {987, 136, false, true}, {987, 136, false, false}, + {1318, 136, false, true}, {1318, 136, false, false}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 136, false, true}, {1108, 136, false, false}, + {987, 136, false, true}, {1108, 136, false, false}, {1174, 272, false, true}, {1174, 272, false, true}, + {1174, 272, false, true}, {1174, 272, false, true}, {1108, 272, false, true}, {1108, 272, false, true}, + {1108, 272, false, true}, {1108, 272, false, true}, {987, 272, false, true}, {987, 272, false, true}, + {987, 272, false, true}, {987, 272, false, true}, {880, 272, false, true}, {880, 272, false, true}, + {880, 272, false, true}, {1108, 272, false, true}, {880, 272, false, true}, {880, 272, false, true}, + {880, 272, false, true}, {1318, 272, false, true}, {880, 272, false, true}, {880, 272, false, true}, + {880, 272, false, true}, {1108, 272, false, true}, {880, 272, false, true}, {1108, 272, false, true}, + {880, 272, false, true}, {1318, 272, false, true}, {880, 545, true, false}, {880, 545, true, true}, + {880, 545, true, true}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/alla_turca_c.txt b/scripts/midillis/Alla_Turca/alla_turca_c.txt new file mode 100644 index 0000000..37809c3 --- /dev/null +++ b/scripts/midillis/Alla_Turca/alla_turca_c.txt @@ -0,0 +1,613 @@ +// Converted from: alla-turca.mid +const SequenceStep custom_song[] = { + {493, 113, false, false}, {440, 113, false, false}, {415, 113, false, false}, {440, 113, false, false}, + {220, 149, false, false}, {220, 78, false, false}, {329, 214, false, false}, {0, 12, false, false}, + {329, 113, false, false}, {523, 35, false, false}, {523, 78, false, false}, {329, 113, false, false}, + {523, 35, false, false}, {523, 78, false, false}, {220, 149, false, false}, {220, 78, false, false}, + {329, 214, false, false}, {0, 12, false, false}, {329, 113, false, false}, {659, 35, false, false}, + {659, 78, false, false}, {329, 113, false, false}, {659, 35, false, false}, {659, 78, false, false}, + {220, 113, false, false}, {880, 35, false, false}, {880, 78, false, false}, {329, 113, false, false}, + {880, 35, false, false}, {880, 78, false, false}, {220, 113, false, false}, {880, 35, false, false}, + {880, 78, false, false}, {329, 113, false, false}, {880, 35, false, false}, {880, 78, false, false}, + {220, 227, false, false}, {329, 204, false, false}, {329, 10, false, false}, {0, 12, false, false}, + {329, 149, false, false}, {0, 78, false, false}, {329, 145, false, false}, {783, 40, false, false}, + {880, 40, false, false}, {164, 149, false, false}, {0, 78, false, false}, {329, 149, false, false}, + {0, 78, false, false}, {329, 149, false, false}, {0, 78, false, false}, {329, 145, false, false}, + {783, 40, false, false}, {880, 40, false, false}, {164, 149, false, false}, {0, 78, false, false}, + {329, 149, false, false}, {0, 78, false, false}, {329, 149, false, false}, {0, 78, false, false}, + {329, 145, false, false}, {783, 40, false, false}, {880, 40, false, false}, {164, 149, false, false}, + {0, 78, false, false}, {329, 149, false, false}, {0, 78, false, false}, {123, 149, false, false}, + {0, 78, false, false}, {246, 149, false, false}, {0, 78, false, false}, {164, 427, false, false}, + {0, 26, false, false}, {493, 113, false, false}, {440, 113, false, false}, {415, 113, false, false}, + {440, 113, false, false}, {220, 149, false, false}, {220, 78, false, false}, {329, 214, false, false}, + {0, 12, false, false}, {329, 113, false, false}, {523, 35, false, false}, {523, 78, false, false}, + {329, 113, false, false}, {523, 35, false, false}, {523, 78, false, false}, {220, 149, false, false}, + {220, 78, false, false}, {329, 214, false, false}, {0, 12, false, false}, {329, 113, false, false}, + {659, 35, false, false}, {659, 78, false, false}, {329, 113, false, false}, {659, 35, false, false}, + {659, 78, false, false}, {220, 113, false, false}, {880, 35, false, false}, {880, 78, false, false}, + {329, 113, false, false}, {880, 35, false, false}, {880, 78, false, false}, {220, 113, false, false}, + {880, 35, false, false}, {880, 78, false, false}, {329, 113, false, false}, {880, 35, false, false}, + {880, 78, false, false}, {220, 227, false, false}, {329, 204, false, false}, {329, 10, false, false}, + {0, 12, false, false}, {329, 149, false, false}, {0, 78, false, false}, {329, 145, false, false}, + {783, 40, false, false}, {880, 40, false, false}, {164, 149, false, false}, {0, 78, false, false}, + {329, 149, false, false}, {0, 78, false, false}, {329, 149, false, false}, {0, 78, false, false}, + {329, 145, false, false}, {783, 40, false, false}, {880, 40, false, false}, {164, 149, false, false}, + {0, 78, false, false}, {329, 149, false, false}, {0, 78, false, false}, {329, 149, false, false}, + {0, 78, false, false}, {329, 145, false, false}, {783, 40, false, false}, {880, 40, false, false}, + {164, 149, false, false}, {0, 78, false, false}, {329, 149, false, false}, {0, 78, false, false}, + {123, 149, false, false}, {0, 78, false, false}, {246, 149, false, false}, {0, 78, false, false}, + {164, 427, false, false}, {0, 26, false, false}, {659, 146, false, false}, {0, 76, false, false}, + {698, 146, false, false}, {0, 76, false, false}, {130, 146, false, false}, {0, 76, false, false}, + {261, 146, false, false}, {0, 76, false, false}, {164, 111, false, false}, {783, 34, false, false}, + {783, 76, false, false}, {329, 111, false, false}, {659, 34, false, false}, {659, 76, false, false}, + {195, 223, false, false}, {391, 197, false, false}, {391, 13, false, false}, {0, 12, false, false}, + {659, 146, false, false}, {0, 76, false, false}, {698, 146, false, false}, {0, 76, false, false}, + {130, 146, false, false}, {0, 76, false, false}, {261, 146, false, false}, {0, 76, false, false}, + {164, 111, false, false}, {783, 34, false, false}, {783, 76, false, false}, {329, 111, false, false}, + {659, 34, false, false}, {659, 76, false, false}, {195, 421, false, false}, {0, 26, false, false}, + {523, 146, false, false}, {0, 76, false, false}, {587, 146, false, false}, {0, 76, false, false}, + {110, 148, false, false}, {0, 77, false, false}, {220, 148, false, false}, {0, 77, false, false}, + {130, 107, false, false}, {659, 40, false, false}, {659, 72, false, false}, {261, 112, false, false}, + {523, 40, false, false}, {523, 72, false, false}, {164, 218, false, false}, {164, 12, false, false}, + {329, 199, false, false}, {329, 14, false, false}, {0, 12, false, false}, {523, 148, false, false}, + {0, 77, false, false}, {587, 148, false, false}, {0, 77, false, false}, {110, 148, false, false}, + {0, 77, false, false}, {220, 148, false, false}, {0, 77, false, false}, {130, 107, false, false}, + {659, 40, false, false}, {659, 72, false, false}, {261, 112, false, false}, {523, 40, false, false}, + {523, 72, false, false}, {164, 429, false, false}, {0, 26, false, false}, {493, 112, false, false}, + {440, 112, false, false}, {415, 112, false, false}, {440, 112, false, false}, {220, 148, false, false}, + {0, 77, false, false}, {329, 148, false, false}, {0, 77, false, false}, {329, 112, false, false}, + {523, 35, false, false}, {523, 77, false, false}, {329, 112, false, false}, {523, 35, false, false}, + {523, 77, false, false}, {220, 148, false, false}, {0, 77, false, false}, {329, 148, false, false}, + {0, 77, false, false}, {329, 112, false, false}, {659, 35, false, false}, {659, 77, false, false}, + {329, 112, false, false}, {659, 35, false, false}, {659, 77, false, false}, {220, 113, false, false}, + {880, 101, false, false}, {880, 12, false, false}, {329, 113, false, false}, {880, 101, false, false}, + {880, 12, false, false}, {220, 113, false, false}, {880, 101, false, false}, {880, 12, false, false}, + {329, 113, false, false}, {880, 101, false, false}, {880, 12, false, false}, {174, 227, false, false}, + {311, 204, false, false}, {311, 10, false, false}, {0, 12, false, false}, {311, 146, false, false}, + {0, 76, false, false}, {311, 146, false, false}, {0, 76, false, false}, {164, 146, false, false}, + {0, 76, false, false}, {329, 146, false, false}, {0, 76, false, false}, {146, 146, false, false}, + {0, 76, false, false}, {246, 146, false, false}, {0, 76, false, false}, {130, 146, false, false}, + {0, 76, false, false}, {220, 146, false, false}, {0, 76, false, false}, {146, 146, false, false}, + {0, 76, false, false}, {246, 146, false, false}, {0, 76, false, false}, {220, 151, false, false}, + {0, 79, false, false}, {220, 151, false, false}, {0, 52, false, false}, {0, 27, false, false}, + {207, 72, false, false}, {493, 73, false, false}, {0, 16, false, false}, {523, 64, false, false}, + {207, 16, false, false}, {493, 64, false, false}, {0, 37, false, false}, {440, 36, false, false}, + {440, 19, false, false}, {493, 57, false, false}, {220, 436, false, false}, {0, 27, false, false}, + {659, 151, false, false}, {0, 79, false, false}, {698, 151, false, false}, {0, 79, false, false}, + {130, 151, false, false}, {0, 79, false, false}, {261, 151, false, false}, {0, 79, false, false}, + {164, 115, false, false}, {783, 36, false, false}, {783, 79, false, false}, {329, 115, false, false}, + {659, 36, false, false}, {659, 79, false, false}, {195, 230, false, false}, {391, 203, false, false}, + {391, 14, false, false}, {0, 12, false, false}, {659, 151, false, false}, {0, 79, false, false}, + {698, 151, false, false}, {0, 79, false, false}, {130, 151, false, false}, {0, 79, false, false}, + {261, 151, false, false}, {0, 79, false, false}, {164, 115, false, false}, {783, 36, false, false}, + {783, 79, false, false}, {329, 115, false, false}, {659, 36, false, false}, {659, 79, false, false}, + {195, 434, false, false}, {0, 27, false, false}, {523, 151, false, false}, {0, 79, false, false}, + {587, 151, false, false}, {0, 79, false, false}, {110, 148, false, false}, {0, 77, false, false}, + {220, 148, false, false}, {0, 77, false, false}, {130, 107, false, false}, {659, 40, false, false}, + {659, 72, false, false}, {261, 112, false, false}, {523, 40, false, false}, {523, 72, false, false}, + {164, 218, false, false}, {164, 12, false, false}, {329, 199, false, false}, {329, 14, false, false}, + {0, 12, false, false}, {523, 148, false, false}, {0, 77, false, false}, {587, 148, false, false}, + {0, 77, false, false}, {110, 148, false, false}, {0, 77, false, false}, {220, 148, false, false}, + {0, 77, false, false}, {130, 107, false, false}, {659, 40, false, false}, {659, 72, false, false}, + {261, 112, false, false}, {523, 40, false, false}, {523, 72, false, false}, {164, 429, false, false}, + {0, 26, false, false}, {493, 112, false, false}, {440, 112, false, false}, {415, 112, false, false}, + {440, 112, false, false}, {220, 148, false, false}, {0, 77, false, false}, {329, 148, false, false}, + {0, 77, false, false}, {329, 112, false, false}, {523, 35, false, false}, {523, 77, false, false}, + {329, 112, false, false}, {523, 35, false, false}, {523, 77, false, false}, {220, 148, false, false}, + {0, 77, false, false}, {329, 148, false, false}, {0, 77, false, false}, {329, 112, false, false}, + {659, 35, false, false}, {659, 77, false, false}, {329, 112, false, false}, {659, 35, false, false}, + {659, 77, false, false}, {220, 113, false, false}, {880, 101, false, false}, {880, 12, false, false}, + {329, 113, false, false}, {880, 101, false, false}, {880, 12, false, false}, {220, 113, false, false}, + {880, 101, false, false}, {880, 12, false, false}, {329, 113, false, false}, {880, 101, false, false}, + {880, 12, false, false}, {174, 227, false, false}, {311, 204, false, false}, {311, 10, false, false}, + {0, 12, false, false}, {311, 146, false, false}, {0, 76, false, false}, {311, 146, false, false}, + {0, 76, false, false}, {164, 146, false, false}, {0, 76, false, false}, {329, 146, false, false}, + {0, 76, false, false}, {146, 146, false, false}, {0, 76, false, false}, {246, 146, false, false}, + {0, 76, false, false}, {130, 146, false, false}, {0, 76, false, false}, {220, 146, false, false}, + {0, 76, false, false}, {146, 146, false, false}, {0, 76, false, false}, {246, 146, false, false}, + {0, 76, false, false}, {220, 151, false, false}, {0, 79, false, false}, {220, 151, false, false}, + {0, 52, false, false}, {0, 27, false, false}, {207, 72, false, false}, {493, 73, false, false}, + {0, 16, false, false}, {523, 64, false, false}, {207, 16, false, false}, {493, 64, false, false}, + {0, 37, false, false}, {440, 36, false, false}, {440, 19, false, false}, {493, 57, false, false}, + {220, 436, false, false}, {0, 27, false, false}, {880, 152, false, false}, {0, 79, false, false}, + {987, 98, false, false}, {110, 43, false, false}, {138, 10, false, false}, {138, 34, false, false}, + {164, 45, false, false}, {220, 219, false, false}, {0, 12, false, false}, {220, 205, false, false}, + {220, 14, false, false}, {0, 12, false, false}, {220, 152, false, false}, {220, 67, false, false}, + {0, 12, false, false}, {220, 98, false, false}, {110, 43, false, false}, {138, 10, false, false}, + {138, 34, false, false}, {164, 45, false, false}, {220, 152, false, false}, {220, 67, false, false}, + {0, 12, false, false}, {220, 152, false, false}, {220, 67, false, false}, {0, 12, false, false}, + {220, 152, false, false}, {220, 67, false, false}, {0, 12, false, false}, {220, 90, false, false}, + {73, 50, false, false}, {92, 10, false, false}, {92, 34, false, false}, {110, 45, false, false}, + {146, 152, false, false}, {146, 67, false, false}, {0, 12, false, false}, {146, 50, false, false}, + {77, 52, false, false}, {92, 45, false, false}, {110, 83, false, false}, {155, 152, false, false}, + {155, 67, false, false}, {0, 12, false, false}, {155, 90, false, false}, {82, 50, false, false}, + {103, 10, false, false}, {103, 34, false, false}, {123, 45, false, false}, {164, 152, false, false}, + {164, 67, false, false}, {0, 12, false, false}, {164, 152, false, false}, {164, 67, false, false}, + {0, 12, false, false}, {164, 152, false, false}, {164, 67, false, false}, {0, 12, false, false}, + {164, 98, false, false}, {110, 43, false, false}, {138, 10, false, false}, {138, 34, false, false}, + {164, 45, false, false}, {220, 219, false, false}, {0, 12, false, false}, {220, 205, false, false}, + {220, 14, false, false}, {0, 12, false, false}, {220, 152, false, false}, {220, 67, false, false}, + {0, 12, false, false}, {220, 98, false, false}, {110, 43, false, false}, {138, 10, false, false}, + {138, 34, false, false}, {164, 45, false, false}, {220, 152, false, false}, {220, 67, false, false}, + {0, 12, false, false}, {220, 152, false, false}, {220, 67, false, false}, {0, 12, false, false}, + {220, 152, false, false}, {220, 67, false, false}, {0, 12, false, false}, {220, 90, false, false}, + {73, 50, false, false}, {92, 10, false, false}, {92, 34, false, false}, {110, 45, false, false}, + {146, 152, false, false}, {146, 67, false, false}, {0, 12, false, false}, {146, 90, false, false}, + {82, 50, false, false}, {103, 10, false, false}, {103, 34, false, false}, {123, 45, false, false}, + {164, 152, false, false}, {164, 67, false, false}, {0, 12, false, false}, {164, 152, false, false}, + {164, 67, false, false}, {0, 12, false, false}, {110, 437, false, false}, {0, 27, false, false}, + {880, 152, false, false}, {0, 79, false, false}, {987, 98, false, false}, {110, 43, false, false}, + {138, 10, false, false}, {138, 34, false, false}, {164, 45, false, false}, {220, 219, false, false}, + {0, 12, false, false}, {220, 205, false, false}, {220, 14, false, false}, {0, 12, false, false}, + {220, 152, false, false}, {220, 67, false, false}, {0, 12, false, false}, {220, 98, false, false}, + {110, 43, false, false}, {138, 10, false, false}, {138, 34, false, false}, {164, 45, false, false}, + {220, 152, false, false}, {220, 67, false, false}, {0, 12, false, false}, {220, 152, false, false}, + {220, 67, false, false}, {0, 12, false, false}, {220, 152, false, false}, {220, 67, false, false}, + {0, 12, false, false}, {220, 90, false, false}, {73, 50, false, false}, {92, 10, false, false}, + {92, 34, false, false}, {110, 45, false, false}, {146, 152, false, false}, {146, 67, false, false}, + {0, 12, false, false}, {146, 50, false, false}, {77, 52, false, false}, {92, 45, false, false}, + {110, 83, false, false}, {155, 152, false, false}, {155, 67, false, false}, {0, 12, false, false}, + {155, 90, false, false}, {82, 50, false, false}, {103, 10, false, false}, {103, 34, false, false}, + {123, 45, false, false}, {164, 152, false, false}, {164, 67, false, false}, {0, 12, false, false}, + {164, 152, false, false}, {164, 67, false, false}, {0, 12, false, false}, {164, 152, false, false}, + {164, 67, false, false}, {0, 12, false, false}, {164, 98, false, false}, {110, 43, false, false}, + {138, 10, false, false}, {138, 34, false, false}, {164, 45, false, false}, {220, 219, false, false}, + {0, 12, false, false}, {220, 205, false, false}, {220, 14, false, false}, {0, 12, false, false}, + {220, 152, false, false}, {220, 67, false, false}, {0, 12, false, false}, {220, 98, false, false}, + {110, 43, false, false}, {138, 10, false, false}, {138, 34, false, false}, {164, 45, false, false}, + {220, 152, false, false}, {220, 67, false, false}, {0, 12, false, false}, {220, 152, false, false}, + {220, 67, false, false}, {0, 12, false, false}, {220, 152, false, false}, {220, 67, false, false}, + {0, 12, false, false}, {220, 90, false, false}, {73, 50, false, false}, {92, 10, false, false}, + {92, 34, false, false}, {110, 45, false, false}, {146, 152, false, false}, {146, 67, false, false}, + {0, 12, false, false}, {146, 90, false, false}, {82, 50, false, false}, {103, 10, false, false}, + {103, 34, false, false}, {123, 45, false, false}, {164, 152, false, false}, {164, 67, false, false}, + {0, 12, false, false}, {164, 152, false, false}, {164, 67, false, false}, {0, 12, false, false}, + {110, 437, false, false}, {0, 27, false, false}, {1108, 120, false, false}, {1174, 120, false, false}, + {1108, 120, false, false}, {987, 120, false, false}, {184, 120, false, false}, {987, 103, false, false}, + {987, 12, false, false}, {277, 116, false, false}, {830, 103, false, false}, {830, 12, false, false}, + {277, 116, false, false}, {880, 103, false, false}, {880, 12, false, false}, {277, 116, false, false}, + {739, 103, false, false}, {739, 12, false, false}, {207, 116, false, false}, {739, 103, false, false}, + {739, 12, false, false}, {277, 116, false, false}, {698, 103, false, false}, {698, 12, false, false}, + {277, 116, false, false}, {622, 103, false, false}, {622, 12, false, false}, {277, 116, false, false}, + {554, 103, false, false}, {554, 12, false, false}, {184, 116, false, false}, {698, 103, false, false}, + {698, 12, false, false}, {277, 116, false, false}, {830, 103, false, false}, {830, 12, false, false}, + {277, 116, false, false}, {830, 103, false, false}, {830, 12, false, false}, {277, 118, false, false}, + {987, 105, false, false}, {987, 12, false, false}, {174, 118, false, false}, {1046, 105, false, false}, + {1046, 12, false, false}, {277, 118, false, false}, {1046, 105, false, false}, {1046, 12, false, false}, + {277, 118, false, false}, {1174, 105, false, false}, {1174, 12, false, false}, {277, 118, false, false}, + {987, 105, false, false}, {987, 12, false, false}, {184, 118, false, false}, {987, 105, false, false}, + {987, 12, false, false}, {277, 118, false, false}, {830, 105, false, false}, {830, 12, false, false}, + {277, 118, false, false}, {880, 105, false, false}, {880, 12, false, false}, {277, 118, false, false}, + {739, 105, false, false}, {739, 12, false, false}, {207, 118, false, false}, {739, 105, false, false}, + {739, 12, false, false}, {329, 118, false, false}, {659, 105, false, false}, {659, 12, false, false}, + {329, 118, false, false}, {622, 105, false, false}, {622, 12, false, false}, {329, 118, false, false}, + {554, 105, false, false}, {554, 12, false, false}, {207, 118, false, false}, {659, 105, false, false}, + {659, 12, false, false}, {369, 118, false, false}, {622, 106, false, false}, {622, 13, false, false}, + {369, 119, false, false}, {554, 106, false, false}, {554, 13, false, false}, {369, 119, false, false}, + {523, 106, false, false}, {523, 13, false, false}, {329, 448, false, false}, {0, 27, false, false}, + {1108, 119, false, false}, {1174, 119, false, false}, {1108, 119, false, false}, {987, 119, false, false}, + {184, 119, false, false}, {987, 103, false, false}, {987, 12, false, false}, {277, 116, false, false}, + {830, 103, false, false}, {830, 12, false, false}, {277, 116, false, false}, {880, 103, false, false}, + {880, 12, false, false}, {277, 116, false, false}, {739, 103, false, false}, {739, 12, false, false}, + {207, 116, false, false}, {739, 103, false, false}, {739, 12, false, false}, {277, 116, false, false}, + {698, 103, false, false}, {698, 12, false, false}, {277, 116, false, false}, {622, 103, false, false}, + {622, 12, false, false}, {277, 116, false, false}, {554, 103, false, false}, {554, 12, false, false}, + {184, 116, false, false}, {698, 103, false, false}, {698, 12, false, false}, {277, 116, false, false}, + {830, 103, false, false}, {830, 12, false, false}, {277, 116, false, false}, {830, 103, false, false}, + {830, 12, false, false}, {277, 118, false, false}, {987, 105, false, false}, {987, 12, false, false}, + {174, 118, false, false}, {1046, 105, false, false}, {1046, 12, false, false}, {277, 118, false, false}, + {1046, 105, false, false}, {1046, 12, false, false}, {277, 118, false, false}, {1174, 105, false, false}, + {1174, 12, false, false}, {277, 118, false, false}, {987, 105, false, false}, {987, 12, false, false}, + {184, 118, false, false}, {987, 105, false, false}, {987, 12, false, false}, {277, 118, false, false}, + {830, 105, false, false}, {830, 12, false, false}, {277, 118, false, false}, {880, 105, false, false}, + {880, 12, false, false}, {277, 118, false, false}, {739, 105, false, false}, {739, 12, false, false}, + {207, 118, false, false}, {739, 105, false, false}, {739, 12, false, false}, {329, 118, false, false}, + {659, 105, false, false}, {659, 12, false, false}, {329, 118, false, false}, {622, 105, false, false}, + {622, 12, false, false}, {329, 118, false, false}, {554, 105, false, false}, {554, 12, false, false}, + {207, 118, false, false}, {659, 105, false, false}, {659, 12, false, false}, {369, 118, false, false}, + {622, 106, false, false}, {622, 13, false, false}, {369, 119, false, false}, {554, 106, false, false}, + {554, 13, false, false}, {369, 119, false, false}, {523, 106, false, false}, {523, 13, false, false}, + {329, 448, false, false}, {0, 27, false, false}, {659, 119, false, false}, {587, 119, false, false}, + {554, 119, false, false}, {493, 119, false, false}, {220, 119, false, false}, {493, 106, false, false}, + {493, 13, false, false}, {329, 119, false, false}, {587, 106, false, false}, {587, 13, false, false}, + {329, 119, false, false}, {739, 106, false, false}, {739, 13, false, false}, {329, 119, false, false}, + {880, 106, false, false}, {880, 13, false, false}, {246, 119, false, false}, {830, 106, false, false}, + {830, 13, false, false}, {329, 119, false, false}, {659, 106, false, false}, {0, 13, false, false}, + {207, 119, false, false}, {587, 106, false, false}, {587, 13, false, false}, {329, 119, false, false}, + {493, 106, false, false}, {493, 13, false, false}, {220, 119, false, false}, {493, 106, false, false}, + {493, 13, false, false}, {329, 119, false, false}, {587, 106, false, false}, {587, 13, false, false}, + {329, 119, false, false}, {739, 106, false, false}, {739, 13, false, false}, {329, 119, false, false}, + {880, 106, false, false}, {880, 13, false, false}, {164, 225, false, false}, {0, 13, false, false}, + {293, 225, false, false}, {0, 13, false, false}, {293, 119, false, false}, {587, 106, false, false}, + {587, 13, false, false}, {293, 119, false, false}, {493, 106, false, false}, {493, 13, false, false}, + {220, 119, false, false}, {493, 106, false, false}, {493, 13, false, false}, {329, 119, false, false}, + {587, 106, false, false}, {587, 13, false, false}, {329, 119, false, false}, {739, 106, false, false}, + {739, 13, false, false}, {329, 119, false, false}, {880, 106, false, false}, {880, 13, false, false}, + {246, 119, false, false}, {830, 106, false, false}, {830, 13, false, false}, {329, 119, false, false}, + {659, 106, false, false}, {0, 13, false, false}, {207, 119, false, false}, {587, 106, false, false}, + {587, 13, false, false}, {329, 119, false, false}, {493, 106, false, false}, {493, 13, false, false}, + {220, 119, false, false}, {659, 106, false, false}, {659, 13, false, false}, {184, 119, false, false}, + {554, 106, false, false}, {554, 13, false, false}, {146, 119, false, false}, {587, 106, false, false}, + {587, 13, false, false}, {164, 119, false, false}, {493, 106, false, false}, {493, 13, false, false}, + {110, 225, false, false}, {0, 13, false, false}, {220, 213, false, false}, {220, 11, false, false}, + {0, 13, false, false}, {220, 119, false, false}, {1174, 106, false, false}, {1174, 13, false, false}, + {220, 119, false, false}, {987, 106, false, false}, {987, 13, false, false}, {184, 119, false, false}, + {987, 106, false, false}, {987, 13, false, false}, {277, 119, false, false}, {830, 106, false, false}, + {830, 13, false, false}, {277, 119, false, false}, {880, 106, false, false}, {880, 13, false, false}, + {277, 119, false, false}, {739, 106, false, false}, {739, 13, false, false}, {207, 119, false, false}, + {739, 106, false, false}, {739, 13, false, false}, {277, 119, false, false}, {698, 106, false, false}, + {698, 13, false, false}, {277, 120, false, false}, {622, 106, false, false}, {622, 13, false, false}, + {277, 120, false, false}, {554, 106, false, false}, {554, 13, false, false}, {184, 120, false, false}, + {698, 106, false, false}, {698, 13, false, false}, {277, 120, false, false}, {830, 106, false, false}, + {830, 13, false, false}, {277, 120, false, false}, {830, 107, false, false}, {830, 13, false, false}, + {277, 120, false, false}, {987, 107, false, false}, {987, 13, false, false}, {138, 120, false, false}, + {1046, 107, false, false}, {1046, 13, false, false}, {277, 120, false, false}, {1046, 107, false, false}, + {1046, 13, false, false}, {277, 120, false, false}, {1046, 107, false, false}, {1046, 13, false, false}, + {277, 120, false, false}, {932, 107, false, false}, {932, 13, false, false}, {123, 120, false, false}, + {1108, 107, false, false}, {1108, 13, false, false}, {246, 120, false, false}, {1108, 107, false, false}, + {1108, 13, false, false}, {246, 120, false, false}, {1108, 107, false, false}, {1108, 13, false, false}, + {246, 120, false, false}, {1108, 107, false, false}, {1108, 13, false, false}, {123, 120, false, false}, + {1108, 107, false, false}, {1108, 13, false, false}, {246, 120, false, false}, {880, 107, false, false}, + {880, 13, false, false}, {246, 120, false, false}, {880, 107, false, false}, {880, 13, false, false}, + {246, 120, false, false}, {830, 107, false, false}, {830, 13, false, false}, {138, 120, false, false}, + {987, 107, false, false}, {987, 13, false, false}, {220, 120, false, false}, {739, 107, false, false}, + {739, 13, false, false}, {138, 120, false, false}, {739, 107, false, false}, {739, 13, false, false}, + {246, 120, false, false}, {698, 107, false, false}, {698, 13, false, false}, {220, 455, false, false}, + {0, 28, false, false}, {659, 120, false, false}, {587, 120, false, false}, {554, 120, false, false}, + {493, 120, false, false}, {220, 120, false, false}, {493, 107, false, false}, {493, 13, false, false}, + {329, 120, false, false}, {587, 107, false, false}, {587, 13, false, false}, {329, 120, false, false}, + {739, 107, false, false}, {739, 13, false, false}, {329, 120, false, false}, {880, 107, false, false}, + {880, 13, false, false}, {246, 120, false, false}, {830, 107, false, false}, {830, 13, false, false}, + {329, 120, false, false}, {659, 107, false, false}, {0, 13, false, false}, {207, 120, false, false}, + {587, 107, false, false}, {587, 13, false, false}, {329, 120, false, false}, {493, 107, false, false}, + {493, 13, false, false}, {220, 120, false, false}, {493, 107, false, false}, {493, 13, false, false}, + {329, 120, false, false}, {587, 107, false, false}, {587, 13, false, false}, {329, 120, false, false}, + {739, 107, false, false}, {739, 13, false, false}, {329, 120, false, false}, {880, 107, false, false}, + {880, 13, false, false}, {164, 228, false, false}, {0, 13, false, false}, {293, 228, false, false}, + {0, 13, false, false}, {293, 120, false, false}, {587, 107, false, false}, {587, 13, false, false}, + {293, 120, false, false}, {493, 107, false, false}, {493, 13, false, false}, {220, 120, false, false}, + {493, 107, false, false}, {493, 13, false, false}, {329, 120, false, false}, {587, 107, false, false}, + {587, 13, false, false}, {329, 120, false, false}, {739, 107, false, false}, {739, 13, false, false}, + {329, 120, false, false}, {880, 107, false, false}, {880, 13, false, false}, {246, 120, false, false}, + {830, 107, false, false}, {830, 13, false, false}, {329, 120, false, false}, {659, 107, false, false}, + {0, 13, false, false}, {207, 120, false, false}, {587, 107, false, false}, {587, 13, false, false}, + {329, 120, false, false}, {493, 107, false, false}, {493, 13, false, false}, {220, 120, false, false}, + {659, 107, false, false}, {659, 13, false, false}, {184, 120, false, false}, {554, 107, false, false}, + {554, 13, false, false}, {146, 120, false, false}, {587, 107, false, false}, {587, 13, false, false}, + {164, 120, false, false}, {493, 107, false, false}, {493, 13, false, false}, {110, 228, false, false}, + {0, 13, false, false}, {220, 217, false, false}, {220, 11, false, false}, {0, 13, false, false}, + {220, 120, false, false}, {1174, 107, false, false}, {1174, 13, false, false}, {220, 120, false, false}, + {987, 107, false, false}, {987, 13, false, false}, {184, 120, false, false}, {987, 107, false, false}, + {987, 13, false, false}, {277, 120, false, false}, {830, 107, false, false}, {830, 13, false, false}, + {277, 120, false, false}, {880, 107, false, false}, {880, 13, false, false}, {277, 120, false, false}, + {739, 107, false, false}, {739, 13, false, false}, {207, 120, false, false}, {739, 107, false, false}, + {739, 13, false, false}, {277, 120, false, false}, {698, 106, false, false}, {698, 13, false, false}, + {277, 120, false, false}, {622, 106, false, false}, {622, 13, false, false}, {277, 120, false, false}, + {554, 106, false, false}, {554, 13, false, false}, {184, 120, false, false}, {698, 106, false, false}, + {698, 13, false, false}, {277, 120, false, false}, {830, 106, false, false}, {830, 13, false, false}, + {277, 120, false, false}, {830, 107, false, false}, {830, 13, false, false}, {277, 120, false, false}, + {987, 107, false, false}, {987, 13, false, false}, {138, 120, false, false}, {1046, 107, false, false}, + {1046, 13, false, false}, {277, 120, false, false}, {1046, 107, false, false}, {1046, 13, false, false}, + {277, 120, false, false}, {1046, 107, false, false}, {1046, 13, false, false}, {277, 120, false, false}, + {932, 107, false, false}, {932, 13, false, false}, {123, 120, false, false}, {1108, 107, false, false}, + {1108, 13, false, false}, {246, 120, false, false}, {1108, 107, false, false}, {1108, 13, false, false}, + {246, 120, false, false}, {1108, 107, false, false}, {1108, 13, false, false}, {246, 120, false, false}, + {1108, 107, false, false}, {1108, 13, false, false}, {123, 120, false, false}, {1108, 107, false, false}, + {1108, 13, false, false}, {246, 120, false, false}, {880, 107, false, false}, {880, 13, false, false}, + {246, 120, false, false}, {880, 107, false, false}, {880, 13, false, false}, {246, 120, false, false}, + {830, 107, false, false}, {830, 13, false, false}, {138, 120, false, false}, {987, 107, false, false}, + {987, 13, false, false}, {220, 120, false, false}, {739, 107, false, false}, {739, 13, false, false}, + {138, 120, false, false}, {739, 107, false, false}, {739, 13, false, false}, {246, 120, false, false}, + {698, 107, false, false}, {698, 13, false, false}, {220, 455, false, false}, {0, 28, false, false}, + {880, 158, false, false}, {0, 83, false, false}, {987, 119, false, false}, {110, 39, false, false}, + {138, 43, false, false}, {164, 39, false, false}, {220, 228, false, false}, {0, 13, false, false}, + {220, 206, false, false}, {220, 14, false, false}, {0, 12, false, false}, {220, 153, false, false}, + {220, 67, false, false}, {0, 12, false, false}, {220, 111, false, false}, {110, 40, false, false}, + {138, 42, false, false}, {164, 40, false, false}, {220, 153, false, false}, {220, 67, false, false}, + {0, 12, false, false}, {220, 153, false, false}, {220, 67, false, false}, {0, 12, false, false}, + {220, 153, false, false}, {220, 67, false, false}, {0, 12, false, false}, {220, 111, false, false}, + {73, 40, false, false}, {92, 42, false, false}, {110, 40, false, false}, {146, 153, false, false}, + {146, 67, false, false}, {0, 12, false, false}, {146, 87, false, false}, {77, 36, false, false}, + {92, 29, false, false}, {110, 80, false, false}, {155, 153, false, false}, {155, 67, false, false}, + {0, 12, false, false}, {155, 111, false, false}, {82, 40, false, false}, {103, 42, false, false}, + {123, 40, false, false}, {164, 153, false, false}, {164, 67, false, false}, {0, 12, false, false}, + {164, 153, false, false}, {164, 67, false, false}, {0, 12, false, false}, {164, 153, false, false}, + {164, 67, false, false}, {0, 12, false, false}, {164, 133, false, false}, {110, 20, false, false}, + {110, 10, false, false}, {138, 29, false, false}, {164, 40, false, false}, {220, 221, false, false}, + {0, 12, false, false}, {220, 206, false, false}, {220, 14, false, false}, {0, 12, false, false}, + {220, 153, false, false}, {220, 67, false, false}, {0, 12, false, false}, {220, 111, false, false}, + {110, 40, false, false}, {138, 42, false, false}, {164, 40, false, false}, {220, 153, false, false}, + {220, 67, false, false}, {0, 12, false, false}, {220, 153, false, false}, {220, 67, false, false}, + {0, 12, false, false}, {220, 153, false, false}, {220, 67, false, false}, {0, 12, false, false}, + {220, 111, false, false}, {73, 40, false, false}, {92, 42, false, false}, {110, 40, false, false}, + {146, 153, false, false}, {146, 67, false, false}, {0, 12, false, false}, {146, 122, false, false}, + {82, 31, false, false}, {103, 40, false, false}, {123, 40, false, false}, {164, 153, false, false}, + {164, 67, false, false}, {0, 12, false, false}, {164, 153, false, false}, {164, 67, false, false}, + {0, 12, false, false}, {110, 441, false, false}, {0, 27, false, false}, {880, 148, false, false}, + {0, 77, false, false}, {987, 102, false, false}, {110, 42, false, false}, {138, 40, false, false}, + {164, 40, false, false}, {220, 213, false, false}, {0, 12, false, false}, {220, 206, false, false}, + {220, 14, false, false}, {0, 12, false, false}, {220, 153, false, false}, {220, 67, false, false}, + {0, 12, false, false}, {220, 111, false, false}, {110, 40, false, false}, {138, 42, false, false}, + {164, 40, false, false}, {220, 153, false, false}, {220, 67, false, false}, {0, 12, false, false}, + {220, 153, false, false}, {220, 67, false, false}, {0, 12, false, false}, {220, 153, false, false}, + {220, 67, false, false}, {0, 12, false, false}, {220, 111, false, false}, {73, 40, false, false}, + {92, 42, false, false}, {110, 40, false, false}, {146, 153, false, false}, {146, 67, false, false}, + {0, 12, false, false}, {146, 87, false, false}, {77, 36, false, false}, {92, 29, false, false}, + {110, 80, false, false}, {155, 153, false, false}, {155, 67, false, false}, {0, 12, false, false}, + {155, 111, false, false}, {82, 40, false, false}, {103, 42, false, false}, {123, 40, false, false}, + {164, 153, false, false}, {164, 67, false, false}, {0, 12, false, false}, {164, 153, false, false}, + {164, 67, false, false}, {0, 12, false, false}, {164, 153, false, false}, {164, 67, false, false}, + {0, 12, false, false}, {164, 133, false, false}, {110, 20, false, false}, {110, 10, false, false}, + {138, 29, false, false}, {164, 40, false, false}, {220, 221, false, false}, {0, 12, false, false}, + {220, 206, false, false}, {220, 14, false, false}, {0, 12, false, false}, {220, 153, false, false}, + {220, 67, false, false}, {0, 12, false, false}, {220, 111, false, false}, {110, 40, false, false}, + {138, 42, false, false}, {164, 40, false, false}, {220, 153, false, false}, {220, 67, false, false}, + {0, 12, false, false}, {220, 153, false, false}, {220, 67, false, false}, {0, 12, false, false}, + {220, 153, false, false}, {220, 67, false, false}, {0, 12, false, false}, {220, 111, false, false}, + {73, 40, false, false}, {92, 42, false, false}, {110, 40, false, false}, {146, 153, false, false}, + {146, 67, false, false}, {0, 12, false, false}, {146, 122, false, false}, {82, 31, false, false}, + {103, 40, false, false}, {123, 40, false, false}, {164, 153, false, false}, {164, 67, false, false}, + {0, 12, false, false}, {164, 153, false, false}, {164, 67, false, false}, {0, 12, false, false}, + {110, 441, false, false}, {0, 27, false, false}, {493, 107, false, false}, {440, 112, false, false}, + {415, 112, false, false}, {440, 112, false, false}, {220, 153, false, false}, {220, 77, false, false}, + {329, 213, false, false}, {0, 12, false, false}, {329, 112, false, false}, {523, 35, false, false}, + {523, 77, false, false}, {329, 112, false, false}, {523, 35, false, false}, {523, 77, false, false}, + {220, 149, false, false}, {220, 78, false, false}, {329, 214, false, false}, {0, 12, false, false}, + {329, 113, false, false}, {659, 35, false, false}, {659, 78, false, false}, {329, 113, false, false}, + {659, 35, false, false}, {659, 78, false, false}, {220, 113, false, false}, {880, 35, false, false}, + {880, 78, false, false}, {329, 113, false, false}, {880, 35, false, false}, {880, 78, false, false}, + {220, 113, false, false}, {880, 35, false, false}, {880, 78, false, false}, {329, 113, false, false}, + {880, 35, false, false}, {880, 78, false, false}, {220, 227, false, false}, {329, 204, false, false}, + {329, 10, false, false}, {0, 12, false, false}, {329, 150, false, false}, {0, 78, false, false}, + {329, 146, false, false}, {783, 41, false, false}, {880, 41, false, false}, {164, 150, false, false}, + {0, 78, false, false}, {329, 150, false, false}, {0, 78, false, false}, {329, 150, false, false}, + {0, 78, false, false}, {329, 146, false, false}, {783, 41, false, false}, {880, 41, false, false}, + {164, 150, false, false}, {0, 78, false, false}, {329, 150, false, false}, {0, 78, false, false}, + {329, 150, false, false}, {0, 78, false, false}, {329, 148, false, false}, {783, 41, false, false}, + {880, 39, false, false}, {164, 152, false, false}, {0, 79, false, false}, {329, 152, false, false}, + {0, 79, false, false}, {123, 152, false, false}, {0, 79, false, false}, {246, 152, false, false}, + {0, 79, false, false}, {164, 437, false, false}, {0, 27, false, false}, {493, 110, false, false}, + {440, 116, false, false}, {415, 116, false, false}, {440, 116, false, false}, {220, 158, false, false}, + {220, 79, false, false}, {329, 219, false, false}, {0, 12, false, false}, {329, 116, false, false}, + {523, 36, false, false}, {523, 79, false, false}, {329, 116, false, false}, {523, 36, false, false}, + {523, 79, false, false}, {220, 149, false, false}, {220, 78, false, false}, {329, 214, false, false}, + {0, 12, false, false}, {329, 113, false, false}, {659, 35, false, false}, {659, 78, false, false}, + {329, 113, false, false}, {659, 35, false, false}, {659, 78, false, false}, {220, 113, false, false}, + {880, 35, false, false}, {880, 78, false, false}, {329, 113, false, false}, {880, 35, false, false}, + {880, 78, false, false}, {220, 113, false, false}, {880, 35, false, false}, {880, 78, false, false}, + {329, 113, false, false}, {880, 35, false, false}, {880, 78, false, false}, {220, 227, false, false}, + {329, 204, false, false}, {329, 10, false, false}, {0, 12, false, false}, {329, 150, false, false}, + {0, 78, false, false}, {329, 146, false, false}, {783, 41, false, false}, {880, 41, false, false}, + {164, 150, false, false}, {0, 78, false, false}, {329, 150, false, false}, {0, 78, false, false}, + {329, 150, false, false}, {0, 78, false, false}, {329, 146, false, false}, {783, 41, false, false}, + {880, 41, false, false}, {164, 150, false, false}, {0, 78, false, false}, {329, 150, false, false}, + {0, 78, false, false}, {329, 150, false, false}, {0, 78, false, false}, {329, 148, false, false}, + {783, 41, false, false}, {880, 39, false, false}, {164, 152, false, false}, {0, 79, false, false}, + {329, 152, false, false}, {0, 79, false, false}, {123, 152, false, false}, {0, 79, false, false}, + {246, 152, false, false}, {0, 79, false, false}, {164, 437, false, false}, {0, 27, false, false}, + {659, 146, false, false}, {0, 76, false, false}, {698, 146, false, false}, {0, 76, false, false}, + {130, 146, false, false}, {0, 76, false, false}, {261, 146, false, false}, {0, 10, false, false}, + {0, 66, false, false}, {164, 111, false, false}, {783, 34, false, false}, {783, 76, false, false}, + {329, 111, false, false}, {659, 34, false, false}, {659, 76, false, false}, {195, 223, false, false}, + {391, 196, false, false}, {391, 13, false, false}, {0, 12, false, false}, {659, 145, false, false}, + {0, 76, false, false}, {698, 145, false, false}, {0, 76, false, false}, {130, 145, false, false}, + {0, 76, false, false}, {261, 145, false, false}, {0, 10, false, false}, {0, 65, false, false}, + {164, 111, false, false}, {783, 34, false, false}, {783, 76, false, false}, {329, 111, false, false}, + {659, 34, false, false}, {659, 76, false, false}, {195, 424, false, false}, {0, 26, false, false}, + {523, 149, false, false}, {0, 78, false, false}, {587, 149, false, false}, {0, 78, false, false}, + {110, 149, false, false}, {0, 78, false, false}, {220, 149, false, false}, {0, 78, false, false}, + {130, 108, false, false}, {659, 40, false, false}, {659, 72, false, false}, {261, 113, false, false}, + {523, 40, false, false}, {523, 72, false, false}, {164, 220, false, false}, {164, 12, false, false}, + {329, 199, false, false}, {329, 14, false, false}, {0, 12, false, false}, {523, 148, false, false}, + {0, 77, false, false}, {587, 148, false, false}, {0, 77, false, false}, {110, 148, false, false}, + {0, 77, false, false}, {220, 148, false, false}, {0, 77, false, false}, {130, 107, false, false}, + {659, 40, false, false}, {659, 72, false, false}, {261, 112, false, false}, {523, 40, false, false}, + {523, 72, false, false}, {164, 429, false, false}, {0, 26, false, false}, {493, 112, false, false}, + {440, 112, false, false}, {415, 112, false, false}, {440, 112, false, false}, {220, 148, false, false}, + {0, 77, false, false}, {329, 148, false, false}, {0, 77, false, false}, {329, 112, false, false}, + {523, 35, false, false}, {523, 77, false, false}, {329, 112, false, false}, {523, 35, false, false}, + {523, 77, false, false}, {220, 148, false, false}, {0, 77, false, false}, {329, 148, false, false}, + {0, 77, false, false}, {329, 112, false, false}, {659, 35, false, false}, {659, 77, false, false}, + {329, 112, false, false}, {659, 35, false, false}, {659, 77, false, false}, {220, 112, false, false}, + {880, 100, false, false}, {880, 12, false, false}, {329, 112, false, false}, {880, 100, false, false}, + {880, 12, false, false}, {220, 112, false, false}, {880, 100, false, false}, {880, 12, false, false}, + {329, 112, false, false}, {880, 100, false, false}, {880, 12, false, false}, {174, 225, false, false}, + {311, 202, false, false}, {311, 10, false, false}, {0, 12, false, false}, {311, 148, false, false}, + {0, 77, false, false}, {311, 148, false, false}, {0, 77, false, false}, {164, 148, false, false}, + {0, 77, false, false}, {329, 148, false, false}, {0, 77, false, false}, {146, 148, false, false}, + {0, 77, false, false}, {246, 148, false, false}, {0, 77, false, false}, {130, 148, false, false}, + {0, 77, false, false}, {220, 148, false, false}, {0, 77, false, false}, {146, 148, false, false}, + {0, 77, false, false}, {246, 148, false, false}, {0, 77, false, false}, {220, 150, false, false}, + {0, 78, false, false}, {220, 150, false, false}, {0, 51, false, false}, {0, 26, false, false}, + {207, 71, false, false}, {493, 73, false, false}, {0, 16, false, false}, {523, 64, false, false}, + {207, 16, false, false}, {493, 64, false, false}, {0, 37, false, false}, {440, 35, false, false}, + {440, 19, false, false}, {493, 57, false, false}, {220, 432, false, false}, {0, 26, false, false}, + {659, 146, false, false}, {0, 76, false, false}, {698, 146, false, false}, {0, 76, false, false}, + {130, 146, false, false}, {0, 76, false, false}, {261, 146, false, false}, {0, 10, false, false}, + {0, 66, false, false}, {164, 111, false, false}, {783, 34, false, false}, {783, 76, false, false}, + {329, 111, false, false}, {659, 34, false, false}, {659, 76, false, false}, {195, 223, false, false}, + {391, 196, false, false}, {391, 13, false, false}, {0, 12, false, false}, {659, 145, false, false}, + {0, 76, false, false}, {698, 145, false, false}, {0, 76, false, false}, {130, 145, false, false}, + {0, 76, false, false}, {261, 145, false, false}, {0, 10, false, false}, {0, 65, false, false}, + {164, 111, false, false}, {783, 34, false, false}, {783, 76, false, false}, {329, 111, false, false}, + {659, 34, false, false}, {659, 76, false, false}, {195, 424, false, false}, {0, 26, false, false}, + {523, 149, false, false}, {0, 78, false, false}, {587, 149, false, false}, {0, 78, false, false}, + {110, 149, false, false}, {0, 78, false, false}, {220, 149, false, false}, {0, 78, false, false}, + {130, 108, false, false}, {659, 40, false, false}, {659, 72, false, false}, {261, 113, false, false}, + {523, 40, false, false}, {523, 72, false, false}, {164, 220, false, false}, {164, 12, false, false}, + {329, 199, false, false}, {329, 14, false, false}, {0, 12, false, false}, {523, 148, false, false}, + {0, 77, false, false}, {587, 148, false, false}, {0, 77, false, false}, {110, 148, false, false}, + {0, 77, false, false}, {220, 148, false, false}, {0, 77, false, false}, {130, 107, false, false}, + {659, 40, false, false}, {659, 72, false, false}, {261, 112, false, false}, {523, 40, false, false}, + {523, 72, false, false}, {164, 429, false, false}, {0, 26, false, false}, {493, 112, false, false}, + {440, 112, false, false}, {415, 112, false, false}, {440, 112, false, false}, {220, 148, false, false}, + {0, 77, false, false}, {329, 148, false, false}, {0, 77, false, false}, {329, 112, false, false}, + {523, 35, false, false}, {523, 77, false, false}, {329, 112, false, false}, {523, 35, false, false}, + {523, 77, false, false}, {220, 148, false, false}, {0, 77, false, false}, {329, 148, false, false}, + {0, 77, false, false}, {329, 112, false, false}, {659, 35, false, false}, {659, 77, false, false}, + {329, 112, false, false}, {659, 35, false, false}, {659, 77, false, false}, {220, 112, false, false}, + {880, 100, false, false}, {880, 12, false, false}, {329, 112, false, false}, {880, 100, false, false}, + {880, 12, false, false}, {220, 112, false, false}, {880, 100, false, false}, {880, 12, false, false}, + {329, 112, false, false}, {880, 100, false, false}, {880, 12, false, false}, {174, 225, false, false}, + {311, 202, false, false}, {311, 10, false, false}, {0, 12, false, false}, {311, 148, false, false}, + {0, 77, false, false}, {311, 148, false, false}, {0, 77, false, false}, {164, 148, false, false}, + {0, 77, false, false}, {329, 148, false, false}, {0, 77, false, false}, {146, 148, false, false}, + {0, 77, false, false}, {246, 148, false, false}, {0, 77, false, false}, {130, 148, false, false}, + {0, 77, false, false}, {220, 148, false, false}, {0, 77, false, false}, {146, 148, false, false}, + {0, 77, false, false}, {246, 148, false, false}, {0, 77, false, false}, {220, 150, false, false}, + {0, 78, false, false}, {220, 150, false, false}, {0, 51, false, false}, {0, 26, false, false}, + {207, 71, false, false}, {493, 73, false, false}, {0, 16, false, false}, {523, 64, false, false}, + {207, 16, false, false}, {493, 64, false, false}, {0, 37, false, false}, {440, 35, false, false}, + {440, 19, false, false}, {493, 57, false, false}, {220, 432, false, false}, {0, 26, false, false}, + {440, 118, false, false}, {880, 118, false, false}, {493, 112, false, false}, {987, 42, false, false}, + {138, 40, false, false}, {164, 40, false, false}, {220, 118, false, false}, {1108, 105, false, false}, + {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, {220, 118, false, false}, + {880, 105, false, false}, {880, 12, false, false}, {220, 112, false, false}, {987, 42, false, false}, + {138, 40, false, false}, {164, 40, false, false}, {220, 118, false, false}, {1108, 105, false, false}, + {1108, 12, false, false}, {220, 118, false, false}, {987, 105, false, false}, {987, 12, false, false}, + {220, 118, false, false}, {880, 105, false, false}, {880, 12, false, false}, {220, 112, false, false}, + {830, 42, false, false}, {92, 40, false, false}, {110, 40, false, false}, {146, 118, false, false}, + {739, 105, false, false}, {739, 12, false, false}, {146, 92, false, false}, {77, 25, false, false}, + {830, 12, false, false}, {92, 29, false, false}, {110, 75, false, false}, {155, 118, false, false}, + {880, 105, false, false}, {880, 12, false, false}, {155, 112, false, false}, {987, 42, false, false}, + {103, 40, false, false}, {123, 40, false, false}, {164, 118, false, false}, {830, 105, false, false}, + {830, 12, false, false}, {164, 118, false, false}, {659, 105, false, false}, {0, 12, false, false}, + {164, 118, false, false}, {880, 105, false, false}, {880, 12, false, false}, {164, 112, false, false}, + {987, 42, false, false}, {138, 40, false, false}, {164, 40, false, false}, {220, 118, false, false}, + {1108, 105, false, false}, {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, + {220, 118, false, false}, {880, 105, false, false}, {880, 12, false, false}, {220, 112, false, false}, + {987, 42, false, false}, {138, 40, false, false}, {164, 40, false, false}, {220, 118, false, false}, + {1108, 105, false, false}, {1108, 12, false, false}, {220, 118, false, false}, {987, 105, false, false}, + {987, 12, false, false}, {220, 118, false, false}, {880, 105, false, false}, {880, 12, false, false}, + {220, 112, false, false}, {830, 42, false, false}, {92, 40, false, false}, {110, 40, false, false}, + {146, 118, false, false}, {739, 105, false, false}, {739, 12, false, false}, {146, 112, false, false}, + {987, 42, false, false}, {103, 40, false, false}, {123, 40, false, false}, {164, 118, false, false}, + {830, 105, false, false}, {830, 12, false, false}, {164, 118, false, false}, {659, 105, false, false}, + {659, 12, false, false}, {110, 444, false, false}, {0, 27, false, false}, {440, 118, false, false}, + {880, 118, false, false}, {493, 112, false, false}, {987, 42, false, false}, {138, 40, false, false}, + {164, 40, false, false}, {220, 118, false, false}, {1108, 105, false, false}, {0, 12, false, false}, + {220, 223, false, false}, {0, 12, false, false}, {220, 118, false, false}, {880, 105, false, false}, + {880, 12, false, false}, {220, 112, false, false}, {987, 42, false, false}, {138, 40, false, false}, + {164, 40, false, false}, {220, 118, false, false}, {1108, 105, false, false}, {1108, 12, false, false}, + {220, 118, false, false}, {987, 105, false, false}, {987, 12, false, false}, {220, 118, false, false}, + {880, 105, false, false}, {880, 12, false, false}, {220, 112, false, false}, {830, 42, false, false}, + {92, 40, false, false}, {110, 40, false, false}, {146, 118, false, false}, {739, 105, false, false}, + {739, 12, false, false}, {146, 92, false, false}, {77, 25, false, false}, {830, 12, false, false}, + {92, 29, false, false}, {110, 75, false, false}, {155, 118, false, false}, {880, 105, false, false}, + {880, 12, false, false}, {155, 112, false, false}, {987, 42, false, false}, {103, 40, false, false}, + {123, 40, false, false}, {164, 118, false, false}, {830, 105, false, false}, {830, 12, false, false}, + {164, 118, false, false}, {659, 105, false, false}, {0, 12, false, false}, {164, 118, false, false}, + {880, 105, false, false}, {880, 12, false, false}, {164, 112, false, false}, {987, 42, false, false}, + {138, 40, false, false}, {164, 40, false, false}, {220, 118, false, false}, {1108, 105, false, false}, + {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, {220, 118, false, false}, + {880, 105, false, false}, {880, 12, false, false}, {220, 112, false, false}, {987, 42, false, false}, + {138, 40, false, false}, {164, 40, false, false}, {220, 118, false, false}, {1108, 105, false, false}, + {1108, 12, false, false}, {220, 118, false, false}, {987, 105, false, false}, {987, 12, false, false}, + {220, 118, false, false}, {880, 105, false, false}, {880, 12, false, false}, {220, 112, false, false}, + {830, 42, false, false}, {92, 40, false, false}, {110, 40, false, false}, {146, 118, false, false}, + {739, 105, false, false}, {739, 12, false, false}, {146, 112, false, false}, {987, 42, false, false}, + {103, 40, false, false}, {123, 40, false, false}, {164, 118, false, false}, {830, 105, false, false}, + {830, 12, false, false}, {164, 101, false, false}, {110, 16, false, false}, {659, 27, false, false}, + {138, 46, false, false}, {164, 44, false, false}, {220, 223, false, false}, {0, 12, false, false}, + {220, 215, false, false}, {0, 20, false, false}, {220, 223, false, false}, {0, 12, false, false}, + {220, 97, false, false}, {110, 20, false, false}, {1108, 27, false, false}, {138, 46, false, false}, + {164, 16, false, false}, {164, 22, false, false}, {220, 84, false, false}, {659, 31, false, false}, + {1108, 47, false, false}, {880, 64, false, false}, {880, 12, false, false}, {220, 208, false, false}, + {220, 14, false, false}, {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, + {220, 101, false, false}, {110, 44, false, false}, {138, 46, false, false}, {164, 44, false, false}, + {220, 55, false, false}, {220, 23, false, false}, {659, 31, false, false}, {1108, 47, false, false}, + {880, 64, false, false}, {880, 12, false, false}, {220, 208, false, false}, {220, 14, false, false}, + {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, {220, 101, false, false}, + {110, 44, false, false}, {138, 46, false, false}, {164, 44, false, false}, {220, 55, false, false}, + {220, 62, false, false}, {1108, 11, false, false}, {1108, 94, false, false}, {1108, 12, false, false}, + {220, 81, false, false}, {220, 36, false, false}, {1108, 81, false, false}, {0, 23, false, false}, + {0, 12, false, false}, {220, 118, false, false}, {1108, 11, false, false}, {1108, 94, false, false}, + {1108, 12, false, false}, {220, 81, false, false}, {220, 12, false, false}, {73, 23, false, false}, + {1108, 27, false, false}, {92, 46, false, false}, {110, 44, false, false}, {146, 223, false, false}, + {0, 12, false, false}, {146, 223, false, false}, {0, 12, false, false}, {146, 223, false, false}, + {0, 12, false, false}, {146, 101, false, false}, {110, 44, false, false}, {138, 27, false, false}, + {1174, 18, false, false}, {164, 44, false, false}, {220, 155, false, false}, {220, 18, false, false}, + {1174, 49, false, false}, {1174, 12, false, false}, {220, 155, false, false}, {220, 18, false, false}, + {1174, 49, false, false}, {1174, 12, false, false}, {220, 155, false, false}, {220, 18, false, false}, + {1174, 49, false, false}, {1174, 12, false, false}, {220, 94, false, false}, {82, 51, false, false}, + {103, 46, false, false}, {123, 44, false, false}, {164, 223, false, false}, {0, 12, false, false}, + {164, 223, false, false}, {0, 12, false, false}, {164, 193, false, false}, {164, 29, false, false}, + {0, 12, false, false}, {164, 101, false, false}, {110, 44, false, false}, {138, 35, false, false}, + {138, 11, false, false}, {164, 31, false, false}, {164, 12, false, false}, {220, 79, false, false}, + {659, 31, false, false}, {1108, 47, false, false}, {880, 64, false, false}, {880, 12, false, false}, + {220, 208, false, false}, {220, 14, false, false}, {0, 12, false, false}, {220, 223, false, false}, + {0, 12, false, false}, {220, 101, false, false}, {110, 44, false, false}, {138, 46, false, false}, + {164, 44, false, false}, {220, 55, false, false}, {220, 23, false, false}, {659, 31, false, false}, + {1108, 47, false, false}, {880, 64, false, false}, {880, 12, false, false}, {220, 208, false, false}, + {220, 14, false, false}, {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, + {220, 101, false, false}, {110, 44, false, false}, {138, 46, false, false}, {164, 44, false, false}, + {220, 55, false, false}, {220, 62, false, false}, {1108, 11, false, false}, {1108, 94, false, false}, + {1108, 12, false, false}, {220, 81, false, false}, {220, 36, false, false}, {1108, 81, false, false}, + {0, 23, false, false}, {0, 12, false, false}, {220, 118, false, false}, {1108, 20, false, false}, + {1108, 84, false, false}, {1108, 12, false, false}, {220, 81, false, false}, {220, 12, false, false}, + {73, 23, false, false}, {1108, 27, false, false}, {92, 46, false, false}, {110, 44, false, false}, + {146, 223, false, false}, {0, 12, false, false}, {146, 223, false, false}, {0, 12, false, false}, + {146, 223, false, false}, {0, 12, false, false}, {146, 101, false, false}, {110, 44, false, false}, + {138, 27, false, false}, {1174, 18, false, false}, {164, 44, false, false}, {220, 223, false, false}, + {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, {220, 223, false, false}, + {0, 12, false, false}, {220, 94, false, false}, {82, 51, false, false}, {103, 27, false, false}, + {1108, 18, false, false}, {123, 44, false, false}, {164, 173, false, false}, {1108, 49, false, false}, + {1108, 12, false, false}, {164, 173, false, false}, {1108, 49, false, false}, {1108, 12, false, false}, + {164, 173, false, false}, {1108, 49, false, false}, {1108, 12, false, false}, {164, 223, false, false}, + {0, 12, false, false}, {220, 112, false, false}, {329, 118, false, false}, {277, 118, false, false}, + {329, 38, false, false}, {659, 40, false, false}, {880, 38, false, false}, {220, 118, false, false}, + {329, 118, false, false}, {277, 105, false, false}, {277, 12, false, false}, {329, 49, false, false}, + {659, 33, false, false}, {880, 35, false, false}, {220, 118, false, false}, {329, 118, false, false}, + {277, 118, false, false}, {329, 118, false, false}, {220, 118, false, false}, {329, 118, false, false}, + {277, 118, false, false}, {329, 42, false, false}, {659, 40, false, false}, {880, 35, false, false}, + {220, 118, false, false}, {329, 118, false, false}, {277, 118, false, false}, {329, 118, false, false}, + {220, 118, false, false}, {329, 118, false, false}, {277, 118, false, false}, {329, 75, false, false}, + {329, 42, false, false}, {220, 118, false, false}, {329, 16, false, false}, {329, 101, false, false}, + {277, 86, false, false}, {277, 31, false, false}, {329, 86, false, false}, {329, 31, false, false}, + {220, 118, false, false}, {329, 16, false, false}, {329, 101, false, false}, {277, 86, false, false}, + {277, 31, false, false}, {329, 86, false, false}, {329, 31, false, false}, {220, 118, false, false}, + {369, 118, false, false}, {293, 118, false, false}, {369, 118, false, false}, {220, 118, false, false}, + {369, 118, false, false}, {293, 118, false, false}, {369, 75, false, false}, {1174, 42, false, false}, + {220, 118, false, false}, {329, 83, false, false}, {1174, 35, false, false}, {277, 118, false, false}, + {329, 83, false, false}, {1174, 35, false, false}, {220, 118, false, false}, {329, 83, false, false}, + {1174, 35, false, false}, {277, 118, false, false}, {329, 110, false, false}, {0, 12, false, false}, + {164, 112, false, false}, {329, 118, false, false}, {207, 118, false, false}, {329, 118, false, false}, + {164, 118, false, false}, {329, 81, false, false}, {329, 36, false, false}, {207, 107, false, false}, + {110, 11, false, false}, {329, 33, false, false}, {138, 46, false, false}, {164, 31, false, false}, + {164, 12, false, false}, {220, 79, false, false}, {659, 31, false, false}, {1108, 47, false, false}, + {880, 64, false, false}, {880, 12, false, false}, {220, 208, false, false}, {220, 14, false, false}, + {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, {220, 101, false, false}, + {110, 44, false, false}, {138, 46, false, false}, {164, 44, false, false}, {220, 55, false, false}, + {220, 23, false, false}, {659, 31, false, false}, {1108, 47, false, false}, {880, 64, false, false}, + {880, 12, false, false}, {220, 208, false, false}, {220, 14, false, false}, {0, 12, false, false}, + {220, 223, false, false}, {0, 12, false, false}, {220, 101, false, false}, {110, 44, false, false}, + {138, 46, false, false}, {164, 44, false, false}, {220, 55, false, false}, {220, 62, false, false}, + {1108, 11, false, false}, {1108, 94, false, false}, {1108, 12, false, false}, {220, 81, false, false}, + {220, 36, false, false}, {1108, 81, false, false}, {0, 23, false, false}, {0, 12, false, false}, + {220, 118, false, false}, {1108, 11, false, false}, {1108, 94, false, false}, {1108, 12, false, false}, + {220, 81, false, false}, {220, 31, false, false}, {1108, 42, false, false}, {92, 40, false, false}, + {110, 40, false, false}, {146, 223, false, false}, {0, 12, false, false}, {146, 223, false, false}, + {0, 12, false, false}, {146, 223, false, false}, {0, 12, false, false}, {146, 112, false, false}, + {110, 42, false, false}, {138, 11, false, false}, {1174, 29, false, false}, {164, 40, false, false}, + {220, 223, false, false}, {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, + {220, 223, false, false}, {0, 12, false, false}, {220, 112, false, false}, {82, 42, false, false}, + {103, 33, false, false}, {123, 47, false, false}, {164, 195, false, false}, {1108, 27, false, false}, + {1108, 12, false, false}, {164, 195, false, false}, {1108, 27, false, false}, {1108, 12, false, false}, + {164, 195, false, false}, {1108, 27, false, false}, {1108, 12, false, false}, {164, 112, false, false}, + {110, 42, false, false}, {138, 40, false, false}, {164, 40, false, false}, {220, 223, false, false}, + {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, {220, 199, false, false}, + {220, 23, false, false}, {0, 12, false, false}, {220, 112, false, false}, {110, 42, false, false}, + {138, 40, false, false}, {164, 27, false, false}, {164, 12, false, false}, {220, 223, false, false}, + {0, 12, false, false}, {220, 223, false, false}, {0, 12, false, false}, {220, 193, false, false}, + {220, 29, false, false}, {0, 12, false, false}, {220, 108, false, false}, {110, 42, false, false}, + {138, 42, false, false}, {164, 29, false, false}, {164, 12, false, false}, {220, 214, false, false}, + {0, 12, false, false}, {220, 214, false, false}, {0, 12, false, false}, {220, 186, false, false}, + {220, 28, false, false}, {0, 12, false, false}, {220, 101, false, false}, {110, 42, false, false}, + {138, 42, false, false}, {164, 40, false, false}, {220, 145, false, false}, {220, 64, false, false}, + {0, 12, false, false}, {220, 98, false, false}, {110, 41, false, false}, {138, 15, false, false}, + {138, 26, false, false}, {164, 39, false, false}, {220, 145, false, false}, {220, 64, false, false}, + {0, 12, false, false}, {220, 156, false, false}, {220, 53, false, false}, {0, 12, false, false}, + {110, 330, false, false}, {110, 140, false, false}, {0, 29, false, false}, {220, 513, false, false}, + {0, 31, false, false}, {220, 627, false, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/cast.mid b/scripts/midillis/Alla_Turca/cast.mid new file mode 100644 index 0000000..b285bbe Binary files /dev/null and b/scripts/midillis/Alla_Turca/cast.mid differ diff --git a/scripts/midillis/Alla_Turca/cast_c.txt b/scripts/midillis/Alla_Turca/cast_c.txt new file mode 100644 index 0000000..5939610 --- /dev/null +++ b/scripts/midillis/Alla_Turca/cast_c.txt @@ -0,0 +1,104 @@ +// Converted from: cast.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_cast[] = { + {587, 144, true, false}, {587, 228, true, false}, {587, 14, false, false}, {523, 119, true, false}, + {0, 133, true, false}, {493, 369, false, false}, {493, 249, true, false}, {493, 121, true, false}, + {391, 14, true, false}, {293, 110, false, false}, {293, 125, true, false}, {329, 113, true, false}, + {349, 128, true, false}, {391, 119, true, false}, {440, 14, true, false}, {440, 259, false, false}, + {440, 121, true, false}, {293, 126, true, true}, {293, 231, true, false}, {293, 14, false, false}, + {440, 234, false, false}, {440, 14, false, false}, {391, 121, true, false}, {523, 128, true, false}, + {523, 231, true, false}, {523, 15, false, false}, {523, 246, true, false}, {523, 232, true, false}, + {523, 14, false, false}, {587, 145, true, false}, {587, 228, true, false}, {587, 14, false, false}, + {523, 119, true, false}, {0, 133, true, false}, {493, 369, false, false}, {493, 249, true, false}, + {493, 121, true, false}, {391, 14, true, false}, {293, 110, false, false}, {293, 125, true, false}, + {329, 113, true, false}, {349, 128, true, false}, {391, 119, true, false}, {440, 14, true, false}, + {440, 259, false, false}, {440, 121, true, false}, {293, 126, true, true}, {293, 231, true, false}, + {293, 14, false, false}, {440, 234, false, false}, {440, 14, false, false}, {391, 128, true, false}, + {391, 121, true, false}, {391, 231, true, false}, {391, 15, false, false}, {391, 246, true, false}, + {391, 232, true, false}, {391, 14, false, false}, {0, 266, true, false}, {587, 121, true, false}, + {587, 111, true, false}, {587, 14, false, false}, {0, 126, true, false}, {880, 241, false, false}, + {880, 127, true, false}, {830, 121, true, false}, {880, 120, false, false}, {830, 121, true, false}, + {698, 125, true, false}, {0, 132, true, false}, {0, 121, true, false}, {0, 121, true, false}, + {0, 128, true, false}, {880, 264, true, false}, {880, 114, true, false}, {830, 126, true, false}, + {0, 125, true, false}, {830, 120, true, false}, {783, 121, false, false}, {0, 135, true, false}, + {880, 120, false, false}, {698, 120, true, false}, {880, 14, true, false}, {880, 106, false, false}, + {830, 125, false, false}, {587, 125, true, false}, {830, 121, false, false}, {783, 121, true, false}, + {698, 119, false, false}, {0, 17, false, false}, {0, 264, true, false}, {587, 121, true, false}, + {587, 111, true, false}, {587, 14, false, false}, {0, 126, true, false}, {880, 241, false, false}, + {880, 127, true, false}, {830, 121, true, false}, {880, 120, false, false}, {830, 121, true, false}, + {698, 125, true, false}, {0, 132, true, false}, {0, 121, true, false}, {0, 121, true, false}, + {0, 128, true, false}, {880, 264, true, false}, {880, 114, true, false}, {830, 126, true, false}, + {0, 125, true, false}, {830, 120, true, false}, {783, 121, false, false}, {0, 135, true, false}, + {880, 120, false, false}, {698, 120, true, false}, {880, 14, true, false}, {880, 106, false, false}, + {830, 125, false, false}, {587, 125, true, false}, {830, 121, false, false}, {783, 121, true, false}, + {698, 126, false, false}, {554, 22, true, false}, {554, 373, false, false}, {659, 358, false, false}, + {659, 14, false, false}, {932, 234, false, false}, {932, 14, false, false}, {880, 370, true, false}, + {698, 357, false, false}, {698, 14, false, false}, {587, 232, false, false}, {587, 14, false, false}, + {554, 388, true, false}, {659, 358, false, false}, {659, 14, false, false}, {932, 234, false, false}, + {932, 14, false, false}, {880, 370, true, false}, {587, 118, false, false}, {0, 501, false, false}, + {554, 388, true, false}, {659, 358, false, false}, {659, 14, false, false}, {932, 234, false, false}, + {932, 14, false, false}, {880, 370, true, false}, {698, 357, false, false}, {698, 14, false, false}, + {587, 232, false, false}, {587, 14, false, false}, {659, 388, true, false}, {783, 358, false, false}, + {783, 14, false, false}, {932, 234, false, false}, {932, 14, false, false}, {880, 370, true, false}, + {987, 357, false, false}, {987, 14, false, false}, {1108, 232, false, false}, {1108, 14, false, false}, + {1174, 145, true, false}, {1174, 114, false, false}, {587, 128, true, false}, {587, 141, false, false}, + {587, 111, false, false}, {587, 112, true, false}, {587, 241, true, false}, {587, 15, false, false}, + {587, 495, true, false}, {587, 494, false, false}, {0, 266, true, true}, {0, 248, true, true}, + {293, 15, false, true}, {293, 103, false, false}, {349, 376, false, false}, {261, 249, true, true}, + {261, 246, true, true}, {329, 15, false, false}, {329, 103, false, false}, {391, 375, false, false}, + {1174, 145, true, false}, {1174, 114, false, false}, {587, 128, true, false}, {587, 141, false, false}, + {587, 111, false, false}, {587, 112, true, false}, {587, 241, true, false}, {587, 15, false, false}, + {587, 495, true, false}, {587, 494, false, false}, {0, 266, true, true}, {0, 248, true, true}, + {293, 15, false, true}, {293, 103, false, false}, {349, 376, false, false}, {261, 249, true, true}, + {261, 246, true, false}, {0, 15, true, false}, {0, 103, false, false}, {0, 375, true, false}, + {587, 145, true, false}, {587, 228, true, false}, {587, 14, false, false}, {523, 119, true, false}, + {0, 133, true, false}, {493, 369, false, false}, {493, 249, true, false}, {493, 121, true, false}, + {391, 14, true, false}, {293, 110, false, false}, {293, 125, true, false}, {329, 113, true, false}, + {349, 128, true, false}, {391, 119, true, false}, {440, 14, true, false}, {440, 259, false, false}, + {440, 121, true, false}, {293, 126, true, true}, {293, 231, true, false}, {293, 14, false, false}, + {440, 234, false, false}, {440, 14, false, false}, {391, 121, true, false}, {523, 128, true, false}, + {523, 231, true, false}, {523, 15, false, false}, {523, 246, true, false}, {523, 232, true, false}, + {523, 14, false, false}, {587, 145, true, false}, {587, 228, true, false}, {587, 14, false, false}, + {523, 119, true, false}, {0, 133, true, false}, {493, 369, false, false}, {493, 249, true, false}, + {493, 121, true, false}, {391, 14, true, false}, {293, 110, false, false}, {293, 125, true, false}, + {329, 113, true, false}, {349, 128, true, false}, {391, 119, true, false}, {440, 14, true, false}, + {440, 259, false, false}, {440, 121, true, false}, {293, 126, true, true}, {293, 231, true, false}, + {293, 14, false, false}, {440, 234, false, false}, {440, 14, false, false}, {391, 128, true, false}, + {391, 121, true, false}, {391, 231, true, false}, {391, 15, false, false}, {391, 246, true, false}, + {391, 232, true, false}, {391, 14, false, false}, {0, 266, true, false}, {587, 121, true, false}, + {587, 111, true, false}, {587, 14, false, false}, {0, 126, true, false}, {880, 241, false, false}, + {880, 127, true, false}, {830, 121, true, false}, {880, 120, false, false}, {830, 121, true, false}, + {698, 125, true, false}, {0, 132, true, false}, {0, 121, true, false}, {0, 121, true, false}, + {0, 128, true, false}, {880, 264, true, false}, {880, 114, true, false}, {830, 126, true, false}, + {0, 125, true, false}, {830, 120, true, false}, {783, 121, false, false}, {0, 135, true, false}, + {880, 120, false, false}, {698, 120, true, false}, {880, 14, true, false}, {880, 106, false, false}, + {830, 125, false, false}, {587, 125, true, false}, {830, 121, false, false}, {783, 121, true, false}, + {698, 119, false, false}, {0, 17, false, false}, {0, 264, true, false}, {587, 121, true, false}, + {587, 111, true, false}, {587, 14, false, false}, {0, 126, true, false}, {880, 241, false, false}, + {880, 127, true, false}, {830, 121, true, false}, {880, 120, false, false}, {830, 121, true, false}, + {698, 125, true, false}, {0, 132, true, false}, {0, 121, true, false}, {0, 121, true, false}, + {0, 128, true, false}, {880, 264, true, false}, {880, 114, true, false}, {830, 126, true, false}, + {0, 125, true, false}, {830, 120, true, false}, {783, 121, false, false}, {0, 135, true, false}, + {880, 120, false, false}, {698, 120, true, false}, {880, 14, true, false}, {880, 106, false, false}, + {830, 125, false, false}, {587, 125, true, false}, {830, 121, false, false}, {783, 121, true, false}, + {698, 126, false, false}, {554, 22, true, false}, {554, 373, false, false}, {659, 358, false, false}, + {659, 14, false, false}, {932, 234, false, false}, {932, 14, false, false}, {880, 370, true, false}, + {698, 357, false, false}, {698, 14, false, false}, {587, 232, false, false}, {587, 14, false, false}, + {554, 388, true, false}, {659, 358, false, false}, {659, 14, false, false}, {932, 234, false, false}, + {932, 14, false, false}, {880, 370, true, false}, {587, 118, false, false}, {0, 501, false, false}, + {554, 388, true, false}, {659, 358, false, false}, {659, 14, false, false}, {932, 234, false, false}, + {932, 14, false, false}, {880, 370, true, false}, {698, 357, false, false}, {698, 14, false, false}, + {587, 232, false, false}, {587, 14, false, false}, {659, 388, true, false}, {783, 358, false, false}, + {783, 14, false, false}, {932, 234, false, false}, {932, 14, false, false}, {880, 370, true, false}, + {987, 357, false, false}, {987, 14, false, false}, {1108, 232, false, false}, {1108, 14, false, false}, + {1174, 145, true, false}, {1174, 114, false, false}, {587, 128, true, false}, {587, 141, false, false}, + {587, 111, false, false}, {587, 112, true, false}, {587, 241, true, false}, {587, 15, false, false}, + {587, 495, true, false}, {587, 494, false, false}, {0, 266, true, true}, {0, 248, true, true}, + {293, 15, false, true}, {293, 103, false, false}, {349, 376, false, false}, {261, 249, true, true}, + {261, 246, true, true}, {329, 15, false, false}, {329, 103, false, false}, {391, 375, false, false}, + {1174, 145, true, false}, {1174, 114, false, false}, {587, 128, true, false}, {587, 141, false, false}, + {587, 111, false, false}, {587, 112, true, false}, {587, 241, true, false}, {587, 15, false, false}, + {587, 495, true, false}, {587, 494, false, false}, {0, 266, true, true}, {0, 248, true, true}, + {293, 15, false, true}, {293, 103, false, false}, {349, 376, false, false}, {261, 249, true, true}, + {261, 246, true, false}, {0, 15, true, false}, {0, 103, false, false}, {0, 375, true, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/dre_c.txt b/scripts/midillis/Alla_Turca/dre_c.txt new file mode 100644 index 0000000..0f50c38 --- /dev/null +++ b/scripts/midillis/Alla_Turca/dre_c.txt @@ -0,0 +1,42 @@ +// Converted from: DRE.mid (RLE Compressed & Bass-Routed Edition) +const SequenceStep midi_DRE[] = { + {880, 3432, false, false}, {783, 1560, false, false}, {880, 3432, false, false}, {783, 936, false, false}, + {783, 312, true, false}, {783, 312, false, false}, {880, 312, true, false}, {880, 1560, false, false}, + {880, 312, true, false}, {880, 312, false, false}, {880, 312, true, false}, {880, 624, false, false}, + {783, 936, false, false}, {783, 312, true, false}, {783, 312, false, false}, {880, 312, true, false}, + {880, 1560, false, false}, {880, 312, true, false}, {880, 312, false, false}, {880, 312, true, false}, + {880, 624, false, false}, {783, 936, false, false}, {783, 312, true, false}, {783, 312, false, false}, + {880, 312, true, false}, {880, 1560, false, false}, {880, 312, true, false}, {880, 312, false, false}, + {880, 312, true, false}, {880, 624, false, false}, {783, 936, false, false}, {783, 312, true, false}, + {783, 312, false, false}, {880, 312, true, false}, {880, 1560, false, false}, {880, 312, true, false}, + {880, 312, false, false}, {880, 312, true, false}, {880, 624, false, false}, {783, 936, false, false}, + {783, 312, true, false}, {783, 312, false, false}, {880, 312, true, false}, {880, 1560, false, false}, + {880, 312, true, false}, {880, 312, false, false}, {880, 312, true, false}, {880, 624, false, false}, + {783, 936, false, false}, {783, 312, true, false}, {783, 312, false, false}, {880, 312, true, false}, + {880, 1560, false, false}, {880, 312, true, false}, {880, 312, false, false}, {880, 312, true, false}, + {880, 624, false, false}, {783, 936, false, false}, {783, 312, true, false}, {783, 312, false, false}, + {880, 312, true, false}, {880, 1560, false, false}, {880, 312, true, false}, {880, 312, false, false}, + {880, 312, true, false}, {880, 624, false, false}, {783, 936, false, false}, {783, 312, true, false}, + {783, 312, false, false}, {880, 312, true, false}, {880, 1560, false, false}, {880, 312, true, false}, + {880, 312, false, false}, {880, 312, true, false}, {880, 624, false, false}, {783, 936, false, false}, + {783, 312, true, false}, {783, 312, false, false}, {880, 312, true, false}, {880, 1560, false, false}, + {880, 312, true, false}, {880, 312, false, false}, {880, 312, true, false}, {880, 624, false, false}, + {783, 936, false, false}, {783, 312, true, false}, {783, 312, false, false}, {880, 312, true, false}, + {880, 1560, false, false}, {880, 312, true, false}, {880, 312, false, false}, {880, 312, true, false}, + {880, 624, false, false}, {783, 936, false, false}, {783, 312, true, false}, {783, 312, false, false}, + {880, 312, true, false}, {880, 1560, false, false}, {880, 312, true, false}, {880, 312, false, false}, + {880, 312, true, false}, {880, 624, false, false}, {783, 936, false, false}, {783, 312, true, false}, + {783, 312, false, false}, {880, 312, true, false}, {880, 1560, false, false}, {880, 312, true, false}, + {880, 312, false, false}, {880, 312, true, false}, {880, 624, false, false}, {783, 936, false, false}, + {783, 312, true, false}, {783, 312, false, false}, {880, 312, true, false}, {880, 1560, false, false}, + {880, 312, true, false}, {880, 312, false, false}, {880, 312, true, false}, {880, 624, false, false}, + {783, 936, false, false}, {783, 312, true, false}, {783, 312, false, false}, {880, 312, true, false}, + {880, 1560, false, false}, {880, 312, true, false}, {880, 312, false, false}, {880, 312, true, false}, + {880, 624, false, false}, {783, 936, false, false}, {783, 312, true, false}, {783, 312, false, false}, + {880, 312, true, false}, {880, 1560, false, false}, {880, 312, true, false}, {880, 312, false, false}, + {880, 312, true, false}, {880, 624, false, false}, {783, 936, false, false}, {783, 312, true, false}, + {783, 312, false, false}, {880, 312, true, false}, {880, 1560, false, false}, {880, 312, true, false}, + {880, 312, false, false}, {880, 312, true, false}, {880, 624, false, false}, {783, 936, false, false}, + {783, 312, true, false}, {783, 2499, false, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/mario.mid b/scripts/midillis/Alla_Turca/mario.mid new file mode 100644 index 0000000..1067088 Binary files /dev/null and b/scripts/midillis/Alla_Turca/mario.mid differ diff --git a/scripts/midillis/Alla_Turca/mario_c.txt b/scripts/midillis/Alla_Turca/mario_c.txt new file mode 100644 index 0000000..fb3f62d --- /dev/null +++ b/scripts/midillis/Alla_Turca/mario_c.txt @@ -0,0 +1,749 @@ +// Converted from: mario.mid (RLE Compressed & Bass-Routed Edition) +const SequenceStep midi_mario[] = { + {659, 423, true, false}, {0, 218, false, false}, {659, 209, true, false}, {0, 218, false, false}, + {523, 209, true, false}, {659, 361, true, false}, {0, 71, false, false}, {783, 357, true, false}, + {0, 500, false, false}, {391, 357, true, false}, {0, 500, false, false}, {391, 146, true, false}, + {587, 300, false, false}, {440, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, + {493, 553, false, false}, {0, 200, false, false}, {587, 146, false, false}, {493, 150, false, false}, + {523, 150, false, false}, {587, 253, false, false}, {0, 50, false, false}, {391, 146, true, false}, + {587, 300, false, false}, {440, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, + {493, 553, false, false}, {0, 950, false, false}, {391, 146, true, false}, {587, 300, false, false}, + {440, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, {493, 553, false, false}, + {0, 200, false, false}, {587, 146, false, false}, {493, 150, false, false}, {523, 150, false, false}, + {587, 253, false, false}, {0, 50, false, false}, {391, 146, true, false}, {587, 300, false, false}, + {440, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, {493, 553, false, false}, + {0, 950, false, false}, {587, 146, true, false}, {523, 150, false, false}, {587, 150, false, false}, + {493, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, {783, 828, false, false}, + {0, 675, false, false}, {587, 146, true, false}, {523, 150, false, false}, {587, 150, false, false}, + {493, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, {523, 828, false, false}, + {0, 675, false, false}, {587, 146, true, false}, {523, 150, false, false}, {587, 150, false, false}, + {493, 150, false, false}, {0, 153, false, false}, {587, 146, false, false}, {783, 828, false, false}, + {0, 675, false, false}, {880, 146, false, true}, {783, 150, false, false}, {880, 150, false, false}, + {783, 150, false, false}, {0, 153, false, false}, {987, 146, false, false}, {783, 828, false, false}, + {0, 675, false, false}, {0, 2000, true, false}, {329, 494, false, false}, {0, 755, false, false}, + {329, 744, false, false}, {349, 250, true, false}, {349, 250, false, false}, {0, 755, false, false}, + {349, 744, false, false}, {391, 250, true, false}, {391, 250, false, false}, {0, 755, false, false}, + {391, 744, false, false}, {349, 250, true, false}, {349, 250, false, false}, {0, 755, false, false}, + {349, 744, false, false}, {329, 672, true, false}, {0, 83, false, false}, {329, 494, false, false}, + {391, 250, false, false}, {440, 250, false, false}, {391, 249, false, false}, {261, 1881, true, false}, + {0, 125, false, false}, {349, 666, true, true}, {0, 83, false, false}, {349, 494, false, false}, + {440, 250, false, false}, {493, 250, false, false}, {440, 249, false, false}, {311, 1881, true, true}, + {0, 125, false, false}, {391, 666, true, true}, {0, 83, false, false}, {391, 494, false, false}, + {523, 250, false, false}, {587, 250, false, false}, {523, 249, false, false}, {783, 672, true, true}, + {0, 83, false, false}, {698, 494, false, false}, {523, 250, false, false}, {391, 250, false, false}, + {349, 249, false, false}, {659, 672, true, true}, {0, 83, false, false}, {523, 494, false, false}, + {440, 250, false, false}, {349, 250, false, false}, {329, 249, false, false}, {311, 1380, true, false}, + {0, 125, false, false}, {277, 2376, false, false}, {0, 125, false, false}, {261, 244, true, false}, + {0, 250, true, true}, {261, 250, true, false}, {293, 62, false, false}, {0, 62, false, true}, + {261, 125, true, false}, {0, 130, false, false}, {0, 1291, true, true}, {0, 83, false, false}, + {0, 494, true, true}, {0, 755, false, false}, {293, 182, false, false}, {0, 67, false, false}, + {329, 119, false, true}, {311, 125, false, false}, {329, 125, false, false}, {391, 129, false, false}, + {391, 119, false, true}, {440, 125, false, false}, {391, 250, false, true}, {261, 255, false, false}, + {261, 166, false, true}, {0, 78, false, false}, {0, 420, false, true}, {0, 78, false, false}, + {0, 375, false, true}, {261, 129, false, false}, {261, 119, false, true}, {293, 125, false, false}, + {261, 125, false, false}, {261, 125, false, true}, {0, 421, false, true}, {0, 333, false, false}, + {0, 166, false, true}, {0, 78, false, false}, {0, 375, false, true}, {391, 129, false, false}, + {391, 244, false, true}, {0, 375, false, true}, {391, 130, false, false}, {391, 244, false, true}, + {0, 313, false, true}, {391, 186, false, false}, {349, 250, false, true}, {391, 249, false, false}, + {440, 125, false, true}, {391, 250, false, false}, {293, 125, false, true}, {293, 255, false, false}, + {293, 166, false, true}, {0, 328, false, false}, {293, 187, false, true}, {0, 62, false, false}, + {329, 125, false, true}, {311, 125, false, false}, {329, 125, false, false}, {391, 129, false, false}, + {391, 119, false, true}, {440, 125, false, false}, {391, 250, false, true}, {466, 255, false, false}, + {466, 166, false, true}, {0, 78, false, false}, {0, 255, false, true}, {415, 244, false, false}, + {440, 125, false, true}, {415, 125, false, false}, {440, 125, false, false}, {523, 129, false, false}, + {523, 119, false, true}, {587, 125, false, false}, {523, 125, false, false}, {523, 125, false, true}, + {440, 255, false, false}, {440, 166, false, true}, {0, 78, false, false}, {0, 255, false, true}, + {440, 244, false, false}, {391, 125, false, true}, {369, 125, false, false}, {391, 125, false, false}, + {0, 46, false, true}, {0, 83, false, false}, {0, 244, false, true}, {391, 125, false, true}, + {369, 125, false, false}, {391, 125, false, false}, {0, 374, false, true}, {349, 250, false, true}, + {329, 249, false, false}, {261, 422, true, true}, {261, 83, false, false}, {261, 369, false, true}, + {261, 125, false, false}, {0, 755, false, false}, {293, 119, false, false}, {311, 125, false, false}, + {329, 125, false, true}, {311, 125, false, false}, {329, 125, false, true}, {391, 250, false, false}, + {440, 125, false, false}, {391, 130, false, false}, {391, 119, false, true}, {261, 255, false, false}, + {261, 166, false, true}, {0, 78, false, false}, {391, 250, false, false}, {349, 62, false, true}, + {329, 62, false, false}, {293, 62, false, true}, {0, 62, false, false}, {0, 373, false, true}, + {261, 250, false, false}, {293, 125, false, false}, {261, 130, false, false}, {261, 119, false, true}, + {0, 421, false, true}, {0, 78, false, false}, {349, 250, false, false}, {329, 62, false, true}, + {293, 62, false, false}, {261, 62, false, false}, {0, 62, false, false}, {0, 373, false, true}, + {391, 125, false, true}, {391, 255, false, false}, {391, 57, false, true}, {0, 1000, false, true}, + {391, 186, false, false}, {349, 250, false, true}, {391, 187, false, false}, {391, 62, false, true}, + {440, 125, false, false}, {391, 130, false, false}, {391, 119, false, true}, {293, 437, false, false}, + {261, 62, false, false}, {0, 46, false, true}, {0, 15, false, false}, {0, 311, false, true}, + {293, 187, true, true}, {0, 62, false, false}, {329, 125, false, true}, {311, 125, false, false}, + {329, 125, false, false}, {391, 125, false, true}, {391, 125, false, false}, {440, 125, false, false}, + {391, 250, false, true}, {466, 255, false, false}, {466, 166, false, true}, {261, 78, false, false}, + {293, 125, false, false}, {329, 130, false, false}, {415, 244, false, false}, {440, 125, false, true}, + {415, 125, false, false}, {440, 125, false, false}, {523, 124, false, false}, {0, 130, false, true}, + {587, 119, false, false}, {523, 125, false, false}, {523, 125, false, true}, {440, 255, false, false}, + {440, 166, false, true}, {261, 78, false, false}, {311, 125, false, false}, {293, 130, false, false}, + {440, 119, false, false}, {440, 125, false, true}, {391, 125, false, false}, {369, 125, false, false}, + {391, 125, false, true}, {0, 125, false, true}, {0, 250, false, false}, {391, 125, false, false}, + {369, 125, false, true}, {391, 125, false, false}, {0, 374, false, true}, {349, 250, false, false}, + {329, 250, false, true}, {261, 422, false, true}, {261, 83, false, false}, {261, 369, false, true}, + {261, 547, false, false}, {0, 83, false, false}, {329, 182, false, false}, {349, 62, false, false}, + {391, 125, false, false}, {415, 125, false, false}, {880, 672, false, false}, {0, 83, false, false}, + {698, 244, false, false}, {783, 672, false, false}, {0, 83, false, false}, {659, 244, false, false}, + {698, 375, false, false}, {783, 125, false, false}, {0, 318, false, false}, {659, 103, false, false}, + {0, 83, false, false}, {659, 182, false, false}, {698, 62, false, false}, {783, 125, false, false}, + {830, 125, false, false}, {0, 505, false, false}, {880, 666, false, false}, {0, 83, false, false}, + {830, 244, false, false}, {783, 672, false, false}, {0, 83, false, false}, {739, 244, false, false}, + {698, 375, false, false}, {659, 375, false, false}, {523, 672, false, false}, {0, 583, false, false}, + {880, 494, false, false}, {830, 500, false, false}, {783, 500, false, false}, {739, 500, false, false}, + {698, 375, false, false}, {783, 125, false, false}, {0, 255, false, false}, {659, 1125, false, false}, + {0, 125, false, false}, {880, 494, false, false}, {830, 500, false, false}, {783, 500, false, false}, + {739, 500, false, false}, {698, 375, false, false}, {659, 125, false, false}, {0, 255, false, false}, + {523, 1125, false, true}, {0, 125, false, false}, {523, 119, false, false}, {329, 250, false, true}, + {466, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, {329, 250, false, true}, + {466, 125, false, true}, {0, 505, false, false}, {440, 119, false, true}, {261, 250, true, false}, + {311, 125, false, true}, {0, 505, false, false}, {440, 119, false, true}, {261, 250, true, false}, + {311, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, {329, 250, false, true}, + {466, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, {329, 250, false, true}, + {466, 125, false, true}, {0, 505, false, false}, {440, 994, false, true}, {415, 422, false, true}, + {0, 83, false, false}, {391, 57, false, true}, {349, 62, false, true}, {329, 62, false, true}, + {293, 62, false, true}, {261, 62, true, false}, {0, 187, true, true}, {523, 125, false, false}, + {329, 250, false, true}, {466, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, + {329, 250, false, true}, {466, 125, false, true}, {0, 505, false, false}, {440, 119, false, true}, + {261, 250, true, false}, {311, 125, false, true}, {0, 505, false, false}, {440, 119, false, true}, + {261, 250, true, false}, {311, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, + {329, 250, false, true}, {466, 125, false, true}, {0, 505, false, false}, {523, 119, false, false}, + {329, 250, false, true}, {466, 125, false, true}, {0, 505, false, false}, {783, 357, false, true}, + {0, 285, false, false}, {880, 209, false, true}, {0, 218, false, false}, {783, 209, false, true}, + {0, 218, false, false}, {739, 209, false, true}, {783, 214, false, true}, {1046, 214, false, true}, + {1318, 361, false, false}, {0, 500, false, false}, {391, 209, false, false}, {523, 214, false, false}, + {698, 361, false, true}, {0, 285, false, false}, {783, 209, false, true}, {0, 218, false, false}, + {698, 209, false, true}, {0, 218, false, false}, {659, 209, true, true}, {698, 214, false, true}, + {987, 214, false, true}, {1174, 361, false, true}, {0, 500, false, false}, {391, 209, false, false}, + {493, 214, false, false}, {659, 361, true, true}, {0, 285, false, false}, {698, 209, false, true}, + {0, 218, false, false}, {659, 209, true, true}, {0, 218, false, false}, {622, 209, true, true}, + {659, 214, true, true}, {880, 214, false, true}, {1046, 361, false, true}, {0, 285, false, false}, + {880, 209, true, true}, {987, 214, false, true}, {1046, 214, false, true}, {1174, 214, false, true}, + {1046, 214, false, true}, {1174, 214, false, true}, {1046, 428, false, true}, {880, 214, false, true}, + {739, 214, true, true}, {587, 214, true, true}, {523, 214, true, true}, {440, 214, true, true}, + {0, 214, true, true}, {0, 969, false, true}, {0, 107, false, false}, {0, 209, true, false}, + {0, 574, false, true}, {0, 284, false, false}, {0, 209, false, true}, {0, 218, false, false}, + {293, 209, false, false}, {391, 214, true, false}, {391, 147, false, true}, {0, 66, false, false}, + {0, 218, false, true}, {783, 208, false, false}, {0, 862, false, false}, {0, 423, true, false}, + {0, 360, false, true}, {0, 284, false, false}, {0, 209, false, true}, {0, 218, false, false}, + {293, 209, false, false}, {391, 361, true, false}, {0, 66, false, false}, {0, 218, false, true}, + {783, 208, false, false}, {0, 433, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 209, true, false}, {0, 574, false, true}, {0, 284, false, false}, {0, 209, false, true}, + {0, 218, false, false}, {293, 209, false, false}, {391, 214, true, false}, {391, 147, false, true}, + {0, 66, false, false}, {0, 218, false, true}, {783, 208, false, false}, {0, 862, false, false}, + {0, 423, true, false}, {0, 360, false, true}, {0, 284, false, false}, {0, 209, false, true}, + {0, 218, false, false}, {293, 209, false, false}, {391, 361, true, false}, {0, 66, false, false}, + {0, 218, false, true}, {783, 208, false, false}, {0, 862, false, false}, {0, 423, true, false}, + {0, 360, false, true}, {0, 284, false, false}, {0, 209, false, true}, {0, 218, false, false}, + {293, 209, false, false}, {391, 361, true, false}, {0, 66, false, false}, {0, 218, false, true}, + {783, 208, false, false}, {0, 862, false, false}, {0, 423, true, false}, {0, 360, false, true}, + {0, 284, false, false}, {0, 209, false, true}, {0, 218, false, false}, {293, 209, false, false}, + {391, 361, true, false}, {0, 66, false, false}, {0, 218, false, true}, {783, 208, false, false}, + {0, 433, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 209, true, false}, + {293, 214, false, true}, {391, 214, false, false}, {440, 214, false, false}, {493, 214, false, false}, + {523, 214, false, false}, {493, 214, false, true}, {440, 214, false, true}, {391, 361, true, false}, + {0, 66, false, false}, {293, 361, false, true}, {0, 71, false, false}, {261, 357, false, false}, + {0, 71, false, false}, {391, 357, false, false}, {0, 71, false, false}, {293, 356, true, false}, + {0, 66, false, false}, {0, 360, false, true}, {0, 499, false, false}, {0, 356, false, true}, + {0, 66, false, false}, {0, 428, true, false}, {0, 361, false, true}, {0, 285, false, false}, + {261, 209, false, false}, {0, 214, true, false}, {261, 214, false, true}, {0, 214, true, true}, + {293, 214, false, true}, {391, 361, false, true}, {0, 285, false, false}, {0, 209, false, true}, + {0, 218, false, false}, {0, 209, false, true}, {0, 214, true, false}, {0, 432, false, true}, + {293, 208, false, false}, {0, 218, false, false}, {391, 209, false, false}, {0, 433, false, false}, + {0, 209, true, false}, {293, 214, false, true}, {391, 214, false, false}, {440, 214, false, false}, + {493, 214, false, false}, {523, 214, false, false}, {493, 214, false, true}, {440, 214, false, true}, + {391, 361, true, false}, {0, 66, false, false}, {293, 361, false, true}, {0, 71, false, false}, + {261, 357, false, false}, {0, 71, false, false}, {391, 357, false, false}, {0, 71, false, false}, + {293, 356, true, false}, {0, 66, false, false}, {0, 360, false, true}, {0, 284, false, false}, + {0, 569, false, true}, {0, 66, false, false}, {0, 428, true, false}, {0, 218, false, false}, + {261, 209, false, true}, {0, 218, false, false}, {261, 209, false, false}, {0, 218, true, false}, + {261, 208, false, false}, {0, 214, true, true}, {293, 214, false, true}, {391, 218, false, false}, + {391, 142, false, true}, {0, 284, false, false}, {0, 569, false, true}, {0, 66, false, false}, + {0, 214, true, false}, {0, 574, false, true}, {0, 928, false, false}, {0, 209, true, false}, + {0, 214, false, true}, {261, 218, false, false}, {391, 208, false, false}, {659, 214, false, false}, + {587, 214, false, false}, {523, 214, false, false}, {659, 214, false, false}, {587, 214, true, false}, + {587, 147, false, true}, {0, 66, false, false}, {0, 218, false, true}, {391, 208, false, false}, + {0, 218, false, false}, {0, 570, false, true}, {0, 71, false, false}, {0, 209, true, false}, + {0, 432, false, true}, {329, 208, false, false}, {587, 214, false, false}, {523, 214, false, false}, + {493, 214, false, true}, {523, 213, false, false}, {493, 214, true, false}, {493, 147, false, true}, + {0, 66, false, false}, {0, 218, false, true}, {391, 208, false, false}, {0, 433, false, false}, + {0, 357, false, true}, {0, 71, false, false}, {0, 209, true, false}, {0, 214, false, true}, + {261, 218, false, false}, {391, 208, false, false}, {659, 214, false, false}, {587, 214, false, false}, + {523, 214, false, false}, {659, 214, false, false}, {587, 214, true, false}, {587, 147, false, true}, + {0, 66, false, false}, {0, 218, false, true}, {391, 208, false, false}, {0, 433, false, false}, + {0, 357, false, true}, {0, 71, false, false}, {0, 209, true, false}, {0, 575, false, true}, + {0, 71, false, false}, {523, 209, false, false}, {587, 214, false, false}, {523, 214, false, true}, + {493, 213, false, false}, {0, 214, true, false}, {0, 214, false, true}, {391, 361, false, false}, + {0, 71, false, false}, {329, 356, false, true}, {0, 499, false, false}, {0, 209, true, false}, + {293, 214, false, true}, {391, 214, false, false}, {440, 214, false, false}, {493, 214, false, false}, + {523, 214, false, false}, {493, 214, false, true}, {440, 213, false, false}, {391, 361, true, false}, + {0, 66, false, false}, {293, 361, false, true}, {0, 71, false, false}, {261, 214, false, false}, + {261, 142, true, false}, {0, 66, false, false}, {391, 361, false, true}, {0, 71, false, false}, + {293, 356, true, false}, {0, 66, false, false}, {0, 360, false, true}, {0, 499, false, false}, + {0, 214, true, false}, {0, 142, false, true}, {0, 66, false, false}, {0, 428, true, false}, + {0, 361, false, true}, {0, 500, false, false}, {0, 214, true, false}, {261, 208, false, false}, + {0, 214, true, true}, {293, 214, false, true}, {391, 361, false, true}, {0, 285, false, false}, + {0, 569, false, true}, {0, 66, false, false}, {0, 361, true, false}, {0, 71, false, false}, + {0, 214, false, true}, {293, 208, false, false}, {0, 862, false, false}, {0, 209, true, false}, + {293, 214, false, true}, {391, 214, false, false}, {440, 214, false, false}, {493, 214, false, false}, + {523, 214, false, false}, {493, 214, false, true}, {440, 214, false, true}, {391, 361, true, false}, + {0, 66, false, false}, {293, 361, false, true}, {0, 71, false, false}, {261, 214, false, false}, + {261, 142, true, false}, {0, 66, false, false}, {391, 361, false, false}, {0, 71, false, false}, + {293, 356, true, false}, {0, 66, false, false}, {0, 360, false, true}, {0, 284, false, false}, + {261, 209, false, false}, {0, 360, false, true}, {0, 66, false, false}, {0, 428, true, false}, + {0, 361, false, true}, {0, 285, false, false}, {261, 209, false, false}, {0, 218, true, false}, + {261, 208, false, false}, {0, 214, true, true}, {293, 214, false, true}, {391, 361, false, true}, + {0, 285, false, false}, {0, 569, false, true}, {0, 66, false, false}, {0, 214, true, false}, + {0, 575, false, true}, {0, 285, false, false}, {391, 209, false, true}, {0, 433, false, false}, + {0, 423, true, false}, {0, 218, false, true}, {349, 142, false, true}, {349, 66, false, false}, + {0, 218, false, false}, {349, 637, false, true}, {0, 218, true, false}, {349, 142, false, true}, + {349, 66, false, false}, {349, 428, false, true}, {0, 218, true, false}, {349, 142, false, true}, + {349, 66, false, false}, {349, 361, false, true}, {349, 66, false, false}, {0, 428, true, false}, + {0, 218, false, true}, {391, 142, false, true}, {391, 66, false, false}, {0, 218, false, false}, + {391, 209, false, true}, {0, 218, false, true}, {391, 142, false, true}, {391, 66, false, false}, + {0, 218, true, false}, {391, 142, false, true}, {391, 66, false, false}, {0, 214, false, true}, + {391, 1069, false, true}, {0, 428, true, false}, {0, 218, false, true}, {391, 208, false, false}, + {0, 218, false, false}, {391, 209, false, false}, {0, 218, false, true}, {391, 208, false, false}, + {0, 218, true, false}, {440, 208, false, false}, {0, 218, false, true}, {440, 208, false, false}, + {0, 218, false, false}, {440, 209, false, true}, {0, 218, false, false}, {0, 209, false, true}, + {0, 2254, true, true}, {293, 625, false, true}, {0, 125, false, false}, {587, 156, false, false}, + {523, 160, false, false}, {391, 107, false, true}, {293, 160, false, true}, {261, 160, true, false}, + {0, 468, true, true}, {0, 2215, false, false}, {293, 1607, true, true}, {0, 107, false, false}, + {329, 1607, false, true}, {0, 107, false, false}, {349, 1607, false, false}, {0, 107, false, false}, + {391, 1607, false, false}, {0, 107, false, false}, {293, 1607, true, true}, {0, 107, false, false}, + {329, 1607, false, true}, {0, 107, false, false}, {349, 1607, false, false}, {0, 107, false, false}, + {391, 750, false, false}, {0, 964, false, false}, {293, 357, false, true}, {0, 71, false, false}, + {293, 357, false, true}, {0, 281, false, false}, {293, 428, false, true}, {523, 214, false, true}, + {493, 214, false, true}, {391, 213, false, false}, {329, 361, false, true}, {293, 285, false, false}, + {329, 637, false, true}, {349, 361, false, true}, {293, 71, false, false}, {349, 142, false, true}, + {349, 213, false, false}, {0, 281, false, false}, {349, 214, false, true}, {391, 214, false, true}, + {349, 214, false, true}, {391, 361, false, true}, {0, 71, false, false}, {391, 357, false, true}, + {0, 285, false, false}, {391, 637, false, true}, {293, 361, false, true}, {0, 71, false, false}, + {293, 357, false, true}, {0, 281, false, false}, {293, 428, false, true}, {523, 214, false, true}, + {493, 214, false, true}, {391, 213, false, false}, {329, 361, false, true}, {293, 214, false, false}, + {0, 71, false, false}, {329, 423, false, true}, {587, 214, false, true}, {523, 361, false, true}, + {0, 71, false, false}, {493, 357, false, true}, {493, 285, false, false}, {493, 423, false, true}, + {440, 214, false, true}, {493, 361, false, true}, {493, 71, false, false}, {493, 357, false, true}, + {493, 285, false, false}, {493, 530, false, true}, {391, 107, false, true}, {349, 361, false, true}, + {311, 71, false, false}, {349, 357, false, true}, {311, 281, false, false}, {349, 428, false, true}, + {622, 214, false, true}, {587, 214, false, true}, {466, 213, false, false}, {391, 361, false, true}, + {349, 285, false, false}, {391, 637, false, true}, {415, 214, false, true}, {415, 147, false, false}, + {349, 71, false, false}, {415, 357, false, true}, {349, 285, false, false}, {415, 637, false, true}, + {466, 361, false, true}, {0, 71, false, false}, {466, 357, false, true}, {0, 285, false, false}, + {466, 637, false, true}, {293, 361, false, true}, {0, 71, false, false}, {293, 357, false, true}, + {0, 281, false, false}, {293, 428, false, true}, {523, 214, false, true}, {493, 214, false, true}, + {391, 213, false, false}, {329, 361, false, true}, {293, 285, false, false}, {329, 637, false, true}, + {391, 361, false, true}, {391, 71, false, false}, {391, 357, false, true}, {391, 285, false, false}, + {391, 530, false, true}, {349, 107, false, true}, {391, 361, false, true}, {349, 71, false, false}, + {391, 357, false, true}, {349, 285, false, false}, {391, 637, false, true}, {523, 754, false, false}, + {0, 107, false, false}, {783, 750, false, false}, {0, 107, false, false}, {698, 357, false, false}, + {0, 71, false, false}, {587, 1179, false, false}, {0, 107, false, false}, {523, 750, false, false}, + {0, 107, false, false}, {783, 750, false, false}, {0, 107, false, false}, {698, 357, false, false}, + {0, 71, false, false}, {587, 750, false, false}, {0, 107, false, false}, {987, 357, false, false}, + {0, 71, false, false}, {523, 750, false, false}, {0, 107, false, false}, {783, 750, false, false}, + {0, 107, false, false}, {698, 750, false, false}, {0, 107, false, false}, {587, 750, false, false}, + {0, 107, false, false}, {622, 2465, false, false}, {0, 107, false, false}, {523, 750, false, false}, + {0, 107, false, false}, {587, 3322, false, false}, {0, 107, false, false}, {622, 1607, false, false}, + {0, 107, false, false}, {830, 750, false, false}, {0, 107, false, false}, {622, 750, false, false}, + {0, 107, false, false}, {587, 1607, false, false}, {0, 107, false, false}, {783, 1067, false, false}, + {391, 53, false, false}, {349, 53, false, false}, {329, 53, false, false}, {293, 53, false, false}, + {391, 53, false, false}, {349, 53, false, false}, {329, 53, false, false}, {293, 53, false, false}, + {391, 53, false, false}, {349, 53, false, false}, {329, 53, false, false}, {0, 58, false, false}, + {0, 1874, true, false}, {0, 125, false, false}, {0, 1874, true, false}, {0, 125, false, false}, + {0, 3875, true, false}, {0, 125, false, false}, {880, 665, true, false}, {0, 78, false, false}, + {830, 1130, true, false}, {0, 125, false, false}, {783, 665, true, false}, {0, 78, false, false}, + {698, 1130, true, false}, {0, 125, false, false}, {880, 665, true, false}, {0, 78, false, false}, + {830, 500, true, false}, {783, 500, true, false}, {698, 500, true, false}, {587, 1631, true, false}, + {0, 125, false, false}, {880, 665, true, false}, {0, 78, false, false}, {830, 1130, true, false}, + {0, 125, false, false}, {783, 665, true, false}, {0, 78, false, false}, {698, 1130, true, false}, + {0, 125, false, false}, {880, 665, true, false}, {0, 78, false, false}, {830, 500, true, false}, + {783, 500, true, false}, {698, 500, true, false}, {587, 1631, true, false}, {0, 125, false, false}, + {587, 665, true, false}, {0, 78, false, false}, {554, 1130, true, false}, {0, 125, false, false}, + {523, 665, true, false}, {0, 78, false, false}, {493, 1130, true, false}, {0, 125, false, false}, + {587, 665, true, false}, {0, 78, false, false}, {554, 1130, true, false}, {0, 125, false, false}, + {523, 665, true, false}, {0, 78, false, false}, {493, 1130, true, false}, {0, 125, false, false}, + {587, 665, true, false}, {0, 78, false, false}, {554, 1130, true, false}, {0, 124, false, false}, + {587, 665, true, false}, {0, 78, false, false}, {554, 1130, true, false}, {0, 125, false, false}, + {587, 665, true, false}, {0, 78, false, false}, {554, 1130, true, false}, {0, 125, false, false}, + {523, 665, true, false}, {0, 78, false, false}, {493, 1130, true, false}, {0, 125, false, false}, + {0, 3916, true, false}, {0, 83, false, false}, {0, 3916, true, false}, {0, 83, false, false}, + {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 214, true, false}, {523, 213, false, false}, + {523, 209, true, false}, {523, 213, false, false}, {440, 428, false, false}, {466, 214, true, false}, + {466, 213, false, false}, {0, 361, true, false}, {0, 71, false, false}, {0, 357, true, false}, + {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, + {0, 71, false, false}, {0, 214, true, false}, {523, 213, false, false}, {523, 209, true, false}, + {523, 213, false, false}, {440, 428, false, false}, {466, 214, true, false}, {466, 213, false, false}, + {0, 361, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 214, true, false}, {349, 213, false, false}, + {349, 209, true, false}, {349, 213, false, false}, {293, 428, false, false}, {311, 214, true, false}, + {311, 213, false, false}, {0, 361, true, false}, {0, 71, false, false}, {0, 357, true, false}, + {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, {0, 214, true, false}, + {349, 213, false, false}, {349, 209, true, false}, {349, 213, false, false}, {293, 428, false, false}, + {311, 214, true, false}, {311, 213, false, false}, {0, 361, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {261, 209, true, false}, {523, 213, false, false}, {0, 214, false, true}, {440, 214, false, false}, + {0, 214, true, true}, {466, 213, false, false}, {0, 361, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {261, 209, true, false}, {523, 213, false, false}, + {0, 214, false, true}, {440, 214, false, false}, {0, 214, true, true}, {466, 213, false, false}, + {0, 361, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 209, true, true}, {349, 213, false, false}, {0, 214, false, true}, {293, 214, false, false}, + {0, 214, true, true}, {311, 213, false, false}, {0, 361, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 209, true, true}, {349, 213, false, false}, + {0, 214, false, true}, {293, 214, false, false}, {0, 214, true, true}, {311, 213, false, false}, + {0, 361, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 107, true, false}, {311, 102, false, false}, + {293, 107, false, false}, {277, 106, false, false}, {261, 361, true, false}, {0, 71, false, false}, + {311, 357, false, false}, {0, 71, false, false}, {293, 357, true, false}, {0, 71, false, false}, + {0, 357, true, true}, {0, 71, false, false}, {0, 357, true, true}, {0, 71, false, false}, + {277, 357, false, false}, {0, 71, false, false}, {261, 156, true, false}, {369, 160, false, false}, + {349, 106, false, false}, {329, 160, true, false}, {493, 160, false, false}, {466, 106, false, false}, + {440, 321, true, false}, {311, 106, false, false}, {0, 111, false, false}, {0, 316, false, true}, + {0, 321, true, true}, {0, 40, false, true}, {0, 66, false, false}, {0, 218, true, false}, + {0, 142, false, true}, {0, 66, false, false}, {0, 361, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {261, 209, true, false}, {523, 213, false, false}, {0, 214, false, true}, {440, 214, false, false}, + {0, 214, true, true}, {466, 213, false, false}, {0, 361, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {261, 209, true, false}, {523, 213, false, false}, + {0, 214, false, true}, {440, 214, false, false}, {0, 214, true, true}, {466, 213, false, false}, + {0, 361, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 209, true, true}, {349, 213, false, false}, {0, 214, false, true}, {293, 214, false, false}, + {0, 214, true, true}, {311, 213, false, false}, {0, 361, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 500, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 209, true, true}, {349, 213, false, false}, + {0, 214, false, true}, {293, 214, false, false}, {0, 214, true, true}, {311, 213, false, false}, + {0, 361, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 107, true, false}, {311, 102, false, false}, + {293, 107, false, false}, {277, 106, false, false}, {261, 361, true, false}, {0, 71, false, false}, + {311, 357, false, false}, {0, 71, false, false}, {293, 357, true, false}, {0, 71, false, false}, + {0, 357, true, true}, {0, 71, false, false}, {0, 357, true, true}, {0, 71, false, false}, + {277, 357, false, false}, {0, 71, false, false}, {261, 156, true, false}, {369, 160, false, false}, + {349, 106, false, false}, {329, 160, true, false}, {493, 160, false, false}, {466, 106, false, false}, + {440, 321, true, false}, {311, 106, false, false}, {0, 111, false, false}, {0, 316, false, true}, + {0, 321, true, true}, {0, 40, false, true}, {0, 66, false, false}, {0, 218, true, false}, + {0, 142, false, true}, {0, 66, false, false}, {0, 361, true, false}, {0, 500, false, false}, + {0, 357, true, false}, {0, 71, false, false}, {0, 357, true, false}, {0, 71, false, false}, + {783, 357, false, true}, {0, 285, false, false}, {880, 209, false, true}, {0, 218, false, false}, + {783, 209, false, true}, {0, 218, false, false}, {739, 209, false, true}, {783, 214, false, true}, + {1046, 214, false, true}, {1318, 361, false, false}, {0, 500, false, false}, {391, 209, false, false}, + {523, 214, false, false}, {698, 361, false, true}, {0, 285, false, false}, {783, 209, false, true}, + {0, 218, false, false}, {698, 209, false, true}, {0, 218, false, false}, {659, 209, true, true}, + {698, 214, false, true}, {987, 214, false, true}, {1174, 361, false, true}, {0, 500, false, false}, + {391, 209, false, false}, {493, 214, false, false}, {659, 361, true, true}, {0, 285, false, false}, + {698, 209, false, true}, {0, 218, false, false}, {659, 209, true, true}, {0, 218, false, false}, + {622, 209, true, true}, {659, 214, true, true}, {880, 214, false, true}, {1046, 361, false, true}, + {0, 285, false, false}, {880, 209, true, true}, {987, 214, false, true}, {1046, 214, false, true}, + {1174, 214, false, true}, {1046, 214, false, true}, {1174, 214, false, true}, {1046, 428, false, true}, + {880, 214, false, true}, {739, 214, true, true}, {587, 214, true, true}, {523, 214, true, true}, + {440, 214, true, true}, {0, 214, true, true}, {0, 969, false, true}, {0, 107, false, false}, + {659, 308, false, false}, {0, 61, false, false}, {0, 308, false, true}, {0, 61, false, false}, + {659, 308, false, false}, {0, 61, false, false}, {0, 308, false, true}, {0, 61, false, false}, + {659, 308, false, false}, {0, 61, false, false}, {554, 181, false, true}, {0, 127, false, true}, + {0, 57, false, false}, {493, 312, false, true}, {0, 57, false, false}, {466, 312, false, false}, + {261, 57, false, false}, {440, 651, false, true}, {0, 88, false, false}, {493, 312, false, true}, + {0, 61, false, false}, {440, 308, false, true}, {0, 57, false, false}, {293, 1021, false, true}, + {0, 91, false, false}, {0, 181, false, true}, {0, 185, true, false}, {0, 185, true, true}, + {0, 127, false, true}, {0, 57, false, false}, {0, 92, true, true}, {0, 220, false, true}, + {0, 57, false, false}, {329, 277, true, true}, {329, 34, false, true}, {0, 57, false, false}, + {293, 185, true, false}, {293, 127, false, true}, {0, 57, false, false}, {0, 185, true, true}, + {0, 185, false, true}, {0, 185, true, false}, {0, 185, false, true}, {0, 281, true, true}, + {0, 91, false, false}, {0, 308, true, true}, {0, 61, false, false}, {0, 181, true, true}, + {0, 185, false, true}, {0, 127, true, false}, {0, 57, false, false}, {0, 185, false, true}, + {0, 185, true, false}, {0, 127, false, true}, {0, 57, false, false}, {440, 185, true, false}, + {440, 185, false, true}, {440, 185, true, false}, {0, 185, false, true}, {0, 185, true, false}, + {0, 127, false, true}, {0, 57, false, false}, {0, 185, true, true}, {0, 127, false, true}, + {0, 57, false, false}, {440, 185, true, false}, {440, 127, false, true}, {0, 57, false, false}, + {0, 185, true, true}, {0, 185, false, true}, {0, 185, true, false}, {0, 96, false, true}, + {0, 88, false, false}, {0, 185, true, false}, {0, 185, false, true}, {440, 185, true, false}, + {440, 127, false, true}, {0, 57, false, false}, {329, 185, false, true}, {329, 185, true, true}, + {329, 185, true, false}, {329, 466, true, true}, {0, 91, false, false}, {0, 366, true, true}, + {369, 649, false, true}, {0, 88, false, false}, {493, 312, false, true}, {0, 57, false, false}, + {440, 312, false, true}, {0, 57, false, false}, {523, 1019, false, true}, {0, 88, false, false}, + {0, 370, false, true}, {493, 310, false, true}, {0, 57, false, false}, {493, 312, false, true}, + {0, 57, false, false}, {659, 312, false, true}, {0, 57, false, false}, {587, 312, false, true}, + {0, 57, false, false}, {493, 738, false, true}, {493, 185, false, false}, {493, 96, false, true}, + {293, 88, false, false}, {0, 185, false, true}, {293, 185, false, true}, {440, 312, false, true}, + {440, 61, false, false}, {440, 123, false, true}, {0, 61, false, false}, {440, 184, false, false}, + {440, 308, false, true}, {0, 57, false, false}, {0, 555, false, true}, {440, 497, false, true}, + {0, 57, false, false}, {0, 312, false, true}, {0, 57, false, false}, {329, 312, false, true}, + {0, 61, false, false}, {293, 308, false, true}, {293, 61, false, false}, {293, 308, false, true}, + {293, 61, false, false}, {293, 181, true, false}, {293, 185, false, true}, {293, 185, true, false}, + {293, 185, false, true}, {293, 185, true, false}, {293, 185, false, true}, {293, 185, true, false}, + {293, 96, false, true}, {0, 88, false, false}, {0, 682, false, true}, {0, 61, false, false}, + {440, 647, false, true}, {0, 88, false, false}, {493, 312, false, true}, {0, 61, false, false}, + {440, 308, false, true}, {0, 57, false, false}, {293, 1021, false, true}, {0, 91, false, false}, + {0, 181, false, true}, {0, 185, true, false}, {0, 185, true, true}, {0, 127, false, true}, + {0, 57, false, false}, {0, 92, true, true}, {0, 220, false, true}, {0, 57, false, false}, + {329, 277, true, true}, {329, 34, false, true}, {0, 57, false, false}, {293, 185, true, false}, + {293, 127, false, true}, {0, 57, false, false}, {0, 185, true, true}, {0, 185, false, true}, + {0, 185, true, false}, {0, 185, false, true}, {0, 281, true, true}, {0, 91, false, false}, + {0, 308, true, true}, {0, 61, false, false}, {0, 181, true, true}, {0, 185, false, true}, + {0, 127, true, false}, {0, 57, false, false}, {0, 185, false, true}, {0, 185, true, false}, + {0, 127, false, true}, {0, 57, false, false}, {440, 185, true, false}, {440, 185, false, true}, + {440, 185, true, false}, {0, 185, false, true}, {0, 185, true, false}, {0, 127, false, true}, + {0, 57, false, false}, {0, 185, true, true}, {0, 127, false, true}, {0, 57, false, false}, + {440, 185, true, false}, {440, 127, false, true}, {0, 57, false, false}, {0, 185, true, true}, + {0, 185, false, true}, {0, 185, true, false}, {0, 96, false, true}, {0, 88, false, false}, + {0, 185, true, false}, {0, 185, false, true}, {440, 185, true, false}, {440, 127, false, true}, + {0, 57, false, false}, {329, 185, false, true}, {329, 185, true, true}, {329, 185, true, false}, + {329, 466, true, true}, {0, 91, false, false}, {0, 366, true, true}, {369, 649, false, true}, + {0, 88, false, false}, {493, 312, false, true}, {0, 57, false, false}, {440, 312, false, true}, + {0, 57, false, false}, {523, 1019, false, true}, {0, 88, false, false}, {0, 370, false, true}, + {493, 310, false, true}, {0, 57, false, false}, {493, 312, false, true}, {0, 57, false, false}, + {659, 312, false, true}, {0, 57, false, false}, {587, 312, false, true}, {0, 57, false, false}, + {493, 738, false, true}, {493, 185, false, false}, {493, 96, false, true}, {293, 88, false, false}, + {0, 185, false, true}, {293, 185, false, true}, {440, 312, false, true}, {440, 61, false, false}, + {440, 123, false, true}, {0, 61, false, false}, {440, 184, false, false}, {440, 308, false, true}, + {0, 57, false, false}, {0, 555, false, true}, {440, 497, false, true}, {0, 57, false, false}, + {0, 312, false, true}, {0, 57, false, false}, {329, 312, false, true}, {0, 61, false, false}, + {293, 308, false, true}, {293, 61, false, false}, {293, 181, true, true}, {293, 185, true, false}, + {293, 370, false, true}, {293, 185, true, false}, {293, 96, false, true}, {0, 88, false, false}, + {0, 185, false, true}, {587, 185, false, true}, {554, 185, true, false}, {587, 185, true, true}, + {659, 185, false, true}, {739, 185, false, true}, {783, 185, false, true}, {880, 185, false, true}, + {987, 650, false, true}, {0, 88, false, false}, {932, 312, false, true}, {932, 61, false, false}, + {932, 277, false, true}, {0, 91, false, false}, {880, 646, false, true}, {0, 88, false, false}, + {987, 312, false, true}, {0, 57, false, false}, {739, 312, false, true}, {0, 57, false, false}, + {783, 277, false, true}, {783, 92, true, true}, {783, 185, false, true}, {783, 96, true, true}, + {0, 88, false, false}, {880, 312, true, true}, {880, 61, false, false}, {880, 277, false, true}, + {0, 91, false, false}, {739, 181, false, true}, {739, 185, true, true}, {739, 185, true, false}, + {739, 96, true, true}, {0, 88, false, false}, {0, 185, false, true}, {880, 185, true, true}, + {987, 185, false, true}, {1108, 185, true, true}, {1174, 312, true, true}, {1174, 61, false, false}, + {1174, 277, false, true}, {0, 91, false, false}, {0, 185, true, true}, {1108, 180, false, false}, + {1174, 185, true, true}, {1318, 184, false, false}, {1479, 185, false, true}, {1479, 185, true, true}, + {1479, 185, true, false}, {1479, 96, false, true}, {0, 88, false, false}, {880, 312, true, true}, + {0, 61, false, false}, {1479, 308, true, true}, {0, 61, false, false}, {1318, 181, false, true}, + {1318, 185, true, true}, {1318, 185, false, true}, {1318, 96, true, true}, {0, 88, false, false}, + {1174, 185, false, true}, {1174, 127, true, true}, {0, 57, false, false}, {1108, 185, false, true}, + {1108, 127, true, true}, {0, 57, false, false}, {1174, 312, true, true}, {1174, 61, false, false}, + {1174, 308, true, false}, {1174, 61, false, false}, {1174, 181, false, true}, {1174, 185, true, true}, + {1174, 92, true, false}, {1174, 189, true, true}, {0, 88, false, false}, {277, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {329, 92, true, false}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {277, 92, true, false}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {329, 92, true, false}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {277, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {391, 92, true, false}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {440, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {391, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {277, 92, true, true}, + {293, 92, false, false}, {277, 92, false, false}, {293, 91, false, false}, {329, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {277, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {329, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {277, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {391, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {440, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, true}, {391, 92, false, true}, + {293, 92, false, false}, {277, 92, true, true}, {293, 92, false, false}, {880, 311, true, true}, + {0, 57, false, false}, {0, 185, true, false}, {0, 185, true, true}, {880, 185, true, false}, + {880, 127, true, true}, {0, 57, false, false}, {0, 185, true, false}, {0, 185, true, true}, + {880, 312, true, true}, {0, 61, false, false}, {739, 181, true, false}, {739, 127, true, true}, + {0, 57, false, false}, {659, 185, false, true}, {659, 127, true, true}, {0, 57, false, false}, + {622, 185, false, true}, {622, 127, true, true}, {0, 57, false, false}, {587, 311, true, true}, + {0, 57, false, false}, {0, 185, false, true}, {0, 185, true, true}, {587, 185, false, true}, + {587, 127, true, true}, {0, 57, false, false}, {0, 185, false, true}, {0, 185, true, true}, + {587, 185, false, true}, {587, 127, true, true}, {0, 57, false, false}, {0, 185, false, true}, + {493, 92, true, true}, {523, 92, false, false}, {587, 185, false, true}, {587, 127, true, true}, + {0, 57, false, false}, {659, 185, false, true}, {659, 127, true, true}, {0, 57, false, false}, + {587, 312, true, true}, {0, 61, false, false}, {0, 185, true, false}, {587, 180, false, false}, + {739, 185, false, true}, {739, 127, true, true}, {0, 57, false, false}, {880, 92, true, false}, + {880, 220, true, true}, {0, 57, false, false}, {830, 312, true, true}, {0, 61, false, false}, + {880, 181, true, false}, {880, 127, true, true}, {0, 57, false, false}, {830, 92, false, true}, + {880, 92, false, false}, {830, 92, true, true}, {739, 92, false, false}, {587, 185, false, true}, + {440, 185, true, true}, {493, 277, true, true}, {554, 91, false, false}, {587, 185, false, true}, + {587, 92, true, true}, {659, 92, false, false}, {739, 92, true, true}, {698, 92, false, false}, + {739, 92, false, false}, {783, 91, false, false}, {880, 92, true, true}, {783, 92, false, false}, + {739, 92, false, false}, {659, 91, false, false}, {587, 92, false, true}, {554, 92, false, false}, + {587, 92, true, true}, {880, 92, false, false}, {554, 92, false, true}, {523, 92, false, false}, + {554, 92, true, true}, {880, 92, false, false}, {554, 92, false, true}, {523, 92, false, false}, + {493, 92, true, true}, {466, 92, false, false}, {440, 92, false, true}, {415, 92, false, false}, + {391, 92, true, true}, {329, 92, false, false}, {0, 2405, true, true}, {440, 293, false, false}, + {1174, 300, false, false}, {880, 300, false, false}, {830, 2557, false, false}, {0, 4351, false, false}, + {0, 1800, true, true}, {440, 293, false, false}, {1174, 300, false, false}, {880, 300, false, false}, + {830, 2007, false, false}, {0, 100, false, false}, {1975, 500, false, false}, {0, 3701, false, false}, + {0, 2401, true, true}, {440, 293, false, false}, {1174, 300, false, false}, {880, 300, false, false}, + {830, 1357, false, false}, {0, 150, false, false}, {0, 150, true, true}, {440, 143, false, false}, + {587, 150, false, false}, {880, 150, false, false}, {830, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, {391, 150, false, false}, + {554, 150, false, false}, {659, 150, false, false}, {587, 300, false, false}, {440, 150, false, false}, + {587, 149, false, false}, {554, 300, true, true}, {391, 150, false, false}, {466, 149, false, false}, + {440, 300, true, true}, {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, {466, 150, true, false}, + {391, 150, false, false}, {466, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {466, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, {698, 150, true, false}, + {880, 150, false, false}, {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, + {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {659, 150, true, false}, + {783, 150, false, false}, {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, + {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, {587, 150, true, true}, + {698, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, + {880, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, {554, 300, true, true}, + {783, 300, true, false}, {932, 300, true, false}, {880, 300, true, false}, {783, 1056, true, false}, + {0, 150, false, false}, {0, 150, true, true}, {1174, 143, false, false}, {1108, 150, false, false}, + {1174, 150, false, false}, {1244, 150, false, false}, {1174, 150, false, false}, {1108, 150, false, false}, + {830, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, + {698, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, + {554, 150, false, false}, {587, 506, false, false}, {0, 543, false, false}, {0, 450, false, true}, + {0, 150, true, false}, {0, 450, false, true}, {0, 300, true, false}, {0, 300, true, true}, + {0, 300, false, true}, {0, 300, true, true}, {391, 300, false, true}, {0, 300, true, true}, + {466, 300, false, true}, {440, 300, true, false}, {554, 300, false, true}, {587, 150, true, false}, + {440, 150, false, false}, {587, 150, false, false}, {880, 149, false, false}, {830, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, + {391, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, {587, 300, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {554, 300, false, false}, {391, 150, false, false}, + {466, 150, false, false}, {440, 450, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, + {391, 150, false, false}, {466, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {554, 150, false, false}, {659, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, + {880, 150, false, false}, {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, + {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, + {783, 150, false, false}, {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, + {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, {0, 156, true, true}, + {440, 143, false, false}, {587, 150, false, false}, {440, 150, false, false}, {698, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {440, 150, false, false}, {622, 150, true, true}, + {391, 150, false, false}, {587, 150, true, true}, {440, 150, false, false}, {622, 150, true, false}, + {440, 150, false, false}, {587, 150, true, false}, {440, 150, false, false}, {0, 156, true, false}, + {391, 143, false, false}, {554, 150, false, false}, {391, 150, false, false}, {0, 156, false, false}, + {391, 143, false, false}, {554, 150, false, false}, {391, 150, false, false}, {0, 156, false, false}, + {391, 143, false, false}, {554, 150, false, false}, {391, 150, false, false}, {0, 156, false, false}, + {391, 143, false, false}, {554, 150, false, false}, {391, 150, false, false}, {0, 156, true, false}, + {415, 143, false, false}, {493, 150, false, false}, {415, 150, false, false}, {587, 150, false, false}, + {415, 150, false, false}, {493, 150, false, false}, {415, 150, false, false}, {0, 156, true, false}, + {415, 143, false, false}, {493, 150, true, false}, {415, 150, false, false}, {554, 150, true, false}, + {391, 150, false, false}, {466, 150, true, false}, {391, 150, false, false}, {0, 156, true, true}, + {440, 143, false, false}, {587, 150, false, false}, {440, 150, false, false}, {698, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {440, 150, false, false}, {0, 156, false, false}, + {440, 143, false, false}, {587, 150, false, false}, {440, 150, false, false}, {698, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {880, 150, false, false}, {1174, 150, true, true}, + {587, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, {880, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, {880, 150, false, true}, + {587, 150, false, false}, {698, 300, false, true}, {880, 150, true, false}, {587, 150, false, false}, + {698, 150, true, false}, {587, 150, false, false}, {440, 150, true, true}, {554, 150, false, false}, + {659, 150, false, false}, {554, 150, false, false}, {783, 150, false, false}, {554, 150, false, false}, + {659, 150, false, false}, {554, 150, false, false}, {440, 150, false, false}, {554, 150, false, false}, + {659, 150, false, false}, {554, 150, false, false}, {783, 150, false, false}, {554, 150, false, false}, + {659, 150, false, false}, {554, 150, false, false}, {493, 150, true, true}, {587, 150, false, false}, + {698, 150, false, false}, {587, 150, false, false}, {830, 150, false, false}, {587, 150, false, false}, + {698, 150, false, false}, {587, 150, false, false}, {493, 150, true, false}, {587, 150, false, false}, + {698, 150, true, false}, {587, 150, false, false}, {783, 150, true, true}, {466, 150, false, false}, + {554, 150, true, false}, {466, 150, false, false}, {440, 150, true, true}, {587, 150, false, false}, + {698, 150, false, false}, {587, 150, false, false}, {880, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {880, 1199, false, false}, {0, 156, false, false}, + {349, 443, false, true}, {329, 300, false, true}, {277, 300, false, true}, {293, 300, false, true}, + {349, 300, false, true}, {329, 300, false, true}, {261, 300, false, true}, {0, 156, false, false}, + {466, 443, false, false}, {587, 300, false, false}, {466, 300, false, false}, {932, 300, false, false}, + {783, 300, false, false}, {1108, 300, false, false}, {932, 300, false, false}, {0, 156, true, true}, + {440, 143, false, false}, {587, 150, false, false}, {880, 150, false, false}, {830, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, + {391, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, {587, 300, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {554, 300, true, true}, {391, 150, false, false}, + {466, 149, false, false}, {440, 300, true, true}, {440, 150, false, false}, {587, 150, false, false}, + {698, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {466, 150, true, false}, {391, 150, false, false}, {466, 150, false, false}, {554, 150, false, false}, + {659, 150, false, false}, {466, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {698, 150, true, false}, {880, 150, false, false}, {1174, 150, false, false}, {880, 150, false, false}, + {698, 150, false, false}, {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, + {659, 150, true, false}, {783, 150, false, false}, {1108, 150, false, false}, {783, 150, false, false}, + {659, 150, false, false}, {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, + {587, 150, true, true}, {698, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, + {587, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, + {554, 300, true, true}, {783, 300, true, false}, {932, 300, true, false}, {880, 300, true, false}, + {783, 1056, true, false}, {0, 150, false, false}, {0, 150, true, true}, {1174, 143, false, false}, + {1046, 150, false, false}, {1174, 150, false, false}, {1244, 150, false, false}, {1174, 150, false, false}, + {1046, 150, false, false}, {830, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, + {659, 150, false, false}, {698, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, + {659, 150, false, false}, {554, 150, false, false}, {587, 506, false, false}, {0, 543, false, false}, + {0, 450, false, true}, {0, 150, true, false}, {0, 450, false, true}, {0, 300, true, false}, + {0, 300, true, true}, {0, 300, false, true}, {0, 300, true, true}, {391, 300, false, true}, + {0, 300, true, true}, {466, 300, false, true}, {440, 300, true, false}, {554, 300, false, true}, + {587, 150, true, false}, {440, 150, false, false}, {587, 150, false, false}, {880, 149, false, false}, + {830, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, {783, 150, false, false}, + {698, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {659, 150, false, false}, {391, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {587, 150, false, false}, {349, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, + {554, 300, false, false}, {391, 150, false, false}, {466, 150, false, false}, {440, 150, false, false}, + {349, 150, false, false}, {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, + {391, 150, false, false}, {466, 150, false, false}, {554, 150, false, false}, {659, 150, false, false}, + {554, 150, false, false}, {659, 150, false, false}, {783, 150, false, false}, {698, 150, false, false}, + {880, 150, false, false}, {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, + {1174, 150, false, false}, {880, 150, false, false}, {698, 150, false, false}, {659, 150, false, false}, + {783, 150, false, false}, {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, + {1108, 150, false, false}, {783, 150, false, false}, {659, 150, false, false}, {0, 156, true, true}, + {440, 143, false, false}, {587, 150, false, false}, {440, 150, false, false}, {698, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {440, 150, false, false}, {622, 150, true, true}, + {391, 150, false, false}, {587, 150, true, true}, {440, 150, false, false}, {622, 150, true, false}, + {440, 150, false, false}, {587, 150, true, false}, {440, 150, false, false}, {0, 156, true, false}, + {391, 143, false, false}, {554, 150, false, false}, {391, 150, false, false}, {0, 156, false, false}, + {391, 143, false, false}, {554, 150, false, false}, {391, 150, false, false}, {0, 156, false, false}, + {391, 143, false, false}, {554, 150, false, false}, {391, 150, false, false}, {0, 156, false, false}, + {391, 143, false, false}, {554, 150, false, false}, {391, 150, false, false}, {0, 156, true, false}, + {415, 143, false, false}, {493, 150, false, false}, {415, 150, false, false}, {587, 150, false, false}, + {415, 150, false, false}, {493, 150, false, false}, {415, 150, false, false}, {0, 156, true, false}, + {415, 143, false, false}, {493, 150, true, false}, {415, 150, false, false}, {554, 150, true, false}, + {391, 150, false, false}, {466, 150, true, false}, {391, 150, false, false}, {0, 156, true, true}, + {440, 143, false, false}, {587, 150, false, false}, {440, 150, false, false}, {698, 150, false, false}, + {440, 150, false, false}, {587, 150, false, false}, {440, 150, false, false}, {0, 156, false, false}, + {440, 143, false, false}, {587, 150, false, false}, {440, 150, false, false}, {698, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {880, 150, false, false}, {1174, 150, true, true}, + {587, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, {880, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {587, 150, false, false}, {880, 150, false, true}, + {587, 150, false, false}, {698, 300, false, true}, {880, 150, true, false}, {587, 150, false, false}, + {698, 150, true, false}, {587, 150, false, false}, {440, 150, true, true}, {554, 150, false, false}, + {659, 150, false, false}, {554, 150, false, false}, {783, 150, false, false}, {554, 150, false, false}, + {659, 150, false, false}, {554, 150, false, false}, {440, 150, false, false}, {554, 150, false, false}, + {659, 150, false, false}, {554, 150, false, false}, {783, 150, false, false}, {554, 150, false, false}, + {659, 150, false, false}, {554, 150, false, false}, {493, 150, true, true}, {587, 150, false, false}, + {698, 150, false, false}, {587, 150, false, false}, {830, 150, false, false}, {587, 150, false, false}, + {698, 150, false, false}, {587, 150, false, false}, {493, 150, true, false}, {587, 150, false, false}, + {698, 150, true, false}, {587, 150, false, false}, {783, 150, true, true}, {466, 150, false, false}, + {554, 150, true, false}, {466, 150, false, false}, {440, 150, true, true}, {587, 150, false, false}, + {698, 150, false, false}, {587, 150, false, false}, {880, 150, false, false}, {440, 150, false, false}, + {587, 150, false, false}, {698, 150, false, false}, {880, 1199, false, false}, {0, 156, false, false}, + {349, 443, false, true}, {329, 300, false, true}, {277, 300, false, true}, {293, 300, false, true}, + {349, 300, false, true}, {329, 300, false, true}, {277, 300, false, true}, {0, 156, false, false}, + {440, 443, false, false}, {587, 300, false, false}, {440, 300, false, false}, {932, 300, false, false}, + {783, 300, false, false}, {1108, 300, false, false}, {932, 300, false, false}, {0, 906, false, false}, + {293, 195, false, false}, {349, 200, false, false}, {369, 100, false, false}, {391, 200, false, false}, + {261, 600, false, true}, {0, 100, false, true}, {261, 100, false, true}, {0, 104, false, false}, + {261, 195, false, true}, {0, 100, false, true}, {261, 100, false, true}, {0, 100, false, true}, + {261, 200, false, true}, {0, 800, false, true}, {0, 104, false, false}, {0, 695, false, true}, + {261, 600, false, true}, {0, 100, false, true}, {261, 100, false, true}, {0, 104, false, false}, + {261, 195, false, true}, {0, 100, false, true}, {261, 100, false, true}, {0, 100, false, true}, + {261, 200, false, true}, {0, 800, false, true}, {0, 104, false, false}, {0, 695, false, true}, + {261, 1504, false, true}, {0, 100, false, false}, {329, 954, true, true}, {0, 409, false, false}, + {329, 266, false, false}, {349, 204, false, false}, {391, 340, false, false}, {440, 960, true, false}, + {0, 409, false, false}, {440, 266, false, false}, {391, 204, false, false}, {349, 340, false, false}, + {329, 960, true, true}, {0, 409, false, false}, {329, 266, false, false}, {349, 204, false, false}, + {391, 340, false, false}, {440, 960, true, false}, {0, 136, false, false}, {0, 272, true, false}, + {493, 266, false, false}, {523, 204, false, false}, {587, 340, false, false}, {329, 960, true, true}, + {0, 409, false, false}, {329, 266, false, false}, {349, 204, false, false}, {391, 340, false, false}, + {440, 960, true, false}, {0, 136, false, false}, {493, 538, true, false}, {0, 210, false, false}, + {493, 335, true, false}, {329, 731, true, false}, {0, 85, false, false}, {329, 272, true, false}, + {349, 272, true, false}, {329, 272, true, false}, {349, 272, true, false}, {391, 272, true, false}, + {329, 958, true, false}, {0, 130, false, false}, {261, 459, true, false}, {0, 85, false, false}, + {329, 272, true, false}, {391, 272, true, false}, {440, 459, true, false}, {0, 85, false, false}, + {440, 544, true, false}, {493, 459, true, false}, {0, 85, false, false}, {587, 272, true, false}, + {523, 272, true, false}, {391, 1502, true, false}, {0, 130, false, false}, {0, 545, true, false}, + {440, 731, true, false}, {0, 85, false, false}, {440, 272, true, false}, {493, 459, true, false}, + {0, 85, false, false}, {587, 272, true, false}, {523, 272, true, false}, {391, 958, true, false}, + {0, 130, false, false}, {523, 459, true, false}, {0, 85, false, false}, {261, 272, true, false}, + {293, 272, true, false}, {349, 731, true, false}, {0, 85, false, false}, {391, 340, true, false}, + {349, 204, false, false}, {349, 68, true, false}, {329, 204, false, false}, {293, 272, true, false}, + {261, 272, true, false}, {391, 2046, true, false}, {0, 130, false, false}, {329, 731, true, false}, + {0, 85, false, false}, {329, 272, true, false}, {349, 272, true, false}, {329, 272, true, false}, + {349, 272, true, false}, {391, 272, true, false}, {329, 958, true, false}, {0, 130, false, false}, + {261, 459, true, false}, {0, 85, false, false}, {329, 272, true, false}, {391, 272, true, false}, + {440, 459, true, false}, {0, 85, false, false}, {440, 544, true, false}, {493, 459, true, false}, + {0, 85, false, false}, {587, 272, true, false}, {523, 272, true, false}, {391, 1502, true, false}, + {0, 130, false, false}, {0, 545, true, false}, {440, 731, true, false}, {0, 85, false, false}, + {440, 272, true, false}, {493, 459, true, false}, {0, 85, false, false}, {587, 272, true, false}, + {523, 272, true, false}, {391, 958, true, false}, {0, 130, false, false}, {523, 459, true, false}, + {0, 85, false, false}, {523, 272, true, false}, {587, 272, true, false}, {698, 459, true, false}, + {0, 85, false, false}, {659, 459, true, false}, {0, 85, false, false}, {493, 459, true, false}, + {0, 85, false, false}, {0, 272, true, false}, {523, 1230, true, false}, {0, 130, false, false}, + {0, 1088, true, false}, {523, 460, true, false}, {0, 363, false, false}, {587, 266, true, false}, + {0, 551, false, false}, {659, 454, false, false}, {0, 91, false, false}, {493, 454, true, false}, + {0, 363, false, false}, {391, 266, true, false}, {0, 551, false, false}, {329, 454, false, false}, + {0, 91, false, false}, {440, 454, true, false}, {0, 363, false, false}, {493, 266, true, false}, + {0, 551, false, false}, {523, 454, false, false}, {0, 91, false, false}, {391, 454, true, false}, + {0, 363, false, false}, {0, 1227, true, false}, {0, 136, false, false}, {349, 454, true, false}, + {0, 363, false, false}, {391, 266, false, false}, {0, 551, false, false}, {440, 454, true, false}, + {0, 91, false, false}, {391, 454, true, false}, {0, 363, false, false}, {493, 266, false, false}, + {0, 551, false, false}, {523, 454, true, false}, {0, 91, false, false}, {440, 454, true, false}, + {0, 1182, false, false}, {523, 454, true, false}, {0, 91, false, false}, {587, 454, true, false}, + {0, 1727, false, false}, {659, 266, true, false}, {587, 272, true, false}, {659, 272, true, false}, + {698, 272, true, false}, {783, 459, true, false}, {0, 85, false, false}, {659, 272, true, false}, + {587, 1003, true, false}, {0, 85, false, false}, {523, 731, true, false}, {0, 85, false, false}, + {659, 272, true, false}, {783, 272, true, false}, {880, 272, true, false}, {783, 272, true, false}, + {880, 272, true, false}, {987, 272, true, false}, {1046, 459, true, false}, {0, 85, false, false}, + {783, 272, true, false}, {698, 272, true, false}, {659, 459, true, false}, {0, 85, false, false}, + {659, 272, true, false}, {698, 272, true, false}, {587, 958, true, false}, {0, 130, false, false}, + {659, 272, true, false}, {587, 272, true, false}, {659, 272, true, false}, {698, 272, true, false}, + {783, 459, true, false}, {0, 85, false, false}, {659, 272, true, false}, {587, 1003, true, false}, + {0, 85, false, false}, {523, 731, true, false}, {0, 85, false, false}, {659, 272, true, false}, + {783, 272, true, false}, {880, 272, true, false}, {783, 272, true, false}, {880, 272, true, false}, + {987, 272, true, false}, {1046, 459, true, false}, {0, 85, false, false}, {783, 272, true, false}, + {698, 544, true, false}, {659, 272, true, false}, {587, 272, true, false}, {523, 272, true, false}, + {783, 459, true, false}, {0, 85, false, false}, {391, 459, true, false}, {0, 85, false, false}, + {659, 731, true, false}, {0, 85, false, false}, {659, 272, true, false}, {698, 272, true, false}, + {659, 272, true, false}, {698, 272, true, false}, {783, 272, true, false}, {659, 958, true, false}, + {0, 130, false, false}, {523, 459, true, false}, {0, 85, false, false}, {659, 272, true, false}, + {783, 272, true, false}, {880, 459, true, false}, {0, 85, false, false}, {880, 544, true, false}, + {987, 459, true, false}, {0, 85, false, false}, {1174, 272, true, false}, {1046, 272, true, false}, + {783, 1502, true, false}, {0, 130, false, false}, {0, 545, true, false}, {880, 731, true, false}, + {0, 85, false, false}, {880, 272, true, false}, {987, 459, true, false}, {0, 85, false, false}, + {1174, 272, true, false}, {1046, 272, true, false}, {783, 958, true, false}, {0, 130, false, false}, + {1046, 459, true, false}, {0, 85, false, false}, {523, 272, true, false}, {587, 272, true, false}, + {698, 731, true, false}, {0, 85, false, false}, {783, 340, true, false}, {698, 204, false, false}, + {698, 68, true, false}, {659, 204, false, false}, {587, 272, true, false}, {523, 272, true, false}, + {783, 2046, true, false}, {0, 130, false, false}, {329, 731, true, false}, {0, 85, false, false}, + {329, 272, true, false}, {349, 272, true, false}, {329, 272, true, false}, {349, 272, true, false}, + {391, 272, true, false}, {329, 958, true, false}, {0, 130, false, false}, {261, 459, true, false}, + {0, 85, false, false}, {329, 272, true, false}, {391, 272, true, false}, {440, 459, true, false}, + {0, 85, false, false}, {440, 544, true, false}, {493, 459, true, false}, {0, 85, false, false}, + {587, 272, true, false}, {523, 272, true, false}, {391, 1502, true, false}, {0, 130, false, false}, + {0, 545, true, false}, {440, 731, true, false}, {0, 85, false, false}, {440, 272, true, false}, + {493, 459, true, false}, {0, 85, false, false}, {587, 272, true, false}, {523, 272, true, false}, + {391, 958, true, false}, {0, 130, false, false}, {523, 459, true, false}, {0, 85, false, false}, + {523, 272, true, false}, {587, 272, true, false}, {698, 459, true, false}, {0, 85, false, false}, + {659, 459, true, false}, {0, 85, false, false}, {493, 459, true, false}, {0, 85, false, false}, + {0, 272, true, false}, {523, 1230, true, false}, {0, 130, false, false}, {0, 1088, true, false}, + {523, 460, true, false}, {0, 363, false, false}, {587, 266, true, false}, {0, 551, false, false}, + {659, 454, false, false}, {0, 91, false, false}, {493, 454, true, false}, {0, 363, false, false}, + {391, 266, true, false}, {0, 551, false, false}, {329, 454, false, false}, {0, 91, false, false}, + {440, 454, true, false}, {0, 363, false, false}, {493, 266, true, false}, {0, 551, false, false}, + {523, 454, false, false}, {0, 91, false, false}, {391, 454, true, false}, {0, 363, false, false}, + {0, 1227, true, false}, {0, 136, false, false}, {349, 454, true, false}, {0, 363, false, false}, + {391, 266, false, false}, {0, 551, false, false}, {440, 454, true, false}, {0, 91, false, false}, + {391, 454, true, false}, {0, 363, false, false}, {493, 266, false, false}, {0, 551, false, false}, + {523, 454, true, false}, {0, 91, false, false}, {440, 454, true, false}, {0, 1182, false, false}, + {523, 454, true, false}, {0, 91, false, false}, {587, 454, true, false}, {0, 1727, false, false}, + {659, 266, true, false}, {587, 272, true, false}, {659, 272, true, false}, {698, 272, true, false}, + {783, 459, true, false}, {0, 85, false, false}, {659, 272, true, false}, {587, 1003, true, false}, + {0, 85, false, false}, {523, 731, true, false}, {0, 85, false, false}, {659, 272, true, false}, + {783, 272, true, false}, {880, 272, true, false}, {783, 272, true, false}, {880, 272, true, false}, + {987, 272, true, false}, {1046, 459, true, false}, {0, 85, false, false}, {783, 272, true, false}, + {698, 272, true, false}, {659, 459, true, false}, {0, 85, false, false}, {659, 272, true, false}, + {698, 272, true, false}, {587, 958, true, false}, {0, 130, false, false}, {659, 272, true, false}, + {587, 272, true, false}, {659, 272, true, false}, {698, 272, true, false}, {783, 459, true, false}, + {0, 85, false, false}, {659, 272, true, false}, {587, 1003, true, false}, {0, 85, false, false}, + {523, 731, true, false}, {0, 85, false, false}, {659, 272, true, false}, {783, 272, true, false}, + {880, 272, true, false}, {783, 272, true, false}, {880, 272, true, false}, {987, 272, true, false}, + {1046, 459, true, false}, {0, 85, false, false}, {783, 272, true, false}, {698, 544, true, false}, + {659, 272, true, false}, {587, 272, true, false}, {523, 272, true, false}, {783, 459, true, false}, + {0, 85, false, false}, {391, 459, true, false}, {0, 85, false, false}, {698, 272, true, false}, + {622, 272, true, false}, {698, 272, true, false}, {739, 272, true, false}, {830, 459, true, false}, + {0, 85, false, false}, {698, 272, true, false}, {622, 1003, true, false}, {0, 85, false, false}, + {554, 731, true, false}, {0, 85, false, false}, {698, 272, true, false}, {830, 272, true, false}, + {932, 272, true, false}, {830, 272, true, false}, {932, 272, true, false}, {1046, 272, true, false}, + {1108, 459, true, false}, {0, 85, false, false}, {830, 272, true, false}, {739, 272, true, false}, + {698, 459, true, false}, {0, 85, false, false}, {698, 272, true, false}, {739, 272, true, false}, + {622, 958, true, false}, {0, 130, false, false}, {698, 272, true, false}, {622, 272, true, false}, + {698, 272, true, false}, {739, 272, true, false}, {830, 459, true, false}, {0, 85, false, false}, + {698, 272, true, false}, {622, 1003, true, false}, {0, 85, false, false}, {554, 731, true, false}, + {0, 85, false, false}, {698, 272, true, false}, {830, 272, true, false}, {932, 272, true, false}, + {830, 272, true, false}, {932, 272, true, false}, {1046, 272, true, false}, {1108, 459, true, false}, + {0, 85, false, false}, {830, 272, true, false}, {739, 544, true, false}, {698, 272, true, false}, + {622, 272, true, false}, {554, 272, true, false}, {830, 459, true, false}, {0, 85, false, false}, + {523, 459, true, false}, {0, 85, false, false}, {349, 960, true, true}, {0, 409, false, false}, + {349, 266, false, false}, {369, 204, false, false}, {415, 340, false, false}, {466, 960, true, false}, + {0, 409, false, false}, {466, 266, false, false}, {415, 204, false, false}, {369, 340, false, false}, + {349, 960, true, true}, {0, 409, false, false}, {349, 266, false, false}, {369, 204, false, false}, + {415, 340, false, false}, {466, 960, true, false}, {0, 409, false, false}, {466, 266, false, false}, + {415, 204, false, false}, {369, 340, false, false}, {349, 960, true, true}, {0, 409, false, false}, + {349, 266, false, false}, {369, 204, false, false}, {415, 340, false, false}, {466, 960, true, false}, + {0, 136, false, false}, {554, 1295, false, false}, {554, 62, true, false}, {415, 68, false, false}, + {554, 1164, false, false}, {0, 682, false, false}, {0, 454, true, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/mega.mid b/scripts/midillis/Alla_Turca/mega.mid new file mode 100644 index 0000000..e7d7ad3 Binary files /dev/null and b/scripts/midillis/Alla_Turca/mega.mid differ diff --git a/scripts/midillis/Alla_Turca/mega_c.txt b/scripts/midillis/Alla_Turca/mega_c.txt new file mode 100644 index 0000000..f4c1580 --- /dev/null +++ b/scripts/midillis/Alla_Turca/mega_c.txt @@ -0,0 +1,36 @@ +// Converted from: mega.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_mega[] = { + {659, 125, true, true}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, true}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {659, 125, true, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {440, 125, false, false}, {587, 125, false, false}, {659, 125, false, false}, {698, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {880, 125, true, true}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {587, 125, false, false}, {783, 125, false, false}, {880, 125, false, false}, {932, 125, false, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/money_1.mid b/scripts/midillis/Alla_Turca/money_1.mid new file mode 100644 index 0000000..e336382 Binary files /dev/null and b/scripts/midillis/Alla_Turca/money_1.mid differ diff --git a/scripts/midillis/Alla_Turca/money_1_c.txt b/scripts/midillis/Alla_Turca/money_1_c.txt new file mode 100644 index 0000000..0085ccd --- /dev/null +++ b/scripts/midillis/Alla_Turca/money_1_c.txt @@ -0,0 +1,1208 @@ +// Converted from: money_1.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_money_1[] = { + {0, 1872, false, false}, {659, 36, false, false}, {440, 12, false, false}, {0, 166, false, false}, + {659, 46, false, false}, {440, 14, false, false}, {0, 173, false, false}, {659, 51, false, false}, + {440, 12, false, false}, {0, 170, false, false}, {659, 43, false, false}, {659, 12, false, false}, + {0, 178, false, false}, {659, 51, false, false}, {440, 14, false, false}, {0, 168, false, false}, + {659, 70, false, false}, {659, 17, false, false}, {0, 146, false, false}, {329, 117, false, false}, + {440, 117, false, false}, {523, 75, false, false}, {523, 31, false, false}, {659, 14, false, false}, + {659, 58, false, false}, {0, 53, false, false}, {622, 43, false, false}, {622, 17, false, false}, + {622, 14, false, false}, {0, 158, false, false}, {622, 26, false, false}, {622, 26, false, false}, + {0, 180, false, false}, {622, 48, false, false}, {0, 185, false, false}, {622, 29, false, false}, + {622, 34, false, false}, {0, 170, false, false}, {622, 48, false, false}, {622, 12, false, false}, + {0, 173, false, false}, {622, 78, false, false}, {622, 68, false, false}, {0, 87, false, false}, + {329, 117, false, false}, {440, 117, false, false}, {523, 107, false, false}, {659, 19, false, false}, + {659, 63, false, false}, {0, 43, false, false}, {587, 441, false, false}, {587, 26, false, false}, + {587, 14, false, false}, {523, 46, false, false}, {523, 173, false, false}, {523, 31, false, false}, + {440, 61, false, false}, {0, 141, false, false}, {523, 53, false, false}, {0, 180, false, false}, + {523, 527, false, false}, {0, 117, false, false}, {440, 456, false, false}, {440, 17, false, false}, + {440, 19, false, false}, {0, 444, false, false}, {0, 31, false, true}, {261, 56, false, false}, + {329, 29, false, false}, {440, 58, false, false}, {523, 19, false, false}, {523, 12, false, false}, + {523, 26, false, false}, {659, 29, false, false}, {880, 29, false, false}, {880, 48, false, false}, + {880, 12, false, false}, {0, 659, false, false}, {880, 117, true, false}, {987, 43, false, false}, + {987, 36, false, false}, {987, 36, false, false}, {1046, 43, true, false}, {1046, 24, false, false}, + {1046, 34, false, false}, {1046, 14, false, false}, {1318, 61, false, false}, {1318, 56, false, false}, + {1318, 117, true, false}, {987, 24, false, false}, {987, 92, false, false}, {1046, 24, true, false}, + {1046, 29, false, false}, {1046, 43, false, false}, {1046, 19, false, false}, {1318, 56, false, false}, + {1318, 61, false, false}, {1318, 117, true, false}, {987, 21, false, false}, {987, 61, false, false}, + {987, 34, false, false}, {1046, 29, true, false}, {1046, 48, false, false}, {1046, 26, false, false}, + {1046, 12, false, false}, {1318, 56, false, false}, {1318, 61, false, false}, {1318, 117, true, false}, + {987, 17, false, false}, {987, 58, false, false}, {987, 41, false, false}, {1046, 36, true, false}, + {1046, 51, false, false}, {1046, 21, false, false}, {1318, 43, false, false}, {1318, 80, false, false}, + {1318, 109, true, false}, {987, 34, false, false}, {987, 29, false, false}, {987, 61, false, false}, + {1046, 12, true, false}, {1046, 70, false, false}, {1046, 24, false, false}, {1318, 58, false, false}, + {1318, 68, false, false}, {1318, 104, true, false}, {880, 12, false, false}, {987, 19, false, false}, + {987, 26, false, false}, {987, 70, false, false}, {1046, 29, true, false}, {1046, 58, false, false}, + {1046, 21, false, false}, {1318, 56, false, false}, {1318, 68, false, false}, {1318, 117, true, false}, + {1318, 14, false, false}, {987, 78, false, false}, {987, 24, false, false}, {1046, 43, true, false}, + {1046, 63, false, false}, {1318, 65, false, false}, {1318, 61, false, false}, {1318, 117, true, false}, + {987, 51, false, false}, {987, 46, false, false}, {987, 19, false, false}, {1046, 19, true, false}, + {1046, 26, false, false}, {1046, 31, false, false}, {1046, 39, false, false}, {1318, 14, false, false}, + {1318, 24, false, false}, {1318, 58, false, false}, {1318, 19, true, false}, {880, 117, true, true}, + {987, 19, false, false}, {987, 31, false, false}, {987, 29, false, false}, {987, 17, false, false}, + {987, 19, true, false}, {1046, 12, true, true}, {1046, 31, false, false}, {1046, 17, false, false}, + {1046, 14, false, false}, {1046, 21, false, false}, {1046, 19, false, false}, {1318, 61, false, false}, + {1318, 31, false, false}, {1318, 24, true, false}, {1318, 112, true, true}, {987, 61, false, false}, + {987, 19, false, false}, {987, 21, false, false}, {987, 19, true, false}, {1046, 24, true, true}, + {1046, 29, false, false}, {1046, 17, false, false}, {1046, 19, false, false}, {1046, 14, false, false}, + {1046, 12, false, false}, {1318, 21, false, false}, {1318, 34, false, false}, {1318, 31, false, false}, + {1318, 12, false, false}, {1318, 17, true, false}, {1318, 117, true, true}, {987, 39, false, false}, + {987, 43, false, false}, {987, 14, false, false}, {987, 19, true, false}, {1046, 14, true, true}, + {1046, 14, false, false}, {1046, 31, false, false}, {1046, 12, false, false}, {1046, 19, false, false}, + {1046, 24, false, false}, {1318, 56, false, false}, {1318, 41, false, false}, {1318, 19, true, false}, + {1318, 117, true, true}, {987, 14, false, false}, {987, 39, false, false}, {987, 21, false, false}, + {987, 21, false, false}, {987, 19, true, false}, {1046, 36, true, true}, {1046, 39, false, false}, + {1046, 12, false, false}, {1046, 19, false, false}, {1318, 46, false, false}, {1318, 61, false, false}, + {1318, 14, true, false}, {1318, 114, true, true}, {987, 63, false, false}, {987, 12, false, false}, + {987, 29, false, false}, {987, 14, true, false}, {1046, 12, true, true}, {1046, 24, false, false}, + {1046, 51, false, false}, {1046, 12, false, false}, {1046, 21, false, false}, {1318, 48, false, false}, + {1318, 48, false, false}, {1318, 19, true, false}, {1318, 104, true, true}, {880, 12, false, false}, + {987, 24, false, false}, {987, 21, false, false}, {987, 14, false, false}, {987, 31, false, false}, + {987, 24, true, false}, {1046, 17, true, true}, {1046, 12, false, false}, {1046, 56, false, false}, + {1046, 26, false, false}, {1318, 21, false, false}, {1318, 31, false, false}, {1318, 31, false, false}, + {1318, 17, false, false}, {1318, 19, true, false}, {1318, 14, true, true}, {1318, 117, false, false}, + {329, 21, false, false}, {0, 43, false, false}, {0, 12, false, false}, {440, 14, true, false}, + {440, 14, false, true}, {440, 109, true, false}, {329, 24, false, false}, {0, 75, false, false}, + {440, 19, true, false}, {440, 144, true, true}, {440, 17, false, false}, {0, 48, false, false}, + {415, 24, false, true}, {415, 14, true, true}, {415, 102, false, false}, {415, 21, false, false}, + {415, 19, false, false}, {415, 24, false, false}, {0, 34, false, false}, {0, 17, true, false}, + {0, 53, true, true}, {0, 87, false, false}, {0, 56, false, false}, {0, 19, false, false}, + {0, 17, false, true}, {0, 112, true, true}, {0, 104, false, false}, {0, 14, true, false}, + {0, 148, true, true}, {0, 17, false, false}, {0, 53, false, false}, {0, 17, false, true}, + {0, 39, true, true}, {0, 75, false, false}, {0, 92, false, false}, {587, 26, true, false}, + {587, 51, true, true}, {349, 14, false, false}, {0, 14, false, false}, {0, 39, false, false}, + {0, 80, false, false}, {0, 14, false, false}, {587, 19, false, true}, {587, 39, true, true}, + {587, 80, false, false}, {587, 14, false, false}, {587, 63, false, false}, {587, 19, false, false}, + {587, 17, true, false}, {587, 90, true, true}, {587, 24, false, false}, {0, 21, false, false}, + {0, 56, false, false}, {0, 21, false, false}, {523, 19, false, true}, {523, 126, true, true}, + {523, 63, false, false}, {523, 26, false, false}, {523, 17, true, false}, {880, 17, true, true}, + {880, 68, false, false}, {880, 31, false, false}, {987, 17, false, false}, {987, 39, false, false}, + {987, 43, false, false}, {987, 17, true, false}, {1046, 12, true, true}, {1046, 36, false, false}, + {1046, 34, false, false}, {1046, 31, false, false}, {1318, 51, false, false}, {1318, 51, false, false}, + {1318, 12, true, false}, {1318, 109, true, true}, {880, 12, false, false}, {987, 14, false, false}, + {987, 19, false, false}, {987, 12, false, false}, {987, 53, false, false}, {987, 17, true, false}, + {1046, 29, true, true}, {1046, 58, false, false}, {1046, 24, false, false}, {1318, 53, false, false}, + {1318, 48, false, false}, {1318, 19, true, false}, {1318, 117, true, true}, {1318, 14, false, false}, + {987, 17, false, false}, {987, 61, false, false}, {987, 24, true, false}, {1046, 43, true, true}, + {1046, 63, false, false}, {1318, 65, false, false}, {1318, 43, false, false}, {1318, 17, true, false}, + {1318, 117, true, true}, {987, 24, false, false}, {987, 73, false, false}, {987, 19, true, false}, + {1046, 14, true, true}, {1046, 31, false, false}, {1046, 12, false, false}, {1046, 19, false, false}, + {1046, 39, false, false}, {1318, 14, false, false}, {1318, 12, false, false}, {1318, 12, false, false}, + {1318, 12, false, false}, {1318, 46, false, false}, {1318, 19, true, false}, {880, 117, true, true}, + {987, 19, false, false}, {987, 31, false, false}, {987, 29, false, false}, {987, 17, false, false}, + {987, 19, true, false}, {1046, 12, true, true}, {1046, 31, false, false}, {1046, 17, false, false}, + {1046, 14, false, false}, {1046, 21, false, false}, {1046, 19, false, false}, {1318, 61, false, false}, + {1318, 31, false, false}, {1318, 24, true, false}, {1318, 112, true, true}, {987, 61, false, false}, + {987, 19, false, false}, {987, 21, false, false}, {987, 19, true, false}, {1046, 24, true, true}, + {1046, 29, false, false}, {1046, 17, false, false}, {1046, 19, false, false}, {1046, 14, false, false}, + {1046, 12, false, false}, {1318, 21, false, false}, {1318, 34, false, false}, {1318, 31, false, false}, + {1318, 12, false, false}, {1318, 17, true, false}, {1318, 117, true, true}, {987, 39, false, false}, + {987, 43, false, false}, {987, 14, false, false}, {987, 19, true, false}, {1046, 14, true, true}, + {1046, 14, false, false}, {1046, 31, false, false}, {1046, 12, false, false}, {1046, 19, false, false}, + {1046, 24, false, false}, {1318, 56, false, false}, {1318, 41, false, false}, {1318, 19, true, false}, + {1318, 117, true, true}, {987, 14, false, false}, {987, 39, false, false}, {987, 21, false, false}, + {987, 21, false, false}, {987, 19, true, false}, {1046, 36, true, true}, {1046, 39, false, false}, + {1046, 12, false, false}, {1046, 19, false, false}, {1318, 46, false, false}, {1318, 61, false, false}, + {1318, 14, true, false}, {1318, 114, true, true}, {987, 63, false, false}, {987, 12, false, false}, + {987, 29, false, false}, {987, 14, true, false}, {1046, 12, true, true}, {1046, 24, false, false}, + {1046, 51, false, false}, {1046, 12, false, false}, {1046, 21, false, false}, {1318, 48, false, false}, + {1318, 48, false, false}, {1318, 19, true, false}, {1318, 104, true, true}, {880, 12, false, false}, + {987, 24, false, false}, {987, 21, false, false}, {987, 14, false, false}, {987, 31, false, false}, + {987, 24, true, false}, {1046, 17, true, true}, {1046, 12, false, false}, {1046, 56, false, false}, + {1046, 26, false, false}, {1318, 21, false, false}, {1318, 31, false, false}, {1318, 31, false, false}, + {1318, 17, false, false}, {1318, 19, true, false}, {1318, 14, true, true}, {1318, 117, false, false}, + {329, 21, false, false}, {0, 43, false, false}, {0, 12, false, false}, {440, 14, true, false}, + {440, 14, false, true}, {440, 109, true, false}, {329, 24, false, false}, {0, 75, false, false}, + {440, 19, true, false}, {440, 144, true, true}, {440, 17, false, false}, {0, 48, false, false}, + {415, 24, false, true}, {415, 14, true, true}, {415, 102, false, false}, {415, 21, false, false}, + {415, 19, false, false}, {415, 24, false, false}, {0, 34, false, false}, {0, 17, true, false}, + {0, 53, true, true}, {0, 87, false, false}, {0, 56, false, false}, {0, 19, false, false}, + {0, 17, false, true}, {0, 112, true, true}, {0, 104, false, false}, {0, 14, true, false}, + {0, 148, true, true}, {0, 17, false, false}, {0, 53, false, false}, {0, 17, false, true}, + {0, 39, true, true}, {0, 75, false, false}, {0, 92, false, false}, {587, 26, true, false}, + {587, 51, true, true}, {349, 14, false, false}, {0, 14, false, false}, {0, 39, false, false}, + {0, 80, false, false}, {0, 14, false, false}, {587, 19, false, true}, {587, 39, true, true}, + {587, 80, false, false}, {587, 14, false, false}, {587, 63, false, false}, {587, 19, false, false}, + {587, 17, true, false}, {587, 90, true, true}, {587, 24, false, false}, {0, 21, false, false}, + {0, 56, false, false}, {0, 21, false, false}, {523, 19, false, true}, {523, 126, true, true}, + {523, 63, false, false}, {523, 26, false, false}, {523, 17, true, false}, {880, 17, true, true}, + {880, 68, false, false}, {880, 31, false, false}, {987, 17, false, false}, {987, 39, false, false}, + {987, 43, false, false}, {987, 17, true, false}, {1046, 12, true, true}, {1046, 36, false, false}, + {1046, 34, false, false}, {1046, 31, false, false}, {1318, 51, false, false}, {1318, 51, false, false}, + {1318, 12, true, false}, {1318, 109, true, true}, {880, 12, false, false}, {987, 14, false, false}, + {987, 19, false, false}, {987, 12, false, false}, {987, 53, false, false}, {987, 17, true, false}, + {1046, 29, true, true}, {1046, 58, false, false}, {1046, 24, false, false}, {1318, 53, false, false}, + {1318, 48, false, false}, {1318, 19, true, false}, {1318, 117, true, true}, {1318, 14, false, false}, + {987, 17, false, false}, {987, 61, false, false}, {987, 24, true, false}, {1046, 43, true, true}, + {1046, 63, false, false}, {1318, 65, false, false}, {1318, 43, false, false}, {1318, 17, true, false}, + {1318, 117, true, true}, {987, 24, false, false}, {987, 75, false, false}, {987, 17, true, false}, + {1046, 14, true, true}, {1046, 43, false, false}, {1046, 58, false, false}, {1318, 14, false, false}, + {1318, 12, false, false}, {1318, 12, false, false}, {1318, 12, false, false}, {1318, 48, false, false}, + {1318, 17, true, false}, {587, 21, true, true}, {587, 14, false, false}, {0, 31, false, false}, + {0, 68, false, false}, {0, 61, false, false}, {0, 19, false, false}, {587, 17, false, true}, + {587, 34, true, true}, {587, 43, false, false}, {587, 12, false, false}, {587, 114, false, false}, + {587, 12, false, false}, {587, 17, true, false}, {587, 36, true, true}, {587, 19, false, false}, + {587, 56, false, false}, {587, 48, false, false}, {0, 56, false, false}, {523, 17, false, true}, + {523, 46, true, true}, {523, 14, false, false}, {523, 29, false, false}, {523, 48, false, false}, + {523, 65, false, false}, {523, 12, false, false}, {523, 17, true, false}, {523, 65, true, true}, + {523, 51, false, false}, {523, 43, false, false}, {523, 39, false, false}, {523, 17, false, false}, + {523, 17, false, true}, {523, 61, true, true}, {523, 31, false, false}, {523, 117, false, false}, + {523, 24, true, false}, {523, 65, true, true}, {440, 24, false, false}, {0, 41, false, false}, + {0, 61, false, false}, {0, 12, false, false}, {523, 12, false, false}, {523, 17, false, true}, + {523, 85, true, true}, {523, 43, false, false}, {440, 58, false, false}, {0, 17, false, false}, + {493, 12, false, false}, {493, 12, true, false}, {493, 34, true, true}, {493, 12, false, false}, + {0, 17, false, false}, {0, 51, false, false}, {0, 63, false, false}, {0, 43, false, false}, + {493, 17, false, true}, {493, 92, true, true}, {493, 122, false, false}, {493, 19, true, false}, + {493, 73, true, true}, {493, 17, false, false}, {493, 51, false, false}, {391, 21, false, false}, + {391, 12, false, false}, {0, 21, false, false}, {523, 12, false, false}, {523, 17, false, true}, + {523, 12, false, true}, {523, 24, true, false}, {523, 63, false, false}, {523, 21, false, false}, + {523, 102, false, false}, {523, 17, true, true}, {523, 12, true, true}, {523, 58, true, true}, + {523, 68, false, false}, {523, 70, false, false}, {523, 24, false, false}, {523, 68, true, true}, + {523, 17, false, false}, {523, 26, false, false}, {523, 36, false, false}, {523, 12, false, false}, + {523, 29, false, false}, {523, 26, false, false}, {523, 17, true, true}, {523, 24, true, true}, + {440, 78, true, true}, {440, 48, false, false}, {440, 83, false, false}, {440, 19, true, true}, + {440, 83, false, false}, {440, 21, false, false}, {440, 46, false, false}, {440, 12, false, false}, + {440, 34, false, false}, {440, 17, true, false}, {440, 12, true, true}, {440, 21, true, true}, + {0, 51, false, false}, {0, 58, false, false}, {0, 53, false, false}, {0, 19, false, false}, + {587, 17, false, true}, {587, 34, true, true}, {587, 14, false, false}, {587, 12, false, false}, + {0, 12, false, false}, {0, 24, false, false}, {0, 14, false, false}, {0, 92, false, false}, + {0, 12, false, false}, {587, 12, true, false}, {587, 87, true, true}, {587, 80, false, false}, + {587, 53, false, false}, {587, 17, false, true}, {587, 87, true, true}, {587, 26, false, false}, + {587, 46, false, false}, {587, 21, false, false}, {0, 26, false, false}, {523, 24, true, false}, + {523, 26, true, true}, {349, 21, false, false}, {0, 12, false, false}, {0, 21, false, false}, + {0, 46, false, false}, {0, 70, false, false}, {0, 17, false, false}, {523, 12, false, true}, + {523, 97, true, true}, {523, 26, false, false}, {523, 87, false, false}, {523, 26, true, false}, + {523, 78, true, true}, {523, 56, false, false}, {440, 21, false, false}, {0, 36, false, false}, + {0, 24, false, false}, {523, 12, false, true}, {523, 104, true, true}, {523, 14, false, false}, + {0, 12, false, false}, {0, 78, false, false}, {0, 12, false, false}, {493, 17, true, false}, + {493, 14, true, true}, {493, 39, false, false}, {0, 29, false, false}, {0, 58, false, false}, + {0, 31, false, false}, {0, 43, false, false}, {493, 17, false, true}, {493, 34, true, true}, + {493, 70, false, false}, {493, 12, false, false}, {493, 100, false, false}, {493, 17, true, false}, + {493, 12, true, true}, {493, 19, false, false}, {493, 41, false, false}, {493, 46, false, false}, + {493, 31, false, false}, {493, 12, false, false}, {493, 26, false, false}, {0, 26, false, false}, + {523, 14, false, true}, {523, 90, true, true}, {523, 14, false, false}, {523, 19, false, false}, + {523, 92, false, false}, {523, 12, true, true}, {523, 12, true, true}, {523, 78, true, false}, + {523, 65, false, false}, {523, 61, false, false}, {523, 24, false, false}, {523, 65, true, true}, + {440, 34, false, false}, {440, 17, false, false}, {440, 24, false, false}, {440, 19, false, false}, + {440, 24, false, false}, {440, 31, false, false}, {440, 17, true, true}, {440, 14, true, true}, + {440, 100, true, true}, {0, 26, false, false}, {0, 17, false, false}, {0, 56, false, false}, + {440, 19, false, false}, {440, 19, true, true}, {440, 39, false, false}, {440, 17, false, false}, + {349, 12, false, false}, {0, 24, false, false}, {0, 31, false, false}, {0, 19, false, false}, + {0, 12, false, false}, {0, 39, false, false}, {440, 19, true, true}, {440, 12, true, true}, + {440, 124, true, true}, {440, 61, false, false}, {440, 19, false, false}, {493, 14, false, false}, + {493, 19, false, true}, {493, 14, false, false}, {493, 36, false, false}, {0, 41, false, false}, + {0, 107, false, false}, {493, 17, false, false}, {493, 112, true, true}, {493, 80, false, false}, + {391, 14, false, false}, {440, 17, false, false}, {440, 12, false, true}, {440, 58, false, false}, + {440, 17, false, false}, {0, 39, false, false}, {0, 21, false, false}, {0, 78, false, false}, + {440, 17, false, false}, {440, 117, true, true}, {440, 83, false, false}, {440, 17, false, false}, + {493, 14, false, false}, {493, 14, false, true}, {493, 14, false, false}, {493, 34, false, false}, + {493, 17, false, false}, {0, 65, false, false}, {0, 73, false, false}, {493, 17, false, false}, + {493, 131, true, true}, {493, 61, false, false}, {493, 24, false, false}, {440, 17, false, false}, + {440, 14, false, true}, {440, 14, false, false}, {440, 24, false, false}, {440, 36, false, false}, + {440, 14, false, false}, {349, 24, false, false}, {0, 51, false, false}, {0, 29, false, false}, + {440, 17, true, true}, {440, 12, true, true}, {440, 12, true, false}, {440, 92, true, true}, + {440, 63, false, false}, {440, 34, false, false}, {493, 21, false, false}, {493, 100, false, true}, + {493, 19, false, false}, {0, 26, false, false}, {0, 75, false, false}, {493, 14, false, false}, + {493, 144, true, true}, {493, 17, false, false}, {0, 58, false, false}, {440, 12, false, false}, + {440, 100, false, true}, {440, 14, false, false}, {0, 12, false, false}, {0, 95, false, false}, + {440, 14, false, false}, {440, 17, true, true}, {440, 124, false, false}, {369, 63, false, false}, + {369, 14, false, false}, {523, 17, false, false}, {523, 114, false, true}, {440, 61, false, false}, + {440, 29, false, false}, {0, 12, false, false}, {523, 17, false, false}, {523, 124, true, true}, + {0, 26, false, false}, {0, 51, false, false}, {0, 14, false, false}, {493, 17, false, false}, + {493, 19, false, true}, {493, 17, false, false}, {493, 87, false, false}, {493, 17, false, false}, + {493, 19, false, false}, {493, 19, false, false}, {493, 34, false, false}, {415, 12, true, true}, + {415, 12, true, true}, {415, 300, true, true}, {415, 31, false, false}, {415, 53, false, false}, + {415, 134, false, false}, {415, 129, false, false}, {415, 19, false, false}, {493, 97, false, false}, + {493, 39, false, false}, {659, 78, false, false}, {659, 26, false, false}, {830, 43, false, false}, + {830, 219, false, false}, {0, 263, false, false}, {0, 104, false, false}, {0, 14, false, false}, + {0, 48, false, false}, {0, 39, false, false}, {0, 26, false, false}, {0, 180, false, false}, + {659, 21, false, false}, {659, 70, false, false}, {0, 21, false, false}, {0, 119, false, false}, + {698, 21, false, false}, {698, 73, false, false}, {0, 21, false, false}, {0, 117, false, false}, + {587, 21, false, false}, {587, 56, false, false}, {0, 21, false, false}, {0, 134, false, false}, + {659, 21, false, false}, {659, 63, false, false}, {0, 21, false, false}, {0, 126, false, false}, + {523, 21, false, false}, {523, 53, false, false}, {0, 21, false, false}, {0, 136, false, false}, + {587, 21, false, false}, {587, 56, false, false}, {0, 21, false, false}, {0, 134, false, false}, + {493, 21, false, true}, {493, 73, false, false}, {0, 21, false, false}, {0, 117, false, false}, + {659, 21, false, false}, {659, 73, true, true}, {0, 21, false, false}, {0, 117, false, false}, + {698, 21, false, false}, {698, 87, true, true}, {0, 21, false, false}, {0, 102, false, false}, + {587, 21, false, false}, {587, 68, true, true}, {0, 21, false, false}, {0, 122, false, false}, + {659, 21, false, false}, {659, 63, true, true}, {0, 21, false, false}, {0, 126, false, false}, + {523, 21, false, false}, {523, 53, true, false}, {0, 21, false, false}, {0, 136, false, false}, + {587, 21, false, false}, {587, 65, true, true}, {0, 21, false, false}, {0, 124, false, false}, + {493, 21, false, true}, {493, 56, true, true}, {0, 21, false, false}, {0, 134, false, false}, + {523, 17, false, false}, {523, 122, true, true}, {0, 21, false, false}, {0, 231, false, false}, + {0, 70, false, false}, {659, 14, true, true}, {880, 12, true, true}, {880, 12, true, false}, + {880, 12, false, false}, {880, 17, false, false}, {880, 29, false, false}, {880, 43, false, false}, + {880, 17, false, true}, {880, 36, false, false}, {880, 24, false, false}, {880, 19, false, false}, + {880, 17, true, true}, {880, 12, true, true}, {987, 14, false, false}, {987, 19, false, false}, + {987, 29, false, false}, {987, 17, false, false}, {987, 26, false, false}, {987, 61, false, true}, + {987, 36, false, false}, {987, 17, true, true}, {1046, 14, true, true}, {1046, 14, false, false}, + {1046, 17, false, false}, {1046, 48, false, false}, {1046, 17, false, false}, {1046, 92, false, true}, + {1046, 12, false, false}, {1046, 12, true, true}, {1046, 14, true, true}, {880, 12, false, false}, + {880, 17, false, false}, {880, 12, false, false}, {880, 43, false, false}, {880, 24, false, false}, + {880, 19, false, true}, {880, 46, false, false}, {880, 31, false, false}, {880, 17, true, true}, + {987, 19, true, true}, {987, 26, false, false}, {987, 48, false, false}, {987, 21, false, false}, + {987, 78, false, true}, {987, 21, false, false}, {987, 17, true, true}, {1046, 14, true, true}, + {1046, 29, false, false}, {1046, 17, false, false}, {1046, 29, false, false}, {1046, 29, false, false}, + {1046, 61, false, true}, {1046, 36, false, false}, {1046, 17, true, true}, {1046, 17, true, true}, + {1046, 14, false, false}, {1046, 17, false, false}, {1046, 34, false, false}, {329, 12, false, false}, + {329, 24, false, false}, {329, 12, false, true}, {329, 61, false, false}, {329, 12, false, false}, + {329, 12, false, false}, {659, 17, true, true}, {659, 14, false, true}, {659, 12, false, false}, + {659, 19, false, false}, {329, 12, false, false}, {311, 19, false, false}, {311, 12, false, false}, + {311, 29, false, false}, {311, 34, false, true}, {311, 29, false, false}, {311, 12, false, false}, + {311, 21, false, false}, {622, 12, true, true}, {622, 12, true, true}, {622, 12, false, false}, + {622, 19, false, false}, {369, 36, false, false}, {369, 34, false, false}, {369, 63, false, true}, + {369, 43, false, false}, {622, 17, true, true}, {622, 14, false, true}, {622, 31, false, false}, + {369, 46, false, false}, {369, 26, false, false}, {369, 61, false, true}, {369, 36, false, false}, + {622, 17, true, true}, {622, 14, true, true}, {987, 31, false, false}, {987, 48, false, false}, + {987, 24, false, false}, {987, 21, false, true}, {987, 21, false, false}, {987, 41, false, false}, + {987, 12, false, false}, {987, 17, true, true}, {987, 12, true, true}, {987, 17, false, false}, + {987, 14, false, false}, {880, 51, false, false}, {880, 19, false, false}, {880, 70, false, true}, + {880, 31, false, false}, {880, 17, true, true}, {880, 14, true, true}, {880, 12, false, false}, + {987, 19, false, false}, {987, 34, false, false}, {987, 14, false, false}, {987, 24, false, false}, + {987, 19, false, true}, {987, 56, false, false}, {987, 14, false, false}, {987, 24, true, true}, + {987, 14, true, true}, {987, 17, false, false}, {1046, 17, false, false}, {1046, 12, false, false}, + {1046, 29, false, false}, {1046, 24, false, false}, {1046, 53, false, true}, {1046, 12, false, false}, + {1046, 36, false, false}, {1046, 17, true, true}, {1046, 14, true, true}, {1046, 24, false, false}, + {1046, 12, false, false}, {369, 12, false, false}, {369, 31, false, false}, {369, 24, false, false}, + {369, 31, false, true}, {369, 53, false, false}, {369, 12, false, false}, {622, 17, true, true}, + {622, 19, false, true}, {622, 21, false, false}, {622, 17, false, false}, {369, 12, false, false}, + {369, 12, false, false}, {369, 21, false, false}, {369, 14, false, false}, {293, 34, false, true}, + {293, 41, false, false}, {293, 21, false, false}, {587, 12, true, true}, {587, 53, true, true}, + {349, 14, false, false}, {349, 12, false, false}, {349, 43, false, false}, {349, 17, false, true}, + {349, 36, false, false}, {349, 24, false, false}, {349, 19, false, false}, {587, 17, true, true}, + {587, 19, false, true}, {587, 14, false, false}, {440, 17, false, false}, {349, 26, false, false}, + {349, 14, false, false}, {349, 26, false, false}, {349, 61, false, true}, {349, 36, false, false}, + {987, 17, true, true}, {987, 19, true, true}, {987, 21, false, false}, {987, 12, false, false}, + {987, 41, false, false}, {987, 17, false, false}, {987, 92, false, true}, {987, 12, false, false}, + {987, 17, true, true}, {880, 12, true, true}, {880, 29, false, false}, {880, 14, false, false}, + {880, 12, false, false}, {880, 26, false, false}, {880, 24, false, false}, {880, 19, false, true}, + {880, 46, false, false}, {880, 29, false, false}, {1046, 12, true, true}, {1046, 12, true, true}, + {1046, 36, true, false}, {1046, 14, false, false}, {1046, 14, false, false}, {0, 24, false, false}, + {0, 21, false, false}, {0, 78, false, true}, {0, 21, false, false}, {523, 17, true, true}, + {523, 17, true, true}, {1046, 21, false, false}, {1046, 17, false, false}, {1046, 34, false, false}, + {1046, 29, false, false}, {1046, 61, false, true}, {1046, 36, false, false}, {1046, 17, true, true}, + {1046, 41, true, true}, {1046, 12, false, false}, {1046, 41, false, false}, {1046, 24, false, false}, + {1046, 12, false, true}, {1046, 61, false, false}, {1046, 12, false, false}, {1046, 12, false, false}, + {1046, 17, true, true}, {523, 12, true, true}, {880, 12, false, false}, {880, 14, false, true}, + {880, 19, false, false}, {880, 29, false, false}, {880, 24, false, false}, {880, 83, false, true}, + {880, 21, false, false}, {880, 12, true, true}, {880, 29, true, true}, {880, 17, false, false}, + {880, 17, false, false}, {880, 17, false, false}, {880, 34, false, false}, {880, 63, false, true}, + {880, 43, false, false}, {880, 17, true, true}, {880, 34, false, true}, {880, 17, false, false}, + {880, 39, false, false}, {261, 29, false, false}, {261, 61, false, true}, {261, 36, false, false}, + {523, 17, true, true}, {523, 34, true, true}, {261, 14, false, false}, {261, 46, false, false}, + {261, 24, false, false}, {261, 21, false, true}, {261, 21, false, false}, {261, 41, false, false}, + {261, 12, false, false}, {523, 17, true, true}, {523, 26, false, true}, {329, 12, false, false}, + {261, 12, false, false}, {261, 43, false, false}, {261, 19, false, false}, {261, 65, false, true}, + {261, 24, false, true}, {261, 12, false, false}, {523, 17, true, true}, {523, 14, true, true}, + {523, 12, false, false}, {329, 14, false, false}, {293, 14, false, false}, {329, 26, false, false}, + {329, 12, false, false}, {329, 17, false, false}, {329, 26, false, true}, {329, 43, false, false}, + {329, 12, false, false}, {329, 14, false, false}, {523, 17, true, true}, {523, 29, false, true}, + {293, 19, false, false}, {293, 12, false, false}, {293, 19, false, false}, {261, 17, false, false}, + {261, 24, false, false}, {261, 39, false, true}, {261, 19, false, true}, {0, 43, false, false}, + {523, 17, true, true}, {523, 24, true, true}, {523, 12, false, false}, {261, 14, false, false}, + {261, 19, false, false}, {261, 24, false, false}, {261, 24, false, false}, {261, 31, false, true}, + {261, 53, false, false}, {261, 12, false, false}, {523, 17, true, true}, {523, 19, false, true}, + {523, 12, false, false}, {261, 14, false, true}, {0, 19, false, false}, {0, 19, false, false}, + {0, 34, false, false}, {0, 75, false, true}, {0, 21, false, false}, {659, 14, true, true}, + {880, 12, true, true}, {880, 19, false, false}, {880, 17, false, false}, {880, 29, false, false}, + {880, 29, false, false}, {880, 14, false, false}, {880, 17, false, true}, {880, 36, false, false}, + {880, 24, false, false}, {880, 19, false, false}, {880, 17, true, true}, {987, 26, true, true}, + {987, 19, false, false}, {987, 31, false, false}, {987, 14, false, false}, {987, 26, false, false}, + {987, 61, false, true}, {987, 36, false, false}, {987, 14, true, true}, {1046, 21, true, true}, + {1046, 26, false, false}, {1046, 48, false, false}, {1046, 17, false, false}, {1046, 92, false, true}, + {1046, 12, false, false}, {1046, 14, true, true}, {1046, 19, true, true}, {880, 19, false, false}, + {880, 12, false, false}, {880, 12, false, false}, {880, 34, false, false}, {880, 24, false, false}, + {880, 19, false, true}, {880, 46, false, false}, {880, 31, false, false}, {987, 17, true, true}, + {987, 19, true, true}, {987, 21, false, false}, {987, 53, false, false}, {987, 21, false, false}, + {987, 78, false, true}, {987, 21, false, false}, {987, 17, true, true}, {1046, 14, true, true}, + {1046, 21, false, false}, {1046, 12, false, false}, {1046, 12, false, false}, {1046, 29, false, false}, + {1046, 29, false, false}, {1046, 61, false, true}, {1046, 26, false, false}, {1046, 26, true, true}, + {1046, 17, true, true}, {659, 14, false, false}, {440, 17, false, false}, {329, 46, false, false}, + {329, 24, false, false}, {329, 12, false, true}, {329, 61, false, false}, {329, 12, false, false}, + {329, 12, false, false}, {659, 17, true, true}, {659, 14, false, true}, {659, 31, false, false}, + {311, 31, false, false}, {311, 12, false, false}, {311, 29, false, false}, {311, 34, false, true}, + {311, 29, false, false}, {311, 12, false, false}, {311, 21, false, false}, {622, 12, true, true}, + {622, 12, true, true}, {622, 12, false, false}, {622, 19, false, false}, {369, 36, false, false}, + {369, 34, false, false}, {369, 63, false, true}, {369, 43, false, false}, {622, 17, true, true}, + {622, 14, false, true}, {622, 31, false, false}, {369, 46, false, false}, {369, 26, false, false}, + {369, 61, false, true}, {369, 36, false, false}, {622, 17, true, true}, {622, 14, true, true}, + {1046, 31, false, false}, {1046, 48, false, false}, {1046, 24, false, false}, {1046, 21, false, true}, + {1046, 21, false, false}, {1046, 41, false, false}, {1046, 12, false, false}, {1046, 17, true, true}, + {1046, 12, true, true}, {880, 34, false, false}, {880, 48, false, false}, {880, 19, false, false}, + {880, 70, false, true}, {880, 31, false, false}, {880, 17, true, true}, {880, 12, true, true}, + {987, 26, false, false}, {987, 12, false, false}, {987, 43, false, false}, {987, 24, false, false}, + {987, 19, false, true}, {987, 56, false, false}, {987, 14, false, false}, {987, 24, true, true}, + {1046, 14, true, true}, {1046, 24, false, false}, {1046, 14, false, false}, {1046, 36, false, false}, + {1046, 24, false, false}, {1046, 65, false, true}, {1046, 34, false, false}, {1046, 14, true, true}, + {622, 17, true, true}, {622, 34, false, false}, {369, 17, false, false}, {369, 31, false, false}, + {369, 24, false, false}, {369, 31, false, true}, {369, 53, false, false}, {369, 12, false, false}, + {622, 17, true, true}, {622, 19, false, true}, {622, 21, false, false}, {622, 17, false, false}, + {369, 12, false, false}, {369, 17, false, false}, {369, 17, false, false}, {369, 14, false, false}, + {293, 34, false, true}, {293, 41, false, false}, {293, 21, false, false}, {587, 12, true, true}, + {587, 53, true, true}, {349, 14, false, false}, {349, 12, false, false}, {349, 43, false, false}, + {349, 17, false, true}, {349, 36, false, false}, {349, 24, false, false}, {349, 19, false, false}, + {587, 17, true, true}, {587, 19, false, true}, {587, 14, false, false}, {440, 17, false, false}, + {349, 26, false, false}, {349, 14, false, false}, {349, 26, false, false}, {349, 61, false, true}, + {349, 26, false, false}, {987, 26, true, true}, {987, 19, true, true}, {987, 21, false, false}, + {987, 12, false, false}, {987, 41, false, false}, {987, 17, false, false}, {987, 92, false, true}, + {987, 12, false, false}, {987, 14, true, true}, {880, 17, true, true}, {880, 12, false, false}, + {880, 14, false, false}, {880, 14, false, false}, {880, 12, false, false}, {880, 26, false, false}, + {880, 24, false, false}, {880, 19, false, true}, {880, 46, false, false}, {880, 21, false, false}, + {1046, 12, true, true}, {1046, 14, false, false}, {1046, 26, true, true}, {1046, 14, false, false}, + {0, 14, false, false}, {0, 17, false, false}, {0, 21, false, false}, {0, 21, false, false}, + {0, 78, false, true}, {0, 21, false, false}, {523, 17, true, true}, {1046, 39, true, true}, + {1046, 17, false, false}, {1046, 34, false, false}, {1046, 29, false, false}, {1046, 61, false, true}, + {1046, 36, false, false}, {1046, 17, true, true}, {1046, 41, true, true}, {1046, 12, false, false}, + {1046, 41, false, false}, {1046, 24, false, false}, {1046, 12, false, true}, {1046, 61, false, false}, + {1046, 12, false, false}, {880, 12, false, false}, {880, 17, true, true}, {880, 19, true, true}, + {880, 19, false, true}, {880, 19, false, false}, {880, 29, false, false}, {880, 24, false, false}, + {880, 83, false, true}, {880, 21, false, false}, {880, 12, true, true}, {880, 29, true, true}, + {880, 17, false, false}, {880, 17, false, false}, {880, 17, false, false}, {880, 34, false, false}, + {880, 63, false, true}, {880, 43, false, false}, {880, 17, true, true}, {880, 29, false, true}, + {523, 12, false, false}, {261, 17, false, false}, {261, 34, false, false}, {261, 26, false, false}, + {261, 61, false, true}, {261, 36, false, false}, {523, 17, true, true}, {523, 34, true, true}, + {261, 14, false, false}, {261, 46, false, false}, {261, 24, false, false}, {261, 21, false, true}, + {261, 21, false, false}, {261, 26, false, false}, {261, 14, false, false}, {261, 12, false, false}, + {523, 17, true, true}, {523, 26, false, true}, {329, 12, false, false}, {261, 12, false, false}, + {261, 43, false, false}, {261, 19, false, false}, {261, 61, false, true}, {261, 29, false, true}, + {261, 12, false, false}, {523, 17, true, true}, {523, 14, true, true}, {523, 12, false, false}, + {329, 14, false, false}, {293, 21, false, false}, {329, 17, false, false}, {329, 14, false, false}, + {329, 19, false, false}, {329, 24, false, true}, {329, 31, false, false}, {329, 24, false, false}, + {329, 14, false, false}, {523, 12, true, true}, {523, 12, false, false}, {523, 14, false, true}, + {523, 14, false, false}, {293, 12, false, false}, {293, 12, false, false}, {261, 36, false, false}, + {261, 24, false, false}, {261, 34, false, true}, {261, 19, false, true}, {0, 12, false, false}, + {0, 36, false, false}, {523, 14, true, true}, {523, 26, true, true}, {523, 12, false, false}, + {261, 14, false, false}, {261, 43, false, false}, {261, 24, false, false}, {261, 31, false, true}, + {261, 53, false, false}, {261, 12, false, false}, {523, 17, true, true}, {523, 19, false, true}, + {698, 12, false, false}, {698, 14, false, false}, {698, 19, false, false}, {698, 19, false, false}, + {698, 34, false, false}, {698, 75, false, true}, {698, 12, false, false}, {698, 19, false, true}, + {698, 12, true, true}, {698, 70, true, false}, {698, 43, false, false}, {698, 53, false, true}, + {698, 24, false, false}, {698, 24, false, false}, {698, 14, false, false}, {698, 75, true, true}, + {698, 14, false, false}, {698, 26, false, false}, {698, 61, false, true}, {698, 36, false, false}, + {698, 17, false, true}, {698, 87, true, true}, {698, 31, false, false}, {698, 26, false, true}, + {698, 58, false, false}, {0, 12, false, false}, {587, 17, false, false}, {587, 65, true, true}, + {587, 29, false, false}, {587, 17, false, false}, {587, 12, false, true}, {0, 14, false, false}, + {0, 46, false, false}, {0, 31, false, false}, {659, 17, false, true}, {659, 12, true, true}, + {659, 83, false, false}, {659, 24, false, false}, {659, 34, false, true}, {659, 24, false, false}, + {0, 17, false, false}, {0, 19, false, false}, {783, 21, false, false}, {783, 19, false, true}, + {783, 14, false, false}, {783, 36, false, false}, {783, 17, false, false}, {783, 29, false, false}, + {783, 12, false, true}, {698, 36, false, false}, {698, 12, false, false}, {698, 36, false, false}, + {587, 17, false, true}, {587, 17, true, true}, {587, 78, false, false}, {587, 24, false, false}, + {587, 26, false, true}, {587, 26, false, false}, {587, 19, false, false}, {587, 12, false, false}, + {587, 17, false, false}, {659, 14, false, false}, {659, 29, true, true}, {659, 21, false, false}, + {659, 34, false, false}, {659, 31, false, false}, {659, 75, false, true}, {659, 19, false, false}, + {659, 14, false, true}, {659, 80, true, true}, {659, 43, false, false}, {659, 53, false, true}, + {659, 34, false, false}, {659, 21, false, false}, {659, 24, false, true}, {659, 73, false, false}, + {659, 26, false, false}, {659, 61, false, true}, {659, 36, false, false}, {659, 17, false, true}, + {659, 95, true, true}, {659, 24, false, false}, {659, 34, false, true}, {0, 51, false, false}, + {0, 12, false, false}, {587, 17, false, false}, {587, 78, true, true}, {587, 17, false, false}, + {587, 17, false, false}, {0, 73, false, true}, {0, 31, false, false}, {659, 17, false, true}, + {659, 14, true, true}, {659, 75, false, false}, {659, 29, false, false}, {659, 34, false, true}, + {0, 41, false, false}, {0, 14, false, false}, {698, 26, false, false}, {698, 14, true, true}, + {698, 41, false, false}, {698, 31, false, false}, {698, 17, false, false}, {698, 12, false, false}, + {698, 17, false, true}, {698, 43, false, false}, {698, 36, false, false}, {698, 17, false, true}, + {698, 95, true, true}, {698, 24, false, false}, {698, 68, false, true}, {698, 17, false, false}, + {698, 31, false, false}, {698, 14, true, true}, {698, 65, false, false}, {698, 26, false, false}, + {0, 85, false, true}, {0, 21, false, false}, {0, 17, true, true}, {0, 75, true, true}, + {0, 43, false, false}, {0, 53, false, true}, {0, 14, false, false}, {0, 34, false, false}, + {0, 14, false, false}, {0, 63, false, true}, {0, 24, false, false}, {0, 29, false, false}, + {0, 61, false, true}, {0, 31, false, false}, {698, 21, true, true}, {698, 95, true, true}, + {698, 24, false, false}, {698, 29, false, true}, {698, 19, false, false}, {698, 31, false, false}, + {0, 17, false, false}, {659, 17, false, false}, {659, 41, false, true}, {659, 36, false, false}, + {659, 17, false, false}, {659, 17, false, false}, {659, 26, false, true}, {0, 46, false, false}, + {0, 31, false, false}, {698, 17, true, true}, {698, 95, true, true}, {698, 24, false, false}, + {698, 26, false, true}, {698, 48, false, false}, {0, 17, false, false}, {659, 24, false, false}, + {659, 26, false, true}, {659, 51, false, false}, {659, 39, false, false}, {659, 61, false, true}, + {659, 36, false, false}, {659, 17, true, true}, {659, 80, true, true}, {659, 14, false, false}, + {659, 24, false, false}, {659, 65, false, true}, {659, 19, false, false}, {659, 12, false, false}, + {587, 17, false, false}, {587, 14, false, true}, {587, 19, false, false}, {587, 53, false, false}, + {587, 31, false, false}, {587, 75, false, true}, {587, 21, false, false}, {587, 12, false, true}, + {587, 80, true, true}, {587, 43, false, false}, {587, 43, false, true}, {587, 43, false, false}, + {587, 29, false, false}, {587, 26, false, true}, {587, 63, false, false}, {587, 26, false, false}, + {587, 61, false, true}, {587, 19, false, false}, {0, 17, false, false}, {293, 17, false, true}, + {293, 95, true, true}, {293, 24, false, false}, {293, 43, false, true}, {293, 41, false, false}, + {293, 29, false, false}, {0, 19, false, true}, {0, 39, false, false}, {0, 24, false, false}, + {0, 12, false, false}, {0, 17, false, false}, {0, 73, false, true}, {0, 17, false, false}, + {1046, 14, false, false}, {1046, 17, true, false}, {1046, 14, true, true}, {1046, 80, false, false}, + {1046, 24, false, false}, {1046, 58, false, true}, {1046, 17, false, false}, {523, 14, false, false}, + {523, 14, false, false}, {0, 12, false, false}, {0, 39, false, true}, {0, 17, false, false}, + {0, 31, false, false}, {0, 29, false, false}, {0, 61, false, true}, {0, 36, false, false}, + {987, 17, true, true}, {987, 95, true, true}, {987, 24, false, false}, {987, 58, false, true}, + {987, 21, false, false}, {493, 17, false, false}, {0, 19, false, false}, {0, 17, false, true}, + {0, 19, false, false}, {0, 17, false, false}, {0, 31, false, false}, {0, 21, false, false}, + {0, 85, false, true}, {0, 21, false, false}, {523, 14, true, true}, {880, 24, true, true}, + {880, 14, false, false}, {880, 12, false, false}, {880, 26, false, false}, {880, 43, false, false}, + {880, 17, false, true}, {880, 36, false, false}, {880, 24, false, false}, {880, 19, false, false}, + {880, 17, true, true}, {987, 21, true, true}, {987, 17, false, false}, {987, 12, false, false}, + {987, 17, false, false}, {987, 24, false, false}, {987, 26, false, false}, {987, 61, false, true}, + {987, 36, false, false}, {987, 17, true, true}, {1046, 31, true, true}, {1046, 12, false, false}, + {1046, 51, false, false}, {1046, 17, false, false}, {1046, 92, false, true}, {1046, 12, false, false}, + {1046, 17, true, true}, {1046, 14, true, true}, {880, 12, false, false}, {880, 17, false, false}, + {880, 12, false, false}, {880, 39, false, false}, {880, 24, false, false}, {880, 19, false, true}, + {880, 46, false, false}, {880, 31, false, false}, {987, 17, true, true}, {987, 21, true, true}, + {987, 17, false, false}, {987, 56, false, false}, {987, 21, false, false}, {987, 78, false, true}, + {987, 21, false, false}, {1046, 17, true, true}, {1046, 19, true, true}, {1046, 12, false, false}, + {1046, 14, false, false}, {1046, 14, false, false}, {1046, 29, false, false}, {1046, 29, false, false}, + {1046, 61, false, true}, {1046, 36, false, false}, {1046, 17, true, true}, {1046, 24, true, true}, + {1046, 14, false, false}, {1046, 19, false, false}, {1046, 29, false, false}, {0, 31, false, false}, + {0, 12, false, true}, {0, 61, false, false}, {0, 12, false, false}, {0, 12, false, false}, + {523, 17, true, true}, {523, 31, false, true}, {523, 17, false, false}, {523, 26, false, false}, + {311, 12, false, false}, {311, 31, false, false}, {311, 75, false, true}, {311, 21, false, false}, + {523, 12, true, true}, {523, 39, true, true}, {311, 21, false, false}, {311, 19, false, false}, + {311, 34, false, false}, {311, 63, false, true}, {311, 43, false, false}, {523, 17, true, true}, + {523, 24, false, true}, {523, 17, false, false}, {369, 14, false, false}, {311, 36, false, false}, + {311, 26, false, false}, {311, 61, false, true}, {311, 24, false, false}, {987, 12, false, false}, + {987, 17, true, true}, {987, 21, true, true}, {987, 19, false, false}, {987, 19, false, false}, + {987, 34, false, false}, {987, 24, false, false}, {987, 21, false, true}, {987, 21, false, false}, + {987, 41, false, false}, {987, 12, false, false}, {987, 17, true, true}, {987, 12, true, true}, + {880, 21, false, false}, {880, 12, false, false}, {880, 21, false, false}, {880, 26, false, false}, + {880, 19, false, false}, {880, 70, false, true}, {880, 21, false, false}, {1046, 12, true, true}, + {1046, 14, false, false}, {1046, 14, true, true}, {1046, 26, false, false}, {0, 12, false, false}, + {0, 24, false, false}, {0, 17, false, false}, {0, 24, false, false}, {0, 19, false, true}, + {0, 56, false, false}, {0, 14, false, false}, {493, 14, true, true}, {493, 12, false, true}, + {1046, 43, true, true}, {1046, 43, false, false}, {1046, 24, false, false}, {1046, 65, false, true}, + {1046, 36, false, false}, {1046, 17, true, true}, {1046, 46, true, true}, {1046, 48, false, false}, + {1046, 24, false, false}, {1046, 31, false, true}, {1046, 53, false, false}, {1046, 12, false, false}, + {1046, 17, true, true}, {1046, 12, false, true}, {880, 36, false, false}, {880, 12, false, false}, + {880, 26, false, false}, {880, 31, false, false}, {880, 75, false, true}, {880, 21, false, false}, + {880, 21, false, false}, {880, 14, false, false}, {880, 12, false, false}, {880, 87, false, false}, + {0, 97, false, false}, {659, 46, false, false}, {440, 14, false, false}, {0, 173, false, false}, + {659, 51, false, false}, {440, 12, false, false}, {0, 170, false, false}, {659, 43, false, false}, + {659, 12, false, false}, {0, 178, false, false}, {659, 51, false, false}, {440, 14, false, false}, + {0, 168, false, false}, {659, 70, false, false}, {659, 17, false, false}, {0, 146, false, false}, + {329, 21, false, false}, {329, 95, true, false}, {440, 21, false, false}, {440, 95, true, false}, + {523, 21, false, false}, {523, 51, true, false}, {523, 34, false, false}, {659, 14, false, false}, + {659, 17, false, false}, {659, 21, true, false}, {659, 19, false, false}, {0, 53, false, false}, + {622, 21, false, false}, {622, 21, true, false}, {622, 17, false, false}, {622, 14, false, false}, + {0, 158, false, false}, {622, 26, false, false}, {622, 26, false, false}, {0, 180, false, false}, + {622, 48, false, false}, {0, 185, false, false}, {622, 29, false, false}, {622, 34, false, false}, + {0, 170, false, false}, {622, 48, false, false}, {622, 12, false, false}, {0, 173, false, false}, + {622, 78, false, false}, {622, 68, false, false}, {0, 51, false, false}, {0, 36, false, false}, + {329, 21, false, false}, {329, 95, true, false}, {440, 21, false, false}, {440, 95, true, false}, + {523, 21, false, false}, {523, 73, true, false}, {523, 12, false, false}, {659, 19, false, false}, + {659, 12, false, false}, {659, 14, true, false}, {659, 36, false, false}, {0, 43, false, false}, + {587, 21, false, false}, {587, 419, true, false}, {587, 26, false, false}, {587, 14, false, false}, + {523, 46, false, false}, {523, 173, false, false}, {523, 31, false, false}, {440, 61, false, false}, + {0, 104, false, false}, {0, 36, false, false}, {523, 21, false, false}, {523, 31, true, false}, + {0, 180, false, false}, {523, 527, false, false}, {0, 80, false, false}, {0, 112, false, false}, + {880, 117, true, false}, {987, 43, false, false}, {987, 36, false, false}, {987, 36, false, false}, + {1046, 43, true, false}, {1046, 24, false, false}, {1046, 34, false, false}, {1046, 14, false, false}, + {1318, 61, false, false}, {1318, 56, false, false}, {1318, 117, true, false}, {987, 24, false, false}, + {987, 92, false, false}, {1046, 24, true, false}, {1046, 29, false, false}, {1046, 43, false, false}, + {1046, 19, false, false}, {1318, 56, false, false}, {1318, 61, false, false}, {1318, 117, true, false}, + {987, 21, false, false}, {987, 61, false, false}, {987, 34, false, false}, {1046, 29, true, false}, + {1046, 48, false, false}, {1046, 26, false, false}, {1046, 12, false, false}, {1318, 56, false, false}, + {1318, 61, false, false}, {1318, 117, true, false}, {987, 17, false, false}, {987, 58, false, false}, + {987, 41, false, false}, {1046, 36, true, false}, {1046, 51, false, false}, {1046, 21, false, false}, + {1318, 43, false, false}, {1318, 80, false, false}, {1318, 109, true, false}, {987, 34, false, false}, + {987, 29, false, false}, {987, 61, false, false}, {1046, 12, true, false}, {1046, 70, false, false}, + {1046, 24, false, false}, {1318, 58, false, false}, {1318, 68, false, false}, {1318, 104, true, false}, + {880, 12, false, false}, {987, 19, false, false}, {987, 26, false, false}, {987, 70, false, false}, + {1046, 29, true, false}, {1046, 58, false, false}, {1046, 21, false, false}, {1318, 56, false, false}, + {1318, 68, false, false}, {1318, 117, true, false}, {1318, 14, false, false}, {987, 78, false, false}, + {987, 24, false, false}, {1046, 43, true, false}, {1046, 63, false, false}, {1318, 65, false, false}, + {1318, 61, false, false}, {1318, 117, true, false}, {987, 51, false, false}, {987, 46, false, false}, + {987, 19, false, false}, {1046, 19, true, false}, {1046, 26, false, false}, {1046, 31, false, false}, + {1046, 39, false, false}, {1318, 14, false, false}, {1318, 24, false, false}, {1318, 58, false, false}, + {1318, 19, true, false}, {880, 117, true, true}, {987, 19, false, false}, {987, 31, false, false}, + {987, 29, false, false}, {987, 17, false, false}, {987, 19, true, false}, {1046, 12, true, true}, + {1046, 31, false, false}, {1046, 17, false, false}, {1046, 14, false, false}, {1046, 21, false, false}, + {1046, 19, false, false}, {1318, 61, false, false}, {1318, 31, false, false}, {1318, 24, true, false}, + {1318, 112, true, true}, {987, 61, false, false}, {987, 19, false, false}, {987, 21, false, false}, + {987, 19, true, false}, {1046, 24, true, true}, {1046, 29, false, false}, {1046, 17, false, false}, + {1046, 19, false, false}, {1046, 14, false, false}, {1046, 12, false, false}, {1318, 21, false, false}, + {1318, 34, false, false}, {1318, 31, false, false}, {1318, 12, false, false}, {1318, 17, true, false}, + {1318, 117, true, true}, {987, 39, false, false}, {987, 43, false, false}, {987, 14, false, false}, + {987, 19, true, false}, {1046, 14, true, true}, {1046, 14, false, false}, {1046, 31, false, false}, + {1046, 12, false, false}, {1046, 19, false, false}, {1046, 24, false, false}, {1318, 56, false, false}, + {1318, 41, false, false}, {1318, 19, true, false}, {1318, 117, true, true}, {987, 14, false, false}, + {987, 39, false, false}, {987, 21, false, false}, {987, 21, false, false}, {987, 19, true, false}, + {1046, 36, true, true}, {1046, 39, false, false}, {1046, 12, false, false}, {1046, 19, false, false}, + {1318, 46, false, false}, {1318, 61, false, false}, {1318, 14, true, false}, {1318, 114, true, true}, + {987, 63, false, false}, {987, 12, false, false}, {987, 29, false, false}, {987, 14, true, false}, + {1046, 12, true, true}, {1046, 24, false, false}, {1046, 51, false, false}, {1046, 12, false, false}, + {1046, 21, false, false}, {1318, 48, false, false}, {1318, 48, false, false}, {1318, 19, true, false}, + {1318, 104, true, true}, {880, 12, false, false}, {987, 24, false, false}, {987, 21, false, false}, + {987, 14, false, false}, {987, 31, false, false}, {987, 24, true, false}, {1046, 17, true, true}, + {1046, 12, false, false}, {1046, 56, false, false}, {1046, 26, false, false}, {1318, 21, false, false}, + {1318, 31, false, false}, {1318, 31, false, false}, {1318, 17, false, false}, {1318, 19, true, false}, + {1318, 14, true, true}, {1318, 117, false, false}, {329, 21, false, false}, {0, 43, false, false}, + {0, 12, false, false}, {440, 14, true, false}, {440, 14, false, true}, {440, 109, true, false}, + {329, 24, false, false}, {0, 75, false, false}, {440, 19, true, false}, {440, 144, true, true}, + {440, 17, false, false}, {0, 48, false, false}, {415, 24, false, true}, {415, 14, true, true}, + {415, 102, false, false}, {415, 21, false, false}, {415, 19, false, false}, {415, 24, false, false}, + {0, 34, false, false}, {0, 17, true, false}, {0, 53, true, true}, {0, 87, false, false}, + {0, 56, false, false}, {0, 19, false, false}, {0, 17, false, true}, {0, 112, true, true}, + {0, 104, false, false}, {0, 14, true, false}, {0, 148, true, true}, {0, 17, false, false}, + {0, 53, false, false}, {0, 17, false, true}, {0, 39, true, true}, {0, 75, false, false}, + {0, 92, false, false}, {587, 26, true, false}, {587, 51, true, true}, {349, 14, false, false}, + {0, 14, false, false}, {0, 39, false, false}, {0, 80, false, false}, {0, 14, false, false}, + {587, 19, false, true}, {587, 39, true, true}, {587, 80, false, false}, {587, 14, false, false}, + {587, 63, false, false}, {587, 19, false, false}, {587, 17, true, false}, {587, 90, true, true}, + {587, 24, false, false}, {0, 21, false, false}, {0, 56, false, false}, {0, 21, false, false}, + {523, 19, false, true}, {523, 126, true, true}, {523, 63, false, false}, {523, 26, false, false}, + {523, 17, true, false}, {880, 17, true, true}, {880, 68, false, false}, {880, 31, false, false}, + {987, 17, false, false}, {987, 39, false, false}, {987, 43, false, false}, {987, 17, true, false}, + {1046, 12, true, true}, {1046, 36, false, false}, {1046, 34, false, false}, {1046, 31, false, false}, + {1318, 51, false, false}, {1318, 51, false, false}, {1318, 12, true, false}, {1318, 109, true, true}, + {880, 12, false, false}, {987, 14, false, false}, {987, 19, false, false}, {987, 12, false, false}, + {987, 53, false, false}, {987, 17, true, false}, {1046, 29, true, true}, {1046, 58, false, false}, + {1046, 24, false, false}, {1318, 53, false, false}, {1318, 48, false, false}, {1318, 19, true, false}, + {1318, 117, true, true}, {1318, 14, false, false}, {987, 17, false, false}, {987, 61, false, false}, + {987, 24, true, false}, {1046, 43, true, true}, {1046, 63, false, false}, {1318, 65, false, false}, + {1318, 43, false, false}, {1318, 17, true, false}, {1318, 117, true, true}, {987, 24, false, false}, + {987, 73, false, false}, {987, 19, true, false}, {1046, 14, true, true}, {1046, 31, false, false}, + {1046, 12, false, false}, {1046, 19, false, false}, {1046, 39, false, false}, {1318, 14, false, false}, + {1318, 12, false, false}, {1318, 12, false, false}, {1318, 12, false, false}, {1318, 46, false, false}, + {1318, 19, true, false}, {880, 117, true, true}, {987, 19, false, false}, {987, 31, false, false}, + {987, 29, false, false}, {987, 17, false, false}, {987, 19, true, false}, {1046, 12, true, true}, + {1046, 31, false, false}, {1046, 17, false, false}, {1046, 14, false, false}, {1046, 21, false, false}, + {1046, 19, false, false}, {1318, 61, false, false}, {1318, 31, false, false}, {1318, 24, true, false}, + {1318, 112, true, true}, {987, 61, false, false}, {987, 19, false, false}, {987, 21, false, false}, + {987, 19, true, false}, {1046, 24, true, true}, {1046, 29, false, false}, {1046, 17, false, false}, + {1046, 19, false, false}, {1046, 14, false, false}, {1046, 12, false, false}, {1318, 21, false, false}, + {1318, 34, false, false}, {1318, 31, false, false}, {1318, 12, false, false}, {1318, 17, true, false}, + {1318, 117, true, true}, {987, 39, false, false}, {987, 43, false, false}, {987, 14, false, false}, + {987, 19, true, false}, {1046, 14, true, true}, {1046, 14, false, false}, {1046, 31, false, false}, + {1046, 12, false, false}, {1046, 19, false, false}, {1046, 24, false, false}, {1318, 56, false, false}, + {1318, 41, false, false}, {1318, 19, true, false}, {1318, 117, true, true}, {987, 14, false, false}, + {987, 39, false, false}, {987, 21, false, false}, {987, 21, false, false}, {987, 19, true, false}, + {1046, 36, true, true}, {1046, 39, false, false}, {1046, 12, false, false}, {1046, 19, false, false}, + {1318, 46, false, false}, {1318, 61, false, false}, {1318, 14, true, false}, {1318, 114, true, true}, + {987, 63, false, false}, {987, 12, false, false}, {987, 29, false, false}, {987, 14, true, false}, + {1046, 12, true, true}, {1046, 24, false, false}, {1046, 51, false, false}, {1046, 12, false, false}, + {1046, 21, false, false}, {1318, 48, false, false}, {1318, 48, false, false}, {1318, 19, true, false}, + {1318, 104, true, true}, {880, 12, false, false}, {987, 24, false, false}, {987, 21, false, false}, + {987, 14, false, false}, {987, 31, false, false}, {987, 24, true, false}, {1046, 17, true, true}, + {1046, 12, false, false}, {1046, 56, false, false}, {1046, 26, false, false}, {1318, 21, false, false}, + {1318, 31, false, false}, {1318, 31, false, false}, {1318, 17, false, false}, {1318, 19, true, false}, + {1318, 14, true, true}, {1318, 117, false, false}, {329, 21, false, false}, {0, 43, false, false}, + {0, 12, false, false}, {440, 14, true, false}, {440, 14, false, true}, {440, 109, true, false}, + {329, 24, false, false}, {0, 75, false, false}, {440, 19, true, false}, {440, 144, true, true}, + {440, 17, false, false}, {0, 48, false, false}, {415, 24, false, true}, {415, 14, true, true}, + {415, 102, false, false}, {415, 21, false, false}, {415, 19, false, false}, {415, 24, false, false}, + {0, 34, false, false}, {0, 17, true, false}, {0, 53, true, true}, {0, 87, false, false}, + {0, 56, false, false}, {0, 19, false, false}, {0, 17, false, true}, {0, 112, true, true}, + {0, 104, false, false}, {0, 14, true, false}, {0, 148, true, true}, {0, 17, false, false}, + {0, 53, false, false}, {0, 17, false, true}, {0, 39, true, true}, {0, 75, false, false}, + {0, 92, false, false}, {587, 26, true, false}, {587, 51, true, true}, {349, 14, false, false}, + {0, 14, false, false}, {0, 39, false, false}, {0, 80, false, false}, {0, 14, false, false}, + {587, 19, false, true}, {587, 39, true, true}, {587, 80, false, false}, {587, 14, false, false}, + {587, 63, false, false}, {587, 19, false, false}, {587, 17, true, false}, {587, 90, true, true}, + {587, 24, false, false}, {0, 21, false, false}, {0, 56, false, false}, {0, 21, false, false}, + {523, 19, false, true}, {523, 126, true, true}, {523, 63, false, false}, {523, 26, false, false}, + {523, 17, true, false}, {880, 17, true, true}, {880, 68, false, false}, {880, 31, false, false}, + {987, 17, false, false}, {987, 39, false, false}, {987, 43, false, false}, {987, 17, true, false}, + {1046, 12, true, true}, {1046, 36, false, false}, {1046, 34, false, false}, {1046, 31, false, false}, + {1318, 51, false, false}, {1318, 51, false, false}, {1318, 12, true, false}, {1318, 109, true, true}, + {880, 12, false, false}, {987, 14, false, false}, {987, 19, false, false}, {987, 12, false, false}, + {987, 53, false, false}, {987, 17, true, false}, {1046, 29, true, true}, {1046, 58, false, false}, + {1046, 24, false, false}, {1318, 53, false, false}, {1318, 48, false, false}, {1318, 19, true, false}, + {1318, 117, true, true}, {1318, 14, false, false}, {987, 17, false, false}, {987, 61, false, false}, + {987, 24, true, false}, {1046, 43, true, true}, {1046, 63, false, false}, {1318, 65, false, false}, + {1318, 43, false, false}, {1318, 17, true, false}, {1318, 117, true, true}, {987, 24, false, false}, + {987, 75, false, false}, {987, 17, true, false}, {1046, 14, true, true}, {1046, 43, false, false}, + {1046, 58, false, false}, {1318, 14, false, false}, {1318, 12, false, false}, {1318, 12, false, false}, + {1318, 12, false, false}, {1318, 48, false, false}, {1318, 17, true, false}, {587, 21, true, true}, + {587, 14, false, false}, {0, 31, false, false}, {0, 68, false, false}, {0, 61, false, false}, + {0, 19, false, false}, {587, 17, false, true}, {587, 34, true, true}, {587, 43, false, false}, + {587, 12, false, false}, {587, 114, false, false}, {587, 12, false, false}, {587, 17, true, false}, + {587, 36, true, true}, {587, 19, false, false}, {587, 56, false, false}, {587, 48, false, false}, + {0, 56, false, false}, {523, 17, false, true}, {523, 46, true, true}, {523, 14, false, false}, + {523, 29, false, false}, {523, 48, false, false}, {523, 65, false, false}, {523, 12, false, false}, + {523, 17, true, false}, {523, 65, true, true}, {523, 51, false, false}, {523, 43, false, false}, + {523, 39, false, false}, {523, 17, false, false}, {523, 17, false, true}, {523, 61, true, true}, + {523, 31, false, false}, {523, 117, false, false}, {523, 24, true, false}, {523, 65, true, true}, + {440, 24, false, false}, {0, 41, false, false}, {0, 61, false, false}, {0, 12, false, false}, + {523, 12, false, false}, {523, 17, false, true}, {523, 85, true, true}, {523, 43, false, false}, + {440, 58, false, false}, {0, 17, false, false}, {493, 12, false, false}, {493, 12, true, false}, + {493, 34, true, true}, {493, 12, false, false}, {0, 17, false, false}, {0, 51, false, false}, + {0, 63, false, false}, {0, 43, false, false}, {493, 17, false, true}, {493, 92, true, true}, + {493, 122, false, false}, {493, 19, true, false}, {493, 73, true, true}, {493, 17, false, false}, + {493, 51, false, false}, {391, 21, false, false}, {391, 12, false, false}, {0, 21, false, false}, + {523, 12, false, false}, {523, 17, false, true}, {523, 12, false, true}, {523, 24, true, false}, + {523, 63, false, false}, {523, 21, false, false}, {523, 102, false, false}, {523, 17, true, true}, + {523, 12, true, true}, {523, 58, true, true}, {523, 68, false, false}, {523, 70, false, false}, + {523, 24, false, false}, {523, 68, true, true}, {523, 17, false, false}, {523, 26, false, false}, + {523, 36, false, false}, {523, 12, false, false}, {523, 29, false, false}, {523, 26, false, false}, + {523, 17, true, true}, {523, 24, true, true}, {440, 78, true, true}, {440, 48, false, false}, + {440, 83, false, false}, {440, 19, true, true}, {440, 83, false, false}, {440, 21, false, false}, + {440, 46, false, false}, {440, 12, false, false}, {440, 34, false, false}, {440, 17, true, false}, + {440, 12, true, true}, {440, 21, true, true}, {0, 51, false, false}, {0, 58, false, false}, + {0, 53, false, false}, {0, 19, false, false}, {587, 17, false, true}, {587, 34, true, true}, + {587, 14, false, false}, {587, 12, false, false}, {0, 12, false, false}, {0, 24, false, false}, + {0, 14, false, false}, {0, 92, false, false}, {0, 12, false, false}, {587, 12, true, false}, + {587, 87, true, true}, {587, 80, false, false}, {587, 53, false, false}, {587, 17, false, true}, + {587, 87, true, true}, {587, 26, false, false}, {587, 46, false, false}, {587, 21, false, false}, + {0, 26, false, false}, {523, 24, true, false}, {523, 26, true, true}, {349, 21, false, false}, + {0, 12, false, false}, {0, 21, false, false}, {0, 46, false, false}, {0, 70, false, false}, + {0, 17, false, false}, {523, 12, false, true}, {523, 97, true, true}, {523, 26, false, false}, + {523, 87, false, false}, {523, 26, true, false}, {523, 78, true, true}, {523, 56, false, false}, + {440, 21, false, false}, {0, 36, false, false}, {0, 24, false, false}, {523, 12, false, true}, + {523, 104, true, true}, {523, 14, false, false}, {0, 12, false, false}, {0, 78, false, false}, + {0, 12, false, false}, {493, 17, true, false}, {493, 14, true, true}, {493, 39, false, false}, + {0, 29, false, false}, {0, 58, false, false}, {0, 31, false, false}, {0, 43, false, false}, + {493, 17, false, true}, {493, 34, true, true}, {493, 70, false, false}, {493, 12, false, false}, + {493, 100, false, false}, {493, 17, true, false}, {493, 12, true, true}, {493, 19, false, false}, + {493, 41, false, false}, {493, 46, false, false}, {493, 31, false, false}, {493, 12, false, false}, + {493, 26, false, false}, {0, 26, false, false}, {523, 14, false, true}, {523, 90, true, true}, + {523, 14, false, false}, {523, 19, false, false}, {523, 92, false, false}, {523, 12, true, true}, + {523, 12, true, true}, {523, 78, true, false}, {523, 65, false, false}, {523, 61, false, false}, + {523, 24, false, false}, {523, 65, true, true}, {440, 34, false, false}, {440, 17, false, false}, + {440, 24, false, false}, {440, 19, false, false}, {440, 24, false, false}, {440, 31, false, false}, + {440, 17, true, true}, {440, 14, true, true}, {440, 100, true, true}, {0, 26, false, false}, + {0, 17, false, false}, {0, 56, false, false}, {440, 19, false, false}, {440, 19, true, true}, + {440, 39, false, false}, {440, 17, false, false}, {349, 12, false, false}, {0, 24, false, false}, + {0, 31, false, false}, {0, 19, false, false}, {0, 12, false, false}, {0, 39, false, false}, + {440, 19, true, true}, {440, 12, true, true}, {440, 124, true, true}, {440, 61, false, false}, + {440, 19, false, false}, {493, 14, false, false}, {493, 19, false, true}, {493, 14, false, false}, + {493, 36, false, false}, {0, 41, false, false}, {0, 107, false, false}, {493, 17, false, false}, + {493, 112, true, true}, {493, 80, false, false}, {391, 14, false, false}, {440, 17, false, false}, + {440, 12, false, true}, {440, 58, false, false}, {440, 17, false, false}, {0, 39, false, false}, + {0, 21, false, false}, {0, 78, false, false}, {440, 17, false, false}, {440, 117, true, true}, + {440, 83, false, false}, {440, 17, false, false}, {493, 14, false, false}, {493, 14, false, true}, + {493, 14, false, false}, {493, 34, false, false}, {493, 17, false, false}, {0, 65, false, false}, + {0, 73, false, false}, {493, 17, false, false}, {493, 131, true, true}, {493, 61, false, false}, + {493, 24, false, false}, {440, 17, false, false}, {440, 14, false, true}, {440, 14, false, false}, + {440, 24, false, false}, {440, 36, false, false}, {440, 14, false, false}, {349, 24, false, false}, + {0, 51, false, false}, {0, 29, false, false}, {440, 17, true, true}, {440, 12, true, true}, + {440, 12, true, false}, {440, 92, true, true}, {440, 63, false, false}, {440, 34, false, false}, + {493, 21, false, false}, {493, 100, false, true}, {493, 19, false, false}, {0, 26, false, false}, + {0, 75, false, false}, {493, 14, false, false}, {493, 144, true, true}, {493, 17, false, false}, + {0, 58, false, false}, {440, 12, false, false}, {440, 100, false, true}, {440, 14, false, false}, + {0, 12, false, false}, {0, 95, false, false}, {440, 14, false, false}, {440, 17, true, true}, + {440, 124, false, false}, {369, 63, false, false}, {369, 14, false, false}, {523, 17, false, false}, + {523, 114, false, true}, {440, 61, false, false}, {440, 29, false, false}, {0, 12, false, false}, + {523, 17, false, false}, {523, 124, true, true}, {0, 26, false, false}, {0, 51, false, false}, + {0, 14, false, false}, {493, 17, false, false}, {493, 19, false, true}, {493, 17, false, false}, + {493, 87, false, false}, {493, 17, false, false}, {493, 19, false, false}, {493, 19, false, false}, + {493, 34, false, false}, {415, 12, true, true}, {415, 12, true, true}, {415, 300, true, true}, + {415, 31, false, false}, {415, 53, false, false}, {415, 134, false, false}, {415, 129, false, false}, + {415, 19, false, false}, {493, 97, false, false}, {493, 39, false, false}, {659, 78, false, false}, + {659, 26, false, false}, {830, 43, false, false}, {830, 219, false, false}, {0, 263, false, false}, + {0, 104, false, false}, {0, 14, false, false}, {0, 48, false, false}, {0, 39, false, false}, + {0, 26, false, false}, {0, 180, false, false}, {659, 21, false, false}, {659, 70, false, false}, + {0, 21, false, false}, {0, 119, false, false}, {698, 21, false, false}, {698, 73, false, false}, + {0, 21, false, false}, {0, 117, false, false}, {587, 21, false, false}, {587, 56, false, false}, + {0, 21, false, false}, {0, 134, false, false}, {659, 21, false, false}, {659, 63, false, false}, + {0, 21, false, false}, {0, 126, false, false}, {523, 21, false, false}, {523, 53, false, false}, + {0, 21, false, false}, {0, 136, false, false}, {587, 21, false, false}, {587, 56, false, false}, + {0, 21, false, false}, {0, 134, false, false}, {493, 21, false, true}, {493, 73, false, false}, + {0, 21, false, false}, {0, 117, false, false}, {659, 21, false, false}, {659, 73, true, true}, + {0, 21, false, false}, {0, 117, false, false}, {698, 21, false, false}, {698, 87, true, true}, + {0, 21, false, false}, {0, 102, false, false}, {587, 21, false, false}, {587, 68, true, true}, + {0, 21, false, false}, {0, 122, false, false}, {659, 21, false, false}, {659, 63, true, true}, + {0, 21, false, false}, {0, 126, false, false}, {523, 21, false, false}, {523, 53, true, false}, + {0, 21, false, false}, {0, 136, false, false}, {587, 21, false, false}, {587, 65, true, true}, + {0, 21, false, false}, {0, 124, false, false}, {493, 21, false, true}, {493, 56, true, true}, + {0, 21, false, false}, {0, 134, false, false}, {523, 17, false, false}, {523, 122, true, true}, + {0, 21, false, false}, {0, 231, false, false}, {0, 70, false, false}, {659, 14, true, true}, + {880, 12, true, true}, {880, 12, true, true}, {880, 12, false, false}, {880, 17, false, false}, + {880, 29, false, false}, {880, 43, false, false}, {880, 17, false, true}, {880, 36, false, false}, + {880, 24, false, false}, {880, 19, false, false}, {880, 17, true, true}, {880, 12, true, true}, + {987, 14, false, false}, {987, 19, false, false}, {987, 29, false, false}, {987, 17, false, false}, + {987, 26, false, false}, {987, 19, false, true}, {987, 41, false, false}, {987, 36, false, false}, + {987, 17, true, true}, {1046, 14, true, true}, {1046, 14, false, false}, {1046, 17, false, false}, + {1046, 48, false, false}, {1046, 17, false, false}, {1046, 92, false, true}, {1046, 12, false, false}, + {1046, 12, true, true}, {1046, 14, true, true}, {880, 12, false, false}, {880, 17, false, false}, + {880, 12, false, false}, {880, 43, false, false}, {880, 24, false, false}, {880, 19, false, true}, + {880, 46, false, false}, {880, 31, false, false}, {880, 17, true, true}, {987, 19, true, true}, + {987, 26, false, false}, {987, 48, false, false}, {987, 21, false, false}, {987, 78, false, true}, + {987, 21, false, false}, {987, 17, true, true}, {1046, 14, true, true}, {1046, 29, false, false}, + {1046, 17, false, false}, {1046, 29, false, false}, {1046, 29, false, false}, {1046, 61, false, true}, + {1046, 36, false, false}, {1046, 17, true, true}, {1046, 17, true, true}, {1046, 14, false, false}, + {1046, 17, false, false}, {1046, 34, false, false}, {329, 12, false, false}, {329, 24, false, false}, + {329, 12, false, true}, {329, 61, false, false}, {329, 12, false, false}, {329, 12, false, false}, + {659, 17, true, true}, {659, 14, false, true}, {659, 12, false, false}, {659, 19, false, false}, + {329, 12, false, false}, {311, 19, false, false}, {311, 12, false, false}, {311, 29, false, false}, + {311, 34, false, true}, {311, 29, false, false}, {311, 12, false, false}, {311, 21, false, false}, + {622, 12, true, true}, {622, 12, true, true}, {622, 12, false, false}, {622, 19, false, false}, + {369, 36, false, false}, {369, 34, false, false}, {369, 63, false, true}, {369, 43, false, false}, + {622, 17, true, true}, {622, 14, false, true}, {622, 31, false, false}, {369, 46, false, false}, + {369, 26, false, false}, {369, 61, false, true}, {369, 36, false, false}, {622, 17, true, true}, + {622, 14, true, true}, {987, 31, false, false}, {987, 48, false, false}, {987, 24, false, false}, + {987, 21, false, true}, {987, 21, false, false}, {987, 41, false, false}, {987, 12, false, false}, + {987, 17, true, true}, {987, 12, true, true}, {987, 17, false, false}, {987, 14, false, false}, + {880, 51, false, false}, {880, 19, false, false}, {880, 70, false, true}, {880, 31, false, false}, + {880, 17, true, true}, {880, 14, true, true}, {880, 12, false, false}, {987, 19, false, false}, + {987, 34, false, false}, {987, 14, false, false}, {987, 24, false, false}, {987, 19, false, true}, + {987, 56, false, false}, {987, 14, false, false}, {987, 24, true, true}, {987, 14, true, true}, + {987, 17, false, false}, {1046, 17, false, false}, {1046, 12, false, false}, {1046, 29, false, false}, + {1046, 24, false, false}, {1046, 53, false, true}, {1046, 12, false, false}, {1046, 36, false, false}, + {1046, 17, true, true}, {1046, 14, true, true}, {1046, 24, false, false}, {1046, 12, false, false}, + {369, 12, false, false}, {369, 31, false, false}, {369, 24, false, false}, {369, 31, false, true}, + {369, 53, false, false}, {369, 12, false, false}, {622, 17, true, true}, {622, 19, false, true}, + {622, 21, false, false}, {622, 17, false, false}, {369, 12, false, false}, {369, 12, false, false}, + {369, 21, false, false}, {369, 14, false, false}, {293, 34, false, true}, {293, 41, false, false}, + {293, 21, false, false}, {587, 12, true, true}, {587, 53, true, true}, {349, 14, false, false}, + {349, 12, false, false}, {349, 43, false, false}, {349, 17, false, true}, {349, 36, false, false}, + {349, 24, false, false}, {349, 19, false, false}, {587, 17, true, true}, {587, 19, false, true}, + {587, 14, false, false}, {440, 17, false, false}, {349, 26, false, false}, {349, 14, false, false}, + {349, 26, false, false}, {349, 61, false, true}, {349, 36, false, false}, {987, 17, true, true}, + {987, 19, true, true}, {987, 21, false, false}, {987, 12, false, false}, {987, 41, false, false}, + {987, 17, false, false}, {987, 92, false, true}, {987, 12, false, false}, {987, 17, true, true}, + {880, 12, true, true}, {880, 29, false, false}, {880, 14, false, false}, {880, 12, false, false}, + {880, 26, false, false}, {880, 24, false, false}, {880, 19, false, true}, {880, 46, false, false}, + {880, 29, false, false}, {1046, 12, true, true}, {1046, 12, true, true}, {1046, 36, true, false}, + {1046, 14, false, false}, {1046, 14, false, false}, {0, 24, false, false}, {0, 21, false, false}, + {0, 78, false, true}, {0, 21, false, false}, {523, 17, true, true}, {523, 17, true, true}, + {1046, 21, false, false}, {1046, 17, false, false}, {1046, 34, false, false}, {1046, 29, false, false}, + {1046, 61, false, true}, {1046, 36, false, false}, {1046, 17, true, true}, {1046, 41, true, true}, + {1046, 12, false, false}, {1046, 41, false, false}, {1046, 24, false, false}, {1046, 12, false, true}, + {1046, 61, false, false}, {1046, 12, false, false}, {1046, 12, false, false}, {1046, 17, true, true}, + {523, 12, true, true}, {880, 12, false, false}, {880, 14, false, true}, {880, 19, false, false}, + {880, 29, false, false}, {880, 24, false, false}, {880, 83, false, true}, {880, 21, false, false}, + {880, 12, true, true}, {880, 29, true, true}, {880, 17, false, false}, {880, 17, false, false}, + {880, 17, false, false}, {880, 34, false, false}, {880, 63, false, true}, {880, 43, false, false}, + {880, 17, true, true}, {880, 34, false, true}, {880, 17, false, false}, {880, 39, false, false}, + {261, 29, false, false}, {261, 61, false, true}, {261, 36, false, false}, {523, 17, true, true}, + {523, 34, true, true}, {261, 14, false, false}, {261, 46, false, false}, {261, 24, false, false}, + {261, 21, false, true}, {261, 21, false, false}, {261, 41, false, false}, {261, 12, false, false}, + {523, 17, true, true}, {523, 26, false, true}, {329, 12, false, false}, {261, 12, false, false}, + {261, 43, false, false}, {261, 19, false, false}, {261, 65, false, true}, {261, 24, false, true}, + {261, 12, false, false}, {523, 17, true, true}, {523, 14, true, true}, {523, 12, false, false}, + {329, 14, false, false}, {293, 14, false, false}, {329, 26, false, false}, {329, 12, false, false}, + {329, 17, false, false}, {329, 26, false, true}, {329, 43, false, false}, {329, 12, false, false}, + {329, 14, false, false}, {523, 17, true, true}, {523, 29, false, true}, {293, 19, false, false}, + {293, 12, false, false}, {293, 19, false, false}, {261, 17, false, false}, {261, 24, false, false}, + {261, 39, false, true}, {261, 19, false, true}, {0, 43, false, false}, {523, 17, true, true}, + {523, 24, true, true}, {523, 12, false, false}, {261, 14, false, false}, {261, 19, false, false}, + {261, 24, false, false}, {261, 24, false, false}, {261, 31, false, true}, {261, 53, false, false}, + {261, 12, false, false}, {523, 17, true, true}, {523, 19, false, true}, {523, 12, false, false}, + {261, 14, false, true}, {0, 19, false, false}, {0, 19, false, false}, {0, 34, false, false}, + {0, 75, false, true}, {0, 21, false, false}, {659, 14, true, true}, {880, 12, true, true}, + {880, 19, false, false}, {880, 17, false, false}, {880, 29, false, false}, {880, 29, false, false}, + {880, 14, false, false}, {880, 17, false, true}, {880, 36, false, false}, {880, 24, false, false}, + {880, 19, false, false}, {880, 17, true, true}, {987, 26, true, true}, {987, 19, false, false}, + {987, 31, false, false}, {987, 14, false, false}, {987, 26, false, false}, {987, 61, false, true}, + {987, 36, false, false}, {987, 14, true, true}, {1046, 21, true, true}, {1046, 26, false, false}, + {1046, 48, false, false}, {1046, 17, false, false}, {1046, 92, false, true}, {1046, 12, false, false}, + {1046, 14, true, true}, {1046, 19, true, true}, {880, 19, false, false}, {880, 12, false, false}, + {880, 12, false, false}, {880, 34, false, false}, {880, 24, false, false}, {880, 19, false, true}, + {880, 46, false, false}, {880, 31, false, false}, {987, 17, true, true}, {987, 19, true, true}, + {987, 21, false, false}, {987, 53, false, false}, {987, 21, false, false}, {987, 78, false, true}, + {987, 21, false, false}, {987, 17, true, true}, {1046, 14, true, true}, {1046, 21, false, false}, + {1046, 12, false, false}, {1046, 12, false, false}, {1046, 29, false, false}, {1046, 29, false, false}, + {1046, 61, false, true}, {1046, 26, false, false}, {1046, 26, true, true}, {1046, 17, true, true}, + {659, 14, false, false}, {440, 17, false, false}, {329, 46, false, false}, {329, 24, false, false}, + {329, 12, false, true}, {329, 61, false, false}, {329, 12, false, false}, {329, 12, false, false}, + {659, 17, true, true}, {659, 14, false, true}, {659, 31, false, false}, {311, 31, false, false}, + {311, 12, false, false}, {311, 29, false, false}, {311, 34, false, true}, {311, 29, false, false}, + {311, 12, false, false}, {311, 21, false, false}, {622, 12, true, true}, {622, 12, true, true}, + {622, 12, false, false}, {622, 19, false, false}, {369, 36, false, false}, {369, 34, false, false}, + {369, 63, false, true}, {369, 43, false, false}, {622, 17, true, true}, {622, 14, false, true}, + {622, 31, false, false}, {369, 46, false, false}, {369, 26, false, false}, {369, 61, false, true}, + {369, 36, false, false}, {622, 17, true, true}, {622, 14, true, true}, {1046, 31, false, false}, + {1046, 48, false, false}, {1046, 24, false, false}, {1046, 21, false, true}, {1046, 21, false, false}, + {1046, 41, false, false}, {1046, 12, false, false}, {1046, 17, true, true}, {1046, 12, true, true}, + {880, 34, false, false}, {880, 48, false, false}, {880, 19, false, false}, {880, 70, false, true}, + {880, 31, false, false}, {880, 17, true, true}, {880, 12, true, true}, {987, 26, false, false}, + {987, 12, false, false}, {987, 43, false, false}, {987, 24, false, false}, {987, 19, false, true}, + {987, 56, false, false}, {987, 14, false, false}, {987, 24, true, true}, {1046, 14, true, true}, + {1046, 24, false, false}, {1046, 14, false, false}, {1046, 36, false, false}, {1046, 24, false, false}, + {1046, 65, false, true}, {1046, 34, false, false}, {1046, 14, true, true}, {622, 17, true, true}, + {622, 34, false, false}, {369, 17, false, false}, {369, 31, false, false}, {369, 24, false, false}, + {369, 31, false, true}, {369, 53, false, false}, {369, 12, false, false}, {622, 17, true, true}, + {622, 19, false, true}, {622, 21, false, false}, {622, 17, false, false}, {369, 12, false, false}, + {369, 17, false, false}, {369, 17, false, false}, {369, 14, false, false}, {293, 34, false, true}, + {293, 41, false, false}, {293, 21, false, false}, {587, 12, true, true}, {587, 53, true, true}, + {349, 14, false, false}, {349, 12, false, false}, {349, 43, false, false}, {349, 17, false, true}, + {349, 36, false, false}, {349, 24, false, false}, {349, 19, false, false}, {587, 17, true, true}, + {587, 19, false, true}, {587, 14, false, false}, {440, 17, false, false}, {349, 26, false, false}, + {349, 14, false, false}, {349, 26, false, false}, {349, 61, false, true}, {349, 26, false, false}, + {987, 26, true, true}, {987, 19, true, true}, {987, 21, false, false}, {987, 12, false, false}, + {987, 41, false, false}, {987, 17, false, false}, {987, 92, false, true}, {987, 12, false, false}, + {987, 14, true, true}, {880, 17, true, true}, {880, 12, false, false}, {880, 14, false, false}, + {880, 14, false, false}, {880, 12, false, false}, {880, 26, false, false}, {880, 24, false, false}, + {880, 19, false, true}, {880, 46, false, false}, {880, 21, false, false}, {1046, 12, true, true}, + {1046, 14, false, false}, {1046, 26, true, true}, {1046, 14, false, false}, {0, 14, false, false}, + {0, 17, false, false}, {0, 21, false, false}, {0, 21, false, false}, {0, 78, false, true}, + {0, 21, false, false}, {523, 17, true, true}, {1046, 39, true, true}, {1046, 17, false, false}, + {1046, 34, false, false}, {1046, 29, false, false}, {1046, 61, false, true}, {1046, 36, false, false}, + {1046, 17, true, true}, {1046, 41, true, true}, {1046, 12, false, false}, {1046, 41, false, false}, + {1046, 24, false, false}, {1046, 12, false, true}, {1046, 61, false, false}, {1046, 12, false, false}, + {880, 12, false, false}, {880, 17, true, true}, {880, 19, true, true}, {880, 19, false, true}, + {880, 19, false, false}, {880, 29, false, false}, {880, 24, false, false}, {880, 83, false, true}, + {880, 21, false, false}, {880, 12, true, true}, {880, 29, true, true}, {880, 17, false, false}, + {880, 17, false, false}, {880, 17, false, false}, {880, 34, false, false}, {880, 63, false, true}, + {880, 43, false, false}, {880, 17, true, true}, {880, 29, false, true}, {523, 12, false, false}, + {261, 17, false, false}, {261, 34, false, false}, {261, 26, false, false}, {261, 61, false, true}, + {261, 36, false, false}, {523, 17, true, true}, {523, 34, true, true}, {261, 14, false, false}, + {261, 46, false, false}, {261, 24, false, false}, {261, 21, false, true}, {261, 21, false, false}, + {261, 26, false, false}, {261, 14, false, false}, {261, 12, false, false}, {523, 17, true, true}, + {523, 26, false, true}, {329, 12, false, false}, {261, 12, false, false}, {261, 43, false, false}, + {261, 19, false, false}, {261, 61, false, true}, {261, 29, false, true}, {261, 12, false, false}, + {523, 17, true, true}, {523, 14, true, true}, {523, 12, false, false}, {329, 14, false, false}, + {293, 21, false, false}, {329, 17, false, false}, {329, 14, false, false}, {329, 19, false, false}, + {329, 24, false, true}, {329, 31, false, false}, {329, 24, false, false}, {329, 14, false, false}, + {523, 12, true, true}, {523, 12, false, false}, {523, 14, false, true}, {523, 14, false, false}, + {293, 12, false, false}, {293, 12, false, false}, {261, 36, false, false}, {261, 24, false, false}, + {261, 34, false, true}, {261, 19, false, true}, {0, 12, false, false}, {0, 36, false, false}, + {523, 14, true, true}, {523, 26, true, true}, {523, 12, false, false}, {261, 14, false, false}, + {261, 43, false, false}, {261, 24, false, false}, {261, 31, false, true}, {261, 53, false, false}, + {261, 12, false, false}, {523, 17, true, true}, {523, 19, false, true}, {698, 12, false, false}, + {698, 14, false, false}, {698, 19, false, false}, {698, 19, false, false}, {698, 34, false, false}, + {698, 75, false, true}, {698, 12, false, false}, {698, 19, false, true}, {698, 12, true, true}, + {698, 70, true, false}, {698, 43, false, false}, {698, 53, false, true}, {698, 24, false, false}, + {698, 24, false, false}, {698, 14, false, false}, {698, 75, true, true}, {698, 14, false, false}, + {698, 26, false, false}, {698, 61, false, true}, {698, 36, false, false}, {698, 17, false, true}, + {698, 87, true, true}, {698, 31, false, false}, {698, 26, false, true}, {698, 58, false, false}, + {0, 12, false, false}, {587, 17, false, false}, {587, 65, true, true}, {587, 29, false, false}, + {587, 17, false, false}, {587, 12, false, true}, {0, 14, false, false}, {0, 46, false, false}, + {0, 31, false, false}, {659, 17, false, true}, {659, 12, true, true}, {659, 83, false, false}, + {659, 24, false, false}, {659, 34, false, true}, {659, 24, false, false}, {0, 17, false, false}, + {0, 19, false, false}, {783, 21, false, false}, {783, 19, false, true}, {783, 14, false, false}, + {783, 36, false, false}, {783, 17, false, false}, {783, 29, false, false}, {783, 12, false, true}, + {698, 36, false, false}, {698, 12, false, false}, {698, 36, false, false}, {587, 17, false, true}, + {587, 17, true, true}, {587, 78, false, false}, {587, 24, false, false}, {587, 26, false, true}, + {587, 26, false, false}, {587, 19, false, false}, {587, 12, false, false}, {587, 17, false, false}, + {659, 14, false, false}, {659, 29, true, true}, {659, 21, false, false}, {659, 34, false, false}, + {659, 31, false, false}, {659, 75, false, true}, {659, 19, false, false}, {659, 14, false, true}, + {659, 80, true, true}, {659, 43, false, false}, {659, 53, false, true}, {659, 34, false, false}, + {659, 21, false, false}, {659, 24, false, true}, {659, 73, false, false}, {659, 26, false, false}, + {659, 61, false, true}, {659, 36, false, false}, {659, 17, false, true}, {659, 95, true, true}, + {659, 24, false, false}, {659, 34, false, true}, {0, 51, false, false}, {0, 12, false, false}, + {587, 17, false, false}, {587, 78, true, true}, {587, 17, false, false}, {587, 17, false, false}, + {0, 73, false, true}, {0, 31, false, false}, {659, 17, false, true}, {659, 14, true, true}, + {659, 75, false, false}, {659, 29, false, false}, {659, 34, false, true}, {0, 41, false, false}, + {0, 14, false, false}, {698, 26, false, false}, {698, 14, true, true}, {698, 41, false, false}, + {698, 31, false, false}, {698, 17, false, false}, {698, 12, false, false}, {698, 17, false, true}, + {698, 43, false, false}, {698, 36, false, false}, {698, 17, false, true}, {698, 95, true, true}, + {698, 24, false, false}, {698, 68, false, true}, {698, 17, false, false}, {698, 31, false, false}, + {698, 14, true, true}, {698, 65, false, false}, {698, 26, false, false}, {0, 85, false, true}, + {0, 21, false, false}, {0, 17, true, true}, {0, 75, true, true}, {0, 43, false, false}, + {0, 53, false, true}, {0, 14, false, false}, {0, 34, false, false}, {0, 14, false, false}, + {0, 63, false, true}, {0, 24, false, false}, {0, 29, false, false}, {0, 61, false, true}, + {0, 31, false, false}, {698, 21, true, true}, {698, 95, true, true}, {698, 24, false, false}, + {698, 29, false, true}, {698, 19, false, false}, {698, 31, false, false}, {0, 17, false, false}, + {659, 17, false, false}, {659, 41, false, true}, {659, 36, false, false}, {659, 17, false, false}, + {659, 17, false, false}, {659, 26, false, true}, {0, 46, false, false}, {0, 31, false, false}, + {698, 17, true, true}, {698, 95, true, true}, {698, 24, false, false}, {698, 26, false, true}, + {698, 48, false, false}, {0, 17, false, false}, {659, 24, false, false}, {659, 26, false, true}, + {659, 51, false, false}, {659, 39, false, false}, {659, 61, false, true}, {659, 36, false, false}, + {659, 17, true, true}, {659, 80, true, true}, {659, 14, false, false}, {659, 24, false, false}, + {659, 65, false, true}, {659, 19, false, false}, {659, 12, false, false}, {587, 17, false, false}, + {587, 14, false, true}, {587, 19, false, false}, {587, 53, false, false}, {587, 31, false, false}, + {587, 75, false, true}, {587, 21, false, false}, {587, 12, false, true}, {587, 80, true, true}, + {587, 43, false, false}, {587, 43, false, true}, {587, 43, false, false}, {587, 29, false, false}, + {587, 26, false, true}, {587, 63, false, false}, {587, 26, false, false}, {587, 61, false, true}, + {587, 19, false, false}, {0, 17, false, false}, {293, 17, false, true}, {293, 95, true, true}, + {293, 24, false, false}, {293, 43, false, true}, {293, 41, false, false}, {293, 29, false, false}, + {0, 19, false, true}, {0, 39, false, false}, {0, 24, false, false}, {0, 12, false, false}, + {0, 17, false, false}, {0, 73, false, true}, {0, 17, false, false}, {1046, 14, false, false}, + {1046, 17, true, false}, {1046, 14, true, true}, {1046, 80, false, false}, {1046, 24, false, false}, + {1046, 58, false, true}, {1046, 17, false, false}, {523, 14, false, false}, {523, 14, false, false}, + {0, 12, false, false}, {0, 39, false, true}, {0, 17, false, false}, {0, 31, false, false}, + {0, 29, false, false}, {0, 61, false, true}, {0, 36, false, false}, {987, 17, true, true}, + {987, 95, true, true}, {987, 24, false, false}, {987, 58, false, true}, {987, 21, false, false}, + {493, 17, false, false}, {0, 19, false, false}, {0, 17, false, true}, {0, 19, false, false}, + {0, 17, false, false}, {0, 31, false, false}, {0, 21, false, false}, {0, 85, false, true}, + {0, 21, false, false}, {523, 14, true, true}, {880, 24, true, true}, {880, 14, false, false}, + {880, 12, false, false}, {880, 26, false, false}, {880, 43, false, false}, {880, 17, false, true}, + {880, 36, false, false}, {880, 24, false, false}, {880, 19, false, false}, {880, 17, true, true}, + {987, 21, true, true}, {987, 17, false, false}, {987, 12, false, false}, {987, 17, false, false}, + {987, 24, false, false}, {987, 26, false, false}, {987, 61, false, true}, {987, 36, false, false}, + {987, 17, true, true}, {1046, 31, true, true}, {1046, 12, false, false}, {1046, 51, false, false}, + {1046, 17, false, false}, {1046, 92, false, true}, {1046, 12, false, false}, {1046, 17, true, true}, + {1046, 14, true, true}, {880, 12, false, false}, {880, 17, false, false}, {880, 12, false, false}, + {880, 39, false, false}, {880, 24, false, false}, {880, 19, false, true}, {880, 46, false, false}, + {880, 31, false, false}, {987, 17, true, true}, {987, 21, true, true}, {987, 17, false, false}, + {987, 56, false, false}, {987, 21, false, false}, {987, 78, false, true}, {987, 21, false, false}, + {1046, 17, true, true}, {1046, 19, true, true}, {1046, 12, false, false}, {1046, 14, false, false}, + {1046, 14, false, false}, {1046, 29, false, false}, {1046, 29, false, false}, {1046, 61, false, true}, + {1046, 36, false, false}, {1046, 17, true, true}, {1046, 24, true, true}, {1046, 14, false, false}, + {1046, 19, false, false}, {1046, 29, false, false}, {0, 31, false, false}, {0, 12, false, true}, + {0, 61, false, false}, {0, 12, false, false}, {0, 12, false, false}, {523, 17, true, true}, + {523, 31, false, true}, {523, 17, false, false}, {523, 26, false, false}, {311, 12, false, false}, + {311, 31, false, false}, {311, 75, false, true}, {311, 21, false, false}, {523, 12, true, true}, + {523, 39, true, true}, {311, 21, false, false}, {311, 19, false, false}, {311, 34, false, false}, + {311, 63, false, true}, {311, 43, false, false}, {523, 17, true, true}, {523, 24, false, true}, + {523, 17, false, false}, {369, 14, false, false}, {311, 36, false, false}, {311, 26, false, false}, + {311, 61, false, true}, {311, 24, false, false}, {987, 12, false, false}, {987, 17, true, true}, + {987, 21, true, true}, {987, 19, false, false}, {987, 19, false, false}, {987, 34, false, false}, + {987, 24, false, false}, {987, 21, false, true}, {987, 21, false, false}, {987, 41, false, false}, + {987, 12, false, false}, {987, 17, true, true}, {987, 12, true, true}, {880, 21, false, false}, + {880, 12, false, false}, {880, 21, false, false}, {880, 26, false, false}, {880, 19, false, false}, + {880, 70, false, true}, {880, 21, false, false}, {1046, 12, true, true}, {1046, 14, false, false}, + {1046, 14, true, true}, {1046, 26, false, false}, {0, 12, false, false}, {0, 24, false, false}, + {0, 17, false, false}, {0, 24, false, false}, {0, 19, false, true}, {0, 56, false, false}, + {0, 14, false, false}, {493, 14, true, true}, {493, 12, false, true}, {1046, 43, true, true}, + {1046, 43, false, false}, {1046, 24, false, false}, {1046, 65, false, true}, {1046, 36, false, false}, + {1046, 17, true, true}, {1046, 46, true, true}, {1046, 48, false, false}, {1046, 24, false, false}, + {1046, 31, false, true}, {1046, 53, false, false}, {1046, 12, false, false}, {1046, 17, true, true}, + {1046, 12, false, true}, {880, 36, false, false}, {880, 12, false, false}, {880, 26, false, false}, + {880, 31, false, false}, {880, 75, false, true}, {880, 21, false, false}, {880, 21, false, false}, + {880, 14, false, false}, {880, 12, false, false}, {880, 87, false, false}, {0, 97, false, false}, + {659, 46, false, false}, {440, 14, false, false}, {0, 173, false, false}, {659, 51, false, false}, + {440, 12, false, false}, {0, 170, false, false}, {659, 43, false, false}, {659, 12, false, false}, + {0, 178, false, false}, {659, 51, false, false}, {440, 14, false, false}, {0, 168, false, false}, + {659, 70, false, false}, {659, 17, false, false}, {0, 146, false, false}, {329, 21, false, false}, + {329, 95, true, false}, {440, 21, false, false}, {440, 95, true, false}, {523, 21, false, false}, + {523, 51, true, false}, {523, 34, false, false}, {659, 14, false, false}, {659, 17, false, false}, + {659, 21, true, false}, {659, 19, false, false}, {0, 53, false, false}, {622, 21, false, false}, + {622, 21, true, false}, {622, 17, false, false}, {622, 14, false, false}, {0, 158, false, false}, + {622, 26, false, false}, {622, 26, false, false}, {0, 180, false, false}, {622, 48, false, false}, + {0, 185, false, false}, {622, 29, false, false}, {622, 34, false, false}, {0, 170, false, false}, + {622, 48, false, false}, {622, 12, false, false}, {0, 173, false, false}, {622, 197, false, false}, + {622, 53, false, false}, {622, 375, true, true}, {622, 70, false, false}, {698, 14, true, true}, + {932, 12, true, true}, {932, 12, true, false}, {932, 12, false, false}, {932, 17, false, false}, + {932, 29, false, false}, {932, 43, false, false}, {932, 17, false, true}, {932, 36, false, false}, + {932, 24, false, false}, {932, 19, false, false}, {932, 17, true, true}, {932, 12, true, true}, + {1046, 14, false, false}, {1046, 19, false, false}, {1046, 29, false, false}, {1046, 17, false, false}, + {1046, 26, false, false}, {1046, 39, false, true}, {1046, 21, false, false}, {1046, 36, false, false}, + {1046, 17, true, true}, {1108, 14, true, true}, {1108, 14, false, false}, {1108, 17, false, false}, + {1108, 48, false, false}, {1108, 17, false, false}, {1108, 92, false, true}, {1108, 12, false, false}, + {1108, 12, true, true}, {1108, 14, true, true}, {932, 12, false, false}, {932, 17, false, false}, + {932, 12, false, false}, {932, 43, false, false}, {932, 24, false, false}, {932, 19, false, true}, + {932, 46, false, false}, {932, 31, false, false}, {932, 17, true, true}, {1046, 19, true, true}, + {1046, 26, false, false}, {1046, 48, false, false}, {1046, 21, false, false}, {1046, 78, false, true}, + {1046, 21, false, false}, {1046, 17, true, true}, {1108, 14, true, true}, {1108, 29, false, false}, + {1108, 17, false, false}, {1108, 29, false, false}, {1108, 29, false, false}, {1108, 61, false, true}, + {1108, 36, false, false}, {1108, 17, true, true}, {1108, 17, true, true}, {1108, 14, false, false}, + {1108, 17, false, false}, {1108, 34, false, false}, {349, 12, false, false}, {349, 24, false, false}, + {349, 12, false, true}, {349, 61, false, false}, {349, 12, false, false}, {349, 12, false, false}, + {698, 17, true, true}, {698, 14, false, true}, {698, 12, false, false}, {698, 19, false, false}, + {349, 12, false, false}, {329, 19, false, false}, {329, 12, false, false}, {329, 29, false, false}, + {329, 34, false, true}, {329, 29, false, false}, {329, 12, false, false}, {329, 21, false, false}, + {659, 12, true, true}, {659, 12, true, true}, {659, 12, false, false}, {659, 19, false, false}, + {391, 36, false, false}, {391, 34, false, false}, {391, 63, false, true}, {391, 43, false, false}, + {659, 17, true, true}, {659, 14, false, true}, {659, 31, false, false}, {391, 46, false, false}, + {391, 26, false, false}, {391, 61, false, true}, {391, 36, false, false}, {659, 17, true, true}, + {659, 14, true, true}, {1046, 31, false, false}, {1046, 48, false, false}, {1046, 24, false, false}, + {1046, 21, false, true}, {1046, 21, false, false}, {1046, 41, false, false}, {1046, 12, false, false}, + {1046, 17, true, true}, {1046, 12, true, true}, {1046, 17, false, false}, {1046, 14, false, false}, + {932, 51, false, false}, {932, 19, false, false}, {932, 70, false, true}, {932, 31, false, false}, + {932, 17, true, true}, {932, 14, true, true}, {932, 12, false, false}, {1046, 19, false, false}, + {1046, 34, false, false}, {1046, 14, false, false}, {1046, 24, false, false}, {1046, 19, false, true}, + {1046, 56, false, false}, {1046, 14, false, false}, {1046, 24, true, true}, {1046, 14, true, true}, + {1046, 17, false, false}, {1108, 17, false, false}, {1108, 12, false, false}, {1108, 29, false, false}, + {1108, 24, false, false}, {1108, 53, false, true}, {1108, 12, false, false}, {1108, 36, false, false}, + {1108, 17, true, true}, {1108, 14, true, true}, {1108, 24, false, false}, {1108, 12, false, false}, + {391, 12, false, false}, {391, 31, false, false}, {391, 24, false, false}, {391, 31, false, true}, + {391, 53, false, false}, {391, 12, false, false}, {659, 17, true, true}, {659, 19, false, true}, + {659, 21, false, false}, {659, 17, false, false}, {391, 12, false, false}, {391, 12, false, false}, + {391, 21, false, false}, {391, 14, false, false}, {311, 34, false, true}, {311, 41, false, false}, + {311, 21, false, false}, {622, 12, true, true}, {622, 53, true, true}, {369, 14, false, false}, + {369, 12, false, false}, {369, 43, false, false}, {369, 17, false, true}, {369, 36, false, false}, + {369, 24, false, false}, {369, 19, false, false}, {622, 17, true, true}, {622, 19, false, true}, + {622, 14, false, false}, {466, 17, false, false}, {369, 26, false, false}, {369, 14, false, false}, + {369, 26, false, false}, {369, 61, false, true}, {369, 36, false, false}, {1046, 17, true, true}, + {1046, 19, true, true}, {1046, 21, false, false}, {1046, 12, false, false}, {1046, 41, false, false}, + {1046, 17, false, false}, {1046, 92, false, true}, {1046, 12, false, false}, {1046, 17, true, true}, + {932, 12, true, true}, {932, 29, false, false}, {932, 14, false, false}, {932, 12, false, false}, + {932, 26, false, false}, {932, 24, false, false}, {932, 19, false, true}, {932, 46, false, false}, + {932, 29, false, false}, {1108, 12, true, true}, {1108, 12, true, true}, {1108, 36, true, false}, + {1108, 14, false, false}, {1108, 14, false, false}, {261, 24, false, false}, {261, 21, false, false}, + {261, 78, false, true}, {261, 21, false, false}, {554, 17, true, true}, {554, 17, true, true}, + {1108, 21, false, false}, {1108, 17, false, false}, {1108, 34, false, false}, {1108, 29, false, false}, + {1108, 61, false, true}, {1108, 36, false, false}, {1108, 17, true, true}, {1108, 41, true, true}, + {1108, 12, false, false}, {1108, 41, false, false}, {1108, 24, false, false}, {1108, 12, false, true}, + {1108, 61, false, false}, {1108, 12, false, false}, {1108, 12, false, false}, {1108, 17, true, true}, + {554, 12, true, true}, {932, 12, false, false}, {932, 14, false, true}, {932, 19, false, false}, + {932, 29, false, false}, {932, 24, false, false}, {932, 83, false, true}, {932, 21, false, false}, + {932, 12, true, true}, {932, 29, true, true}, {932, 17, false, false}, {932, 17, false, false}, + {932, 17, false, false}, {932, 34, false, false}, {932, 63, false, true}, {932, 43, false, false}, + {932, 17, true, true}, {932, 34, false, true}, {932, 17, false, false}, {932, 39, false, false}, + {277, 29, false, false}, {277, 61, false, true}, {277, 36, false, false}, {554, 17, true, true}, + {554, 34, true, true}, {277, 14, false, false}, {277, 46, false, false}, {277, 24, false, false}, + {277, 21, false, true}, {277, 21, false, false}, {277, 41, false, false}, {277, 12, false, false}, + {554, 17, true, true}, {554, 26, false, true}, {349, 12, false, false}, {277, 12, false, false}, + {277, 43, false, false}, {277, 19, false, false}, {277, 65, false, true}, {277, 24, false, true}, + {277, 12, false, false}, {554, 17, true, true}, {554, 14, true, true}, {554, 12, false, false}, + {349, 14, false, false}, {311, 14, false, false}, {349, 26, false, false}, {349, 12, false, false}, + {349, 17, false, false}, {349, 26, false, true}, {349, 43, false, false}, {349, 12, false, false}, + {349, 14, false, false}, {554, 17, true, true}, {554, 29, false, true}, {311, 19, false, false}, + {311, 12, false, false}, {311, 19, false, false}, {277, 17, false, false}, {277, 24, false, false}, + {277, 39, false, true}, {277, 19, false, true}, {0, 43, false, false}, {554, 17, true, true}, + {554, 24, true, true}, {554, 12, false, false}, {277, 14, false, false}, {277, 19, false, false}, + {277, 24, false, false}, {277, 24, false, false}, {277, 31, false, true}, {277, 53, false, false}, + {277, 12, false, false}, {554, 17, true, true}, {554, 19, false, true}, {554, 12, false, false}, + {277, 14, false, true}, {0, 19, false, false}, {0, 19, false, false}, {0, 34, false, false}, + {0, 75, false, true}, {0, 21, false, false}, {698, 14, true, true}, {932, 12, true, true}, + {932, 19, false, false}, {932, 17, false, false}, {932, 29, false, false}, {932, 29, false, false}, + {932, 14, false, false}, {932, 17, false, true}, {932, 36, false, false}, {932, 24, false, false}, + {932, 19, false, false}, {932, 17, true, true}, {1046, 26, true, true}, {1046, 19, false, false}, + {1046, 31, false, false}, {1046, 14, false, false}, {1046, 26, false, false}, {1046, 61, false, true}, + {1046, 36, false, false}, {1046, 14, true, true}, {1108, 21, true, true}, {1108, 26, false, false}, + {1108, 48, false, false}, {1108, 17, false, false}, {1108, 92, false, true}, {1108, 12, false, false}, + {1108, 14, true, true}, {1108, 19, true, true}, {932, 19, false, false}, {932, 12, false, false}, + {932, 12, false, false}, {932, 34, false, false}, {932, 24, false, false}, {932, 19, false, true}, + {932, 46, false, false}, {932, 31, false, false}, {1046, 17, true, true}, {1046, 19, true, true}, + {1046, 21, false, false}, {1046, 53, false, false}, {1046, 21, false, false}, {1046, 78, false, true}, + {1046, 21, false, false}, {1046, 17, true, true}, {1108, 14, true, true}, {1108, 21, false, false}, + {1108, 12, false, false}, {1108, 12, false, false}, {1108, 29, false, false}, {1108, 29, false, false}, + {1108, 61, false, true}, {1108, 26, false, false}, {1108, 26, true, true}, {1108, 17, true, true}, + {698, 14, false, false}, {466, 17, false, false}, {349, 46, false, false}, {349, 24, false, false}, + {349, 12, false, true}, {349, 61, false, false}, {349, 12, false, false}, {349, 12, false, false}, + {698, 17, true, true}, {698, 14, false, true}, {698, 31, false, false}, {329, 31, false, false}, + {329, 12, false, false}, {329, 29, false, false}, {329, 34, false, true}, {329, 29, false, false}, + {329, 12, false, false}, {329, 21, false, false}, {659, 12, true, true}, {659, 12, true, true}, + {659, 12, false, false}, {659, 19, false, false}, {391, 36, false, false}, {391, 34, false, false}, + {391, 63, false, true}, {391, 43, false, false}, {659, 17, true, true}, {659, 14, false, true}, + {659, 31, false, false}, {391, 46, false, false}, {391, 26, false, false}, {391, 61, false, true}, + {391, 36, false, false}, {659, 17, true, true}, {659, 14, true, true}, {1108, 31, false, false}, + {1108, 48, false, false}, {1108, 24, false, false}, {1108, 21, false, true}, {1108, 21, false, false}, + {1108, 41, false, false}, {1108, 12, false, false}, {1108, 17, true, true}, {1108, 12, true, true}, + {932, 34, false, false}, {932, 48, false, false}, {932, 19, false, false}, {932, 70, false, true}, + {932, 31, false, false}, {932, 17, true, true}, {932, 12, true, true}, {1046, 26, false, false}, + {1046, 12, false, false}, {1046, 43, false, false}, {1046, 24, false, false}, {1046, 19, false, true}, + {1046, 56, false, false}, {1046, 14, false, false}, {1046, 24, true, true}, {1108, 14, true, true}, + {1108, 24, false, false}, {1108, 14, false, false}, {1108, 36, false, false}, {1108, 24, false, false}, + {1108, 65, false, true}, {1108, 34, false, false}, {1108, 14, true, true}, {659, 17, true, true}, + {659, 34, false, false}, {391, 17, false, false}, {391, 31, false, false}, {391, 24, false, false}, + {391, 31, false, true}, {391, 53, false, false}, {391, 12, false, false}, {659, 17, true, true}, + {659, 19, false, true}, {659, 21, false, false}, {659, 17, false, false}, {391, 12, false, false}, + {391, 17, false, false}, {391, 17, false, false}, {391, 14, false, false}, {311, 34, false, true}, + {311, 41, false, false}, {311, 21, false, false}, {622, 12, true, true}, {622, 53, true, true}, + {369, 14, false, false}, {369, 12, false, false}, {369, 43, false, false}, {369, 17, false, true}, + {369, 36, false, false}, {369, 24, false, false}, {369, 19, false, false}, {622, 17, true, true}, + {622, 19, false, true}, {622, 14, false, false}, {466, 17, false, false}, {369, 26, false, false}, + {369, 14, false, false}, {369, 26, false, false}, {369, 61, false, true}, {369, 26, false, false}, + {1046, 26, true, true}, {1046, 19, true, true}, {1046, 21, false, false}, {1046, 12, false, false}, + {1046, 41, false, false}, {1046, 17, false, false}, {1046, 92, false, true}, {1046, 12, false, false}, + {1046, 14, true, true}, {932, 17, true, true}, {932, 12, false, false}, {932, 14, false, false}, + {932, 14, false, false}, {932, 12, false, false}, {932, 26, false, false}, {932, 24, false, false}, + {932, 19, false, true}, {932, 46, false, false}, {932, 21, false, false}, {1108, 12, true, true}, + {1108, 14, false, false}, {1108, 26, true, true}, {1108, 14, false, false}, {261, 14, false, false}, + {261, 17, false, false}, {261, 21, false, false}, {261, 21, false, false}, {261, 78, false, true}, + {261, 21, false, false}, {554, 17, true, true}, {1108, 39, true, true}, {1108, 17, false, false}, + {1108, 34, false, false}, {1108, 29, false, false}, {1108, 61, false, true}, {1108, 36, false, false}, + {1108, 17, true, true}, {1108, 41, true, true}, {1108, 12, false, false}, {1108, 41, false, false}, + {1108, 24, false, false}, {1108, 12, false, true}, {1108, 61, false, false}, {1108, 12, false, false}, + {932, 12, false, false}, {932, 17, true, true}, {932, 19, true, true}, {932, 19, false, true}, + {932, 19, false, false}, {932, 29, false, false}, {932, 24, false, false}, {932, 83, false, true}, + {932, 21, false, false}, {932, 12, true, true}, {932, 29, true, true}, {932, 17, false, false}, + {932, 17, false, false}, {932, 17, false, false}, {932, 34, false, false}, {932, 63, false, true}, + {932, 43, false, false}, {932, 17, true, true}, {932, 29, false, true}, {554, 12, false, false}, + {277, 17, false, false}, {277, 34, false, false}, {277, 26, false, false}, {277, 61, false, true}, + {277, 36, false, false}, {554, 17, true, true}, {554, 34, true, true}, {277, 14, false, false}, + {277, 46, false, false}, {277, 24, false, false}, {277, 21, false, true}, {277, 21, false, false}, + {277, 26, false, false}, {277, 14, false, false}, {277, 12, false, false}, {554, 17, true, true}, + {554, 26, false, true}, {349, 12, false, false}, {277, 12, false, false}, {277, 43, false, false}, + {277, 19, false, false}, {277, 61, false, true}, {277, 29, false, true}, {277, 12, false, false}, + {554, 17, true, true}, {554, 14, true, true}, {554, 12, false, false}, {349, 14, false, false}, + {311, 21, false, false}, {349, 17, false, false}, {349, 14, false, false}, {349, 19, false, false}, + {349, 24, false, true}, {349, 31, false, false}, {349, 24, false, false}, {349, 14, false, false}, + {554, 12, true, true}, {554, 12, false, false}, {554, 14, false, true}, {554, 14, false, false}, + {311, 12, false, false}, {311, 12, false, false}, {277, 36, false, false}, {277, 24, false, false}, + {277, 34, false, true}, {277, 19, false, true}, {0, 12, false, false}, {0, 36, false, false}, + {554, 14, true, true}, {554, 26, true, true}, {554, 12, false, false}, {277, 14, false, false}, + {277, 43, false, false}, {277, 24, false, false}, {277, 31, false, true}, {277, 53, false, false}, + {277, 12, false, false}, {554, 17, true, true}, {554, 19, false, true}, {739, 12, false, false}, + {739, 14, false, false}, {739, 19, false, false}, {739, 19, false, false}, {739, 34, false, false}, + {739, 75, false, true}, {739, 12, false, false}, {739, 19, false, true}, {739, 12, true, true}, + {739, 70, true, false}, {739, 43, false, false}, {739, 53, false, true}, {739, 24, false, false}, + {739, 24, false, false}, {739, 14, false, false}, {739, 75, true, true}, {739, 14, false, false}, + {739, 26, false, false}, {739, 61, false, true}, {739, 36, false, false}, {739, 17, false, true}, + {739, 87, true, true}, {739, 31, false, false}, {739, 26, false, true}, {739, 58, false, false}, + {0, 12, false, false}, {622, 17, false, false}, {622, 65, true, true}, {622, 29, false, false}, + {622, 17, false, false}, {622, 12, false, true}, {0, 14, false, false}, {0, 46, false, false}, + {0, 31, false, false}, {698, 17, false, true}, {698, 12, true, true}, {698, 83, false, false}, + {698, 24, false, false}, {698, 34, false, true}, {698, 24, false, false}, {0, 17, false, false}, + {0, 19, false, false}, {830, 21, false, false}, {830, 19, false, true}, {830, 14, false, false}, + {830, 36, false, false}, {830, 17, false, false}, {830, 29, false, false}, {830, 12, false, true}, + {739, 36, false, false}, {739, 12, false, false}, {739, 36, false, false}, {622, 17, false, true}, + {622, 17, true, true}, {622, 78, false, false}, {622, 24, false, false}, {622, 26, false, true}, + {622, 26, false, false}, {622, 19, false, false}, {622, 12, false, false}, {622, 17, false, false}, + {698, 14, false, false}, {698, 29, true, true}, {698, 21, false, false}, {698, 34, false, false}, + {698, 31, false, false}, {698, 75, false, true}, {698, 19, false, false}, {698, 14, false, true}, + {698, 80, true, true}, {698, 43, false, false}, {698, 53, false, true}, {698, 34, false, false}, + {698, 21, false, false}, {698, 24, false, true}, {698, 73, false, false}, {698, 26, false, false}, + {698, 61, false, true}, {698, 36, false, false}, {698, 17, false, true}, {698, 95, true, true}, + {698, 24, false, false}, {698, 34, false, true}, {0, 51, false, false}, {0, 12, false, false}, + {622, 17, false, false}, {622, 78, true, true}, {622, 17, false, false}, {622, 17, false, false}, + {0, 73, false, true}, {0, 31, false, false}, {698, 17, false, true}, {698, 14, true, true}, + {698, 75, false, false}, {698, 29, false, false}, {698, 34, false, true}, {0, 41, false, false}, + {0, 14, false, false}, {739, 26, false, false}, {739, 14, true, true}, {739, 41, false, false}, + {739, 31, false, false}, {739, 17, false, false}, {739, 12, false, false}, {739, 17, false, true}, + {739, 43, false, false}, {739, 36, false, false}, {739, 17, false, true}, {739, 95, true, true}, + {739, 24, false, false}, {739, 68, false, true}, {739, 17, false, false}, {739, 31, false, false}, + {739, 14, true, true}, {739, 65, false, false}, {739, 26, false, false}, {0, 85, false, true}, + {0, 21, false, false}, {0, 17, true, true}, {0, 75, true, true}, {0, 43, false, false}, + {0, 53, false, true}, {0, 14, false, false}, {0, 34, false, false}, {0, 14, false, false}, + {0, 63, false, true}, {0, 24, false, false}, {0, 29, false, false}, {0, 61, false, true}, + {0, 31, false, false}, {739, 21, true, true}, {739, 95, true, true}, {739, 24, false, false}, + {739, 29, false, true}, {739, 19, false, false}, {739, 31, false, false}, {0, 17, false, false}, + {698, 17, false, false}, {698, 41, false, true}, {698, 36, false, false}, {698, 17, false, false}, + {698, 17, false, false}, {698, 26, false, true}, {0, 46, false, false}, {0, 31, false, false}, + {739, 17, true, true}, {739, 95, true, true}, {739, 24, false, false}, {739, 26, false, true}, + {739, 48, false, false}, {0, 17, false, false}, {698, 24, false, false}, {698, 26, false, true}, + {698, 51, false, false}, {698, 39, false, false}, {698, 61, false, true}, {698, 36, false, false}, + {698, 17, true, true}, {698, 80, true, true}, {698, 14, false, false}, {698, 24, false, false}, + {698, 65, false, true}, {698, 19, false, false}, {698, 12, false, false}, {622, 17, false, false}, + {622, 14, false, true}, {622, 19, false, false}, {622, 53, false, false}, {622, 31, false, false}, + {622, 75, false, true}, {622, 21, false, false}, {622, 12, false, true}, {622, 80, true, true}, + {622, 43, false, false}, {622, 43, false, true}, {622, 43, false, false}, {622, 29, false, false}, + {622, 26, false, true}, {622, 63, false, false}, {622, 26, false, false}, {622, 61, false, true}, + {622, 19, false, false}, {0, 17, false, false}, {311, 17, false, true}, {311, 95, true, true}, + {311, 24, false, false}, {311, 43, false, true}, {311, 41, false, false}, {311, 29, false, false}, + {0, 19, false, true}, {0, 39, false, false}, {0, 24, false, false}, {0, 12, false, false}, + {0, 17, false, false}, {0, 73, false, true}, {0, 17, false, false}, {1108, 14, false, false}, + {1108, 17, true, false}, {1108, 14, true, true}, {1108, 80, false, false}, {1108, 24, false, false}, + {1108, 58, false, true}, {1108, 17, false, false}, {554, 14, false, false}, {554, 14, false, false}, + {0, 12, false, false}, {0, 39, false, true}, {0, 17, false, false}, {0, 31, false, false}, + {0, 29, false, false}, {0, 61, false, true}, {0, 36, false, false}, {1046, 17, true, false}, + {1046, 95, true, true}, {1046, 24, false, false}, {1046, 58, false, true}, {1046, 21, false, false}, + {523, 17, false, false}, {0, 19, false, false}, {0, 17, false, true}, {0, 19, false, false}, + {0, 17, false, false}, {0, 31, false, false}, {0, 21, false, false}, {0, 85, false, true}, + {0, 21, false, false}, {554, 14, true, true}, {932, 24, true, true}, {932, 14, false, false}, + {932, 12, false, false}, {932, 26, false, false}, {932, 43, false, false}, {932, 17, false, true}, + {932, 36, false, false}, {932, 24, false, false}, {932, 19, false, false}, {932, 17, true, true}, + {1046, 21, true, true}, {1046, 17, false, false}, {1046, 12, false, false}, {1046, 17, false, false}, + {1046, 24, false, false}, {1046, 26, false, false}, {1046, 61, false, true}, {1046, 36, false, false}, + {1046, 17, true, true}, {1108, 31, true, true}, {1108, 12, false, false}, {1108, 51, false, false}, + {1108, 17, false, false}, {1108, 92, false, true}, {1108, 12, false, false}, {1108, 17, true, true}, + {1108, 14, true, true}, {932, 12, false, false}, {932, 17, false, false}, {932, 12, false, false}, + {932, 39, false, false}, {932, 24, false, false}, {932, 19, false, true}, {932, 46, false, false}, + {932, 31, false, false}, {1046, 17, true, true}, {1046, 21, true, true}, {1046, 17, false, false}, + {1046, 56, false, false}, {1046, 21, false, false}, {1046, 78, false, true}, {1046, 21, false, false}, + {1108, 17, true, true}, {1108, 19, true, true}, {1108, 12, false, false}, {1108, 14, false, false}, + {1108, 14, false, false}, {1108, 29, false, false}, {1108, 29, false, false}, {1108, 61, false, true}, + {1108, 36, false, false}, {1108, 17, true, true}, {1108, 24, true, true}, {1108, 14, false, false}, + {1108, 19, false, false}, {1108, 29, false, false}, {0, 31, false, false}, {0, 12, false, true}, + {0, 61, false, false}, {0, 12, false, false}, {0, 12, false, false}, {554, 17, true, true}, + {554, 31, false, true}, {554, 17, false, false}, {554, 26, false, false}, {329, 12, false, false}, + {329, 31, false, false}, {329, 75, false, true}, {329, 21, false, false}, {554, 12, true, true}, + {554, 39, true, true}, {329, 21, false, false}, {329, 19, false, false}, {329, 34, false, false}, + {329, 63, false, true}, {329, 43, false, false}, {554, 17, true, true}, {554, 24, false, true}, + {554, 17, false, false}, {391, 14, false, false}, {329, 36, false, false}, {329, 26, false, false}, + {329, 61, false, true}, {329, 24, false, false}, {1046, 12, false, false}, {1046, 17, true, true}, + {1046, 21, true, true}, {1046, 19, false, false}, {1046, 19, false, false}, {1046, 34, false, false}, + {1046, 24, false, false}, {1046, 21, false, true}, {1046, 21, false, false}, {1046, 41, false, false}, + {1046, 12, false, false}, {1046, 17, true, true}, {1046, 12, true, true}, {932, 21, false, false}, + {932, 12, false, false}, {932, 21, false, false}, {932, 26, false, false}, {932, 19, false, false}, + {932, 70, false, true}, {932, 21, false, false}, {1108, 12, true, true}, {1108, 14, false, false}, + {1108, 14, true, true}, {1108, 26, false, false}, {0, 12, false, false}, {0, 24, false, false}, + {0, 17, false, false}, {0, 24, false, false}, {0, 19, false, true}, {0, 56, false, false}, + {0, 14, false, false}, {523, 14, true, true}, {523, 12, false, true}, {1108, 43, true, true}, + {1108, 43, false, false}, {1108, 24, false, false}, {1108, 65, false, true}, {1108, 36, false, false}, + {1108, 17, true, true}, {1108, 46, true, true}, {1108, 48, false, false}, {1108, 24, false, false}, + {1108, 31, false, true}, {1108, 53, false, false}, {1108, 12, false, false}, {1108, 17, true, true}, + {1108, 12, false, true}, {932, 36, false, false}, {932, 12, false, false}, {932, 26, false, false}, + {932, 31, false, false}, {932, 75, false, true}, {932, 21, false, false}, {932, 21, false, false}, + {932, 14, false, false}, {932, 12, false, false}, {932, 87, false, false}, {0, 97, false, false}, + {698, 46, false, false}, {466, 14, false, false}, {0, 173, false, false}, {698, 51, false, false}, + {466, 12, false, false}, {0, 170, false, false}, {698, 43, false, false}, {698, 12, false, false}, + {0, 178, false, false}, {698, 51, false, false}, {466, 14, false, false}, {0, 168, false, false}, + {698, 70, false, false}, {698, 17, false, false}, {0, 146, false, false}, {349, 21, false, false}, + {349, 95, true, false}, {466, 21, false, false}, {466, 95, true, false}, {554, 21, false, false}, + {554, 51, true, false}, {554, 34, false, false}, {698, 14, false, false}, {698, 17, false, false}, + {698, 21, true, false}, {698, 19, false, false}, {0, 53, false, false}, {659, 21, false, false}, + {659, 21, true, false}, {659, 17, false, false}, {659, 14, false, false}, {0, 158, false, false}, + {659, 26, false, false}, {659, 26, false, false}, {0, 180, false, false}, {659, 48, false, false}, + {0, 185, false, false}, {659, 29, false, false}, {659, 34, false, false}, {0, 170, false, false}, + {659, 48, false, false}, {659, 12, false, false}, {0, 173, false, false}, {659, 78, false, false}, + {659, 68, false, false}, {0, 51, false, false}, {0, 36, false, false}, {349, 21, false, false}, + {349, 95, true, false}, {466, 21, false, false}, {466, 95, true, false}, {554, 21, false, false}, + {554, 73, true, false}, {554, 12, false, false}, {698, 19, false, false}, {698, 12, false, false}, + {698, 14, true, false}, {698, 36, false, false}, {0, 43, false, false}, {622, 21, false, false}, + {622, 419, true, false}, {622, 26, false, false}, {622, 14, false, false}, {554, 46, false, false}, + {554, 173, false, false}, {554, 31, false, false}, {466, 61, false, false}, {0, 104, false, false}, + {0, 36, false, false}, {554, 21, false, false}, {554, 31, true, false}, {0, 180, false, false}, + {554, 527, false, false}, {0, 80, false, false}, {0, 95, false, false}, {554, 17, true, true}, + {932, 41, true, true}, {932, 117, false, false}, {932, 12, false, false}, {932, 12, false, false}, + {932, 14, false, false}, {932, 12, false, false}, {932, 14, false, false}, {0, 17, false, false}, + {0, 19, false, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/potc_1.mid b/scripts/midillis/Alla_Turca/potc_1.mid new file mode 100644 index 0000000..8552832 Binary files /dev/null and b/scripts/midillis/Alla_Turca/potc_1.mid differ diff --git a/scripts/midillis/Alla_Turca/potc_1_c.txt b/scripts/midillis/Alla_Turca/potc_1_c.txt new file mode 100644 index 0000000..9903d1d --- /dev/null +++ b/scripts/midillis/Alla_Turca/potc_1_c.txt @@ -0,0 +1,171 @@ +// Converted from: potc_1.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_potc_1[] = { + {293, 300, false, false}, {293, 150, false, false}, {293, 300, false, false}, {293, 150, false, false}, + {293, 300, false, false}, {293, 150, false, false}, {293, 150, false, false}, {293, 150, false, false}, + {293, 150, false, false}, {293, 300, false, false}, {293, 150, false, false}, {293, 300, false, false}, + {293, 150, false, false}, {293, 300, false, false}, {293, 150, false, false}, {293, 150, false, false}, + {293, 150, false, false}, {293, 75, false, false}, {0, 75, false, false}, {293, 300, true, false}, + {293, 150, false, false}, {293, 300, false, false}, {293, 75, false, false}, {0, 75, false, false}, + {466, 300, true, false}, {466, 99, false, false}, {293, 49, false, false}, {440, 150, true, false}, + {440, 71, false, true}, {440, 78, false, false}, {440, 99, false, false}, {440, 46, false, false}, + {293, 253, true, true}, {293, 49, false, false}, {293, 146, true, true}, {293, 78, true, true}, + {0, 75, false, false}, {293, 99, false, true}, {293, 46, false, false}, {329, 149, true, true}, + {349, 253, true, true}, {349, 49, false, false}, {349, 146, true, true}, {349, 78, true, false}, + {293, 75, false, false}, {349, 99, false, true}, {349, 46, false, false}, {391, 149, true, false}, + {329, 253, true, true}, {329, 49, false, false}, {329, 146, true, true}, {329, 78, true, false}, + {261, 75, false, false}, {293, 99, false, true}, {293, 46, false, false}, {261, 149, true, true}, + {261, 149, true, true}, {293, 103, false, true}, {293, 46, false, false}, {0, 149, true, true}, + {0, 153, true, true}, {0, 99, false, true}, {0, 46, false, false}, {261, 149, true, true}, + {293, 253, true, true}, {293, 49, false, false}, {293, 146, true, true}, {293, 78, true, false}, + {0, 75, false, false}, {293, 99, false, true}, {293, 46, false, false}, {329, 149, true, true}, + {349, 253, true, true}, {349, 49, false, false}, {349, 146, true, true}, {349, 78, true, false}, + {261, 75, false, false}, {349, 99, false, false}, {349, 46, false, false}, {391, 149, true, false}, + {329, 253, true, true}, {329, 49, false, false}, {329, 146, true, true}, {329, 78, true, false}, + {261, 75, false, false}, {293, 99, false, true}, {293, 46, false, false}, {261, 149, true, true}, + {293, 253, true, true}, {0, 49, false, false}, {0, 146, true, true}, {0, 153, true, true}, + {0, 99, false, true}, {0, 46, false, false}, {261, 149, true, true}, {293, 253, true, true}, + {293, 49, false, false}, {293, 146, true, true}, {293, 78, true, true}, {0, 75, false, false}, + {293, 99, false, true}, {293, 46, false, false}, {349, 149, true, true}, {391, 253, true, true}, + {391, 49, false, false}, {391, 146, true, true}, {391, 78, true, false}, {293, 75, false, false}, + {391, 99, false, false}, {391, 46, false, false}, {440, 149, true, false}, {466, 253, true, false}, + {466, 49, false, false}, {466, 146, true, false}, {466, 78, true, false}, {391, 75, false, false}, + {440, 99, false, false}, {440, 46, false, false}, {391, 149, true, false}, {440, 149, true, true}, + {293, 103, false, false}, {293, 49, false, false}, {293, 99, true, true}, {0, 46, false, false}, + {0, 153, true, true}, {293, 99, false, false}, {293, 46, false, false}, {329, 149, true, true}, + {349, 253, true, true}, {349, 49, false, false}, {349, 146, true, true}, {349, 78, true, false}, + {293, 75, false, false}, {391, 99, false, true}, {391, 49, false, false}, {391, 99, true, false}, + {293, 46, false, false}, {440, 149, true, true}, {293, 103, false, false}, {293, 49, false, false}, + {293, 99, true, true}, {0, 46, false, false}, {0, 153, true, true}, {293, 99, false, false}, + {293, 46, false, false}, {349, 149, true, true}, {329, 253, true, true}, {329, 49, false, false}, + {329, 146, true, true}, {329, 78, true, false}, {277, 75, false, false}, {349, 99, false, false}, + {349, 46, false, false}, {293, 149, true, true}, {329, 253, true, true}, {329, 49, false, false}, + {329, 99, true, false}, {277, 46, false, false}, {0, 153, true, false}, {440, 99, false, false}, + {440, 46, false, false}, {523, 149, true, false}, {587, 253, true, true}, {587, 49, false, false}, + {587, 146, true, true}, {587, 78, true, true}, {440, 75, false, false}, {587, 99, false, false}, + {587, 46, false, false}, {659, 149, true, false}, {698, 253, true, false}, {698, 49, false, false}, + {698, 146, true, false}, {698, 78, true, false}, {587, 75, false, false}, {698, 99, false, false}, + {698, 46, false, false}, {783, 149, true, false}, {659, 253, true, false}, {659, 49, false, false}, + {659, 146, true, false}, {659, 78, true, false}, {523, 75, false, false}, {587, 99, false, false}, + {587, 46, false, false}, {523, 149, true, false}, {523, 149, true, true}, {587, 103, false, false}, + {587, 49, false, false}, {587, 99, true, true}, {0, 46, false, false}, {0, 103, true, true}, + {0, 49, false, false}, {440, 99, false, false}, {440, 46, false, false}, {523, 149, true, true}, + {587, 253, true, false}, {587, 49, false, false}, {587, 146, true, false}, {587, 78, true, false}, + {466, 75, false, false}, {587, 99, false, false}, {587, 46, false, false}, {659, 149, true, false}, + {698, 253, true, false}, {698, 49, false, false}, {698, 146, true, false}, {698, 78, true, false}, + {523, 75, false, false}, {698, 99, false, false}, {698, 46, false, false}, {783, 149, true, false}, + {659, 253, true, false}, {659, 49, false, false}, {659, 146, true, false}, {659, 78, true, false}, + {523, 75, false, false}, {587, 99, false, false}, {587, 46, false, false}, {523, 149, true, false}, + {587, 253, true, true}, {440, 49, false, false}, {0, 146, true, true}, {0, 153, true, true}, + {440, 99, false, false}, {440, 46, false, false}, {523, 149, true, true}, {587, 253, true, true}, + {587, 49, false, false}, {587, 146, true, true}, {587, 78, true, true}, {440, 75, false, false}, + {587, 99, false, false}, {587, 46, false, false}, {698, 149, true, true}, {783, 253, true, false}, + {783, 49, false, false}, {783, 146, true, false}, {783, 78, true, false}, {587, 75, false, false}, + {783, 99, false, false}, {783, 46, false, false}, {880, 149, true, false}, {932, 253, true, false}, + {932, 49, false, false}, {932, 146, true, false}, {932, 78, true, false}, {783, 75, false, false}, + {880, 99, false, false}, {880, 46, false, false}, {783, 149, true, false}, {880, 149, true, true}, + {587, 103, false, false}, {587, 49, false, false}, {587, 99, true, true}, {0, 46, false, false}, + {0, 153, true, true}, {587, 99, false, false}, {587, 46, false, false}, {659, 149, true, true}, + {698, 253, true, false}, {698, 49, false, false}, {698, 146, true, false}, {698, 78, true, false}, + {587, 75, false, false}, {783, 99, false, false}, {783, 49, false, false}, {783, 99, true, false}, + {587, 46, false, false}, {880, 149, true, true}, {587, 103, false, false}, {587, 49, false, false}, + {587, 99, true, true}, {0, 46, false, false}, {0, 153, true, true}, {587, 99, false, false}, + {587, 46, false, false}, {698, 149, true, true}, {659, 253, true, false}, {659, 49, false, false}, + {659, 146, true, false}, {659, 78, true, false}, {554, 75, false, false}, {587, 99, false, false}, + {587, 46, false, false}, {554, 149, true, false}, {587, 253, true, true}, {587, 49, false, false}, + {587, 224, true, true}, {440, 24, false, false}, {440, 49, false, false}, {659, 249, true, false}, + {523, 49, false, false}, {698, 249, true, false}, {587, 49, false, false}, {698, 150, true, false}, + {698, 99, false, false}, {0, 49, false, false}, {783, 249, true, false}, {587, 49, false, false}, + {880, 150, true, false}, {698, 99, false, false}, {698, 49, false, false}, {0, 146, true, false}, + {0, 78, true, false}, {0, 75, false, false}, {698, 99, false, false}, {698, 49, false, false}, + {587, 99, true, false}, {587, 46, false, false}, {440, 153, true, false}, {0, 99, false, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 253, true, false}, {0, 49, false, false}, + {0, 146, true, false}, {932, 153, true, false}, {0, 99, false, false}, {0, 49, false, false}, + {0, 146, true, false}, {0, 153, true, false}, {783, 99, false, false}, {783, 49, false, false}, + {587, 75, true, false}, {587, 71, false, false}, {466, 153, true, false}, {0, 99, false, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 253, true, false}, {0, 49, false, false}, + {0, 146, true, false}, {329, 149, true, false}, {329, 103, false, false}, {329, 49, false, false}, + {329, 99, true, false}, {0, 46, false, false}, {293, 253, true, true}, {293, 49, false, false}, + {293, 99, true, false}, {0, 46, false, false}, {349, 253, true, true}, {349, 49, false, false}, + {349, 99, true, false}, {0, 46, false, false}, {0, 153, true, false}, {349, 99, false, false}, + {349, 46, false, false}, {391, 78, true, false}, {391, 71, false, false}, {440, 253, true, true}, + {0, 49, false, false}, {440, 146, true, true}, {440, 103, true, true}, {0, 49, false, false}, + {440, 99, false, false}, {440, 49, false, false}, {440, 75, true, true}, {349, 24, false, false}, + {0, 46, false, false}, {466, 149, true, true}, {440, 103, false, false}, {440, 46, false, false}, + {0, 149, true, true}, {0, 149, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {391, 253, true, false}, {0, 49, false, false}, {391, 146, true, false}, {391, 103, true, false}, + {0, 49, false, false}, {391, 99, false, false}, {391, 49, false, false}, {391, 75, true, false}, + {329, 24, false, false}, {0, 46, false, false}, {440, 149, true, true}, {440, 103, false, false}, + {440, 46, false, false}, {0, 149, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {0, 149, true, true}, {440, 253, true, true}, {0, 49, false, false}, {440, 146, true, true}, + {440, 103, true, true}, {0, 49, false, false}, {440, 99, false, false}, {440, 49, false, false}, + {440, 75, true, true}, {349, 24, false, false}, {0, 46, false, false}, {466, 149, true, true}, + {440, 103, false, false}, {440, 46, false, false}, {0, 149, true, true}, {0, 149, true, true}, + {0, 149, true, true}, {0, 149, true, true}, {391, 253, true, false}, {0, 49, false, false}, + {349, 146, true, false}, {349, 103, true, false}, {0, 49, false, false}, {329, 99, false, true}, + {329, 49, false, false}, {329, 99, true, false}, {0, 46, false, false}, {293, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 153, true, true}, {293, 99, false, false}, + {293, 46, false, false}, {329, 149, true, true}, {349, 253, true, true}, {349, 49, false, false}, + {349, 146, true, true}, {349, 78, true, true}, {0, 75, false, false}, {391, 99, false, false}, + {391, 46, false, false}, {440, 78, true, true}, {440, 71, false, false}, {391, 253, true, false}, + {0, 49, false, false}, {349, 146, true, false}, {349, 78, true, false}, {349, 24, false, false}, + {0, 46, false, false}, {329, 149, true, false}, {329, 103, true, false}, {0, 46, false, false}, + {349, 253, true, true}, {0, 49, false, false}, {391, 146, true, true}, {391, 103, true, true}, + {0, 46, false, false}, {440, 149, true, true}, {440, 103, true, true}, {0, 46, false, false}, + {391, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, {0, 149, true, false}, + {349, 149, true, false}, {391, 78, true, false}, {0, 71, false, false}, {440, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 78, true, true}, {0, 71, false, false}, + {391, 149, true, true}, {349, 149, true, true}, {329, 253, true, false}, {0, 49, false, false}, + {349, 146, true, false}, {349, 103, true, false}, {0, 46, false, false}, {329, 149, true, false}, + {329, 103, true, false}, {0, 46, false, false}, {293, 253, true, true}, {0, 49, false, false}, + {0, 146, true, true}, {0, 78, true, true}, {0, 75, false, false}, {329, 99, false, false}, + {329, 46, false, false}, {261, 149, true, true}, {293, 149, true, true}, {0, 103, false, false}, + {0, 49, false, false}, {0, 146, true, true}, {0, 78, true, true}, {0, 71, false, false}, + {587, 149, true, true}, {659, 149, true, true}, {698, 253, true, true}, {0, 49, false, false}, + {0, 146, true, true}, {0, 149, true, true}, {659, 149, true, true}, {698, 78, true, true}, + {0, 71, false, false}, {783, 253, true, false}, {0, 49, false, false}, {698, 146, true, false}, + {698, 103, true, false}, {0, 46, false, false}, {783, 149, true, false}, {783, 103, true, false}, + {0, 46, false, false}, {880, 253, true, true}, {0, 49, false, false}, {783, 146, true, true}, + {783, 103, true, true}, {0, 46, false, false}, {698, 149, true, true}, {698, 103, true, true}, + {0, 46, false, false}, {587, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 78, true, false}, {0, 71, false, false}, {659, 149, true, false}, {659, 103, true, false}, + {0, 46, false, false}, {698, 253, true, true}, {0, 49, false, false}, {783, 146, true, true}, + {783, 103, true, true}, {0, 46, false, false}, {880, 149, true, true}, {880, 103, true, true}, + {0, 46, false, false}, {932, 253, true, false}, {0, 49, false, false}, {587, 146, true, false}, + {587, 103, true, false}, {0, 46, false, false}, {783, 149, true, false}, {783, 103, true, false}, + {0, 46, false, false}, {698, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 78, true, false}, {0, 71, false, false}, {783, 149, true, false}, {659, 149, true, false}, + {587, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, {0, 149, true, false}, + {659, 149, true, false}, {554, 78, true, false}, {554, 71, false, false}, {880, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {0, 78, true, true}, {0, 71, false, false}, {932, 253, true, false}, {0, 49, false, false}, + {0, 146, true, false}, {0, 149, true, false}, {0, 149, true, false}, {0, 78, true, false}, + {0, 71, false, false}, {880, 253, true, true}, {0, 49, false, false}, {880, 146, true, true}, + {880, 103, true, true}, {0, 49, false, false}, {880, 99, false, false}, {880, 49, false, false}, + {880, 99, true, true}, {0, 46, false, false}, {880, 149, true, false}, {783, 103, false, false}, + {783, 46, false, false}, {0, 149, true, false}, {0, 103, true, false}, {0, 46, false, false}, + {0, 149, true, false}, {0, 149, true, false}, {783, 253, true, false}, {0, 49, false, false}, + {0, 146, true, false}, {0, 149, true, false}, {0, 149, true, false}, {0, 78, true, false}, + {0, 71, false, false}, {698, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 78, true, false}, {0, 71, false, false}, + {698, 253, true, false}, {0, 49, false, false}, {783, 146, true, false}, {783, 103, true, false}, + {0, 46, false, false}, {659, 149, true, false}, {659, 103, true, false}, {0, 46, false, false}, + {587, 253, true, true}, {587, 49, false, false}, {587, 99, true, true}, {0, 46, false, false}, + {587, 149, true, true}, {659, 149, true, true}, {698, 78, true, true}, {698, 71, false, false}, + {880, 253, true, true}, {880, 49, false, false}, {880, 99, true, true}, {0, 46, false, false}, + {587, 149, true, true}, {659, 149, true, true}, {698, 78, true, true}, {698, 71, false, false}, + {932, 253, true, false}, {932, 49, false, false}, {932, 99, true, false}, {0, 46, false, false}, + {587, 149, true, false}, {659, 149, true, false}, {698, 78, true, false}, {698, 71, false, false}, + {880, 253, true, true}, {0, 49, false, false}, {880, 146, true, true}, {880, 103, true, true}, + {0, 46, false, false}, {1046, 149, true, true}, {1046, 103, true, true}, {0, 46, false, false}, + {880, 149, true, false}, {783, 103, false, false}, {783, 46, false, false}, {0, 149, true, false}, + {0, 103, true, false}, {0, 46, false, false}, {0, 149, true, false}, {0, 149, true, false}, + {783, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, {0, 149, true, false}, + {0, 149, true, false}, {0, 78, true, false}, {0, 71, false, false}, {698, 253, true, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 149, true, false}, {0, 149, true, false}, + {0, 78, true, false}, {0, 71, false, false}, {698, 253, true, false}, {0, 49, false, false}, + {783, 146, true, false}, {783, 103, true, false}, {0, 46, false, false}, {659, 149, true, false}, + {659, 103, true, false}, {0, 46, false, false}, {587, 403, true, true}, {0, 49, false, false}, + {0, 146, true, true}, {0, 149, true, true}, {0, 78, true, true}, {0, 71, false, false}, + {293, 1128, true, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/potc_2.mid b/scripts/midillis/Alla_Turca/potc_2.mid new file mode 100644 index 0000000..7c82ba1 Binary files /dev/null and b/scripts/midillis/Alla_Turca/potc_2.mid differ diff --git a/scripts/midillis/Alla_Turca/potc_2_c.txt b/scripts/midillis/Alla_Turca/potc_2_c.txt new file mode 100644 index 0000000..4ffcb09 --- /dev/null +++ b/scripts/midillis/Alla_Turca/potc_2_c.txt @@ -0,0 +1,135 @@ +// Converted from: potc_2.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_potc_2[] = { + {0, 296, false, true}, {0, 149, false, true}, {0, 300, false, true}, {0, 149, false, true}, + {0, 300, false, true}, {0, 149, false, true}, {0, 149, false, true}, {0, 149, false, true}, + {0, 149, false, true}, {0, 300, false, true}, {0, 149, false, true}, {0, 300, false, true}, + {0, 149, false, true}, {0, 300, false, true}, {0, 149, false, true}, {0, 149, false, true}, + {0, 149, false, true}, {0, 149, false, true}, {293, 300, false, true}, {293, 149, false, true}, + {293, 300, false, true}, {293, 149, false, true}, {293, 300, false, true}, {293, 149, false, true}, + {293, 149, false, true}, {293, 149, false, true}, {293, 149, false, true}, {293, 300, false, true}, + {293, 149, false, true}, {293, 300, false, true}, {293, 149, false, true}, {293, 300, false, true}, + {293, 149, true, true}, {293, 149, true, true}, {293, 149, false, true}, {293, 149, false, true}, + {293, 149, true, true}, {293, 149, true, false}, {293, 149, true, true}, {293, 149, true, true}, + {293, 149, true, false}, {329, 149, true, false}, {349, 149, true, true}, {349, 149, true, false}, + {349, 149, true, true}, {349, 149, true, true}, {391, 149, true, false}, {391, 149, true, true}, + {329, 149, true, true}, {329, 149, true, false}, {329, 149, true, true}, {329, 149, true, true}, + {293, 149, true, false}, {261, 149, true, true}, {293, 149, true, true}, {587, 149, true, true}, + {523, 149, true, true}, {587, 149, true, true}, {0, 149, true, true}, {293, 149, true, true}, + {293, 149, true, true}, {293, 149, true, false}, {293, 149, true, true}, {293, 149, true, true}, + {293, 149, true, false}, {329, 149, true, true}, {349, 149, true, true}, {349, 149, true, false}, + {349, 149, true, true}, {349, 149, true, true}, {391, 149, true, false}, {391, 149, true, true}, + {329, 149, true, true}, {329, 149, true, false}, {329, 149, true, false}, {329, 149, true, true}, + {293, 149, true, false}, {261, 149, true, true}, {293, 149, true, true}, {587, 149, true, true}, + {523, 149, true, true}, {587, 149, true, true}, {0, 149, true, true}, {293, 149, true, true}, + {293, 149, true, true}, {293, 149, true, false}, {293, 149, true, true}, {293, 149, true, true}, + {293, 149, true, false}, {349, 149, true, true}, {391, 149, true, true}, {391, 149, true, false}, + {391, 149, true, true}, {391, 149, true, true}, {440, 149, true, false}, {466, 149, true, true}, + {466, 149, true, true}, {466, 149, true, false}, {466, 149, true, true}, {440, 149, true, true}, + {440, 149, true, false}, {391, 149, true, true}, {440, 149, true, true}, {293, 149, true, true}, + {293, 149, true, true}, {293, 149, true, true}, {293, 149, true, false}, {329, 149, true, true}, + {349, 149, true, true}, {349, 149, true, false}, {391, 149, true, true}, {391, 149, true, true}, + {440, 149, true, false}, {440, 149, true, true}, {293, 149, true, true}, {293, 149, true, false}, + {293, 149, true, true}, {293, 149, true, true}, {349, 149, true, false}, {329, 149, true, true}, + {329, 149, true, true}, {329, 149, true, false}, {329, 149, true, true}, {349, 149, true, true}, + {293, 149, true, true}, {329, 149, true, true}, {329, 149, true, true}, {329, 149, true, true}, + {329, 149, true, true}, {329, 149, true, true}, {440, 149, true, true}, {523, 149, true, true}, + {587, 149, true, true}, {587, 149, true, false}, {587, 149, true, true}, {587, 149, true, true}, + {587, 149, true, false}, {659, 149, true, false}, {698, 149, true, true}, {698, 149, true, false}, + {698, 149, true, true}, {698, 149, true, true}, {783, 149, true, false}, {783, 149, true, true}, + {659, 149, true, true}, {659, 149, true, false}, {659, 149, true, true}, {659, 149, true, true}, + {587, 149, true, false}, {523, 149, true, true}, {587, 149, true, true}, {1174, 149, true, true}, + {1046, 149, true, true}, {1174, 149, true, true}, {440, 149, true, false}, {523, 149, true, true}, + {587, 149, true, true}, {587, 149, true, false}, {587, 149, true, true}, {587, 149, true, true}, + {587, 149, true, false}, {659, 149, true, true}, {698, 149, true, true}, {698, 149, true, false}, + {698, 149, true, true}, {698, 149, true, true}, {783, 149, true, false}, {783, 149, true, true}, + {659, 149, true, true}, {659, 149, true, false}, {659, 149, true, false}, {659, 149, true, true}, + {587, 149, true, false}, {523, 149, true, true}, {587, 149, true, true}, {1174, 149, true, true}, + {1046, 149, true, true}, {1174, 149, true, true}, {440, 149, true, false}, {523, 149, true, true}, + {587, 149, true, true}, {587, 149, true, false}, {587, 149, true, true}, {587, 149, true, true}, + {587, 149, true, false}, {698, 149, true, true}, {783, 149, true, true}, {783, 149, true, false}, + {783, 149, true, true}, {783, 149, true, true}, {880, 149, true, false}, {932, 149, true, true}, + {932, 149, true, true}, {932, 149, true, false}, {932, 149, true, true}, {880, 149, true, true}, + {880, 149, true, false}, {783, 149, true, true}, {880, 149, true, true}, {587, 149, true, true}, + {587, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, {659, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {880, 149, true, false}, {880, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {698, 149, true, false}, {659, 149, true, true}, + {659, 149, true, true}, {659, 149, true, false}, {659, 149, true, true}, {659, 149, true, true}, + {587, 149, true, false}, {554, 149, true, true}, {587, 300, true, true}, {587, 300, true, true}, + {659, 300, true, false}, {698, 149, true, true}, {698, 149, true, true}, {698, 149, true, true}, + {698, 149, true, true}, {783, 149, true, true}, {783, 149, true, true}, {880, 149, true, true}, + {698, 149, false, false}, {698, 149, true, false}, {698, 149, true, false}, {698, 149, false, false}, + {587, 149, true, false}, {440, 300, true, false}, {440, 149, true, false}, {440, 300, true, false}, + {440, 149, true, false}, {932, 149, true, true}, {932, 150, false, false}, {932, 149, true, false}, + {932, 149, true, false}, {783, 149, false, false}, {587, 149, true, false}, {466, 300, true, false}, + {466, 149, true, false}, {466, 300, true, false}, {466, 149, true, false}, {329, 149, true, true}, + {329, 149, true, true}, {329, 149, true, true}, {293, 149, true, true}, {293, 149, true, true}, + {293, 149, true, true}, {349, 149, true, true}, {349, 149, true, false}, {349, 149, true, true}, + {349, 149, true, true}, {349, 149, true, false}, {391, 149, true, true}, {440, 149, true, true}, + {440, 149, true, false}, {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, false}, + {440, 149, true, true}, {466, 149, true, true}, {440, 149, true, false}, {440, 149, true, true}, + {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, true}, {391, 149, true, true}, + {391, 149, true, false}, {391, 149, true, false}, {391, 149, true, true}, {391, 149, true, false}, + {391, 149, true, false}, {440, 149, true, true}, {440, 149, true, false}, {440, 149, true, true}, + {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, true}, + {440, 149, true, false}, {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, false}, + {440, 149, true, true}, {466, 149, true, true}, {440, 149, true, false}, {440, 149, true, true}, + {440, 149, true, true}, {440, 149, true, true}, {440, 149, true, true}, {391, 149, true, true}, + {391, 149, true, false}, {349, 149, true, true}, {349, 149, true, true}, {329, 149, true, false}, + {329, 149, true, true}, {293, 149, true, true}, {293, 149, true, true}, {293, 149, true, true}, + {293, 149, true, true}, {293, 149, true, true}, {329, 149, true, true}, {349, 149, true, true}, + {349, 150, false, false}, {349, 149, false, true}, {349, 149, false, true}, {391, 149, false, false}, + {440, 149, false, true}, {391, 300, true, false}, {349, 149, true, false}, {349, 149, true, false}, + {329, 149, true, false}, {329, 149, true, false}, {349, 300, false, true}, {391, 149, false, true}, + {391, 149, false, true}, {440, 149, false, true}, {440, 149, false, true}, {391, 300, true, false}, + {391, 149, true, false}, {391, 149, true, false}, {349, 149, true, false}, {391, 149, true, false}, + {440, 149, true, true}, {440, 149, true, false}, {440, 149, true, true}, {440, 149, true, true}, + {391, 149, true, true}, {349, 149, true, true}, {329, 149, true, true}, {329, 149, true, false}, + {349, 149, true, true}, {349, 149, true, true}, {329, 149, true, true}, {329, 149, true, true}, + {293, 149, true, true}, {293, 149, true, false}, {293, 149, true, true}, {293, 149, true, true}, + {329, 149, true, false}, {293, 149, true, true}, {293, 149, true, true}, {293, 149, true, false}, + {293, 149, true, true}, {293, 149, true, true}, {587, 149, true, true}, {659, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {698, 149, true, true}, {698, 149, true, true}, + {659, 149, true, true}, {698, 149, true, true}, {783, 149, true, true}, {783, 149, true, false}, + {698, 149, true, false}, {698, 149, true, true}, {783, 149, true, false}, {783, 149, true, false}, + {880, 149, true, true}, {880, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {698, 149, true, true}, {698, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {587, 149, true, true}, {659, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {880, 149, true, true}, {880, 149, true, true}, {932, 149, true, true}, {932, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {783, 149, true, true}, {783, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {698, 149, true, true}, {698, 149, true, true}, + {783, 149, true, true}, {659, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {554, 149, true, true}, {554, 149, true, true}, {554, 149, true, true}, + {880, 149, true, true}, {880, 149, true, false}, {880, 149, true, true}, {880, 149, true, true}, + {880, 149, true, true}, {880, 149, true, true}, {932, 149, true, true}, {932, 149, true, false}, + {932, 149, true, true}, {932, 149, true, true}, {932, 149, true, true}, {932, 149, true, true}, + {880, 149, true, true}, {880, 149, true, false}, {880, 149, true, true}, {880, 149, true, false}, + {880, 149, true, true}, {880, 149, true, false}, {880, 149, true, true}, {783, 149, true, false}, + {783, 149, true, false}, {783, 149, true, true}, {783, 149, true, false}, {783, 149, true, false}, + {783, 149, true, true}, {783, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {783, 149, true, true}, {783, 149, true, true}, {698, 149, true, true}, {698, 149, true, false}, + {698, 149, true, true}, {698, 149, true, true}, {698, 149, true, true}, {698, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {659, 149, true, true}, {659, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {659, 149, true, true}, {698, 149, true, true}, + {880, 149, true, true}, {698, 149, true, false}, {659, 149, true, true}, {587, 149, true, true}, + {659, 149, true, true}, {698, 149, true, true}, {932, 149, true, true}, {698, 149, true, false}, + {659, 149, true, true}, {587, 149, true, true}, {659, 149, true, true}, {698, 149, true, true}, + {880, 149, true, true}, {880, 149, true, false}, {880, 149, true, true}, {880, 149, true, true}, + {1046, 149, true, true}, {1046, 149, true, true}, {880, 149, true, true}, {783, 149, true, false}, + {783, 149, true, false}, {783, 149, true, true}, {783, 149, true, false}, {783, 149, true, false}, + {783, 149, true, true}, {783, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {783, 149, true, true}, {783, 149, true, true}, {698, 149, true, true}, {698, 149, true, false}, + {698, 149, true, true}, {698, 149, true, true}, {698, 149, true, true}, {698, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {659, 149, true, true}, {659, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {293, 149, true, false}, {293, 149, true, true}, {587, 149, true, false}, {659, 149, true, true}, + {698, 149, true, true}, {698, 149, true, false}, {783, 149, true, true}, {783, 149, true, true}, + {880, 149, true, false}, {880, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {698, 149, true, false}, {659, 149, true, true}, + {659, 149, true, true}, {659, 149, true, false}, {659, 149, true, true}, {659, 149, true, true}, + {587, 149, true, false}, {554, 149, true, true}, {587, 149, true, true}, {587, 149, true, false}, + {587, 149, true, true}, {587, 149, true, true}, {0, 300, false, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/potc_3.mid b/scripts/midillis/Alla_Turca/potc_3.mid new file mode 100644 index 0000000..c14f89f Binary files /dev/null and b/scripts/midillis/Alla_Turca/potc_3.mid differ diff --git a/scripts/midillis/Alla_Turca/potc_3_c.txt b/scripts/midillis/Alla_Turca/potc_3_c.txt new file mode 100644 index 0000000..756a8df --- /dev/null +++ b/scripts/midillis/Alla_Turca/potc_3_c.txt @@ -0,0 +1,165 @@ +// Converted from: potc_3.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_potc_3[] = { + {293, 249, false, false}, {0, 49, false, false}, {293, 146, false, false}, {293, 253, false, false}, + {0, 49, false, false}, {293, 146, false, false}, {293, 253, false, false}, {0, 49, false, false}, + {293, 146, false, false}, {293, 149, false, false}, {293, 149, false, false}, {293, 149, false, false}, + {293, 253, false, false}, {0, 49, false, false}, {293, 146, false, false}, {293, 253, false, false}, + {0, 49, false, false}, {293, 146, false, false}, {293, 253, false, false}, {0, 49, false, false}, + {293, 146, false, false}, {293, 149, false, false}, {293, 149, false, false}, {293, 149, false, false}, + {293, 253, true, false}, {0, 49, false, false}, {293, 146, false, false}, {293, 253, false, false}, + {0, 49, false, false}, {293, 75, false, false}, {293, 71, false, false}, {293, 253, true, false}, + {0, 49, false, false}, {293, 99, false, false}, {293, 46, false, false}, {293, 149, true, false}, + {0, 149, false, true}, {261, 103, false, false}, {261, 46, false, false}, {293, 253, true, true}, + {0, 49, false, false}, {293, 146, true, true}, {293, 103, true, true}, {0, 49, false, false}, + {293, 99, false, true}, {293, 46, false, false}, {329, 149, true, true}, {349, 253, true, true}, + {0, 49, false, false}, {349, 146, true, true}, {349, 103, true, false}, {0, 49, false, false}, + {349, 99, false, true}, {349, 46, false, false}, {391, 149, true, false}, {329, 253, true, true}, + {0, 49, false, false}, {329, 146, true, true}, {329, 103, true, false}, {0, 49, false, false}, + {293, 99, false, true}, {293, 46, false, false}, {261, 149, true, true}, {261, 149, true, true}, + {293, 103, false, true}, {293, 49, false, false}, {293, 99, true, true}, {0, 46, false, false}, + {0, 153, true, true}, {0, 99, false, true}, {0, 46, false, false}, {261, 149, true, true}, + {293, 253, true, true}, {0, 49, false, false}, {293, 146, true, true}, {293, 103, true, false}, + {0, 49, false, false}, {293, 99, false, true}, {293, 46, false, false}, {329, 149, true, true}, + {349, 253, true, true}, {0, 49, false, false}, {349, 146, true, true}, {349, 103, true, false}, + {0, 49, false, false}, {349, 99, false, false}, {349, 46, false, false}, {391, 149, true, false}, + {329, 253, true, false}, {0, 49, false, false}, {329, 146, true, false}, {329, 103, true, false}, + {0, 49, false, false}, {293, 99, false, true}, {293, 46, false, false}, {261, 149, true, false}, + {293, 253, true, true}, {0, 49, false, false}, {0, 146, true, true}, {0, 153, true, true}, + {0, 99, false, true}, {0, 46, false, false}, {261, 149, true, true}, {293, 253, true, true}, + {0, 49, false, false}, {293, 146, true, true}, {293, 103, true, true}, {0, 49, false, false}, + {293, 99, false, true}, {293, 46, false, false}, {349, 149, true, true}, {391, 253, true, true}, + {0, 49, false, false}, {391, 146, true, true}, {391, 103, true, false}, {0, 49, false, false}, + {391, 99, false, false}, {391, 46, false, false}, {440, 149, true, false}, {466, 253, true, false}, + {0, 49, false, false}, {466, 146, true, false}, {466, 103, true, false}, {0, 49, false, false}, + {440, 99, false, false}, {440, 46, false, false}, {391, 149, true, false}, {440, 149, true, true}, + {293, 103, false, false}, {293, 49, false, false}, {293, 99, true, true}, {0, 46, false, false}, + {0, 153, true, true}, {293, 99, false, false}, {293, 46, false, false}, {329, 149, true, true}, + {349, 253, true, true}, {0, 49, false, false}, {349, 146, true, true}, {349, 103, true, false}, + {0, 49, false, false}, {391, 99, false, true}, {391, 49, false, false}, {391, 99, true, false}, + {0, 46, false, false}, {440, 149, true, true}, {293, 103, false, false}, {293, 49, false, false}, + {293, 99, true, true}, {0, 46, false, false}, {0, 153, true, true}, {293, 99, false, false}, + {293, 46, false, false}, {349, 149, true, true}, {329, 253, true, true}, {0, 49, false, false}, + {329, 146, true, true}, {329, 103, true, false}, {0, 49, false, false}, {349, 99, false, false}, + {349, 46, false, false}, {293, 149, true, true}, {329, 149, true, true}, {0, 103, false, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 153, true, false}, {440, 99, false, false}, + {440, 46, false, false}, {523, 149, true, false}, {587, 253, true, true}, {0, 49, false, false}, + {587, 146, true, true}, {587, 103, true, true}, {0, 49, false, false}, {587, 99, false, false}, + {587, 46, false, false}, {659, 149, true, false}, {698, 253, true, false}, {0, 49, false, false}, + {698, 146, true, false}, {698, 103, true, false}, {0, 49, false, false}, {698, 99, false, false}, + {698, 46, false, false}, {783, 149, true, false}, {659, 253, true, false}, {0, 49, false, false}, + {659, 146, true, false}, {659, 103, true, false}, {0, 49, false, false}, {587, 99, false, false}, + {587, 46, false, false}, {523, 149, true, false}, {523, 149, true, true}, {587, 103, false, false}, + {587, 49, false, false}, {587, 99, true, true}, {0, 46, false, false}, {0, 153, true, true}, + {440, 99, false, false}, {440, 46, false, false}, {523, 149, true, true}, {587, 253, true, false}, + {0, 49, false, false}, {587, 146, true, false}, {587, 103, true, false}, {0, 49, false, false}, + {587, 99, false, false}, {587, 46, false, false}, {659, 149, true, false}, {698, 253, true, false}, + {0, 49, false, false}, {698, 146, true, false}, {698, 103, true, false}, {0, 49, false, false}, + {698, 99, false, false}, {698, 46, false, false}, {783, 149, true, false}, {659, 253, true, false}, + {0, 49, false, false}, {659, 146, true, false}, {659, 103, true, false}, {0, 49, false, false}, + {587, 99, false, false}, {587, 46, false, false}, {523, 149, true, false}, {587, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 153, true, true}, {440, 99, false, false}, + {440, 46, false, false}, {523, 149, true, true}, {587, 253, true, true}, {0, 49, false, false}, + {587, 146, true, true}, {587, 103, true, true}, {0, 49, false, false}, {587, 99, false, false}, + {587, 46, false, false}, {698, 149, true, true}, {783, 253, true, false}, {0, 49, false, false}, + {783, 146, true, false}, {783, 103, true, false}, {0, 49, false, false}, {783, 99, false, false}, + {783, 46, false, false}, {880, 149, true, false}, {932, 253, true, false}, {0, 49, false, false}, + {932, 146, true, false}, {932, 103, true, false}, {0, 49, false, false}, {880, 99, false, false}, + {880, 46, false, false}, {783, 149, true, false}, {880, 149, true, true}, {587, 103, false, false}, + {587, 49, false, false}, {587, 99, true, true}, {0, 46, false, false}, {0, 153, true, true}, + {587, 99, false, false}, {587, 46, false, false}, {659, 149, true, true}, {698, 253, true, false}, + {0, 49, false, false}, {698, 146, true, false}, {698, 103, true, false}, {0, 49, false, false}, + {783, 99, false, false}, {783, 49, false, false}, {783, 99, true, false}, {0, 46, false, false}, + {880, 149, true, true}, {587, 103, false, false}, {587, 49, false, false}, {587, 99, true, true}, + {0, 46, false, false}, {0, 153, true, true}, {587, 99, false, false}, {587, 46, false, false}, + {698, 149, true, true}, {659, 253, true, false}, {0, 49, false, false}, {659, 146, true, false}, + {659, 103, true, false}, {0, 49, false, false}, {587, 99, false, false}, {587, 46, false, false}, + {554, 149, true, false}, {587, 253, true, true}, {0, 49, false, false}, {587, 249, true, true}, + {0, 49, false, false}, {659, 249, true, false}, {0, 49, false, false}, {698, 249, true, false}, + {0, 49, false, false}, {698, 146, true, false}, {698, 103, false, false}, {698, 46, false, false}, + {783, 253, true, false}, {0, 49, false, false}, {880, 146, true, false}, {698, 103, false, false}, + {698, 46, false, false}, {0, 149, true, false}, {0, 153, true, false}, {698, 99, false, false}, + {698, 46, false, false}, {587, 149, true, false}, {440, 149, true, false}, {0, 103, false, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 253, true, false}, {0, 49, false, false}, + {0, 146, true, false}, {932, 149, true, false}, {0, 103, false, false}, {0, 49, false, false}, + {0, 146, true, false}, {0, 153, true, false}, {783, 99, false, false}, {783, 46, false, false}, + {587, 149, true, false}, {466, 149, true, false}, {0, 103, false, false}, {0, 49, false, false}, + {0, 146, true, false}, {0, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {329, 149, true, false}, {329, 103, false, false}, {329, 49, false, false}, {329, 99, true, false}, + {0, 46, false, false}, {293, 253, true, true}, {293, 49, false, false}, {293, 99, true, false}, + {0, 46, false, false}, {349, 253, true, true}, {349, 49, false, false}, {349, 99, true, false}, + {0, 46, false, false}, {0, 153, true, false}, {349, 99, false, false}, {349, 46, false, false}, + {391, 149, true, false}, {440, 253, true, true}, {0, 49, false, false}, {440, 146, true, true}, + {440, 103, true, true}, {0, 49, false, false}, {440, 99, false, false}, {440, 49, false, false}, + {440, 99, true, true}, {0, 46, false, false}, {466, 149, true, true}, {440, 103, false, false}, + {440, 46, false, false}, {0, 149, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {0, 149, true, true}, {391, 253, true, false}, {0, 49, false, false}, {391, 146, true, false}, + {391, 103, true, false}, {0, 49, false, false}, {391, 99, false, false}, {391, 49, false, false}, + {391, 99, true, false}, {0, 46, false, false}, {391, 149, true, true}, {440, 103, false, false}, + {440, 46, false, false}, {0, 149, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {0, 149, true, true}, {440, 253, true, true}, {0, 49, false, false}, {440, 146, true, true}, + {440, 103, true, true}, {0, 49, false, false}, {440, 99, false, false}, {440, 49, false, false}, + {440, 99, true, true}, {0, 46, false, false}, {466, 149, true, true}, {440, 103, false, false}, + {440, 46, false, false}, {0, 149, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {0, 149, true, true}, {391, 253, true, false}, {0, 49, false, false}, {349, 146, true, false}, + {349, 103, true, false}, {0, 49, false, false}, {329, 99, false, true}, {329, 49, false, false}, + {329, 99, true, false}, {0, 46, false, false}, {293, 253, true, true}, {0, 49, false, false}, + {0, 146, true, true}, {0, 153, true, true}, {293, 99, false, false}, {293, 46, false, false}, + {329, 149, true, true}, {349, 253, true, true}, {349, 49, false, false}, {349, 146, true, true}, + {349, 78, true, true}, {0, 75, false, false}, {391, 99, false, false}, {391, 46, false, false}, + {440, 149, true, true}, {391, 253, true, false}, {0, 49, false, false}, {349, 146, true, false}, + {349, 103, true, false}, {0, 46, false, false}, {329, 149, true, false}, {329, 103, true, false}, + {0, 46, false, false}, {349, 253, true, true}, {0, 49, false, false}, {391, 146, true, true}, + {391, 103, true, true}, {0, 46, false, false}, {440, 149, true, true}, {440, 103, true, true}, + {0, 46, false, false}, {391, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {349, 149, true, false}, {391, 149, true, false}, {440, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 149, true, true}, {391, 149, true, true}, + {349, 149, true, true}, {329, 253, true, false}, {0, 49, false, false}, {349, 146, true, false}, + {349, 103, true, false}, {0, 46, false, false}, {329, 149, true, false}, {329, 103, true, false}, + {0, 46, false, false}, {293, 253, true, true}, {0, 49, false, false}, {0, 146, true, true}, + {0, 153, true, true}, {329, 99, false, false}, {329, 46, false, false}, {261, 149, true, true}, + {293, 149, true, true}, {0, 103, false, false}, {0, 49, false, false}, {0, 146, true, true}, + {0, 149, true, true}, {587, 149, true, true}, {659, 149, true, true}, {698, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 149, true, true}, {659, 149, true, true}, + {698, 149, true, true}, {783, 253, true, false}, {0, 49, false, false}, {698, 146, true, false}, + {698, 103, true, false}, {0, 46, false, false}, {783, 149, true, false}, {783, 103, true, false}, + {0, 46, false, false}, {880, 253, true, true}, {0, 49, false, false}, {783, 146, true, true}, + {783, 103, true, true}, {0, 46, false, false}, {698, 149, true, true}, {698, 103, true, true}, + {0, 46, false, false}, {587, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {587, 149, true, false}, {659, 149, true, false}, {698, 253, true, true}, + {0, 49, false, false}, {783, 146, true, true}, {783, 103, true, true}, {0, 46, false, false}, + {880, 149, true, true}, {880, 103, true, true}, {0, 46, false, false}, {932, 253, true, false}, + {0, 49, false, false}, {587, 146, true, false}, {587, 103, true, false}, {0, 46, false, false}, + {783, 149, true, false}, {783, 103, true, false}, {0, 46, false, false}, {698, 253, true, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 149, true, false}, {783, 149, true, false}, + {659, 149, true, false}, {587, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {659, 149, true, false}, {554, 149, true, false}, {880, 253, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {0, 149, true, true}, {932, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 149, true, false}, {880, 253, true, true}, + {0, 49, false, false}, {880, 146, true, true}, {880, 103, true, true}, {0, 49, false, false}, + {880, 99, false, false}, {880, 49, false, false}, {880, 99, true, true}, {0, 46, false, false}, + {880, 149, true, false}, {783, 103, false, false}, {783, 46, false, false}, {0, 149, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 149, true, false}, {783, 253, true, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 149, true, false}, {0, 149, true, false}, + {0, 149, true, false}, {698, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 149, true, false}, {698, 253, true, false}, + {0, 49, false, false}, {783, 146, true, false}, {783, 103, true, false}, {0, 46, false, false}, + {659, 149, true, false}, {659, 103, true, false}, {0, 46, false, false}, {587, 253, true, true}, + {587, 49, false, false}, {587, 99, true, true}, {0, 46, false, false}, {587, 149, true, true}, + {659, 149, true, true}, {698, 149, true, true}, {880, 253, true, true}, {880, 49, false, false}, + {880, 99, true, true}, {0, 46, false, false}, {587, 149, true, true}, {659, 149, true, true}, + {698, 149, true, true}, {932, 253, true, false}, {932, 49, false, false}, {932, 99, true, false}, + {0, 46, false, false}, {587, 149, true, false}, {659, 149, true, false}, {698, 149, true, false}, + {880, 253, true, true}, {0, 49, false, false}, {880, 146, true, true}, {880, 103, true, true}, + {0, 46, false, false}, {1046, 149, true, true}, {1046, 103, true, true}, {0, 46, false, false}, + {880, 149, true, false}, {783, 103, false, false}, {783, 46, false, false}, {0, 149, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 149, true, false}, {783, 253, true, false}, + {0, 49, false, false}, {0, 146, true, false}, {0, 149, true, false}, {0, 149, true, false}, + {0, 149, true, false}, {698, 253, true, false}, {0, 49, false, false}, {0, 146, true, false}, + {0, 149, true, false}, {0, 149, true, false}, {0, 149, true, false}, {698, 253, true, false}, + {0, 49, false, false}, {783, 146, true, false}, {783, 103, true, false}, {0, 46, false, false}, + {659, 149, true, false}, {659, 103, true, false}, {0, 46, false, false}, {587, 403, true, true}, + {0, 49, false, false}, {0, 146, true, true}, {0, 149, true, true}, {0, 149, true, true}, + {293, 1128, true, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/seven.mid b/scripts/midillis/Alla_Turca/seven.mid new file mode 100644 index 0000000..270235f Binary files /dev/null and b/scripts/midillis/Alla_Turca/seven.mid differ diff --git a/scripts/midillis/Alla_Turca/seven_c.txt b/scripts/midillis/Alla_Turca/seven_c.txt new file mode 100644 index 0000000..0fb184f --- /dev/null +++ b/scripts/midillis/Alla_Turca/seven_c.txt @@ -0,0 +1,207 @@ +// Converted from: seven.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_seven[] = { + {0, 750, true, false}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, false}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, false, false}, {0, 250, true, false}, + {0, 1000, true, false}, {0, 1000, true, false}, {0, 750, true, false}, {0, 125, true, false}, + {0, 125, false, false}, {0, 125, true, false}, {0, 250, false, false}, {0, 125, true, false}, + {0, 250, false, false}, {0, 250, true, false}, {0, 1000, true, false}, {0, 1000, true, false}, + {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, + {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, + {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, + {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, + {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, + {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, + {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, + {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, + {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, + {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, + {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, + {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, + {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, + {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, + {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, + {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, + {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, false}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {277, 250, true, true}, + {329, 250, true, true}, {329, 218, true, true}, {329, 30, true, true}, {329, 501, true, true}, + {329, 250, true, true}, {329, 125, true, true}, {329, 125, false, false}, {391, 125, true, true}, + {391, 125, false, false}, {0, 125, false, false}, {329, 125, true, true}, {329, 125, true, true}, + {0, 125, false, false}, {293, 250, true, true}, {261, 500, true, true}, {261, 500, true, true}, + {0, 500, true, true}, {0, 468, true, true}, {0, 30, true, true}, {329, 501, true, true}, + {329, 250, true, true}, {329, 125, true, true}, {329, 125, false, false}, {391, 125, true, true}, + {391, 125, false, false}, {0, 125, false, false}, {329, 125, true, true}, {329, 125, true, true}, + {0, 125, false, false}, {293, 250, true, true}, {261, 375, true, true}, {293, 125, true, true}, + {293, 250, true, true}, {261, 250, true, true}, {0, 500, true, true}, {0, 468, true, true}, + {0, 30, true, true}, {329, 501, true, true}, {329, 250, true, true}, {329, 125, true, true}, + {329, 125, false, false}, {391, 125, true, true}, {391, 125, false, false}, {0, 125, false, false}, + {329, 125, true, true}, {329, 125, true, true}, {0, 125, false, false}, {293, 250, true, true}, + {261, 500, true, true}, {261, 500, true, true}, {0, 500, true, true}, {0, 468, true, true}, + {0, 30, true, true}, {329, 501, true, true}, {329, 250, true, true}, {329, 125, true, true}, + {329, 125, false, false}, {391, 125, true, true}, {391, 125, false, false}, {0, 125, false, false}, + {329, 125, true, true}, {329, 125, true, true}, {0, 125, false, false}, {293, 250, true, true}, + {261, 375, true, true}, {293, 125, true, true}, {293, 250, true, true}, {261, 250, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, false}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {277, 250, true, true}, + {329, 250, true, true}, {329, 250, true, true}, {0, 750, true, true}, {0, 125, true, false}, + {0, 125, false, false}, {0, 125, true, false}, {0, 250, false, false}, {0, 125, true, false}, + {0, 250, false, false}, {0, 250, true, false}, {0, 1000, true, false}, {0, 1000, true, false}, + {0, 750, true, false}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, false}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, false, false}, {0, 250, true, false}, + {0, 1000, true, false}, {0, 1000, true, false}, {0, 500, true, true}, {0, 250, true, true}, + {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, + {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, + {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, + {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, + {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, + {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, + {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, + {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, + {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, + {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, + {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, + {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, + {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, + {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {0, 250, true, false}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {277, 250, true, true}, {329, 250, true, true}, {329, 218, true, true}, + {329, 30, true, true}, {329, 501, true, true}, {329, 250, true, true}, {329, 125, true, true}, + {329, 125, false, false}, {391, 125, true, true}, {391, 125, false, false}, {329, 125, false, false}, + {329, 125, true, true}, {329, 125, true, true}, {0, 125, false, false}, {329, 250, true, true}, + {391, 500, true, true}, {391, 499, true, true}, {369, 499, true, true}, {369, 468, true, true}, + {369, 30, true, true}, {329, 501, true, true}, {329, 250, true, true}, {329, 125, true, true}, + {329, 125, false, false}, {391, 125, true, true}, {391, 125, false, false}, {0, 125, false, false}, + {440, 125, true, true}, {440, 125, true, true}, {440, 125, false, false}, {391, 250, true, true}, + {391, 125, true, true}, {261, 125, false, false}, {391, 125, false, false}, {440, 125, true, true}, + {440, 125, true, true}, {293, 125, false, false}, {391, 125, true, true}, {261, 125, false, false}, + {369, 499, true, true}, {369, 468, true, true}, {369, 30, true, true}, {329, 501, true, true}, + {329, 250, true, true}, {329, 125, true, true}, {329, 125, false, false}, {391, 125, true, true}, + {391, 125, false, false}, {329, 125, false, false}, {329, 125, true, true}, {329, 125, true, true}, + {0, 125, false, false}, {329, 250, true, true}, {391, 500, true, true}, {391, 499, true, true}, + {369, 499, true, true}, {369, 468, true, true}, {369, 30, true, true}, {329, 501, true, true}, + {329, 250, true, true}, {329, 125, true, true}, {329, 125, false, false}, {391, 125, true, true}, + {391, 125, false, false}, {0, 125, false, false}, {440, 125, true, true}, {440, 125, true, true}, + {440, 125, false, false}, {391, 250, true, true}, {391, 125, true, true}, {261, 125, false, false}, + {391, 125, false, false}, {440, 125, true, true}, {440, 125, true, true}, {293, 125, false, false}, + {391, 125, true, true}, {261, 125, false, false}, {369, 499, true, true}, {369, 468, true, true}, + {622, 30, true, true}, {659, 501, true, true}, {659, 250, true, true}, {659, 125, true, true}, + {659, 93, false, false}, {659, 30, false, false}, {783, 126, true, true}, {783, 125, false, false}, + {783, 125, false, false}, {659, 125, true, true}, {659, 125, true, true}, {659, 125, false, false}, + {659, 250, true, true}, {783, 500, true, true}, {783, 499, true, true}, {739, 499, true, true}, + {739, 468, true, true}, {739, 30, true, true}, {659, 12, true, true}, {329, 488, false, false}, + {329, 250, true, true}, {659, 125, true, true}, {659, 125, false, false}, {783, 125, true, true}, + {783, 125, false, false}, {783, 125, false, false}, {880, 125, true, true}, {880, 125, true, true}, + {880, 125, false, false}, {783, 250, true, true}, {783, 187, true, true}, {261, 62, false, false}, + {783, 125, false, false}, {880, 125, true, true}, {880, 125, true, true}, {293, 125, false, false}, + {783, 125, true, true}, {261, 125, false, false}, {739, 499, true, true}, {739, 468, true, true}, + {739, 30, true, true}, {659, 501, true, true}, {659, 250, true, true}, {659, 125, true, true}, + {659, 93, false, false}, {659, 30, false, false}, {739, 126, true, true}, {739, 125, false, false}, + {739, 125, false, false}, {659, 125, true, true}, {659, 125, true, true}, {659, 125, false, false}, + {659, 250, true, true}, {783, 499, true, true}, {783, 499, true, true}, {783, 499, true, true}, + {783, 468, true, true}, {783, 30, true, true}, {659, 501, true, true}, {659, 250, true, true}, + {659, 125, true, true}, {659, 93, false, false}, {659, 30, false, false}, {739, 126, true, true}, + {739, 125, false, false}, {739, 125, false, false}, {659, 125, true, true}, {659, 125, true, true}, + {659, 125, false, false}, {659, 250, true, true}, {739, 375, true, true}, {659, 125, true, true}, + {659, 249, true, true}, {523, 250, true, true}, {493, 499, true, true}, {493, 499, true, true}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {0, 250, true, false}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {277, 250, true, true}, {329, 250, true, true}, {329, 250, true, true}, + {0, 750, true, false}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, false}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, false, false}, {0, 250, true, false}, + {0, 1000, true, false}, {0, 1000, true, false}, {0, 500, true, true}, {0, 250, true, true}, + {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, + {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, + {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, + {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, + {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, + {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, + {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, + {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, + {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, + {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, {0, 125, true, false}, + {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, {0, 125, true, false}, + {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 250, true, true}, + {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, {0, 250, false, false}, + {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, {0, 500, true, true}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 250, true, true}, {0, 125, true, false}, {0, 125, false, false}, {0, 125, true, true}, + {0, 250, false, false}, {0, 125, true, false}, {0, 250, true, true}, {0, 250, true, false}, + {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {0, 250, true, false}, {0, 250, true, true}, {0, 250, true, true}, + {0, 250, true, true}, {277, 250, true, true}, {329, 250, true, true}, {329, 218, true, true}, + {329, 30, true, true}, {329, 501, true, true}, {329, 250, true, true}, {329, 125, true, true}, + {329, 125, false, false}, {391, 125, true, true}, {391, 125, false, false}, {0, 125, false, false}, + {329, 125, true, true}, {329, 125, true, true}, {0, 125, false, false}, {293, 250, true, true}, + {261, 500, true, true}, {261, 500, true, true}, {0, 500, true, true}, {0, 468, true, true}, + {0, 30, true, true}, {329, 501, true, true}, {329, 250, true, true}, {329, 125, true, true}, + {329, 125, false, false}, {391, 125, true, true}, {391, 125, false, false}, {0, 125, false, false}, + {329, 125, true, true}, {329, 125, true, true}, {0, 125, false, false}, {293, 250, true, true}, + {261, 375, true, true}, {293, 125, true, true}, {293, 250, true, true}, {261, 250, true, true}, + {0, 500, true, true}, {0, 468, true, true}, {0, 30, true, true}, {329, 501, true, true}, + {329, 250, true, true}, {329, 125, true, true}, {329, 125, false, false}, {391, 125, true, true}, + {391, 125, false, false}, {0, 125, false, false}, {329, 125, true, true}, {329, 125, true, true}, + {0, 125, false, false}, {293, 250, true, true}, {261, 500, true, true}, {261, 500, true, true}, + {0, 500, true, true}, {0, 468, true, true}, {0, 30, true, true}, {329, 501, true, true}, + {329, 250, true, true}, {329, 125, true, true}, {329, 125, false, false}, {391, 125, true, true}, + {391, 125, false, false}, {0, 125, false, false}, {329, 125, true, true}, {329, 125, true, true}, + {0, 125, false, false}, {293, 250, true, true}, {261, 375, true, true}, {293, 125, true, true}, + {293, 250, true, true}, {261, 250, true, true}, {0, 500, true, true}, {0, 500, true, true}, + {415, 2000, true, true}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/sonic.mid b/scripts/midillis/Alla_Turca/sonic.mid new file mode 100644 index 0000000..1a76e22 Binary files /dev/null and b/scripts/midillis/Alla_Turca/sonic.mid differ diff --git a/scripts/midillis/Alla_Turca/sonic_c.txt b/scripts/midillis/Alla_Turca/sonic_c.txt new file mode 100644 index 0000000..03a5367 --- /dev/null +++ b/scripts/midillis/Alla_Turca/sonic_c.txt @@ -0,0 +1,214 @@ +// Converted from: sonic.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_sonic[] = { + {880, 114, false, false}, {698, 95, false, false}, {880, 95, true, false}, {698, 87, false, false}, + {698, 11, false, false}, {987, 99, true, false}, {783, 83, false, false}, {783, 11, false, false}, + {987, 95, true, false}, {783, 89, false, false}, {783, 11, false, false}, {1046, 101, true, false}, + {880, 83, false, false}, {880, 11, false, false}, {1046, 95, true, false}, {880, 87, false, false}, + {880, 11, false, false}, {1174, 99, true, false}, {987, 83, false, false}, {987, 11, false, false}, + {1174, 95, true, false}, {987, 87, false, false}, {987, 13, false, false}, {493, 90, true, false}, + {493, 118, false, false}, {493, 77, true, false}, {493, 118, false, false}, {493, 75, true, false}, + {493, 118, false, false}, {440, 78, true, false}, {440, 118, false, false}, {440, 77, true, false}, + {440, 118, false, false}, {440, 75, true, false}, {440, 118, false, false}, {493, 76, true, false}, + {493, 118, false, false}, {493, 76, true, false}, {493, 120, false, false}, {493, 90, true, false}, + {493, 106, false, false}, {493, 11, false, false}, {440, 77, true, false}, {440, 118, false, false}, + {440, 75, true, false}, {440, 118, false, false}, {440, 77, true, false}, {440, 118, false, false}, + {493, 78, true, false}, {493, 118, false, false}, {493, 75, true, false}, {493, 118, false, false}, + {440, 76, true, false}, {440, 118, false, false}, {440, 76, true, false}, {440, 118, false, false}, + {523, 92, true, false}, {523, 118, false, false}, {523, 77, true, false}, {523, 118, false, false}, + {523, 75, true, false}, {523, 118, false, false}, {493, 78, true, false}, {493, 118, false, false}, + {493, 77, true, false}, {493, 118, false, false}, {493, 75, true, false}, {493, 118, false, false}, + {440, 76, true, false}, {440, 118, false, false}, {440, 76, true, false}, {440, 120, false, false}, + {440, 90, true, false}, {440, 118, false, false}, {440, 195, true, false}, {440, 23, true, false}, + {440, 52, false, false}, {440, 118, false, false}, {440, 196, true, false}, {440, 23, true, false}, + {440, 54, false, false}, {440, 118, false, false}, {440, 194, true, false}, {440, 23, true, false}, + {440, 52, false, false}, {440, 118, false, false}, {440, 76, true, false}, {440, 118, false, false}, + {440, 92, true, false}, {440, 118, false, false}, {440, 77, true, false}, {440, 118, false, false}, + {440, 75, true, false}, {440, 118, false, false}, {493, 78, true, false}, {493, 118, false, false}, + {493, 77, true, false}, {493, 118, false, false}, {493, 75, true, false}, {493, 118, false, false}, + {523, 76, true, false}, {523, 118, false, false}, {523, 76, true, false}, {523, 118, false, false}, + {440, 92, true, false}, {440, 118, false, false}, {440, 77, true, false}, {440, 118, false, false}, + {440, 75, true, false}, {440, 118, false, false}, {493, 78, true, false}, {493, 118, false, false}, + {493, 77, true, false}, {493, 118, false, false}, {493, 75, true, false}, {493, 118, false, false}, + {523, 76, true, false}, {523, 118, false, false}, {523, 76, true, false}, {523, 118, false, false}, + {523, 92, true, false}, {523, 118, false, false}, {523, 77, true, false}, {523, 118, false, false}, + {523, 75, true, false}, {523, 118, false, false}, {493, 78, true, false}, {493, 118, false, false}, + {493, 77, true, false}, {493, 118, false, false}, {493, 75, true, false}, {493, 118, false, false}, + {493, 75, true, false}, {493, 118, false, false}, {493, 76, true, false}, {493, 120, false, false}, + {493, 90, true, false}, {493, 118, false, false}, {493, 77, true, false}, {493, 118, false, false}, + {493, 75, true, false}, {493, 118, false, false}, {493, 77, true, false}, {493, 118, false, false}, + {0, 78, true, false}, {0, 118, false, false}, {0, 194, true, false}, {0, 23, true, false}, + {0, 171, false, false}, {0, 23, true, false}, {0, 173, false, false}, {0, 21, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, {880, 75, true, false}, + {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, {1046, 183, true, false}, + {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, {1046, 106, false, false}, + {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, {987, 77, true, false}, + {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, {783, 23, true, false}, + {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, {0, 23, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, + {1318, 11, true, false}, {1318, 66, false, false}, {1318, 118, false, false}, {1318, 11, true, false}, + {1174, 64, false, false}, {1174, 118, false, false}, {1174, 75, true, false}, {1174, 118, false, false}, + {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, + {783, 23, true, false}, {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, + {880, 75, true, false}, {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, + {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, {783, 75, true, false}, + {783, 118, false, false}, {783, 75, true, false}, {783, 118, false, false}, {783, 195, true, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {880, 77, true, false}, + {880, 118, false, false}, {880, 78, true, false}, {880, 118, false, false}, {880, 11, true, false}, + {698, 64, false, false}, {698, 118, false, false}, {698, 75, true, false}, {698, 118, false, false}, + {880, 183, true, false}, {0, 13, false, false}, {783, 21, true, false}, {783, 68, false, false}, + {783, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, {880, 76, true, false}, + {880, 106, false, false}, {0, 11, false, false}, {783, 77, true, false}, {783, 118, false, false}, + {783, 77, true, false}, {783, 106, false, false}, {0, 11, false, false}, {523, 194, true, false}, + {523, 23, true, false}, {523, 171, false, false}, {523, 23, true, false}, {523, 171, false, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, + {880, 75, true, false}, {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, + {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, + {783, 23, true, false}, {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {783, 77, true, false}, + {783, 118, false, false}, {1318, 11, true, false}, {1318, 66, false, false}, {1318, 118, false, false}, + {1318, 11, true, false}, {1174, 64, false, false}, {1174, 118, false, false}, {1174, 75, true, false}, + {1174, 118, false, false}, {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, + {987, 68, false, false}, {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {1046, 76, true, false}, {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, + {783, 194, true, false}, {783, 23, true, false}, {783, 171, false, false}, {783, 23, true, false}, + {783, 171, false, false}, {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, + {0, 77, true, false}, {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, + {0, 77, true, false}, {0, 118, false, false}, {1046, 77, true, false}, {1046, 106, false, false}, + {0, 11, false, false}, {880, 75, true, false}, {880, 118, false, false}, {880, 75, true, false}, + {880, 118, false, false}, {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, + {987, 68, false, false}, {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {1046, 76, true, false}, {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, + {783, 75, true, false}, {783, 118, false, false}, {783, 75, true, false}, {783, 118, false, false}, + {783, 195, true, false}, {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, + {0, 77, true, false}, {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, + {880, 77, true, false}, {880, 118, false, false}, {880, 78, true, false}, {880, 118, false, false}, + {880, 11, true, false}, {698, 64, false, false}, {698, 118, false, false}, {698, 75, true, false}, + {698, 118, false, false}, {880, 183, true, false}, {0, 13, false, false}, {783, 21, true, false}, + {783, 68, false, false}, {783, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, + {880, 76, true, false}, {880, 106, false, false}, {0, 11, false, false}, {783, 77, true, false}, + {783, 118, false, false}, {783, 77, true, false}, {783, 107, false, false}, {0, 12, false, false}, + {523, 76, true, false}, {523, 120, false, false}, {523, 78, true, false}, {523, 109, false, false}, + {0, 12, false, false}, {659, 79, true, false}, {659, 110, false, false}, {0, 13, false, false}, + {587, 602, true, true}, {587, 587, true, true}, {587, 589, true, true}, {587, 11, false, false}, + {587, 587, true, true}, {587, 391, true, true}, {440, 183, true, true}, {349, 11, false, false}, + {523, 183, false, false}, {349, 11, false, false}, {659, 601, true, true}, {659, 591, true, true}, + {659, 604, true, true}, {659, 11, false, false}, {659, 587, false, true}, {659, 196, false, true}, + {659, 194, false, false}, {880, 183, false, true}, {880, 11, false, false}, {880, 183, false, false}, + {880, 11, false, false}, {830, 601, true, true}, {783, 587, true, true}, {698, 390, true, true}, + {698, 198, false, false}, {0, 11, false, false}, {622, 587, true, true}, {587, 391, true, true}, + {523, 183, true, false}, {0, 11, false, false}, {622, 183, false, false}, {0, 11, false, false}, + {587, 601, true, false}, {587, 587, true, true}, {587, 390, true, false}, {587, 198, true, false}, + {587, 11, false, false}, {587, 184, true, false}, {587, 11, false, false}, {587, 182, true, false}, + {587, 11, false, false}, {587, 184, true, false}, {587, 11, false, false}, {587, 185, true, false}, + {587, 11, false, false}, {587, 182, true, false}, {587, 11, false, false}, {587, 183, true, false}, + {587, 11, false, false}, {587, 183, true, false}, {587, 11, false, false}, {0, 92, true, false}, + {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, {0, 75, true, false}, + {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, {1046, 77, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {880, 75, true, false}, {880, 118, false, false}, + {880, 75, true, false}, {880, 118, false, false}, {1046, 183, true, false}, {0, 13, false, false}, + {987, 21, true, false}, {987, 68, false, false}, {987, 118, false, false}, {987, 77, true, false}, + {987, 118, false, false}, {1046, 76, true, false}, {1046, 106, false, false}, {0, 11, false, false}, + {987, 77, true, false}, {987, 118, false, false}, {987, 77, true, false}, {987, 106, false, false}, + {0, 11, false, false}, {783, 194, true, false}, {783, 23, true, false}, {783, 171, false, false}, + {783, 23, true, false}, {783, 171, false, false}, {0, 23, true, false}, {0, 68, false, false}, + {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, {0, 75, true, false}, + {0, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, {1318, 11, true, false}, + {1318, 66, false, false}, {1318, 118, false, false}, {1318, 11, true, false}, {1174, 64, false, false}, + {1174, 118, false, false}, {1174, 75, true, false}, {1174, 118, false, false}, {1046, 183, true, false}, + {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, {1046, 106, false, false}, + {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, {987, 77, true, false}, + {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, {783, 23, true, false}, + {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, {0, 23, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, {880, 75, true, false}, + {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, {1046, 183, true, false}, + {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, {1046, 106, false, false}, + {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, {987, 77, true, false}, + {987, 106, false, false}, {0, 11, false, false}, {783, 75, true, false}, {783, 118, false, false}, + {783, 75, true, false}, {783, 118, false, false}, {783, 195, true, false}, {0, 23, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {880, 77, true, false}, {880, 118, false, false}, + {880, 78, true, false}, {880, 118, false, false}, {880, 11, true, false}, {698, 64, false, false}, + {698, 118, false, false}, {698, 75, true, false}, {698, 118, false, false}, {880, 183, true, false}, + {0, 13, false, false}, {783, 21, true, false}, {783, 68, false, false}, {783, 118, false, false}, + {783, 77, true, false}, {783, 118, false, false}, {880, 76, true, false}, {880, 106, false, false}, + {0, 11, false, false}, {783, 77, true, false}, {783, 118, false, false}, {783, 77, true, false}, + {783, 106, false, false}, {0, 11, false, false}, {523, 194, true, false}, {523, 23, true, false}, + {523, 171, false, false}, {523, 23, true, false}, {523, 171, false, false}, {0, 23, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, {880, 75, true, false}, + {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, {1046, 183, true, false}, + {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, {1046, 106, false, false}, + {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, {987, 77, true, false}, + {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, {783, 23, true, false}, + {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, {0, 23, true, false}, + {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, {0, 118, false, false}, + {0, 75, true, false}, {0, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, + {1318, 11, true, false}, {1318, 66, false, false}, {1318, 118, false, false}, {1318, 11, true, false}, + {1174, 64, false, false}, {1174, 118, false, false}, {1174, 75, true, false}, {1174, 118, false, false}, + {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, {783, 194, true, false}, + {783, 23, true, false}, {783, 171, false, false}, {783, 23, true, false}, {783, 171, false, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {1046, 77, true, false}, {1046, 106, false, false}, {0, 11, false, false}, + {880, 75, true, false}, {880, 118, false, false}, {880, 75, true, false}, {880, 118, false, false}, + {1046, 183, true, false}, {0, 13, false, false}, {987, 21, true, false}, {987, 68, false, false}, + {987, 118, false, false}, {987, 77, true, false}, {987, 118, false, false}, {1046, 76, true, false}, + {1046, 106, false, false}, {0, 11, false, false}, {987, 77, true, false}, {987, 118, false, false}, + {987, 77, true, false}, {987, 106, false, false}, {0, 11, false, false}, {783, 75, true, false}, + {783, 118, false, false}, {783, 75, true, false}, {783, 118, false, false}, {783, 195, true, false}, + {0, 23, true, false}, {0, 68, false, false}, {0, 118, false, false}, {0, 77, true, false}, + {0, 118, false, false}, {0, 75, true, false}, {0, 118, false, false}, {880, 77, true, false}, + {880, 118, false, false}, {880, 78, true, false}, {880, 118, false, false}, {880, 11, true, false}, + {698, 64, false, false}, {698, 118, false, false}, {698, 75, true, false}, {698, 118, false, false}, + {880, 183, true, false}, {0, 13, false, false}, {783, 21, true, false}, {783, 68, false, false}, + {783, 118, false, false}, {783, 77, true, false}, {783, 118, false, false}, {880, 76, true, false}, + {880, 106, false, false}, {0, 11, false, false}, {783, 77, true, false}, {783, 118, false, false}, + {783, 77, true, false}, {783, 107, false, false}, {0, 12, false, false}, {523, 76, true, false}, + {523, 120, false, false}, {523, 78, true, false}, {523, 109, false, false}, {0, 12, false, false}, + {659, 79, true, false}, {659, 110, false, false}, {0, 13, false, false}, {587, 602, true, true}, + {587, 587, true, true}, {587, 589, true, true}, {587, 11, false, false}, {587, 587, true, true}, + {587, 391, true, true}, {440, 183, true, true}, {349, 11, false, false}, {523, 183, false, false}, + {349, 11, false, false}, {659, 601, true, true}, {659, 591, true, true}, {659, 604, true, true}, + {659, 11, false, false}, {659, 587, false, true}, {659, 196, false, true}, {659, 194, false, false}, + {880, 183, false, true}, {880, 11, false, false}, {880, 183, false, false}, {880, 11, false, false}, + {830, 601, true, true}, {783, 587, true, true}, {698, 390, true, true}, {698, 198, false, false}, + {0, 11, false, false}, {622, 587, true, true}, {587, 391, true, true}, {523, 183, true, false}, + {0, 11, false, false}, {622, 183, false, false}, {0, 11, false, false}, {587, 601, true, false}, + {587, 587, true, true}, {587, 390, true, false}, {587, 198, true, false}, {587, 11, false, false}, + {587, 184, true, false}, {587, 11, false, false}, {587, 182, true, false}, {587, 11, false, false}, + {587, 184, true, false}, {587, 11, false, false}, {587, 185, true, false}, {587, 11, false, false}, + {587, 182, true, false}, {587, 11, false, false}, {587, 183, true, false}, {587, 11, false, false}, + {587, 183, true, false}, {587, 11, false, false}, + {0, 2000, false, false} +}; diff --git a/scripts/midillis/Alla_Turca/tetris_1.mid b/scripts/midillis/Alla_Turca/tetris_1.mid new file mode 100644 index 0000000..fd51fba Binary files /dev/null and b/scripts/midillis/Alla_Turca/tetris_1.mid differ diff --git a/scripts/midillis/Alla_Turca/tetris_1_c.txt b/scripts/midillis/Alla_Turca/tetris_1_c.txt new file mode 100644 index 0000000..4274417 --- /dev/null +++ b/scripts/midillis/Alla_Turca/tetris_1_c.txt @@ -0,0 +1,76 @@ +// Converted from: tetris_1.mid (Clean Melody & Bass-Routed Edition) +const SequenceStep midi_tetris_1[] = { + {659, 266, false, true}, {659, 14, false, false}, {659, 232, false, false}, {493, 15, false, true}, + {493, 216, false, false}, {0, 15, false, false}, {523, 14, false, false}, {523, 219, false, false}, + {329, 15, false, false}, {587, 14, false, true}, {587, 236, false, false}, {587, 14, false, false}, + {587, 236, false, false}, {523, 15, false, true}, {523, 223, false, false}, {0, 15, false, false}, + {493, 15, false, false}, {493, 226, false, false}, {329, 17, false, false}, {440, 13, true, false}, + {440, 256, false, false}, {440, 14, false, true}, {440, 232, false, false}, {440, 15, true, false}, + {440, 216, false, false}, {0, 15, false, false}, {523, 14, false, true}, {523, 219, false, false}, + {0, 15, false, false}, {659, 14, true, false}, {659, 234, false, false}, {659, 14, false, true}, + {659, 231, false, false}, {587, 15, true, false}, {587, 216, false, false}, {0, 15, false, false}, + {523, 14, false, true}, {523, 217, false, false}, {0, 17, false, false}, {493, 12, true, false}, + {493, 251, false, false}, {493, 14, false, true}, {493, 232, false, false}, {493, 15, true, false}, + {493, 216, false, false}, {0, 15, false, false}, {523, 14, false, true}, {523, 219, false, false}, + {0, 15, false, false}, {587, 14, true, false}, {587, 234, false, false}, {587, 14, false, true}, + {587, 231, false, false}, {659, 15, true, false}, {659, 231, false, false}, {659, 14, false, true}, + {659, 232, false, false}, {523, 15, true, false}, {523, 251, false, false}, {523, 14, false, true}, + {523, 232, false, false}, {440, 15, true, false}, {440, 231, false, false}, {440, 14, false, true}, + {440, 233, false, false}, {440, 15, true, false}, {440, 234, false, false}, {440, 14, false, true}, + {440, 231, false, false}, {0, 15, true, true}, {0, 201, false, false}, {0, 30, false, false}, + {261, 14, true, false}, {261, 202, false, false}, {0, 32, false, false}, {0, 12, false, true}, + {0, 251, false, false}, {293, 14, false, false}, {293, 233, false, false}, {587, 14, false, true}, + {587, 231, false, false}, {587, 14, false, false}, {587, 233, false, false}, {698, 15, false, true}, + {698, 219, false, false}, {0, 15, false, false}, {880, 14, false, false}, {880, 231, false, false}, + {880, 14, false, true}, {880, 216, false, false}, {0, 15, false, false}, {293, 14, false, false}, + {293, 234, false, false}, {783, 12, false, true}, {783, 236, false, false}, {0, 15, false, false}, + {698, 14, false, false}, {698, 218, false, false}, {293, 15, false, false}, {659, 14, true, false}, + {659, 231, false, false}, {659, 14, false, false}, {659, 234, false, false}, {659, 14, true, false}, + {659, 234, false, false}, {659, 14, false, false}, {659, 231, false, false}, {523, 15, true, false}, + {523, 216, false, false}, {0, 15, false, false}, {659, 14, false, false}, {659, 234, false, false}, + {659, 12, true, false}, {659, 251, false, false}, {659, 14, false, false}, {659, 232, false, false}, + {587, 15, true, false}, {587, 220, false, false}, {0, 11, false, false}, {523, 14, false, false}, + {523, 219, false, false}, {261, 15, false, false}, {493, 14, true, false}, {493, 234, false, false}, + {493, 14, false, true}, {493, 231, false, false}, {493, 14, true, false}, {493, 229, false, false}, + {523, 17, false, true}, {523, 217, false, false}, {0, 17, false, false}, {587, 12, true, false}, + {587, 251, false, false}, {587, 14, false, true}, {587, 218, false, false}, {0, 15, false, false}, + {659, 14, true, false}, {659, 231, false, false}, {659, 14, false, true}, {659, 233, false, false}, + {523, 15, true, false}, {523, 234, false, false}, {523, 14, false, true}, {523, 231, false, false}, + {440, 15, true, false}, {440, 231, false, false}, {440, 14, false, true}, {440, 232, false, false}, + {440, 15, true, false}, {440, 251, false, false}, {440, 14, false, true}, {440, 232, false, false}, + {0, 15, true, false}, {0, 231, false, false}, {0, 14, false, true}, {0, 249, false, false}, + {0, 977, false, false}, {659, 264, true, false}, {659, 14, false, true}, {659, 233, false, false}, + {659, 14, true, false}, {659, 231, false, false}, {659, 14, false, true}, {659, 233, false, false}, + {523, 15, true, false}, {523, 234, false, false}, {523, 14, false, true}, {523, 231, false, false}, + {523, 14, true, false}, {523, 231, false, false}, {523, 14, false, true}, {523, 232, false, false}, + {587, 15, true, false}, {587, 251, false, false}, {587, 14, false, true}, {587, 233, false, false}, + {587, 14, true, false}, {587, 231, false, false}, {587, 14, false, true}, {587, 233, false, false}, + {493, 15, true, false}, {493, 234, false, false}, {493, 14, false, true}, {493, 231, false, false}, + {493, 14, true, false}, {493, 231, false, false}, {493, 14, false, true}, {493, 232, false, false}, + {523, 15, true, false}, {523, 251, false, false}, {523, 14, false, true}, {523, 233, false, false}, + {523, 14, true, false}, {523, 231, false, false}, {523, 14, false, true}, {523, 233, false, false}, + {440, 15, true, false}, {440, 234, false, false}, {440, 14, false, true}, {440, 231, false, false}, + {440, 14, true, false}, {440, 231, false, false}, {440, 14, false, true}, {440, 232, false, false}, + {415, 15, true, false}, {415, 251, false, false}, {415, 14, false, true}, {415, 233, false, false}, + {415, 14, true, false}, {415, 231, false, false}, {415, 14, false, true}, {415, 233, false, false}, + {493, 15, true, false}, {493, 234, false, false}, {493, 14, false, true}, {493, 231, false, false}, + {493, 14, true, false}, {493, 231, false, false}, {493, 14, false, true}, {493, 232, false, false}, + {659, 15, true, false}, {659, 251, false, false}, {659, 14, false, true}, {659, 233, false, false}, + {659, 14, true, false}, {659, 231, false, false}, {659, 14, false, true}, {659, 233, false, false}, + {523, 15, true, false}, {523, 234, false, false}, {523, 14, false, true}, {523, 231, false, false}, + {523, 14, true, false}, {523, 231, false, false}, {523, 14, false, true}, {523, 232, false, false}, + {587, 15, true, false}, {587, 251, false, false}, {587, 14, false, true}, {587, 233, false, false}, + {587, 14, true, false}, {587, 231, false, false}, {587, 14, false, true}, {587, 233, false, false}, + {493, 15, true, false}, {493, 234, false, false}, {493, 14, false, true}, {493, 231, false, false}, + {493, 14, true, false}, {493, 231, false, false}, {493, 14, false, true}, {493, 232, false, false}, + {523, 15, true, false}, {523, 251, false, false}, {523, 14, false, true}, {523, 232, false, false}, + {659, 15, true, false}, {659, 231, false, false}, {659, 14, false, true}, {659, 233, false, false}, + {880, 15, true, false}, {880, 234, false, false}, {880, 14, false, true}, {880, 231, false, false}, + {880, 14, true, false}, {880, 231, false, false}, {880, 14, false, true}, {880, 232, false, false}, + {830, 15, true, false}, {830, 251, false, false}, {830, 14, false, true}, {830, 233, false, false}, + {830, 14, true, false}, {830, 231, false, false}, {830, 14, false, true}, {830, 234, false, false}, + {830, 14, true, false}, {830, 234, false, false}, {830, 14, false, true}, {830, 231, false, false}, + {830, 14, true, false}, {830, 231, false, false}, {830, 14, false, true}, {830, 232, false, false}, + {0, 15, false, false}, + {0, 2000, false, false} +}; diff --git a/sdkconfig b/sdkconfig new file mode 100644 index 0000000..fc2f675 --- /dev/null +++ b/sdkconfig @@ -0,0 +1,1913 @@ +# +# Automatically generated file. DO NOT EDIT. +# Espressif IoT Development Framework (ESP-IDF) 5.2.2 Project Configuration +# +CONFIG_SOC_BROWNOUT_RESET_SUPPORTED="Not determined" +CONFIG_SOC_TWAI_BRP_DIV_SUPPORTED="Not determined" +CONFIG_SOC_DPORT_WORKAROUND="Not determined" +CONFIG_SOC_CAPS_ECO_VER_MAX=301 +CONFIG_SOC_ADC_SUPPORTED=y +CONFIG_SOC_DAC_SUPPORTED=y +CONFIG_SOC_UART_SUPPORTED=y +CONFIG_SOC_MCPWM_SUPPORTED=y +CONFIG_SOC_GPTIMER_SUPPORTED=y +CONFIG_SOC_SDMMC_HOST_SUPPORTED=y +CONFIG_SOC_BT_SUPPORTED=y +CONFIG_SOC_PCNT_SUPPORTED=y +CONFIG_SOC_WIFI_SUPPORTED=y +CONFIG_SOC_SDIO_SLAVE_SUPPORTED=y +CONFIG_SOC_TWAI_SUPPORTED=y +CONFIG_SOC_EFUSE_SUPPORTED=y +CONFIG_SOC_EMAC_SUPPORTED=y +CONFIG_SOC_ULP_SUPPORTED=y +CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y +CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y +CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y +CONFIG_SOC_RTC_MEM_SUPPORTED=y +CONFIG_SOC_I2S_SUPPORTED=y +CONFIG_SOC_RMT_SUPPORTED=y +CONFIG_SOC_SDM_SUPPORTED=y +CONFIG_SOC_GPSPI_SUPPORTED=y +CONFIG_SOC_LEDC_SUPPORTED=y +CONFIG_SOC_I2C_SUPPORTED=y +CONFIG_SOC_SUPPORT_COEXISTENCE=y +CONFIG_SOC_AES_SUPPORTED=y +CONFIG_SOC_MPI_SUPPORTED=y +CONFIG_SOC_SHA_SUPPORTED=y +CONFIG_SOC_FLASH_ENC_SUPPORTED=y +CONFIG_SOC_SECURE_BOOT_SUPPORTED=y +CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y +CONFIG_SOC_BOD_SUPPORTED=y +CONFIG_SOC_ULP_FSM_SUPPORTED=y +CONFIG_SOC_CLK_TREE_SUPPORTED=y +CONFIG_SOC_MPU_SUPPORTED=y +CONFIG_SOC_WDT_SUPPORTED=y +CONFIG_SOC_SPI_FLASH_SUPPORTED=y +CONFIG_SOC_DPORT_WORKAROUND_DIS_INTERRUPT_LVL=5 +CONFIG_SOC_XTAL_SUPPORT_26M=y +CONFIG_SOC_XTAL_SUPPORT_40M=y +CONFIG_SOC_XTAL_SUPPORT_AUTO_DETECT=y +CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y +CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y +CONFIG_SOC_ADC_DMA_SUPPORTED=y +CONFIG_SOC_ADC_PERIPH_NUM=2 +CONFIG_SOC_ADC_MAX_CHANNEL_NUM=10 +CONFIG_SOC_ADC_ATTEN_NUM=4 +CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2 +CONFIG_SOC_ADC_PATT_LEN_MAX=16 +CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=9 +CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 +CONFIG_SOC_ADC_DIGI_RESULT_BYTES=2 +CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 +CONFIG_SOC_ADC_DIGI_MONITOR_NUM=0 +CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=2 +CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=20 +CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=9 +CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 +CONFIG_SOC_ADC_SHARED_POWER=y +CONFIG_SOC_SHARED_IDCACHE_SUPPORTED=y +CONFIG_SOC_IDCACHE_PER_CORE=y +CONFIG_SOC_CPU_CORES_NUM=2 +CONFIG_SOC_CPU_INTR_NUM=32 +CONFIG_SOC_CPU_HAS_FPU=y +CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y +CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 +CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 +CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=64 +CONFIG_SOC_DAC_CHAN_NUM=2 +CONFIG_SOC_DAC_RESOLUTION=8 +CONFIG_SOC_DAC_DMA_16BIT_ALIGN=y +CONFIG_SOC_GPIO_PORT=1 +CONFIG_SOC_GPIO_PIN_COUNT=40 +CONFIG_SOC_GPIO_VALID_GPIO_MASK=0xFFFFFFFFFF +CONFIG_SOC_GPIO_IN_RANGE_MAX=39 +CONFIG_SOC_GPIO_OUT_RANGE_MAX=33 +CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0xEF0FEA +CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y +CONFIG_SOC_I2C_NUM=2 +CONFIG_SOC_I2C_FIFO_LEN=32 +CONFIG_SOC_I2C_CMD_REG_NUM=16 +CONFIG_SOC_I2C_SUPPORT_SLAVE=y +CONFIG_SOC_I2C_SUPPORT_APB=y +CONFIG_SOC_I2C_STOP_INDEPENDENT=y +CONFIG_SOC_I2S_NUM=2 +CONFIG_SOC_I2S_HW_VERSION_1=y +CONFIG_SOC_I2S_SUPPORTS_APLL=y +CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y +CONFIG_SOC_I2S_SUPPORTS_PDM=y +CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y +CONFIG_SOC_I2S_PDM_MAX_TX_LINES=1 +CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y +CONFIG_SOC_I2S_PDM_MAX_RX_LINES=1 +CONFIG_SOC_I2S_SUPPORTS_ADC_DAC=y +CONFIG_SOC_I2S_SUPPORTS_ADC=y +CONFIG_SOC_I2S_SUPPORTS_DAC=y +CONFIG_SOC_I2S_SUPPORTS_LCD_CAMERA=y +CONFIG_SOC_I2S_TRANS_SIZE_ALIGN_WORD=y +CONFIG_SOC_I2S_LCD_I80_VARIANT=y +CONFIG_SOC_LCD_I80_SUPPORTED=y +CONFIG_SOC_LCD_I80_BUSES=2 +CONFIG_SOC_LCD_I80_BUS_WIDTH=24 +CONFIG_SOC_LEDC_HAS_TIMER_SPECIFIC_MUX=y +CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y +CONFIG_SOC_LEDC_SUPPORT_REF_TICK=y +CONFIG_SOC_LEDC_SUPPORT_HS_MODE=y +CONFIG_SOC_LEDC_CHANNEL_NUM=8 +CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=20 +CONFIG_SOC_MCPWM_GROUPS=2 +CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 +CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 +CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2 +CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2 +CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2 +CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 +CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y +CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 +CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 +CONFIG_SOC_MMU_PERIPH_NUM=2 +CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=3 +CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 +CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 +CONFIG_SOC_PCNT_GROUPS=1 +CONFIG_SOC_PCNT_UNITS_PER_GROUP=8 +CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 +CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 +CONFIG_SOC_RMT_GROUPS=1 +CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=8 +CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=8 +CONFIG_SOC_RMT_CHANNELS_PER_GROUP=8 +CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=64 +CONFIG_SOC_RMT_SUPPORT_REF_TICK=y +CONFIG_SOC_RMT_SUPPORT_APB=y +CONFIG_SOC_RMT_CHANNEL_CLK_INDEPENDENT=y +CONFIG_SOC_RTCIO_PIN_COUNT=18 +CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y +CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y +CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y +CONFIG_SOC_SDM_GROUPS=1 +CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8 +CONFIG_SOC_SDM_CLK_SUPPORT_APB=y +CONFIG_SOC_SPI_HD_BOTH_INOUT_SUPPORTED=y +CONFIG_SOC_SPI_AS_CS_SUPPORTED=y +CONFIG_SOC_SPI_PERIPH_NUM=3 +CONFIG_SOC_SPI_DMA_CHAN_NUM=2 +CONFIG_SOC_SPI_MAX_CS_NUM=3 +CONFIG_SOC_SPI_SUPPORT_CLK_APB=y +CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 +CONFIG_SOC_SPI_MAX_PRE_DIVIDER=8192 +CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y +CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y +CONFIG_SOC_MEMSPI_SRC_FREQ_26M_SUPPORTED=y +CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y +CONFIG_SOC_TIMER_GROUPS=2 +CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=2 +CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=64 +CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4 +CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y +CONFIG_SOC_TOUCH_VERSION_1=y +CONFIG_SOC_TOUCH_SENSOR_NUM=10 +CONFIG_SOC_TOUCH_PAD_MEASURE_WAIT_MAX=0xFF +CONFIG_SOC_TWAI_CONTROLLER_NUM=1 +CONFIG_SOC_TWAI_BRP_MIN=2 +CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y +CONFIG_SOC_TWAI_SUPPORT_MULTI_ADDRESS_LAYOUT=y +CONFIG_SOC_UART_NUM=3 +CONFIG_SOC_UART_HP_NUM=3 +CONFIG_SOC_UART_SUPPORT_APB_CLK=y +CONFIG_SOC_UART_SUPPORT_REF_TICK=y +CONFIG_SOC_UART_FIFO_LEN=128 +CONFIG_SOC_UART_BITRATE_MAX=5000000 +CONFIG_SOC_SPIRAM_SUPPORTED=y +CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y +CONFIG_SOC_SHA_SUPPORT_PARALLEL_ENG=y +CONFIG_SOC_SHA_ENDIANNESS_BE=y +CONFIG_SOC_SHA_SUPPORT_SHA1=y +CONFIG_SOC_SHA_SUPPORT_SHA256=y +CONFIG_SOC_SHA_SUPPORT_SHA384=y +CONFIG_SOC_SHA_SUPPORT_SHA512=y +CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 +CONFIG_SOC_MPI_OPERATIONS_NUM=y +CONFIG_SOC_RSA_MAX_BIT_LEN=4096 +CONFIG_SOC_AES_SUPPORT_AES_128=y +CONFIG_SOC_AES_SUPPORT_AES_192=y +CONFIG_SOC_AES_SUPPORT_AES_256=y +CONFIG_SOC_SECURE_BOOT_V1=y +CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=y +CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=32 +CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 +CONFIG_SOC_PM_SUPPORT_EXT0_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_EXT_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y +CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y +CONFIG_SOC_PM_SUPPORT_RTC_FAST_MEM_PD=y +CONFIG_SOC_PM_SUPPORT_RTC_SLOW_MEM_PD=y +CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y +CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y +CONFIG_SOC_PM_SUPPORT_MODEM_PD=y +CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y +CONFIG_SOC_CLK_APLL_SUPPORTED=y +CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y +CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y +CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y +CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y +CONFIG_SOC_SDMMC_USE_IOMUX=y +CONFIG_SOC_SDMMC_NUM_SLOTS=2 +CONFIG_SOC_WIFI_WAPI_SUPPORT=y +CONFIG_SOC_WIFI_CSI_SUPPORT=y +CONFIG_SOC_WIFI_MESH_SUPPORT=y +CONFIG_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW=y +CONFIG_SOC_WIFI_NAN_SUPPORT=y +CONFIG_SOC_BLE_SUPPORTED=y +CONFIG_SOC_BLE_MESH_SUPPORTED=y +CONFIG_SOC_BT_CLASSIC_SUPPORTED=y +CONFIG_SOC_BLUFI_SUPPORTED=y +CONFIG_SOC_ULP_HAS_ADC=y +CONFIG_SOC_PHY_COMBO_MODULE=y +CONFIG_IDF_CMAKE=y +CONFIG_IDF_TOOLCHAIN="gcc" +CONFIG_IDF_TARGET_ARCH_XTENSA=y +CONFIG_IDF_TARGET_ARCH="xtensa" +CONFIG_IDF_TARGET="esp32" +CONFIG_IDF_INIT_VERSION="5.2.2" +CONFIG_IDF_TARGET_ESP32=y +CONFIG_IDF_FIRMWARE_CHIP_ID=0x0000 + +# +# Build type +# +CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y +# CONFIG_APP_BUILD_TYPE_RAM is not set +CONFIG_APP_BUILD_GENERATE_BINARIES=y +CONFIG_APP_BUILD_BOOTLOADER=y +CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y +# CONFIG_APP_REPRODUCIBLE_BUILD is not set +# CONFIG_APP_NO_BLOBS is not set +# CONFIG_APP_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set +# CONFIG_APP_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set +# end of Build type + +# +# Bootloader config +# + +# +# Bootloader manager +# +CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y +CONFIG_BOOTLOADER_PROJECT_VER=1 +# end of Bootloader manager + +CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x1000 +CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set +# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_ERROR is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set +CONFIG_BOOTLOADER_LOG_LEVEL_INFO=y +# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set +# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set +CONFIG_BOOTLOADER_LOG_LEVEL=3 + +# +# Serial Flash Configurations +# +# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set +CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y +# end of Serial Flash Configurations + +# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set +CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y +# CONFIG_BOOTLOADER_FACTORY_RESET is not set +# CONFIG_BOOTLOADER_APP_TEST is not set +CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y +CONFIG_BOOTLOADER_WDT_ENABLE=y +# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set +CONFIG_BOOTLOADER_WDT_TIME_MS=9000 +# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set +# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set +# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set +CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 +# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set +# end of Bootloader config + +# +# Security features +# +CONFIG_SECURE_BOOT_V1_SUPPORTED=y +# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set +# CONFIG_SECURE_BOOT is not set +# CONFIG_SECURE_FLASH_ENC_ENABLED is not set +# end of Security features + +# +# Application manager +# +CONFIG_APP_COMPILE_TIME_DATE=y +# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set +# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set +# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set +CONFIG_APP_RETRIEVE_LEN_ELF_SHA=9 +# end of Application manager + +CONFIG_ESP_ROM_HAS_CRC_LE=y +CONFIG_ESP_ROM_HAS_CRC_BE=y +CONFIG_ESP_ROM_HAS_MZ_CRC32=y +CONFIG_ESP_ROM_HAS_JPEG_DECODE=y +CONFIG_ESP_ROM_HAS_UART_BUF_SWITCH=y +CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y +CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y +CONFIG_ESP_ROM_HAS_SW_FLOAT=y +CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=-1 + +# +# Serial flasher config +# +# CONFIG_ESPTOOLPY_NO_STUB is not set +# CONFIG_ESPTOOLPY_FLASHMODE_QIO is not set +# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set +CONFIG_ESPTOOLPY_FLASHMODE_DIO=y +# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set +CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y +CONFIG_ESPTOOLPY_FLASHMODE="dio" +# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set +CONFIG_ESPTOOLPY_FLASHFREQ_40M=y +# CONFIG_ESPTOOLPY_FLASHFREQ_26M is not set +# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set +CONFIG_ESPTOOLPY_FLASHFREQ="40m" +# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE_2MB=y +# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_8MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set +# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set +CONFIG_ESPTOOLPY_FLASHSIZE="2MB" +# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set +CONFIG_ESPTOOLPY_BEFORE_RESET=y +# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set +CONFIG_ESPTOOLPY_BEFORE="default_reset" +CONFIG_ESPTOOLPY_AFTER_RESET=y +# CONFIG_ESPTOOLPY_AFTER_NORESET is not set +CONFIG_ESPTOOLPY_AFTER="hard_reset" +CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 +# end of Serial flasher config + +# +# Partition Table +# +CONFIG_PARTITION_TABLE_SINGLE_APP=y +# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set +# CONFIG_PARTITION_TABLE_TWO_OTA is not set +# CONFIG_PARTITION_TABLE_CUSTOM is not set +CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv" +CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv" +CONFIG_PARTITION_TABLE_OFFSET=0x8000 +CONFIG_PARTITION_TABLE_MD5=y +# end of Partition Table + +# +# Compiler options +# +CONFIG_COMPILER_OPTIMIZATION_DEBUG=y +# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set +# CONFIG_COMPILER_OPTIMIZATION_PERF is not set +# CONFIG_COMPILER_OPTIMIZATION_NONE is not set +CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set +# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set +CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y +CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 +# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set +CONFIG_COMPILER_HIDE_PATHS_MACROS=y +# CONFIG_COMPILER_CXX_EXCEPTIONS is not set +# CONFIG_COMPILER_CXX_RTTI is not set +CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y +# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set +# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set +# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set +# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set +# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set +# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set +# CONFIG_COMPILER_DUMP_RTL_FILES is not set +CONFIG_COMPILER_RT_LIB_GCCLIB=y +CONFIG_COMPILER_RT_LIB_NAME="gcc" +# end of Compiler options + +# +# Component config +# + +# +# Application Level Tracing +# +# CONFIG_APPTRACE_DEST_JTAG is not set +CONFIG_APPTRACE_DEST_NONE=y +# CONFIG_APPTRACE_DEST_UART1 is not set +# CONFIG_APPTRACE_DEST_UART2 is not set +CONFIG_APPTRACE_DEST_UART_NONE=y +CONFIG_APPTRACE_UART_TASK_PRIO=1 +CONFIG_APPTRACE_LOCK_ENABLE=y +# end of Application Level Tracing + +# +# Bluetooth +# +# CONFIG_BT_ENABLED is not set +CONFIG_BT_ALARM_MAX_NUM=50 +# end of Bluetooth + +# +# Driver Configurations +# + +# +# Legacy ADC Configuration +# +CONFIG_ADC_DISABLE_DAC=y +# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set + +# +# Legacy ADC Calibration Configuration +# +CONFIG_ADC_CAL_EFUSE_TP_ENABLE=y +CONFIG_ADC_CAL_EFUSE_VREF_ENABLE=y +CONFIG_ADC_CAL_LUT_ENABLE=y +# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set +# end of Legacy ADC Calibration Configuration +# end of Legacy ADC Configuration + +# +# SPI Configuration +# +# CONFIG_SPI_MASTER_IN_IRAM is not set +CONFIG_SPI_MASTER_ISR_IN_IRAM=y +# CONFIG_SPI_SLAVE_IN_IRAM is not set +CONFIG_SPI_SLAVE_ISR_IN_IRAM=y +# end of SPI Configuration + +# +# TWAI Configuration +# +# CONFIG_TWAI_ISR_IN_IRAM is not set +CONFIG_TWAI_ERRATA_FIX_BUS_OFF_REC=y +CONFIG_TWAI_ERRATA_FIX_TX_INTR_LOST=y +CONFIG_TWAI_ERRATA_FIX_RX_FRAME_INVALID=y +CONFIG_TWAI_ERRATA_FIX_RX_FIFO_CORRUPT=y +CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y +# end of TWAI Configuration + +# +# UART Configuration +# +# CONFIG_UART_ISR_IN_IRAM is not set +# end of UART Configuration + +# +# GPIO Configuration +# +# CONFIG_GPIO_ESP32_SUPPORT_SWITCH_SLP_PULL is not set +# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set +# end of GPIO Configuration + +# +# Sigma Delta Modulator Configuration +# +# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set +# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_SDM_ENABLE_DEBUG_LOG is not set +# end of Sigma Delta Modulator Configuration + +# +# GPTimer Configuration +# +CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y +# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set +# CONFIG_GPTIMER_ISR_IRAM_SAFE is not set +# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set +# end of GPTimer Configuration + +# +# PCNT Configuration +# +# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set +# CONFIG_PCNT_ISR_IRAM_SAFE is not set +# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set +# end of PCNT Configuration + +# +# RMT Configuration +# +# CONFIG_RMT_ISR_IRAM_SAFE is not set +# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set +# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_RMT_ENABLE_DEBUG_LOG is not set +# end of RMT Configuration + +# +# MCPWM Configuration +# +# CONFIG_MCPWM_ISR_IRAM_SAFE is not set +# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set +# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set +# end of MCPWM Configuration + +# +# I2S Configuration +# +# CONFIG_I2S_ISR_IRAM_SAFE is not set +# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_I2S_ENABLE_DEBUG_LOG is not set +# end of I2S Configuration + +# +# DAC Configuration +# +# CONFIG_DAC_CTRL_FUNC_IN_IRAM is not set +# CONFIG_DAC_ISR_IRAM_SAFE is not set +# CONFIG_DAC_SUPPRESS_DEPRECATE_WARN is not set +# CONFIG_DAC_ENABLE_DEBUG_LOG is not set +CONFIG_DAC_DMA_AUTO_16BIT_ALIGN=y +# end of DAC Configuration + +# +# LEDC Configuration +# +# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set +# end of LEDC Configuration + +# +# I2C Configuration +# +# CONFIG_I2C_ISR_IRAM_SAFE is not set +# CONFIG_I2C_ENABLE_DEBUG_LOG is not set +# end of I2C Configuration +# end of Driver Configurations + +# +# eFuse Bit Manager +# +# CONFIG_EFUSE_CUSTOM_TABLE is not set +# CONFIG_EFUSE_VIRTUAL is not set +# CONFIG_EFUSE_CODE_SCHEME_COMPAT_NONE is not set +CONFIG_EFUSE_CODE_SCHEME_COMPAT_3_4=y +# CONFIG_EFUSE_CODE_SCHEME_COMPAT_REPEAT is not set +CONFIG_EFUSE_MAX_BLK_LEN=192 +# end of eFuse Bit Manager + +# +# ESP-TLS +# +CONFIG_ESP_TLS_USING_MBEDTLS=y +# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set +# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set +# CONFIG_ESP_TLS_SERVER is not set +# CONFIG_ESP_TLS_PSK_VERIFICATION is not set +# CONFIG_ESP_TLS_INSECURE is not set +# end of ESP-TLS + +# +# ADC and ADC Calibration +# +# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set +# CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE is not set + +# +# ADC Calibration Configurations +# +CONFIG_ADC_CALI_EFUSE_TP_ENABLE=y +CONFIG_ADC_CALI_EFUSE_VREF_ENABLE=y +CONFIG_ADC_CALI_LUT_ENABLE=y +# end of ADC Calibration Configurations + +CONFIG_ADC_DISABLE_DAC_OUTPUT=y +# end of ADC and ADC Calibration + +# +# Wireless Coexistence +# +# end of Wireless Coexistence + +# +# Common ESP-related +# +CONFIG_ESP_ERR_TO_NAME_LOOKUP=y +# end of Common ESP-related + +# +# Ethernet +# +CONFIG_ETH_ENABLED=y +CONFIG_ETH_USE_ESP32_EMAC=y +CONFIG_ETH_PHY_INTERFACE_RMII=y +CONFIG_ETH_RMII_CLK_INPUT=y +# CONFIG_ETH_RMII_CLK_OUTPUT is not set +CONFIG_ETH_RMII_CLK_IN_GPIO=0 +CONFIG_ETH_DMA_BUFFER_SIZE=512 +CONFIG_ETH_DMA_RX_BUFFER_NUM=10 +CONFIG_ETH_DMA_TX_BUFFER_NUM=10 +# CONFIG_ETH_IRAM_OPTIMIZATION is not set +CONFIG_ETH_USE_SPI_ETHERNET=y +# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set +# CONFIG_ETH_SPI_ETHERNET_W5500 is not set +# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set +# CONFIG_ETH_USE_OPENETH is not set +# CONFIG_ETH_TRANSMIT_MUTEX is not set +# end of Ethernet + +# +# Event Loop Library +# +# CONFIG_ESP_EVENT_LOOP_PROFILING is not set +CONFIG_ESP_EVENT_POST_FROM_ISR=y +CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y +# end of Event Loop Library + +# +# GDB Stub +# +CONFIG_ESP_GDBSTUB_ENABLED=y +# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set +CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y +CONFIG_ESP_GDBSTUB_MAX_TASKS=32 +# end of GDB Stub + +# +# ESP HTTP client +# +CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y +# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set +# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set +# end of ESP HTTP client + +# +# HTTP Server +# +CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 +CONFIG_HTTPD_MAX_URI_LEN=512 +CONFIG_HTTPD_ERR_RESP_NO_DELAY=y +CONFIG_HTTPD_PURGE_BUF_LEN=32 +# CONFIG_HTTPD_LOG_PURGE_DATA is not set +# CONFIG_HTTPD_WS_SUPPORT is not set +# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set +# end of HTTP Server + +# +# ESP HTTPS OTA +# +# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set +# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set +# end of ESP HTTPS OTA + +# +# ESP HTTPS server +# +# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set +# end of ESP HTTPS server + +# +# Hardware Settings +# + +# +# Chip revision +# +CONFIG_ESP32_REV_MIN_0=y +# CONFIG_ESP32_REV_MIN_1 is not set +# CONFIG_ESP32_REV_MIN_1_1 is not set +# CONFIG_ESP32_REV_MIN_2 is not set +# CONFIG_ESP32_REV_MIN_3 is not set +# CONFIG_ESP32_REV_MIN_3_1 is not set +CONFIG_ESP32_REV_MIN=0 +CONFIG_ESP32_REV_MIN_FULL=0 +CONFIG_ESP_REV_MIN_FULL=0 + +# +# Maximum Supported ESP32 Revision (Rev v3.99) +# +CONFIG_ESP32_REV_MAX_FULL=399 +CONFIG_ESP_REV_MAX_FULL=399 +# end of Chip revision + +# +# MAC Config +# +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y +CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y +CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y +# CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_TWO is not set +CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES_FOUR=y +CONFIG_ESP32_UNIVERSAL_MAC_ADDRESSES=4 +# CONFIG_ESP_MAC_IGNORE_MAC_CRC_ERROR is not set +# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set +# end of MAC Config + +# +# Sleep Config +# +# CONFIG_ESP_SLEEP_POWER_DOWN_FLASH is not set +CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y +# CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU is not set +CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y +# CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND is not set +CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 +# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set +# CONFIG_ESP_SLEEP_DEBUG is not set +CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y +# end of Sleep Config + +# +# RTC Clock Config +# +CONFIG_RTC_CLK_SRC_INT_RC=y +# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set +# CONFIG_RTC_CLK_SRC_EXT_OSC is not set +# CONFIG_RTC_CLK_SRC_INT_8MD256 is not set +CONFIG_RTC_CLK_CAL_CYCLES=1024 +# end of RTC Clock Config + +# +# Peripheral Control +# +CONFIG_PERIPH_CTRL_FUNC_IN_IRAM=y +# end of Peripheral Control + +# +# Main XTAL Config +# +# CONFIG_XTAL_FREQ_26 is not set +CONFIG_XTAL_FREQ_40=y +# CONFIG_XTAL_FREQ_AUTO is not set +CONFIG_XTAL_FREQ=40 +# end of Main XTAL Config +# end of Hardware Settings + +# +# LCD and Touch Panel +# + +# +# LCD Touch Drivers are maintained in the IDF Component Registry +# + +# +# LCD Peripheral Configuration +# +CONFIG_LCD_PANEL_IO_FORMAT_BUF_SIZE=32 +# CONFIG_LCD_ENABLE_DEBUG_LOG is not set +# end of LCD Peripheral Configuration +# end of LCD and Touch Panel + +# +# ESP NETIF Adapter +# +CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 +CONFIG_ESP_NETIF_TCPIP_LWIP=y +# CONFIG_ESP_NETIF_LOOPBACK is not set +CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y +# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set +# CONFIG_ESP_NETIF_L2_TAP is not set +# CONFIG_ESP_NETIF_BRIDGE_EN is not set +# end of ESP NETIF Adapter + +# +# Partition API Configuration +# +# end of Partition API Configuration + +# +# PHY +# +CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y +# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set +CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 +CONFIG_ESP_PHY_MAX_TX_POWER=20 +# CONFIG_ESP_PHY_REDUCE_TX_POWER is not set +CONFIG_ESP_PHY_RF_CAL_PARTIAL=y +# CONFIG_ESP_PHY_RF_CAL_NONE is not set +# CONFIG_ESP_PHY_RF_CAL_FULL is not set +CONFIG_ESP_PHY_CALIBRATION_MODE=0 +# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set +# end of PHY + +# +# Power Management +# +# CONFIG_PM_ENABLE is not set +# end of Power Management + +# +# ESP PSRAM +# +# CONFIG_SPIRAM is not set +# end of ESP PSRAM + +# +# ESP Ringbuf +# +# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set +# end of ESP Ringbuf + +# +# ESP System Settings +# +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y +# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set +CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160 + +# +# Memory +# +# CONFIG_ESP32_USE_FIXED_STATIC_RAM_SIZE is not set + +# +# Non-backward compatible options +# +# CONFIG_ESP_SYSTEM_ESP32_SRAM1_REGION_AS_IRAM is not set +# end of Non-backward compatible options +# end of Memory + +# +# Trace memory +# +# CONFIG_ESP32_TRAX is not set +CONFIG_ESP32_TRACEMEM_RESERVE_DRAM=0x0 +# end of Trace memory + +# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set +CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y +# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set +# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set +CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 + +# +# Memory protection +# +# end of Memory protection + +CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 +CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_ESP_MAIN_TASK_STACK_SIZE=3584 +CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y +# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set +# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set +CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 +CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 +CONFIG_ESP_CONSOLE_UART_DEFAULT=y +# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set +# CONFIG_ESP_CONSOLE_NONE is not set +CONFIG_ESP_CONSOLE_UART=y +CONFIG_ESP_CONSOLE_UART_NUM=0 +CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 +CONFIG_ESP_INT_WDT=y +CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 +CONFIG_ESP_INT_WDT_CHECK_CPU1=y +CONFIG_ESP_TASK_WDT_EN=y +CONFIG_ESP_TASK_WDT_INIT=y +# CONFIG_ESP_TASK_WDT_PANIC is not set +CONFIG_ESP_TASK_WDT_TIMEOUT_S=5 +CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y +# CONFIG_ESP_PANIC_HANDLER_IRAM is not set +# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set +CONFIG_ESP_DEBUG_OCDAWARE=y +# CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_5 is not set +CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y + +# +# Brownout Detector +# +CONFIG_ESP_BROWNOUT_DET=y +CONFIG_ESP_BROWNOUT_DET_LVL_SEL_0=y +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7 is not set +CONFIG_ESP_BROWNOUT_DET_LVL=0 +# end of Brownout Detector + +# CONFIG_ESP32_DISABLE_BASIC_ROM_CONSOLE is not set +CONFIG_ESP_SYSTEM_BROWNOUT_INTR=y +# end of ESP System Settings + +# +# IPC (Inter-Processor Call) +# +CONFIG_ESP_IPC_TASK_STACK_SIZE=1024 +CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y +CONFIG_ESP_IPC_ISR_ENABLE=y +# end of IPC (Inter-Processor Call) + +# +# High resolution timer (esp_timer) +# +# CONFIG_ESP_TIMER_PROFILING is not set +CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y +CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y +CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 +CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 +# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set +CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 +CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y +CONFIG_ESP_TIMER_ISR_AFFINITY=0x1 +CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y +# CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD is not set +CONFIG_ESP_TIMER_IMPL_TG0_LAC=y +# end of High resolution timer (esp_timer) + +# +# Wi-Fi +# +CONFIG_ESP_WIFI_ENABLED=y +CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 +# CONFIG_ESP_WIFI_STATIC_TX_BUFFER is not set +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER=y +CONFIG_ESP_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER_NUM=32 +CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y +# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set +CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 +CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 +# CONFIG_ESP_WIFI_CSI_ENABLED is not set +CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y +CONFIG_ESP_WIFI_TX_BA_WIN=6 +CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP_WIFI_RX_BA_WIN=6 +CONFIG_ESP_WIFI_NVS_ENABLED=y +CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0=y +# CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_1 is not set +CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 +CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 +CONFIG_ESP_WIFI_IRAM_OPT=y +# CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set +CONFIG_ESP_WIFI_RX_IRAM_OPT=y +CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y +CONFIG_ESP_WIFI_ENABLE_SAE_PK=y +CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y +CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y +# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set +CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE=y +# CONFIG_ESP_WIFI_GMAC_SUPPORT is not set +CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y +# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set +CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 +# CONFIG_ESP_WIFI_NAN_ENABLE is not set +CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y +CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y +# CONFIG_ESP_WIFI_WAPI_PSK is not set +# CONFIG_ESP_WIFI_11KV_SUPPORT is not set +# CONFIG_ESP_WIFI_MBO_SUPPORT is not set +# CONFIG_ESP_WIFI_DPP_SUPPORT is not set +# CONFIG_ESP_WIFI_11R_SUPPORT is not set +# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set + +# +# WPS Configuration Options +# +# CONFIG_ESP_WIFI_WPS_STRICT is not set +# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set +# end of WPS Configuration Options + +# CONFIG_ESP_WIFI_DEBUG_PRINT is not set +# CONFIG_ESP_WIFI_TESTING_OPTIONS is not set +CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y +# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set +# end of Wi-Fi + +# +# Core dump +# +# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set +# CONFIG_ESP_COREDUMP_ENABLE_TO_UART is not set +CONFIG_ESP_COREDUMP_ENABLE_TO_NONE=y +# end of Core dump + +# +# FAT Filesystem support +# +CONFIG_FATFS_VOLUME_COUNT=2 +CONFIG_FATFS_LFN_NONE=y +# CONFIG_FATFS_LFN_HEAP is not set +# CONFIG_FATFS_LFN_STACK is not set +# CONFIG_FATFS_SECTOR_512 is not set +CONFIG_FATFS_SECTOR_4096=y +# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set +CONFIG_FATFS_CODEPAGE_437=y +# CONFIG_FATFS_CODEPAGE_720 is not set +# CONFIG_FATFS_CODEPAGE_737 is not set +# CONFIG_FATFS_CODEPAGE_771 is not set +# CONFIG_FATFS_CODEPAGE_775 is not set +# CONFIG_FATFS_CODEPAGE_850 is not set +# CONFIG_FATFS_CODEPAGE_852 is not set +# CONFIG_FATFS_CODEPAGE_855 is not set +# CONFIG_FATFS_CODEPAGE_857 is not set +# CONFIG_FATFS_CODEPAGE_860 is not set +# CONFIG_FATFS_CODEPAGE_861 is not set +# CONFIG_FATFS_CODEPAGE_862 is not set +# CONFIG_FATFS_CODEPAGE_863 is not set +# CONFIG_FATFS_CODEPAGE_864 is not set +# CONFIG_FATFS_CODEPAGE_865 is not set +# CONFIG_FATFS_CODEPAGE_866 is not set +# CONFIG_FATFS_CODEPAGE_869 is not set +# CONFIG_FATFS_CODEPAGE_932 is not set +# CONFIG_FATFS_CODEPAGE_936 is not set +# CONFIG_FATFS_CODEPAGE_949 is not set +# CONFIG_FATFS_CODEPAGE_950 is not set +CONFIG_FATFS_CODEPAGE=437 +CONFIG_FATFS_FS_LOCK=0 +CONFIG_FATFS_TIMEOUT_MS=10000 +CONFIG_FATFS_PER_FILE_CACHE=y +# CONFIG_FATFS_USE_FASTSEEK is not set +CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 +# CONFIG_FATFS_IMMEDIATE_FSYNC is not set +# end of FAT Filesystem support + +# +# FreeRTOS +# + +# +# Kernel +# +# CONFIG_FREERTOS_SMP is not set +# CONFIG_FREERTOS_UNICORE is not set +CONFIG_FREERTOS_HZ=100 +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set +# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set +CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y +CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 +CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 +# CONFIG_FREERTOS_USE_IDLE_HOOK is not set +# CONFIG_FREERTOS_USE_TICK_HOOK is not set +CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 +# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set +CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" +CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 +CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 +CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 +CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 +CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 +# CONFIG_FREERTOS_USE_TRACE_FACILITY is not set +# CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS is not set +# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set +# end of Kernel + +# +# Port +# +CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y +# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set +CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y +# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set +# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set +CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y +CONFIG_FREERTOS_ISR_STACKSIZE=1536 +CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y +# CONFIG_FREERTOS_FPU_IN_ISR is not set +CONFIG_FREERTOS_TICK_SUPPORT_CORETIMER=y +CONFIG_FREERTOS_CORETIMER_0=y +# CONFIG_FREERTOS_CORETIMER_1 is not set +CONFIG_FREERTOS_SYSTICK_USES_CCOUNT=y +# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set +# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set +# end of Port + +CONFIG_FREERTOS_PORT=y +CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF +CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y +CONFIG_FREERTOS_DEBUG_OCDAWARE=y +CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y +CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y +# end of FreeRTOS + +# +# Hardware Abstraction Layer (HAL) and Low Level (LL) +# +CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y +# CONFIG_HAL_ASSERTION_DISABLE is not set +# CONFIG_HAL_ASSERTION_SILENT is not set +# CONFIG_HAL_ASSERTION_ENABLE is not set +CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 +CONFIG_HAL_SPI_MASTER_FUNC_IN_IRAM=y +CONFIG_HAL_SPI_SLAVE_FUNC_IN_IRAM=y +# end of Hardware Abstraction Layer (HAL) and Low Level (LL) + +# +# Heap memory debugging +# +CONFIG_HEAP_POISONING_DISABLED=y +# CONFIG_HEAP_POISONING_LIGHT is not set +# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set +CONFIG_HEAP_TRACING_OFF=y +# CONFIG_HEAP_TRACING_STANDALONE is not set +# CONFIG_HEAP_TRACING_TOHOST is not set +# CONFIG_HEAP_USE_HOOKS is not set +# CONFIG_HEAP_TASK_TRACKING is not set +# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set +# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set +# end of Heap memory debugging + +# +# Log output +# +# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set +# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set +# CONFIG_LOG_DEFAULT_LEVEL_WARN is not set +CONFIG_LOG_DEFAULT_LEVEL_INFO=y +# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set +# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set +CONFIG_LOG_DEFAULT_LEVEL=3 +CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT=y +# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set +# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set +CONFIG_LOG_MAXIMUM_LEVEL=3 +# CONFIG_LOG_MASTER_LEVEL is not set +CONFIG_LOG_COLORS=y +CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y +# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set +# end of Log output + +# +# LWIP +# +CONFIG_LWIP_ENABLE=y +CONFIG_LWIP_LOCAL_HOSTNAME="espressif" +# CONFIG_LWIP_NETIF_API is not set +CONFIG_LWIP_TCPIP_TASK_PRIO=18 +# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set +# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set +CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y +# CONFIG_LWIP_L2_TO_L3_COPY is not set +# CONFIG_LWIP_IRAM_OPTIMIZATION is not set +# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set +CONFIG_LWIP_TIMERS_ONDEMAND=y +CONFIG_LWIP_ND6=y +# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set +CONFIG_LWIP_MAX_SOCKETS=10 +# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set +# CONFIG_LWIP_SO_LINGER is not set +CONFIG_LWIP_SO_REUSE=y +CONFIG_LWIP_SO_REUSE_RXTOALL=y +# CONFIG_LWIP_SO_RCVBUF is not set +# CONFIG_LWIP_NETBUF_RECVINFO is not set +CONFIG_LWIP_IP_DEFAULT_TTL=64 +CONFIG_LWIP_IP4_FRAG=y +CONFIG_LWIP_IP6_FRAG=y +# CONFIG_LWIP_IP4_REASSEMBLY is not set +# CONFIG_LWIP_IP6_REASSEMBLY is not set +CONFIG_LWIP_IP_REASS_MAX_PBUFS=10 +# CONFIG_LWIP_IP_FORWARD is not set +# CONFIG_LWIP_STATS is not set +CONFIG_LWIP_ESP_GRATUITOUS_ARP=y +CONFIG_LWIP_GARP_TMR_INTERVAL=60 +CONFIG_LWIP_ESP_MLDV6_REPORT=y +CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 +CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 +CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y +# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set +CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y +# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set +CONFIG_LWIP_DHCP_OPTIONS_LEN=68 +CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 +CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 + +# +# DHCP server +# +CONFIG_LWIP_DHCPS=y +CONFIG_LWIP_DHCPS_LEASE_UNIT=60 +CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 +CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y +# end of DHCP server + +# CONFIG_LWIP_AUTOIP is not set +CONFIG_LWIP_IPV4=y +CONFIG_LWIP_IPV6=y +# CONFIG_LWIP_IPV6_AUTOCONFIG is not set +CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 +# CONFIG_LWIP_IPV6_FORWARD is not set +# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set +CONFIG_LWIP_NETIF_LOOPBACK=y +CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 + +# +# TCP +# +CONFIG_LWIP_MAX_ACTIVE_TCP=16 +CONFIG_LWIP_MAX_LISTENING_TCP=16 +CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y +CONFIG_LWIP_TCP_MAXRTX=12 +CONFIG_LWIP_TCP_SYNMAXRTX=12 +CONFIG_LWIP_TCP_MSS=1440 +CONFIG_LWIP_TCP_TMR_INTERVAL=250 +CONFIG_LWIP_TCP_MSL=60000 +CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 +CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5760 +CONFIG_LWIP_TCP_WND_DEFAULT=5760 +CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 +CONFIG_LWIP_TCP_QUEUE_OOSEQ=y +CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 +CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 +# CONFIG_LWIP_TCP_SACK_OUT is not set +CONFIG_LWIP_TCP_OVERSIZE_MSS=y +# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set +# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set +CONFIG_LWIP_TCP_RTO_TIME=1500 +# end of TCP + +# +# UDP +# +CONFIG_LWIP_MAX_UDP_PCBS=16 +CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 +# end of UDP + +# +# Checksums +# +# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set +# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set +CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y +# end of Checksums + +CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 +CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y +# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set +# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set +CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF +# CONFIG_LWIP_PPP_SUPPORT is not set +CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 +CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 +# CONFIG_LWIP_SLIP_SUPPORT is not set + +# +# ICMP +# +CONFIG_LWIP_ICMP=y +# CONFIG_LWIP_MULTICAST_PING is not set +# CONFIG_LWIP_BROADCAST_PING is not set +# end of ICMP + +# +# LWIP RAW API +# +CONFIG_LWIP_MAX_RAW_PCBS=16 +# end of LWIP RAW API + +# +# SNTP +# +CONFIG_LWIP_SNTP_MAX_SERVERS=1 +# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set +CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 +# end of SNTP + +# +# DNS +# +CONFIG_LWIP_DNS_MAX_SERVERS=3 +# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set +# end of DNS + +CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 +CONFIG_LWIP_ESP_LWIP_ASSERT=y + +# +# Hooks +# +# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set +CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y +# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set +CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y +# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set +# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set +CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y +# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set +# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set +CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y +# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set +# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set +CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set +# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set +CONFIG_LWIP_HOOK_IP6_INPUT_NONE=y +# CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set +# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set +# end of Hooks + +# CONFIG_LWIP_DEBUG is not set +# end of LWIP + +# +# mbedTLS +# +CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y +# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set +# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set +CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y +CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 +CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 +# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set +# CONFIG_MBEDTLS_DEBUG is not set + +# +# mbedTLS v3.x related +# +# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set +# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set +# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set +# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set +CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y +CONFIG_MBEDTLS_PKCS7_C=y +# end of mbedTLS v3.x related + +# +# Certificate Bundle +# +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set +# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set +# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set +CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 +# end of Certificate Bundle + +# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set +CONFIG_MBEDTLS_CMAC_C=y +CONFIG_MBEDTLS_HARDWARE_AES=y +# CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER is not set +CONFIG_MBEDTLS_HARDWARE_MPI=y +# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set +CONFIG_MBEDTLS_HARDWARE_SHA=y +CONFIG_MBEDTLS_ROM_MD5=y +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set +# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set +CONFIG_MBEDTLS_HAVE_TIME=y +# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set +# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set +CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y +CONFIG_MBEDTLS_SHA512_C=y +CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y +# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set +# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set +# CONFIG_MBEDTLS_TLS_DISABLED is not set +CONFIG_MBEDTLS_TLS_SERVER=y +CONFIG_MBEDTLS_TLS_CLIENT=y +CONFIG_MBEDTLS_TLS_ENABLED=y + +# +# TLS Key Exchange Methods +# +# CONFIG_MBEDTLS_PSK_MODES is not set +CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y +CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y +# end of TLS Key Exchange Methods + +CONFIG_MBEDTLS_SSL_RENEGOTIATION=y +CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y +# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set +# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set +CONFIG_MBEDTLS_SSL_ALPN=y +CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y +CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y + +# +# Symmetric Ciphers +# +CONFIG_MBEDTLS_AES_C=y +# CONFIG_MBEDTLS_CAMELLIA_C is not set +# CONFIG_MBEDTLS_DES_C is not set +# CONFIG_MBEDTLS_BLOWFISH_C is not set +# CONFIG_MBEDTLS_XTEA_C is not set +CONFIG_MBEDTLS_CCM_C=y +CONFIG_MBEDTLS_GCM_C=y +# CONFIG_MBEDTLS_NIST_KW_C is not set +# end of Symmetric Ciphers + +# CONFIG_MBEDTLS_RIPEMD160_C is not set + +# +# Certificates +# +CONFIG_MBEDTLS_PEM_PARSE_C=y +CONFIG_MBEDTLS_PEM_WRITE_C=y +CONFIG_MBEDTLS_X509_CRL_PARSE_C=y +CONFIG_MBEDTLS_X509_CSR_PARSE_C=y +# end of Certificates + +CONFIG_MBEDTLS_ECP_C=y +# CONFIG_MBEDTLS_DHM_C is not set +CONFIG_MBEDTLS_ECDH_C=y +CONFIG_MBEDTLS_ECDSA_C=y +# CONFIG_MBEDTLS_ECJPAKE_C is not set +CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y +CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y +CONFIG_MBEDTLS_ECP_NIST_OPTIM=y +CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM=y +# CONFIG_MBEDTLS_POLY1305_C is not set +# CONFIG_MBEDTLS_CHACHA20_C is not set +# CONFIG_MBEDTLS_HKDF_C is not set +# CONFIG_MBEDTLS_THREADING_C is not set +CONFIG_MBEDTLS_ERROR_STRINGS=y +# end of mbedTLS + +# +# ESP-MQTT Configurations +# +CONFIG_MQTT_PROTOCOL_311=y +# CONFIG_MQTT_PROTOCOL_5 is not set +CONFIG_MQTT_TRANSPORT_SSL=y +CONFIG_MQTT_TRANSPORT_WEBSOCKET=y +CONFIG_MQTT_TRANSPORT_WEBSOCKET_SECURE=y +# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set +# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set +# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set +# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set +# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set +# CONFIG_MQTT_CUSTOM_OUTBOX is not set +# end of ESP-MQTT Configurations + +# +# Newlib +# +CONFIG_NEWLIB_STDOUT_LINE_ENDING_CRLF=y +# CONFIG_NEWLIB_STDOUT_LINE_ENDING_LF is not set +# CONFIG_NEWLIB_STDOUT_LINE_ENDING_CR is not set +# CONFIG_NEWLIB_STDIN_LINE_ENDING_CRLF is not set +# CONFIG_NEWLIB_STDIN_LINE_ENDING_LF is not set +CONFIG_NEWLIB_STDIN_LINE_ENDING_CR=y +# CONFIG_NEWLIB_NANO_FORMAT is not set +CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC_HRT=y +# CONFIG_NEWLIB_TIME_SYSCALL_USE_RTC is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_HRT is not set +# CONFIG_NEWLIB_TIME_SYSCALL_USE_NONE is not set +# end of Newlib + +# +# NVS +# +# CONFIG_NVS_ASSERT_ERROR_CHECK is not set +# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set +# end of NVS + +# +# OpenThread +# +# CONFIG_OPENTHREAD_ENABLED is not set + +# +# Thread Operational Dataset +# +CONFIG_OPENTHREAD_NETWORK_NAME="OpenThread-ESP" +CONFIG_OPENTHREAD_MESH_LOCAL_PREFIX="fd00:db8:a0:0::/64" +CONFIG_OPENTHREAD_NETWORK_CHANNEL=15 +CONFIG_OPENTHREAD_NETWORK_PANID=0x1234 +CONFIG_OPENTHREAD_NETWORK_EXTPANID="dead00beef00cafe" +CONFIG_OPENTHREAD_NETWORK_MASTERKEY="00112233445566778899aabbccddeeff" +CONFIG_OPENTHREAD_NETWORK_PSKC="104810e2315100afd6bc9215a6bfac53" +# end of Thread Operational Dataset + +CONFIG_OPENTHREAD_XTAL_ACCURACY=130 +# CONFIG_OPENTHREAD_SPINEL_ONLY is not set +CONFIG_OPENTHREAD_RX_ON_WHEN_IDLE=y + +# +# Thread Address Query Config +# +# end of Thread Address Query Config +# end of OpenThread + +# +# Protocomm +# +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y +CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2=y +# end of Protocomm + +# +# PThreads +# +CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 +CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 +CONFIG_PTHREAD_STACK_MIN=768 +CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y +# CONFIG_PTHREAD_DEFAULT_CORE_0 is not set +# CONFIG_PTHREAD_DEFAULT_CORE_1 is not set +CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 +CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" +# end of PThreads + +# +# MMU Config +# +CONFIG_MMU_PAGE_SIZE_64KB=y +CONFIG_MMU_PAGE_MODE="64KB" +CONFIG_MMU_PAGE_SIZE=0x10000 +# end of MMU Config + +# +# Main Flash configuration +# + +# +# SPI Flash behavior when brownout +# +CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y +CONFIG_SPI_FLASH_BROWNOUT_RESET=y +# end of SPI Flash behavior when brownout + +# +# Optional and Experimental Features (READ DOCS FIRST) +# + +# +# Features here require specific hardware (READ DOCS FIRST!) +# +# end of Optional and Experimental Features (READ DOCS FIRST) +# end of Main Flash configuration + +# +# SPI Flash driver +# +# CONFIG_SPI_FLASH_VERIFY_WRITE is not set +# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set +CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y +CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set +# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set +# CONFIG_SPI_FLASH_SHARE_SPI1_BUS is not set +# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set +CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y +CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 +CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 +CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 +# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set +# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set +# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set + +# +# Auto-detect flash chips +# +CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORTED=y +CONFIG_SPI_FLASH_VENDOR_GD_SUPPORTED=y +CONFIG_SPI_FLASH_VENDOR_ISSI_SUPPORTED=y +CONFIG_SPI_FLASH_VENDOR_MXIC_SUPPORTED=y +CONFIG_SPI_FLASH_VENDOR_WINBOND_SUPPORTED=y +CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y +CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y +CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y +CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y +# CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP is not set +# CONFIG_SPI_FLASH_SUPPORT_TH_CHIP is not set +# end of Auto-detect flash chips + +CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y +# end of SPI Flash driver + +# +# SPIFFS Configuration +# +CONFIG_SPIFFS_MAX_PARTITIONS=3 + +# +# SPIFFS Cache Configuration +# +CONFIG_SPIFFS_CACHE=y +CONFIG_SPIFFS_CACHE_WR=y +# CONFIG_SPIFFS_CACHE_STATS is not set +# end of SPIFFS Cache Configuration + +CONFIG_SPIFFS_PAGE_CHECK=y +CONFIG_SPIFFS_GC_MAX_RUNS=10 +# CONFIG_SPIFFS_GC_STATS is not set +CONFIG_SPIFFS_PAGE_SIZE=256 +CONFIG_SPIFFS_OBJ_NAME_LEN=32 +# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set +CONFIG_SPIFFS_USE_MAGIC=y +CONFIG_SPIFFS_USE_MAGIC_LENGTH=y +CONFIG_SPIFFS_META_LENGTH=4 +CONFIG_SPIFFS_USE_MTIME=y + +# +# Debug Configuration +# +# CONFIG_SPIFFS_DBG is not set +# CONFIG_SPIFFS_API_DBG is not set +# CONFIG_SPIFFS_GC_DBG is not set +# CONFIG_SPIFFS_CACHE_DBG is not set +# CONFIG_SPIFFS_CHECK_DBG is not set +# CONFIG_SPIFFS_TEST_VISUALISATION is not set +# end of Debug Configuration +# end of SPIFFS Configuration + +# +# TCP Transport +# + +# +# Websocket +# +CONFIG_WS_TRANSPORT=y +CONFIG_WS_BUFFER_SIZE=1024 +# CONFIG_WS_DYNAMIC_BUFFER is not set +# end of Websocket +# end of TCP Transport + +# +# Ultra Low Power (ULP) Co-processor +# +# CONFIG_ULP_COPROC_ENABLED is not set +# end of Ultra Low Power (ULP) Co-processor + +# +# Unity unit testing library +# +CONFIG_UNITY_ENABLE_FLOAT=y +CONFIG_UNITY_ENABLE_DOUBLE=y +# CONFIG_UNITY_ENABLE_64BIT is not set +# CONFIG_UNITY_ENABLE_COLOR is not set +CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y +# CONFIG_UNITY_ENABLE_FIXTURE is not set +# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set +# end of Unity unit testing library + +# +# Virtual file system +# +CONFIG_VFS_SUPPORT_IO=y +CONFIG_VFS_SUPPORT_DIR=y +CONFIG_VFS_SUPPORT_SELECT=y +CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y +# CONFIG_VFS_SELECT_IN_RAM is not set +CONFIG_VFS_SUPPORT_TERMIOS=y +CONFIG_VFS_MAX_COUNT=8 + +# +# Host File System I/O (Semihosting) +# +CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +# end of Host File System I/O (Semihosting) +# end of Virtual file system + +# +# Wear Levelling +# +# CONFIG_WL_SECTOR_SIZE_512 is not set +CONFIG_WL_SECTOR_SIZE_4096=y +CONFIG_WL_SECTOR_SIZE=4096 +# end of Wear Levelling + +# +# Wi-Fi Provisioning Manager +# +CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 +CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 +# CONFIG_WIFI_PROV_BLE_FORCE_ENCRYPTION is not set +CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y +# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set +# end of Wi-Fi Provisioning Manager +# end of Component config + +# CONFIG_IDF_EXPERIMENTAL_FEATURES is not set + +# Deprecated options for backward compatibility +# CONFIG_APP_BUILD_TYPE_ELF_RAM is not set +# CONFIG_NO_BLOBS is not set +# CONFIG_ESP32_NO_BLOBS is not set +# CONFIG_ESP32_COMPATIBLE_PRE_V2_1_BOOTLOADERS is not set +# CONFIG_ESP32_COMPATIBLE_PRE_V3_1_BOOTLOADERS is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_NONE is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_ERROR is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_WARN is not set +CONFIG_LOG_BOOTLOADER_LEVEL_INFO=y +# CONFIG_LOG_BOOTLOADER_LEVEL_DEBUG is not set +# CONFIG_LOG_BOOTLOADER_LEVEL_VERBOSE is not set +CONFIG_LOG_BOOTLOADER_LEVEL=3 +# CONFIG_APP_ROLLBACK_ENABLE is not set +# CONFIG_FLASH_ENCRYPTION_ENABLED is not set +# CONFIG_FLASHMODE_QIO is not set +# CONFIG_FLASHMODE_QOUT is not set +CONFIG_FLASHMODE_DIO=y +# CONFIG_FLASHMODE_DOUT is not set +CONFIG_MONITOR_BAUD=115200 +CONFIG_OPTIMIZATION_LEVEL_DEBUG=y +CONFIG_COMPILER_OPTIMIZATION_LEVEL_DEBUG=y +CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y +# CONFIG_OPTIMIZATION_LEVEL_RELEASE is not set +# CONFIG_COMPILER_OPTIMIZATION_LEVEL_RELEASE is not set +CONFIG_OPTIMIZATION_ASSERTIONS_ENABLED=y +# CONFIG_OPTIMIZATION_ASSERTIONS_SILENT is not set +# CONFIG_OPTIMIZATION_ASSERTIONS_DISABLED is not set +CONFIG_OPTIMIZATION_ASSERTION_LEVEL=2 +# CONFIG_CXX_EXCEPTIONS is not set +CONFIG_STACK_CHECK_NONE=y +# CONFIG_STACK_CHECK_NORM is not set +# CONFIG_STACK_CHECK_STRONG is not set +# CONFIG_STACK_CHECK_ALL is not set +# CONFIG_WARN_WRITE_STRINGS is not set +# CONFIG_ESP32_APPTRACE_DEST_TRAX is not set +CONFIG_ESP32_APPTRACE_DEST_NONE=y +CONFIG_ESP32_APPTRACE_LOCK_ENABLE=y +CONFIG_ADC2_DISABLE_DAC=y +# CONFIG_MCPWM_ISR_IN_IRAM is not set +# CONFIG_EVENT_LOOP_PROFILING is not set +CONFIG_POST_EVENTS_FROM_ISR=y +CONFIG_POST_EVENTS_FROM_IRAM_ISR=y +CONFIG_GDBSTUB_SUPPORT_TASKS=y +CONFIG_GDBSTUB_MAX_TASKS=32 +# CONFIG_OTA_ALLOW_HTTP is not set +# CONFIG_TWO_UNIVERSAL_MAC_ADDRESS is not set +CONFIG_FOUR_UNIVERSAL_MAC_ADDRESS=y +CONFIG_NUMBER_OF_UNIVERSAL_MAC_ADDRESS=4 +# CONFIG_ESP_SYSTEM_PD_FLASH is not set +CONFIG_ESP32_DEEP_SLEEP_WAKEUP_DELAY=2000 +CONFIG_ESP_SLEEP_DEEP_SLEEP_WAKEUP_DELAY=2000 +CONFIG_ESP32_RTC_CLK_SRC_INT_RC=y +CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_RC=y +# CONFIG_ESP32_RTC_CLK_SRC_EXT_CRYS is not set +# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_CRYSTAL is not set +# CONFIG_ESP32_RTC_CLK_SRC_EXT_OSC is not set +# CONFIG_ESP32_RTC_CLOCK_SOURCE_EXTERNAL_OSC is not set +# CONFIG_ESP32_RTC_CLK_SRC_INT_8MD256 is not set +# CONFIG_ESP32_RTC_CLOCK_SOURCE_INTERNAL_8MD256 is not set +CONFIG_ESP32_RTC_CLK_CAL_CYCLES=1024 +# CONFIG_ESP32_XTAL_FREQ_26 is not set +CONFIG_ESP32_XTAL_FREQ_40=y +# CONFIG_ESP32_XTAL_FREQ_AUTO is not set +CONFIG_ESP32_XTAL_FREQ=40 +CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE=y +# CONFIG_ESP32_PHY_INIT_DATA_IN_PARTITION is not set +CONFIG_ESP32_PHY_MAX_WIFI_TX_POWER=20 +CONFIG_ESP32_PHY_MAX_TX_POWER=20 +# CONFIG_REDUCE_PHY_TX_POWER is not set +# CONFIG_ESP32_REDUCE_PHY_TX_POWER is not set +# CONFIG_SPIRAM_SUPPORT is not set +# CONFIG_ESP32_SPIRAM_SUPPORT is not set +# CONFIG_ESP32_DEFAULT_CPU_FREQ_80 is not set +CONFIG_ESP32_DEFAULT_CPU_FREQ_160=y +# CONFIG_ESP32_DEFAULT_CPU_FREQ_240 is not set +CONFIG_ESP32_DEFAULT_CPU_FREQ_MHZ=160 +CONFIG_TRACEMEM_RESERVE_DRAM=0x0 +# CONFIG_ESP32_PANIC_PRINT_HALT is not set +CONFIG_ESP32_PANIC_PRINT_REBOOT=y +# CONFIG_ESP32_PANIC_SILENT_REBOOT is not set +# CONFIG_ESP32_PANIC_GDBSTUB is not set +CONFIG_SYSTEM_EVENT_QUEUE_SIZE=32 +CONFIG_SYSTEM_EVENT_TASK_STACK_SIZE=2304 +CONFIG_MAIN_TASK_STACK_SIZE=3584 +CONFIG_CONSOLE_UART_DEFAULT=y +# CONFIG_CONSOLE_UART_CUSTOM is not set +# CONFIG_CONSOLE_UART_NONE is not set +# CONFIG_ESP_CONSOLE_UART_NONE is not set +CONFIG_CONSOLE_UART=y +CONFIG_CONSOLE_UART_NUM=0 +CONFIG_CONSOLE_UART_BAUDRATE=115200 +CONFIG_INT_WDT=y +CONFIG_INT_WDT_TIMEOUT_MS=300 +CONFIG_INT_WDT_CHECK_CPU1=y +CONFIG_TASK_WDT=y +CONFIG_ESP_TASK_WDT=y +# CONFIG_TASK_WDT_PANIC is not set +CONFIG_TASK_WDT_TIMEOUT_S=5 +CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU0=y +CONFIG_TASK_WDT_CHECK_IDLE_TASK_CPU1=y +# CONFIG_ESP32_DEBUG_STUBS_ENABLE is not set +CONFIG_ESP32_DEBUG_OCDAWARE=y +CONFIG_BROWNOUT_DET=y +CONFIG_ESP32_BROWNOUT_DET=y +CONFIG_BROWNOUT_DET_LVL_SEL_0=y +CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_0=y +# CONFIG_BROWNOUT_DET_LVL_SEL_1 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_1 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_2 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_3 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_4 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_5 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_6 is not set +# CONFIG_BROWNOUT_DET_LVL_SEL_7 is not set +# CONFIG_ESP32_BROWNOUT_DET_LVL_SEL_7 is not set +CONFIG_BROWNOUT_DET_LVL=0 +CONFIG_ESP32_BROWNOUT_DET_LVL=0 +# CONFIG_DISABLE_BASIC_ROM_CONSOLE is not set +CONFIG_IPC_TASK_STACK_SIZE=1024 +CONFIG_TIMER_TASK_STACK_SIZE=3584 +CONFIG_ESP32_WIFI_ENABLED=y +CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM=10 +CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM=32 +# CONFIG_ESP32_WIFI_STATIC_TX_BUFFER is not set +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER=y +CONFIG_ESP32_WIFI_TX_BUFFER_TYPE=1 +CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM=32 +# CONFIG_ESP32_WIFI_CSI_ENABLED is not set +CONFIG_ESP32_WIFI_AMPDU_TX_ENABLED=y +CONFIG_ESP32_WIFI_TX_BA_WIN=6 +CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP32_WIFI_AMPDU_RX_ENABLED=y +CONFIG_ESP32_WIFI_RX_BA_WIN=6 +CONFIG_ESP32_WIFI_RX_BA_WIN=6 +CONFIG_ESP32_WIFI_NVS_ENABLED=y +CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_0=y +# CONFIG_ESP32_WIFI_TASK_PINNED_TO_CORE_1 is not set +CONFIG_ESP32_WIFI_SOFTAP_BEACON_MAX_LEN=752 +CONFIG_ESP32_WIFI_MGMT_SBUF_NUM=32 +CONFIG_ESP32_WIFI_IRAM_OPT=y +CONFIG_ESP32_WIFI_RX_IRAM_OPT=y +CONFIG_ESP32_WIFI_ENABLE_WPA3_SAE=y +CONFIG_ESP32_WIFI_ENABLE_WPA3_OWE_STA=y +CONFIG_WPA_MBEDTLS_CRYPTO=y +CONFIG_WPA_MBEDTLS_TLS_CLIENT=y +# CONFIG_WPA_WAPI_PSK is not set +# CONFIG_WPA_11KV_SUPPORT is not set +# CONFIG_WPA_MBO_SUPPORT is not set +# CONFIG_WPA_DPP_SUPPORT is not set +# CONFIG_WPA_11R_SUPPORT is not set +# CONFIG_WPA_WPS_SOFTAP_REGISTRAR is not set +# CONFIG_WPA_WPS_STRICT is not set +# CONFIG_WPA_DEBUG_PRINT is not set +# CONFIG_WPA_TESTING_OPTIONS is not set +# CONFIG_ESP32_ENABLE_COREDUMP_TO_FLASH is not set +# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set +CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y +CONFIG_TIMER_TASK_PRIORITY=1 +CONFIG_TIMER_TASK_STACK_DEPTH=2048 +CONFIG_TIMER_QUEUE_LENGTH=10 +# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set +# CONFIG_HAL_ASSERTION_SILIENT is not set +# CONFIG_L2_TO_L3_COPY is not set +CONFIG_ESP_GRATUITOUS_ARP=y +CONFIG_GARP_TMR_INTERVAL=60 +CONFIG_TCPIP_RECVMBOX_SIZE=32 +CONFIG_TCP_MAXRTX=12 +CONFIG_TCP_SYNMAXRTX=12 +CONFIG_TCP_MSS=1440 +CONFIG_TCP_MSL=60000 +CONFIG_TCP_SND_BUF_DEFAULT=5760 +CONFIG_TCP_WND_DEFAULT=5760 +CONFIG_TCP_RECVMBOX_SIZE=6 +CONFIG_TCP_QUEUE_OOSEQ=y +CONFIG_TCP_OVERSIZE_MSS=y +# CONFIG_TCP_OVERSIZE_QUARTER_MSS is not set +# CONFIG_TCP_OVERSIZE_DISABLE is not set +CONFIG_UDP_RECVMBOX_SIZE=6 +CONFIG_TCPIP_TASK_STACK_SIZE=3072 +CONFIG_TCPIP_TASK_AFFINITY_NO_AFFINITY=y +# CONFIG_TCPIP_TASK_AFFINITY_CPU0 is not set +# CONFIG_TCPIP_TASK_AFFINITY_CPU1 is not set +CONFIG_TCPIP_TASK_AFFINITY=0x7FFFFFFF +# CONFIG_PPP_SUPPORT is not set +CONFIG_ESP32_TIME_SYSCALL_USE_RTC_HRT=y +CONFIG_ESP32_TIME_SYSCALL_USE_RTC_FRC1=y +# CONFIG_ESP32_TIME_SYSCALL_USE_RTC is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_HRT is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_FRC1 is not set +# CONFIG_ESP32_TIME_SYSCALL_USE_NONE is not set +CONFIG_ESP32_PTHREAD_TASK_PRIO_DEFAULT=5 +CONFIG_ESP32_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 +CONFIG_ESP32_PTHREAD_STACK_MIN=768 +CONFIG_ESP32_DEFAULT_PTHREAD_CORE_NO_AFFINITY=y +# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_0 is not set +# CONFIG_ESP32_DEFAULT_PTHREAD_CORE_1 is not set +CONFIG_ESP32_PTHREAD_TASK_CORE_DEFAULT=-1 +CONFIG_ESP32_PTHREAD_TASK_NAME_DEFAULT="pthread" +CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ABORTS=y +# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_FAILS is not set +# CONFIG_SPI_FLASH_WRITING_DANGEROUS_REGIONS_ALLOWED is not set +# CONFIG_ESP32_ULP_COPROC_ENABLED is not set +CONFIG_SUPPRESS_SELECT_DEBUG_OUTPUT=y +CONFIG_SUPPORT_TERMIOS=y +CONFIG_SEMIHOSTFS_MAX_MOUNT_POINTS=1 +# End of deprecated options