flippy 0.4.3

Automates upgrades and pulls remote databases, files, and firmware for the Flipper Zero
//! Helper module for all sorts of fun art-related things for flippy!

use std::time::{SystemTime, UNIX_EPOCH};

macro_rules! rgb_color {
    ($r:expr, $g:expr, $b:expr, $text:expr) => {
        concat!("\x1b[38;2;", $r, ";", $g, ";", $b, "m", $text)
    };
}

macro_rules! reset {
    ($text: expr) => {
        concat!("\x1b[0m", $text)
    };
}

pub const FLIPPY: &str = concat!(
    rgb_color!(
        0xFF,
        0x82,
        0x00,
        r#"
    _________  __        _________  ________  ________  __  __
   / _______/ / /       /___  ___/ /   ₀   / /   ₀   / / / / /
  / /______  / /          / /     / ______/ / ______/ / /_/ /
 / _______/ / /_____  ___/ /___  / /       / / ______ \__, /
/_/        /_______/ /________/ /_/       /_/ /___________/ v"#
    ),
    rgb_color!(0xA5, 0xF4, 0xBF, env!("CARGO_PKG_VERSION_MAJOR")),
    reset!("."),
    rgb_color!(0x98, 0xCE, 0xFF, env!("CARGO_PKG_VERSION_MINOR")),
    reset!("."),
    rgb_color!(0xFF, 0xF4, 0x93, env!("CARGO_PKG_VERSION_PATCH")),
    reset!("\n\n"),
);

const ERROR_WALLS: [&str; 7] = [
    r#"
           __..--''``---....___   _..._    __
 /// //_.-'    .-/";  `        ``<._  ``.''_ `. / // /
///_.-' _..--.'_    \                    `( ) ) // //
/ (_..-' // (< _     ;_..__               ; `' / ///
 / // // //  `-._,_)' // / ``--...____..-' /// / //
       assert_eq!(self.sound, Sound::MEOW)
"#,
    r#"

                              .ccccc.
                         .cc;'coooxkl;.
                     .:c:::c:,,,,,;c;;,.'.
                   .clc,',:,..:xxocc;'..c;
                  .c:,';:ox:..:c,,,,,,...cd,
                .c:'.,oxxxxl::l:.,loll;..;ol.
                ;Oc..:xxxxxxxxx:.,llll,....oc
             .,;,',:loxxxxxxxxx:.,llll;.,,.'ld,
            .lo;..:xxxxxxxxxxxx:.'cllc,.:l:'cO;
           .:;...'cxxxxxxxxxxxxoc;,::,..cdl;;l'
         .cl;':,'';oxxxxxxdxxxxxx:....,cooc,cO;
     .,,,::;,lxoc:,,:lxxxxxxxxxxxo:,,;lxxl;'oNc
   .cdxo;':lxxxxxxc'';cccccoxxxxxxxxxxxxo,.;lc.
  .loc'.'lxxxxxxxxocc;''''';ccoxxxxxxxxx:..oc
olc,..',:cccccccccccc:;;;;;;;;:ccccccccc,.'c,
Ol;......................................;l'
               PARTY OR DIE"#,
    r#"
                                  __
                               _.-~  )
                    _..--~~~~,'   ,-/     _
                 .-'. . . .'   ,-','    ,' )
               ,'. . . _   ,--~,-'__..-'  ,'
             ,'. . .  (@)' ---~~~~      ,'
            /. . . . '~~             ,-'
           /. . . . .             ,-'
          ; . . . .  - .        ,'
         : . . . .       _     /
        . . . . .          `-.:
       . . . ./  - .          )
      .  . . |  _____..---.._/ ____ I AM NOT A FLIPPER _
~---~~~~----~~~~             ~~
"#,
    r#"
    ___
 __/_  `.  .-"""-.
 \_,` | \-'  /   )`-')
  "") `"`    \  ((`"`
 ___Y  ,    .'7 /|
(_,___/...-` (_/_/ sk
         WOOF
"#,
    r#"(╯°□°)╯︵ яoяяƎ"#,
    r#"
 ╱|、
(˚ˎ 。7
|、˜〵
じしˍ,)ノ"#,
    r#"
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣯⣿⣾⢿⣿⣿⣿⠽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⡿⣿⢿⡿⣿⢿⣿⣿⣿⣿⣿⡀⠂⠀⠈⠙⠻⢿⣿⣿⣿⣏⢿⣿⣷⣯⣟⡷⣯⣿⢿⣽⣾⣻⣷⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠁⠀⠀⢀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⡇⣿⢣⢟⡻⣛⢟⡤⢧⡜⣇⠿⣇⠀⠀⠀⠀⠀⠀⠛⢿⣼⡟⣼⣿⣧⢻⣼⣻⣧⢟⡿⣼⢧⣟⣧⣿⣼⣟⣿⣿⣼⣟⣿⣿⣿⠟⠃⠀⠀⠀⠀⣼⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣗⡌⣣⠏⡜⡭⣚⡜⣣⠞⡼⡸⢻⡤⠀⠀⠀⠀⠀⠀⠈⠙⠾⠿⢿⠿⠁⠉⠙⠛⠛⠛⠓⠛⠛⠋⠉⠛⠋⠁⠉⠘⠙⠛⠋⠀⠀⠀⠀⠀⠀⢰⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⠘⡤⢩⡘⠰⡡⢊⡕⠪⢔⢣⡙⢷⡀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⡆⡘⠤⣈⠣⡁⠧⡘⡑⢊⠔⠲⢈⠻⢦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣽⣷⣿
⣿⣿⣟⣿⣿⣿⣿⡇⠑⠒⡁⠛⠛⠛⠛⠛⠋⠛⡛⠛⠛⢻⡇⠀⠀⠀⠀⠀⠀⣀⡀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⣀⡀⠀⠀⠀⠚⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣭⣋⠭⣍⢭⡙
⣿⣿⡿⣿⣿⣿⣿⣷⠀⠡⠐⠤⠣⠌⢡⢉⠡⡁⠒⡐⠂⣺⡷⠀⠀⠀⠀⠐⠿⣯⣭⣻⣿⣷⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⣿⣿⣿⢯⠽⠟⠛⠈⠀⠀⠀⢿⣿⢾⣿⣿⣿⣿⢿⣿⣿⢿⣿⣿⣿⣽⢯⡟⡿⣿⣿⣿⣟⠛⡋⠿⣛⣌⣲⡉⢦⠘
⣿⣿⢿⣿⣿⣿⣿⣿⠀⠐⠠⠐⢀⠂⡐⢈⠂⡁⠂⠙⣶⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⠟⣻⡟⠾⣌⢳⣽⣾⣿⣥⣩⣴⣸⣿⣿⣿⡳⠌⡜
⣿⣿⡿⣿⣾⣿⣿⣿⡆⠀⠀⠀⠀⢀⠀⠀⡐⣀⠠⠉⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣀⣀⡀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⢯⣷⢿⡾⣿⣿⣿⣿⣿⣿⣿⣉⠆⠩⢾⣾⣿⣿⣷⡳⡴⣾⣿⢿⢫⡝⢆⠡
⣿⣿⣿⣿⣿⣿⣟⣿⡇⠀⠀⠐⠀⠀⠀⢀⠀⠀⢤⠀⢻⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢲⣶⣟⣈⣹⣷⣿⠟⠀⠀⠀⠀⠀⠀⠀⠤⠤⢤⣤⣀⣤⣠⣿⡶⣶⣷⡶⣶⠶⣶⠶⡿⢿⢿⡅⣈⡡⠈⢸⣿⣿⣿⣷⣳⣿⣟⠢⡃⡜⢄⢫
⣿⡿⢹⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣄⠀⣵⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣷⣿⠟⠁⠀⠀⠀⠀⠂⣈⣀⣤⡴⠦⠦⢤⣄⣤⣻⣛⣛⣛⣟⡛⠿⠷⠿⡳⡹⠀⢿⡃⠜⣀⣽⣿⣿⣿⣿⣿⣿⣿⢌⠳⡥⣘⢆⢣
⡷⣿⠸⣿⣿⣿⣿⢿⣿⡀⠠⠀⢀⣀⠀⠀⠀⠘⠛⠉⠉⠄⢻⠀⠀⠀⠀⠀⠀⠀⢀⣈⡉⠒⠒⠂⠒⠒⠒⢩⣿⡇⠐⠒⠒⢒⣺⡯⡍⠯⣉⠙⢶⡒⠦⣄⣀⣜⣿⡿⣿⣿⣿⣿⣿⣿⣷⣷⣶⣿⣯⣥⣔⣰⣿⣿⣿⣿⣿⣿⣿⣿⣎⣕⣒⣡⣚⠲
⣗⣿⡆⢿⣿⣿⣿⣿⣿⣇⣀⣠⣤⣤⣴⣶⣶⣶⣾⣷⠾⣻⣿⡧⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⢙⣷⣶⣶⠿⠿⠻⠛⠻⠿⠿⣿⣷⣦⠙⢦⡈⠳⢤⡉⠒⢦⣼⣿⣿⣿⣶⣯⣝⣛⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣍
⣿⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣻⡽⣟⣫⣵⡾⠛⣫⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠭⠄⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣻⣧⠠⣙⣶⡀⠙⠲⣄⣹⡿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣝⡻⢯⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣯⡽⣟⣧⣿⠟⣋⣥⣶⣿⠿⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣷⢻⡱⢂⢿⣌⢳⡀⠘⢹⣿⣯⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⡿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⢟⣵⣿⡟⡏⣼⣾⣿⣿⠟⣭⣾⣟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⠿⡹⠥⡉⠚⠙⠀⠚⠂⠈⢿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⣿⢿⡿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⡟⣧⣿⡿⣫⣷⢿⣶⣿⣿⢟⣽⡾⣯⣾⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠐⡈⠀⠀⠀⠀⠴⡏⠰⡃⠅⠱⠀⠸⠀⠀⠀⠀⠈⣿⣿⣿⣿⣷⣿⣿⣿⡳⠜⣦⢳⡝⡶⣱⢎⡷⢭⡜⣭⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⡏⣷⣿⡟⣷⣿⣿⣽⣿⣿⣿⢱⣿⣯⣿⡟⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢡⠘⢠⠃⡆⠐⢨⢱⡌⠁⠈⡄⠁⡄⠐⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣤⣯⡜⢳⣭⣾⣽⣮⣵⣾⠛⠃⠈⠙⠛⠛⢻⣿⣿⣿
⣿⣿⣿⣿⣯⣿⡿⣿⣿⣿⣽⣿⣿⣿⢿⣼⣿⣳⡿⢿⣛⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠌⡐⢈⠱⣈⠂⡄⠁⠂⠀⡁⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣷⣾⣿⣶⣿⣷⣶⣶⣶⣶⣤⣤⣤⣄⣀⡉
⣿⣿⣿⣿⢿⣿⣿⣿⣿⣾⢿⣿⢿⣹⣾⣟⣶⡿⣿⢿⡱⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡁⢆⠠⠃⠄⠂⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣟⣶⣿⣿⣿⢯⣷⣿⣻⣞⡾⣽⡽⣯⡟⣽⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠠⢈⠐⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢯⣿⣟⣷⣻⢾⡽⣞⣳⢯⣝⢮⢻⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠠⢁⠐⡀⠀⠀⠀⠀⠀⠀⠀⠀⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⣿⢯⣿⣷⣻⡾⣽⢯⡿⣽⣫⣟⣮⢯⡻⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣯⣷⣿⡿⣟⣾⡿⣽⣯⢿⣽⣳⢿⡼⣞⣭⠷⡹⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣻⣽⣷⢯⣟⡾⣽⣛⡾⣝⡞⣿⡱⢻⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⠁⡀⠀⠀⠀⠀⠀⠐⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
⣿⣿⣿⣿⣿⣿⣿⣻⣿⣿⣻⣟⣿⡾⣯⢿⣽⣳⢯⡽⢯⡽⡶⢯⡅⣈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⢁⠀⡀⠀⠠⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿
                                      bleh"#,
];

pub fn get_art() -> &'static str {
    let time = SystemTime::now().duration_since(UNIX_EPOCH).unwrap();
    let nanos = time.subsec_millis() as usize;
    let n = (nanos % (ERROR_WALLS.len() - 1)) + 1;

    ERROR_WALLS[n]
}