1
0
Fork 0
forked from foxora/nix

Compare commits

...
Sign in to create a new pull request.

87 commits
main ... main

Author SHA1 Message Date
5c93afcb2b added sql formatter 2026-03-16 08:43:25 +00:00
f6e3fa6a86 removed quickshare 2026-03-16 07:16:40 +00:00
afb9d2fd9b i dont need the paramters for delta, it automatically gets it from its config 2026-03-16 03:18:58 +00:00
5e882e9914 updated flake.lock + some stuff changed in nixcord 2026-03-16 02:56:08 +00:00
b1cfda31f1 changed neovim keybinds :3 2026-03-16 02:55:03 +00:00
63e987277e can now preview hunks inline!!! :3 2026-03-15 22:02:43 +00:00
98a52ebe74 changed telescope colors and am trying out zf instead of fzf 2026-03-15 19:33:43 +00:00
65995c2245 added gitsigns keybinds 2026-03-15 19:29:57 +00:00
4b7a87f302 updated nd alias, i love butterfly <3 2026-03-15 02:09:48 +00:00
dce5deac43 added absolute line number for current line :3 2026-03-14 23:57:49 +00:00
ffc65678ea changed how my nd alias works 2026-03-14 22:18:57 +00:00
c2a581e1be neovim: added gitsigns, moved color stuff into colors.lua, modified telescope and fyler 2026-03-14 22:09:13 +00:00
1d6eec78f0 forgot to push flake.lock when removing fenix :3 2026-03-14 08:23:23 +00:00
9c22f23bc0 realised that rustfmt nightly is in nixpkgs already lol :3 2026-03-13 23:19:37 +00:00
3ebf01c47e made smol changes :3 2026-03-13 18:22:44 +00:00
83bee06352 added wormhole-rs 2026-03-13 08:31:19 +00:00
b7d04fb7cc enabled hw cursors in hyprland again <3 2026-03-11 15:24:01 +00:00
9de130a5c0 updated flake.lock 2026-03-11 13:58:40 +00:00
669128d4b6 Revert flake.lock to 387ccee 2026-03-07 22:08:14 +00:00
662268f327 moved comment lol 2026-03-07 21:14:19 +00:00
cf23725f2f hopefully fixed nvme issue 2026-03-07 21:05:42 +00:00
2a66cb0014 removed hyprland plugins as scrolling is now in hyprland!! :3 2026-03-07 19:25:28 +00:00
be96d1dbf7 nvme ssd power stage bug? switched to 6.12 on nixarawrui <3 2026-03-07 19:12:11 +00:00
ff97832d9f put servers on 6.12 LTS <3 2026-03-07 19:11:14 +00:00
adcfc52c60 added submap to taskbar for hyprland :3 2026-03-07 16:00:41 +00:00
7ff6be7692 reverting default workspace change, produces undesired behavior 2026-03-06 23:47:37 +00:00
3c203faa1e made a syntax error in hyprland config, mb 2026-03-06 23:37:46 +00:00
704d5be70b removed dolphin, i don't use it 2026-03-06 23:22:44 +00:00
a87d299687 ensure equibop is always on 3.x 2026-03-06 23:22:22 +00:00
2c4c350974 updated hyprland :3 2026-03-06 23:21:58 +00:00
28ef9220d9 fixed gpu initialization order :3 2026-03-06 21:05:04 +00:00
7f1f03f647 updated flake.lock 2026-03-06 21:04:39 +00:00
407e781019 fixed profile pictures not updating 2026-03-06 16:15:16 +00:00
356263a272 update flake.lock :3 2026-03-06 16:00:05 +00:00
e17387e800 switched to latest mainline kernel 2026-03-06 15:18:41 +00:00
e29232d96c arcturus config: removed systemd debug log level 2026-03-05 10:47:47 +00:00
18f81ea61c lyra config: iptables -> nftables 2026-03-05 10:46:41 +00:00
ea11023e98 cachyos kernel seems to have bugs, switching to zen <3 2026-03-05 06:58:47 +00:00
67c8d10658 added toml formatter, split each language into lsp and format 2026-03-05 05:50:50 +00:00
56d2fe2922 updated pfp :3 2026-03-04 20:31:57 +00:00
e8c124bc16 changed incorrect comment in lyra's config 2026-03-04 18:08:37 +00:00
6a3c29ef39 added git stuff to neovim config 2026-03-04 18:08:06 +00:00
86fcbcbfbb changed spotify opacity 2026-03-03 16:28:24 +00:00
5af73cbdd6 added pastel, eva, and silicon 2026-03-03 09:58:11 +00:00
df7e73c366 made hyprpicker copy to the clipboard 2026-03-03 09:57:41 +00:00
b293101528 added tlrc and removed helix 2026-03-03 08:54:23 +00:00
2c69e1f116 formatted + added project formatter that respects .gitignore 2026-03-03 04:50:29 +00:00
3e14220569 can format entire projects now 2026-03-03 04:32:42 +00:00
211fa03252 format with prettier formatter :3 2026-03-03 04:26:35 +00:00
8b1a6aca39 nixfmt -> alejandra 2026-03-03 04:12:01 +00:00
f925b42669 set delta as pager in lazygit, removed bookokrat
i kinda forgot to test bookokrat.. but basically it didnt work because
bookokrat's flake doesnt compile and it isnt on nixpkgs either
2026-03-03 02:41:40 +00:00
387cceeadc updated flake.lock, reverted zig packages to unstable, switched ereader, added nix-index 2026-03-03 01:47:08 +00:00
6827fca11c added pansexual option to fastfetch 2026-03-01 19:11:17 +00:00
f7a56bc7bb made fastfetch so pretty 2026-03-01 18:18:35 +00:00
6240cdd4c6 fixed ascii art again 2026-03-01 17:47:23 +00:00
42b25c30c8 fixed ascii art 2026-03-01 17:43:27 +00:00
ce0ba8c002 added some ascii art 2026-03-01 17:38:05 +00:00
f3dc177ea4 fixed themeing in mango after QT_QPA_PLATFORM was removed from the system env vars 2026-03-01 17:04:58 +00:00
e4cd56e43d updated init.lua 2026-03-01 17:02:29 +00:00
308b109a27 added profile picture 2026-03-01 17:01:10 +00:00
14507c9737 accidentally uninstalled alacritty and didn't write config file properly 2026-02-28 17:53:21 +00:00
72767efe1f changed alacritty toml so fastfetch reads its toml correctly 2026-02-28 17:35:39 +00:00
72b61631ce why did i do that 2026-02-28 06:47:07 +00:00
af79d61c1b switched to rustfmt nightly :3 2026-02-28 01:34:13 +00:00
5c1749baa9 changed inputs to follow their respective channels 2026-02-27 06:44:44 +00:00
49c04f3cbd added lazygit bc butterfly said so :3 2026-02-27 04:00:15 +00:00
97611185fc changed gleam indentation and telescope preview indentation 2026-02-26 16:59:54 +00:00
db539dbfaf added bypass status to discord 2026-02-26 15:06:29 +00:00
9e6e73d2d9 changed pinned dms 2026-02-26 15:03:42 +00:00
12a9415de7 changed nvim keybinds for focusing windows 2026-02-26 15:03:23 +00:00
d274bccefa hide when typing in alacritty 2026-02-26 10:53:00 +00:00
80a3334813 changed keybinds for autocomplete 2026-02-26 10:48:39 +00:00
d66145df58 added protobuf lsp and formatting :3 2026-02-25 16:25:40 +00:00
c98db7bc0b enabled silentsddm again since sddm works again :333333 2026-02-24 17:00:42 +00:00
8252c59090 fixed outer gap and added waybar config for mango :3 2026-02-24 16:59:56 +00:00
6ba376e1f5 fixed sddm hanging 2026-02-24 14:42:28 +00:00
5ce35d8d36 didnt need gnused, it was bc i was not passing my path to the portals 2026-02-24 04:11:26 +00:00
0555ad18cd fixed file picker not starting in mangowc 2026-02-24 04:08:02 +00:00
e24b63b26c fixed file saving not working 2026-02-24 00:26:10 +00:00
7434f51a16 added even more mangowc stuff!!! :3333333 2026-02-24 00:25:39 +00:00
79af2ce80f added alacritty, foot doesnt support dynamic themeing :c 2026-02-23 19:33:14 +00:00
cf5b772204 fixed more mangowc stuff :3 2026-02-23 16:10:30 +00:00
7d982c7ccc attempting to fix home assistant 2026-02-22 20:04:05 +00:00
fb2e2ee66b added wip mangowc config 2026-02-22 18:31:08 +00:00
68cf02e366 butterfly was right, foot is better :3 2026-02-22 02:38:15 +00:00
a354fca7f5 ohmygod comment.nvim is amazing <3 2026-02-22 00:47:01 +00:00
480b7a1ef2 i accidentally typed L instead of l 2026-02-22 00:34:49 +00:00
98 changed files with 3177 additions and 945 deletions

598
flake.lock generated

File diff suppressed because it is too large Load diff

View file

@ -10,12 +10,16 @@
nixpkgs-master.url = "github:NixOS/nixpkgs/master";
home-manager = {
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager-unstable = {
url = "github:nix-community/home-manager/master";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
cerulean = {
url = "git+https://tearforge.net/cry/cerulean";
url = "git+https://tearforge.net/cry/cerulean?rev=d5211287bd3cb96078f2053488d67d557848a8f2";
inputs = {
systems.follows = "systems";
nixpkgs.follows = "nixpkgs";
@ -24,38 +28,60 @@
microvm = {
url = "github:microvm-nix/microvm.nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
cachyos.url = "github:xddxdd/nix-cachyos-kernel";
nix-alien = {
# silly alien :3
url = "github:thiagokokada/nix-alien";
# inputs.nixpkgs.follows = "nixpkgs";
};
# wm/de/apps/theming flakes
hyprland-git = {
url = "github:hyprwm/Hyprland/25250527793eb04bb60f103abe7f06370b9f6e1c";
#url = "github:hyprwm/Hyprland";
# pinned rev because color management is broken on hyprland
# url = "github:hyprwm/Hyprland/25250527793eb04bb60f103abe7f06370b9f6e1c";
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
hyprland-plugins = {
url = "github:hyprwm/hyprland-plugins";
inputs.hyprland.follows = "hyprland-git";
# hyprland-plugins = {
# url = "github:hyprwm/hyprland-plugins";
# inputs.hyprland.follows = "hyprland-git";
# };
mango = {
url = "github:DreamMaoMao/mangowc";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
nixcats.url = "github:BirdeeHub/nixCats-nvim";
awww.url = "git+https://codeberg.org/LGFae/awww";
zen.url = "github:0xc000022070/zen-browser-flake";
iamb.url = "github:ulyssa/iamb";
nixcord.url = "github:FlameFlag/nixcord";
millennium.url = "github:trivaris/millennium?dir=packages/nix";
awww = {
url = "git+https://codeberg.org/LGFae/awww";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
zen = {
url = "github:0xc000022070/zen-browser-flake";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
iamb = {
url = "github:ulyssa/iamb";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
nixcord = {
url = "github:FlameFlag/nixcord";
inputs.nixpkgs.follows = "nixpkgs";
};
millennium = {
url = "github:trivaris/millennium?dir=packages/nix";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
spicetify-nix = {
url = "github:Gerg-L/spicetify-nix";
inputs = {
systems.follows = "systems";
nixpkgs.follows = "nixpkgs-unstable";
systems.follows = "systems";
};
};
@ -70,6 +96,5 @@
extra-experimental-features = "pipe-operators";
};
outputs = inputs:
import ./snow.nix inputs;
outputs = inputs: import ./snow.nix inputs;
}

View file

@ -1,6 +1,6 @@
{ ... }: {
{...}: {
nix.settings = {
experimental-features = ["nix-command" "flakes"];
experimental-features = ["nix-command" "flakes" "pipe-operators"];
download-buffer-size = 524288000;
};
}

View file

@ -1,4 +1,4 @@
{ ... }: {
{...}: {
nix.settings = {
trusted-users = ["root" "@wheel"];
};

View file

@ -1,8 +1,10 @@
# aurora's configgg!! :333
# trans <3
{
config,
inputs,
upkgs,
mpkgs,
root,
system,
...
@ -10,6 +12,7 @@
imports = [
inputs.zen.homeModules.twilight
../modules/programs/alacritty/default.nix
../modules/programs/iamb/iamb.nix
../modules/programs/neovim/nixcats.nix
../modules/programs/spicetify.nix
@ -26,6 +29,7 @@
../modules/shell/fastfetch/fastfetch.nix
../modules/wm/hyprland/hyprland.nix
../modules/wm/mango/default.nix
../modules/wm/river.nix
../modules/wm/sway.nix
@ -39,6 +43,8 @@
];
home.sessionVariables = {
EDITOR = "avix";
# xdg session variables
XDG_CACHE_HOME = "$HOME/.cache";
XDG_CONFIG_HOME = "$HOME/.config";
@ -62,6 +68,12 @@
recursive = true;
};
# copies the ascii art into .local/share/ascii-art :3
home.file.".local/share/ascii-art" = {
source = root + "/homes/data/ascii-art";
recursive = true;
};
fonts.fontconfig.enable = true;
home.file.".mozilla/native-messaging-hosts/tridactyl.json".source = "${upkgs.tridactyl-native}/lib/mozilla/native-messaging-hosts/tridactyl.json";
@ -94,8 +106,11 @@
popsicle # usb flasher (can be used as a gui tool too :3)
caligula # disk burning tool like popsicle!
exiftool # display and edit metadata on a variety of files
helix # like neovim but rust /hj :333
halloy # irc tui app written in rust
pastel # color generator / manipulator :3 i love colors!! <3
eva # calculator repl
silicon # makes pretty images of code :3
wormhole-rs # send people stuff!! :3
# cli fun
pokeget-rs # prints a random pokemon to the terminal :3
@ -114,6 +129,8 @@
elixir
gleam
delta # git diff viewer
tlrc # tldr rust client
shellcheck
# apps
qutebrowser # keyboard-focused browser (chromium)
@ -121,7 +138,6 @@
tridactyl-native # for firefox browsers
chromium # (chromium)
obsidian # literally best notes app (i use vim mode)
kdePackages.dolphin
qimgv # image viewer!
feh # other image viewer! (im indecisive)
vesktop # modded discord client!
@ -130,9 +146,9 @@
imhex # hex editor
kicad # open source electronics design program
easyeda2kicad
libreoffice-qt # word, excel, pdf etc open source programs
# FIX: its fucking broken: https://github.com/NixOS/nixpkgs/pull/494721
mpkgs.libreoffice-qt # word, excel, pdf etc open source programs
hunspell # spell checker
calibre # ebook reader
obs-studio
cytoscape
element-desktop # 'official' gui matrix client
@ -158,7 +174,6 @@
# gui settings apps
nwg-look # gtk 2 / 3 settings thing idc i hate gtk
pavucontrol # i wanna get rid of this but its audio control thing
rquickshare # android quick share (this is pretty cool!!)
# wayland desktop tools / de / wm stuff / gui stuffs
cliphist
@ -184,6 +199,7 @@
alsa-utils
gphoto2 # for my dslr!!!
ffmpeg
nix-index
];
programs = {
@ -267,27 +283,36 @@
];
};
kitty = {
lazygit = {
enable = true;
package = upkgs.kitty;
font = {
name = "DepartureMono Nerd Font Mono";
size = 10;
settings = {
git.pagers = [
{
colorArg = "always";
pager = "delta --dark --pager=never";
}
];
};
};
foot = {
enable = true;
settings = {
scrollback_lines = 16384;
enable_audio_bell = false;
update_check_interval = 0;
allow_remote_control = "yes"; # used for scripts to control kitty
confirm_os_window_close = 0; # disable close window prompt
main = {
font = "DepartureMono Nerd Font Mono:size=10";
include = "/home/${config.home.username}/.config/foot/theme.ini";
};
scrollback = {
lines = 131072;
};
bell = {
system = "no";
urgent = "no";
notify = "no";
visual = "no";
};
};
extraConfig = ''
include ~/.config/kitty/theme.conf
'';
};
zen-browser = {

BIN
homes/aurora/profile.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 196 KiB

View file

@ -0,0 +1,19 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠖⠃⠀⠀⠀⡁⠀⠀⠀⠀⠀⠐⠆⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⢔⡤⠊⠁
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠁⠀⠀⠘⠁⢀⠀⠀⠀⠀⢈⠓⠂⠠⡄⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣶⠿⠞⠋⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠒⠁⠀⠠⡚⠁⢀⣙⣀⣈⡩⠬⢁⠀⢑⠶⠤⡆⠤⡀⠀⠀⠀⠀⠀⠀⢀⠴⢲⣋⣽⣷⠟⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⢠⠀⠀⣶⠃⠗⣡⣶⣮⣿⡿⠿⠿⢿⣿⣷⣶⣤⣤⠤⠴⠦⠬⣤⣤⠄⣉⠉⠝⢲⣿⡷⠻⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠁⡀⡸⠁⣰⣿⡿⠛⠋⣁⡀⠤⠤⢄⡀⠈⠛⢯⣿⣟⣾⣶⣶⣮⣭⣵⣾⣿⣟⠿⠉⢨⠖⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠀⢠⠳⡧⣻⡿⠋⢀⠒⠉⠀⠀⠀⠀⠀⠀⠉⠢⠀⠀⠙⠛⣻⣿⣿⣿⢿⣿⣿⠟⡱⠖⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⢠⣧⠓⣾⣿⠁⠀⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢦⣠⣾⣿⠿⣿⣿⣿⡿⣫⠏⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠂⢃⣸⣿⠇⢠⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣿⠟⢿⠁⠸⡿⣿⣯⡶⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⢘⡄⠘⣿⣿⠀⠸⡀⠀⠀⠀⠀⠀⢀⣀⣴⣾⣿⡿⡟⡋⠐⡇⠀⢸⣿⣿⠃⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢡⠘⢰⣿⡿⡆⠀⣇⠀⣀⣠⣤⣶⣿⢷⢟⠻⠀⠈⠀⠀⠀⡇⠀⣼⣿⣿⠂⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠔⢀⡴⢯⣾⠟⡏⢀⣠⣿⣿⣿⣟⢟⡋⠅⠘⠉⠀⠀⠀⠀⢀⠀⠁⢠⣿⣟⠃⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠞⣻⣷⡿⢙⣩⣶⡿⠿⠛⠉⠑⢡⡁⠀⠀⠀⠀⠀⠀⢀⠔⠁⠀⣰⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣡⣾⣥⣾⢫⡦⠾⠛⠙⠉⠀⠀⢀⣀⠀⠈⠙⠓⠦⠤⠤⠀⠘⠁⢀⡤⣾⡿⠏⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠔⣴⣾⣿⣿⢟⢝⠢⠃⢀⣤⢴⣾⣮⣷⣶⢿⣶⡤⣐⡀⠀⣠⣤⢶⣪⣿⣿⡿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⡀⣦⣾⡿⡛⠵⠺⢈⡠⠶⠿⠥⠥⡭⠉⠉⢱⡛⠻⠿⣿⣿⣿⣿⣿⠿⠿⠿⠟⠭⠛⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢀⢴⠕⣋⠝⠕⠐⠀⠔⠉⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠁⠉⠁⠁⠁⠁⠈⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢀⣠⠁⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,22 @@
⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀
⠀⠀⠀⢠⠞⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠞⠙⡆⠀
⠀⠀⢠⠏⠀⠀⠀⠑⢄⠀⠀⠀⢠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠋⠀⠀⠀⢸⡄
⠀⢀⡎⠀⠀⠀⠀⠀⠀⠳⣄⠀⠸⡄⠉⠉⠒⠢⣄⠀⠀⠀⠀⡴⠋⠀⠀⠀⠀⠀⠀⢧
⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠈⠣⡀⠳⣀⣀⠀⠀⠀⠙⢦⣠⠎⠀⠀⠀⠀⠀⠀⠀⠀⢸
⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⣀⡴⠋⠉⠉⢁⠀⠀⠀⠀⠀⠙⠶⠀⠀⠀⠀⠀⠀⠀⠀⢸
⠀⢸⠀⠀⠀⠀⠀⠀⠀⠈⠉⠑⠒⠚⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼
⠀⠈⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠃
⠀⠀⠙⡄⠀⠀⠤⡤⠤⢤⣤⣤⣤⠄⠀⠀⠀⠀⢰⣶⣶⣶⡖⠒⢳⠛⠀⠀⠀⣠⠏⠀
⢤⣀⣀⡘⣤⠀⢸⠁⠀⢸⣿⣿⣿⠄⠀⠀⠀⠀⢸⣿⣿⣿⡇⠀⠈⡇⠀⠀⡴⠧⢤⡄
⠘⢆⠀⠉⠉⠀⢿⠀⠀⠘⣿⣿⡿⠀⠀⠀⠀⠀⠈⢿⣿⡿⠀⠀⢀⣇⠀⠀⠀⣠⠞⠀
⠀⠈⠙⢲⠀⡤⡮⣳⡀⠀⠙⠛⠁⠀⠻⠛⠀⠀⠀⠀⠁⠀⠀⡠⣮⡴⠀⠀⢾⡁⠀⠀
⠀⠀⣠⠃⠀⠀⠋⠁⠀⠀⠀⠀⠠⣀⣀⠴⠤⠤⠴⠒⠀⠀⠀⠶⠏⠀⠀⠀⠀⠹⡄⠀
⠀⠐⠧⠤⠤⠓⠦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣠⠤⠚⠒⠒⠒⠊⠉⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠙⢟⠒⠒⠴⠇⠀⠀⠀⠀⠀⠀⠈⠉⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣱⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣆⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠼⠥⣼⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢠⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡆⠀⠀⠀⠀⠀

View file

@ -0,0 +1,24 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡤⠎⠉⠉⠓⣦⡀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣧⡭⣽⠀⠀⠀⣿⡆⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠁⠀⠀⢠⣟⣇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⣀⣀⣤⡤⣤⢤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠤⣞⡷⡟⠣⣄⡀⠀⠀⠀⠀
⠀⠀⠀⢀⣴⣫⣯⣿⠟⢛⣛⡷⢿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡶⠟⠟⠻⣟⣯⣿⡏⣯⢭⢽⣷⠆⠀⠀
⠀⠀⠀⠀⠉⣹⣿⣿⡟⠛⢏⣻⡏⣶⢙⡶⣄⠀⢠⠟⠛⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠃⠀⠀⠀⠀⠀⠙⡿⣿⡟⣻⡗⠂⠀⠀
⠀⠀⠀⠀⠀⠀⣿⣿⡿⣿⡻⡿⣗⡿⠿⣗⡙⢷⣇⠀⠀⣤⡇⠀⠀⠀⠀⠀⢀⣔⣽⡻⣤⣠⡤⣦⡤⣤⣤⣀⢹⡯⣿⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⡿⡯⠁⠀⠀⠈⠈⠙⡷⡄⠀⠈⠳⡝⣆⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⡿⠛⠛⣫⡵⠋⠉⠉⣹⣿⣿⡿⡇⠀⠀⠀⠀
⠀⠀⣠⡶⠶⣶⣷⡧⡞⢀⣤⣤⣤⢤⣘⣷⣄⠀⠀⠦⡟⡇⠀⣠⣄⠀⠀⣾⡿⠈⢵⣶⡋⣗⣒⣒⣶⣾⠏⠁⢸⣿⣿⠀⠀⠀⠀⠀
⢠⡟⠁⠀⠀⠈⡷⣷⢥⣾⡿⠟⠿⢛⣻⣧⣝⣧⡀⠀⠘⣿⣼⣿⣿⣇⣿⢃⣾⠿⠟⠋⠉⠉⠫⣯⣹⣇⡀⣜⡟⡿⠀⠀⠀⠀⠀⠀
⡟⡇⠀⠀⠀⠀⠸⣟⠿⡿⡯⣧⢦⣄⠀⠈⠑⠳⣿⣷⣴⣯⠻⠹⠇⣿⢷⢏⣡⠋⠀⠀⠖⠛⠛⡣⣿⡏⡾⢹⡟⣿⣛⣓⡦⡄⠀⠀
⢟⣇⣀⣀⡇⠀⠀⠀⠳⣟⣿⣿⣇⡞⡽⢶⣦⡄⠀⠻⣧⠈⠁⠀⠀⣍⡿⢻⣻⡕⣃⣴⣶⡿⣿⢯⡷⠛⣠⣼⡞⠋⠁⠀⠈⢯⢧⠀
⠀⠙⠛⠛⠉⠀⢀⣠⡄⣈⠳⢟⣿⠷⠷⠯⡾⡿⠃⠀⢫⡀⠀⠀⠀⠃⡧⣾⡿⡷⣿⣟⣛⡿⢿⠟⣷⣿⣯⠇⠀⠠⢤⡀⠀⠀⢿⠀
⠀⠀⠀⠀⠀⠀⣟⠁⠉⠣⡝⡆⡵⡳⢳⣶⣾⣯⣮⣥⣀⠃⠀⠀⠀⠀⢛⡿⠿⣷⡶⠮⢿⣿⣺⣿⡯⠅⢭⣷⡤⠤⠜⠀⠀⣀⡼⠃
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣶⣿⣿⣫⠇⣷⣗⣛⣽⠷⣿⡥⠄⠀⠀⠀⠀⠈⡏⠛⢻⣽⢿⣈⡿⡿⠃⠁⠀⠀⠀⠙⡷⡄⠀⠀⠀⠀⠁
⠀⠀⠀⠀⠀⠀⠀⠀⡷⣬⣻⡏⠁⡿⢸⣿⣿⣿⡿⠋⠁⡀⠀⠀⠀⠀⡾⣯⢟⡌⣿⣿⣿⠿⣿⣒⠂⠀⠀⠀⡄⠘⡇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢰⣽⣻⡟⠁⠀⣧⣿⡿⠃⠀⣀⣀⣾⡇⡰⠀⠀⣜⢻⣇⢹⣿⡌⢿⣟⡄⣿⣿⣿⠟⠂⠙⠓⠛⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠘⢛⣿⣿⣿⡇⠀⡤⣿⡟⠁⠀⠈⣿⣿⢼⠻⠁⠀⠀⢸⠀⠹⣿⡟⣯⣿⣿⡭⠇⡻⣿⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢨⣷⣿⣿⣧⡗⠁⣿⡇⠀⠀⠀⡻⡟⠁⠀⠀⠀⠀⠘⡄⠀⠀⠛⡷⡯⣟⡏⠆⠀⣿⡿⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠈⢘⣾⣿⣿⣇⣤⡷⣥⠔⣆⡼⠋⠀⠀⠀⠀⠀⠀⠀⠻⣦⡀⠀⠘⠏⢯⢁⣤⣿⣟⣃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠏⠀⡏⡿⣿⣿⣫⣩⠿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢷⣷⣶⣶⣿⣿⣿⣿⡟⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠚⠁⡯⣿⡏⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⠿⣿⣻⡿⣇⠀⠀⠀⣿⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠓⢿⣦⠀⠀⣠⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⣶⡄⠀⠀⣠⡷⢿⣿⠏⠑⠯⣛⡷⠟⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠿⣦⡽⠟⠃⠀⠀⠀⠀⠀⠀⠀⠀⠻⠿⠷⣯⣽⠿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,24 @@
⠀⢀⣠⣤⣤⣤⣄⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⣤⣤⣀⠀
⢰⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⣤⡀⠀⠀⠀⠀⠀⢂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠎⠀⠀⠀⠀⠀⣀⣤⣶⣿⣿⣿⣿⣿⣿⣿⣿⣷
⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⡀⠀⠀⠈⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠜⠀⠀⠀⣠⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿
⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠿⠧⠉⠻⣶⣄⠀⠈⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⢀⣠⡾⠛⠉⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃
⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣖⡒⠀⠀⠀⠀⠈⠻⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠌⠀⣠⣾⠋⠀⠀⠀⠀⠀⢒⣿⣿⣿⣿⣿⣿⣿⣿⠃⠀
⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣟⠀⠀⠀⠀⠀⠀⠀⠙⢿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠟⠁⠀⠀⠀⠀⠀⠀⢘⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀
⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⠟⠂⠀⠀⠀⠀⠀⠀⠀⠀⠉⢷⡀⠀⠀⠀⠀⠀⠀⢠⡿⠁⠀⠀⠀⠀⠀⠀⠀⠐⢒⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀
⠀⠀⠀⠘⣿⣿⣿⣿⡿⠟⠛⠉⡁⠀⠀⠀⠀⠀⠀⠀⠀⠈⢷⠀⠱⣀⣀⠀⢀⠟⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠛⠿⢿⣿⣿⣿⣿⣿⠀⠀⠀
⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⠟⠋⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠃⢸⣿⣿⠀⠊⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠙⠛⢿⣷⣿⣿⣿⣿⡟⠀⠀⠀
⠀⠀⠀⠀⠸⣿⣿⣿⣿⡷⠖⠒⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣤⣿⣿⣿⣇⡠⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠲⠶⣿⣿⣿⣿⣿⠁⠀⠀⠀
⠀⠀⠀⠀⠀⠙⠻⠿⠿⢿⣶⣤⣤⣤⣤⣄⠐⠒⠒⠀⠀⠀⠀⣻⣿⣿⣿⣿⡇⠀⠀⠀⠀⠐⠂⠀⣤⣤⣤⣤⣤⡾⠿⠿⠿⠛⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⣤⣶⣿⣿⣿⣿⠿⠁⠀⠀⠀⠀⠀⠀⠀⠈⢻⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠩⢿⣿⣿⣿⣷⣦⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣯⠅⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢼⣿⣿⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢬⣽⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣏⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⠸⣿⡟⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣈⣛⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⡿⢁⣤⡖⠀⠀⠀⠀⠀⠀⠀⢸⠁⠀⣿⡇⠀⢹⠀⠀⠀⠀⠀⠀⠀⠀⢤⡀⠸⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣵⣿⣿⣤⡄⠀⠀⠀⠀⠀⠀⡌⠀⠀⠙⠁⠀⠈⡇⠀⠀⠀⠀⠀⠀⣠⣌⣿⣷⣼⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣡⣴⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⢰⠀⠀⠀⠀⠰⣤⣹⣿⣿⣿⣿⣿⠏⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣧⣤⣀⣤⢀⡎⠀⠀⠀⠀⠀⠀⠀⠀⣇⢀⡄⢀⣤⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡿⠛⠉⠉⠉⠛⠛⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠛⠉⠉⠉⠻⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣷⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢰⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣷⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠙⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⠋⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,44 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣆⠀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠸⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠙⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠈⠙⢷⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠙⠛⠿⣶⣶⣶⣶⣦⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣤⡄⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣽⣻⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣽⣿⣿⣧⢹⣿⣿⣿⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣌⠛⠿⠋⠻⣦⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠈⠻⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⢻⣦⣶⠀⡈⣿⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⣷⣿⣿⣿⡇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣾⣿⣿⣿⣿⣿⣿⣄⣈⣿⡆⢿⡟⠻⣿⡿⠋⠉⠛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⢿⣿⣿⣿⡇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠃⣸⣿⣿⣿⡇⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣽⣿⣿⣼⣿⣿⣿⡇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⣝⡛⢹⣇⠄⠀⠀⠀⠀⠘⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⣿⣿⣿⡇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⣿⣿⣿⣿⣶⣿⡤⠄⠀⠀⠀⠀⣀⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⣿⣿⣿⡇⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣤⡟⠃⠻⣿⣛⠿⠟⢷⡛⡈⢷⡀⠀⠘⢇⠈⢿⣿⣿⣿⣿⣿⣿⣿⡅⠀⣿⣿⣿⠇⠻⣆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣀⠀⠃⠉⠛⠦⠈⢷⡀⠈⢻⣄⠀⠈⢃⠈⢿⣿⣿⣿⣿⣿⢻⡇⠀⣿⣿⣿⠀⠀⢻⡀⢀⡀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⠛⠻⠶⢦⣄⣃⠈⢿⡄⠀⠹⣦⢸⣿⣧⠘⣿⣿⣿⣿⣿⣸⡇⠸⣿⣿⡟⠀⠀⢸⡇⠘⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡦⠤⣤⣄⣈⠙⠻⢦⣿⣆⠀⠈⠋⣿⣿⣧⠸⣿⢿⣿⣿⣿⣠⡄⣿⣿⡇⠀⠀⣼⠀⠀⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⡀⠀⠈⠉⠛⠶⣦⣭⣿⣦⣰⠀⠈⣿⣿⣆⢻⡌⢿⣿⣿⣿⣇⣿⣿⠀⠀⢠⡏⠀⣼⠃
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣤⣔⣂⡠⠉⡙⠿⣿⣿⣦⡈⢿⣿⡌⣷⠸⣿⣿⣿⣿⣿⡏⠀⢠⡟⢀⣼⠃⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣼⣮⣿⣿⣾⡿⢷⢸⡀⢿⣿⣿⣿⣿⠁⣠⠟⣠⠟⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣻⣿⣿⣿⣿⣆⢸⡇⠘⣿⣿⣼⠏⣴⡿⠟⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣤⣽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡁⠀⢿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣤⣯⣭⣛⡻⠿⠿⣿⣷⣄⣼⠿⢿⣿⠛⠛⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⣿⣿⣿⣿⣿⡿⠋⠉⠉⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⣿⢶⣮⡝⠻⣿⣷⣾⠟⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⣿⣿⣿⣿⣿⣷⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣶⠁⢀⣤⣾⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡴⠿⢋⣩⣭⠿⣿⡿⢿⣿⣿⣿⣿⣿⣿⡿⠿⠂⣾⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣏⣡⣴⣾⡿⠏⣀⣤⣴⢾⣿⣿⣿⡿⢛⠉⣀⣀⣤⠾⢻⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣶⣿⢿⢿⣧⣾⣿⡟⠉⢀⣴⠞⠉⠁⠀⠀⠀⠛⠿⠿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢟⣁⣴⣿⣿⣿⣿⣾⣶⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⣤⣶⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣠⣴⠿⣿⣿⣻⣿⣟⠝⠛⠻⣿⣿⣿⣿⣿⣟⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠁⠀⠀⠀⠀⠈⣿⣿⣿⣿⣿⣿⣿⣛⣷⣿⣿⠟⢋⣽⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⡿⣿⣿⡿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⢿⣿⠛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,28 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢀⣠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠛⢦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠏⠁⠉⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⡾⠀⠈⠳⣄⠀⠀⠀⠀⠀⢀⣴⠟⠁⠀⠘⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣄⡇⠀⠀⠀⠀⠘⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢠⠇⠀⠀⠀⠈⢧⡀⠀⣠⠴⠊⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠀⠀⠀⣴⠖⠲⢬⣳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢀⡾⠀⠀⠀⠀⠀⢉⣷⠚⠁⠀⠀⠀⠀⠀⠀⢸⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⡇⠀⠀⢰⠃⠀⠀⠀⠈⠙⢿⡂⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣰⠏⠀⠀⠀⠀⠀⠀⢼⠉⡇⠀⠀⠀⠀⠀⠀⢠⡎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠀⠀⡾⠀⠀⠀⠀⠀⠀⣰⠟⠦⣀⠀⠀⠀⠀⠀
⠀⡼⠁⠀⠀⠀⠀⠀⠀⠀⠸⡄⢻⡀⠀⠀⠀⠀⢀⠞⠀⢀⣀⠀⠀⠀⠀⠀⠀⣶⡄⠀⠀⠀⠀⢸⠀⠀⡇⠀⠀⠀⠀⣠⠞⠁⠀⠀⠘⡇⠀⠀⠀⠀
⠀⢧⡀⠀⠀⠀⠀⠀⠀⠀⠀⢳⣸⡇⠀⠀⠀⣴⣏⡴⠚⠉⠙⠃⠀⠀⠀⣀⡀⠙⠦⣄⠀⠀⠀⠘⡇⢠⡇⠀⠀⢠⠜⠁⠀⢀⣀⣠⣼⣃⣀⡀⠀⠀
⠀⠀⠉⢙⣲⣤⣤⡤⠤⢤⡀⠀⢳⣧⠀⣠⢞⡷⢋⡴⠖⠙⣷⠀⠀⠀⠀⠻⢧⣀⡀⠈⠙⢦⡀⠀⣷⢸⠇⠀⡴⢃⣠⠖⣺⡭⠛⠁⠀⠀⠈⠉⠳⡄
⢠⡶⠊⠉⠀⠀⠀⠈⠉⠙⠃⠀⠈⣿⣶⣱⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠲⢼⣦⣽⢿⢠⣾⢟⣫⠴⠋⠁⠀⠀⠀⠀⠀⠀⠀⠈⡗
⠸⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣟⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣟⣏⣁⣀⣀⣀⡠⠤⠴⢒⣒⣷⠆⠀⢠⠇
⠀⠈⠙⠲⠤⣀⠀⠀⠀⠀⠀⢀⣾⠳⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⢻⡛⢦⡛⠳⠭⣍⣉⠉⠉⠀⠀⢀⣠⠏⠀
⠀⠀⠀⠀⠀⠈⠳⢤⣀⣀⡴⠋⣇⣴⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡙⢦⠀⠀⠉⠉⠒⠒⠒⠋⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣼⡖⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⢰⠋⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠏⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢠⢸⡄⠀⠀⠀⠙⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⠀⠀⠀⠘⠦⣄⡀⠀⠀⢀⡤⠴⠲⠤⣤⡀⠀⠀⠀⠀
⠀⢸⣸⡇⠀⠀⠀⠀⠈⢧⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⣀⣠⠤⠦⣄⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠹⣤⠞⠉⠀⠀⠀⠀⣾⡇⠀⠀⠀⠀
⠀⢸⡏⠀⠀⠀⠀⠀⠀⠘⡆⠀⢰⡏⣠⠖⠀⠀⣠⠶⠋⠁⠀⠀⣠⠟⠀⠀⠀⠀⠀⠀⠸⡇⠀⠀⠀⠀⠀⢀⣼⠋⠀⠀⠀⠀⠀⠀⢿⡀⠀⠀⠀⠀
⠀⠈⢳⠀⠀⠀⠀⠀⠀⠀⢸⡄⢸⣻⠁⠀⣠⠞⠁⠀⠀⠀⢀⡴⠃⠀⠀⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⣠⣻⠏⠀⠀⠀⠀⠀⠀⠀⠈⢧⡀⠀⠀⠀
⠀⠀⠈⠳⠤⣀⣀⠀⠀⠀⠀⣧⢸⡇⢀⠜⠁⠀⠀⠀⠀⣰⠋⠀⠀⠀⠀⠀⣀⣀⠀⠀⠀⠘⣆⠀⠀⣰⣳⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⠀
⠀⢀⣤⠒⠒⠚⠛⠻⠷⠶⣶⣾⣾⣷⠋⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⢿⠉⠙⠲⣄⠀⠹⡄⣴⡽⠃⠀⠀⠀⠀⠀⠀⣀⣤⣤⣴⠾⣥⣀⠀⠀
⠀⢿⡅⠀⠀⠀⠀⠀⠀⠀⣼⣿⠏⠓⢶⣦⣀⣀⣀⡼⠁⠀⠀⠀⠀⠀⠀⠀⠈⣞⠉⠙⠲⢿⣶⣷⡿⠁⠀⠀⠀⣠⠴⠚⣉⠤⠞⠉⠀⠀⠀⢸⣧⠀
⠀⠸⢯⠀⠀⠀⠀⠀⢀⡾⢻⣿⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠛⣿⢦⣄⡀⠘⠓⠉⠉⠀⠀⠀⠀⠀⠀⠀⣼⠟⠀
⠀⠀⠘⢦⣀⣀⡤⠞⢹⣠⠏⡇⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢧⡙⠫⢟⡓⠦⠤⣄⣀⠀⠀⠀⢀⠞⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠘⠻⠀⡇⠀⠀⣀⣤⠖⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠢⢤⣉⣦⠀⠀⠉⠙⠒⠒⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,25 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⣟⠻⡿⢷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣸⣻⠿⢮⡿⣾⡖⠚⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣄⠒⢦⠸⣿⣄⠙⣧⠀⠰⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣾⣿⣿⣛⣷⣞⠳⣄⠘⡆⠙⢇⠀⠀⠰⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⣸⣯⡝⠻⣿⣏⠉⠻⣮⣷⣝⣶⣼⡀⠀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢀⣇⠈⠙⢤⠈⢳⡀⠀⠹⣌⢻⠀⠙⣧⠀⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣼⠋⠳⢤⣄⡑⠀⠹⡄⠀⣌⠀⢳⡀⠸⡆⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⣠⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢹⣄⠀⠂⢻⡉⠑⣦⠹⡄⠸⡄⠀⢷⡄⡇⠀⠀⡇⠀⠀⠀⠀⣀⠤⠒⠋⠁⠀⠀⠈⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠙⠿⣶⣤⣝⠀⠀⠀⢿⡶⢧⠀⠸⡇⡗⠀⢀⠃⠀⢀⡴⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⣠⣤⣤⣤⣀⣀⡀⠀⠀
⠀⠀⠀⠀⢀⣀⣀⣀⡀⠙⢻⣷⣦⡀⠈⠋⠈⢧⠀⠀⡇⠀⠈⠀⠔⠋⠀⠀⢀⣀⣤⣤⣤⡶⢶⣿⠿⠭⢥⢽⣁⣤⠀⠒⠿⠿⣿⣷⣆
⠀⢀⡠⠚⠉⠉⠀⠀⠀⠀⠀⠙⢿⣿⣶⣤⣤⡘⣆⣼⣃⣴⣦⠀⠀⣀⡴⠞⣛⡉⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠘⣿⣛⣖⠲⠦⣄⣸⡿
⢠⠾⠒⠶⠀⠀⠀⠀⠀⡀⠀⡙⢺⣏⠛⢿⣿⣿⣿⣿⣿⣿⣿⣶⠞⡩⠖⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠓⠒⠤⣍⣙⣓⠶⣴⣶⠟⠁
⡾⠀⠂⠀⠀⠀⠀⠀⠈⠑⠉⢡⣿⣿⠛⠲⣤⣯⣿⣿⣿⣿⣿⣥⡞⠒⠒⠚⠛⠓⠠⣀⠀⠀⠀⠠⠄⠀⠠⣤⣷⣌⢙⣿⣦⡾⠋⠀⠀
⡗⠺⠤⠛⠉⠉⠁⠐⠉⠉⣹⣿⢿⢃⣠⣾⢋⣾⣿⣿⣿⣟⠻⠏⡿⣗⣦⡀⠀⠀⠀⠈⠙⠲⣄⡀⠀⠀⠀⠈⠙⠿⣿⣿⠟⠀⠀⠀⠀
⣇⣠⠤⠀⠀⠀⠀⢀⣴⡾⢛⡽⢋⣽⣟⣵⢫⣿⣿⣯⡏⢣⠀⠄⠀⠈⠉⢙⣻⠖⢦⣄⡀⠀⠤⢙⠶⣤⡀⠈⢳⣰⡟⠁⠀⠀⠀⠀⠀
⢿⠀⠀⠀⢀⡴⢪⠟⢩⠖⠋⢠⡾⢻⡟⢁⣿⣿⣿⡟⡀⠘⠀⣴⠀⣤⡐⠂⠈⠉⢗⣟⠿⣶⣤⡀⠲⣤⣹⣿⠞⠉⠀⠀⠀⠀⠀⠀⠀
⠘⣧⠀⠀⠈⠀⠀⠀⠀⡀⣠⠏⣴⠏⠀⢸⣿⠟⠻⢀⠆⠀⢀⠈⢳⡸⡗⢤⡀⠉⠪⠙⢧⡀⠉⠙⠓⠛⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠘⢧⡀⠀⠀⢀⡴⢂⣜⡥⠚⠁⠀⠀⠀⠁⢠⡆⢸⣰⠀⠈⣧⠀⠑⢿⠀⠙⢦⠀⠀⡀⠻⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠈⠳⣤⣖⣋⡴⠟⠉⠀⠀⠀⠀⠀⠀⠀⢸⡇⢸⢹⠆⠀⢸⡄⠀⠈⢷⡀⠀⠑⢦⡜⢦⣹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠃⣼⣾⠀⠈⢀⢳⡀⢠⡈⢻⣦⡀⠀⠙⢮⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣇⡿⡼⠀⠄⠈⠈⣇⠀⠹⣌⠹⣿⣄⠳⢰⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⡁⢻⠀⠀⠀⠀⠙⠂⠀⠹⡁⡈⡻⣦⠾⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢧⣸⡄⠀⠀⠀⠀⠀⢰⣄⣃⡴⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠓⠒⠒⠒⠒⠒⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,7 @@
⢴⡦⡀⠀⠀⠀⠀⠀⠀⠀⡠⠔⢶⡄
⣨⠇⠈⢆⠀⠀⠀⢀⠔⠁⠀⠀⣮⠀
⣿⠀⠀⠀⢣⠀⡠⠃⠀⠀⠀⠀⠈⣿
⣿⡀⠀⢀⣾⣻⣧⠀⠀⠀⠀⠀⠀⣿
⠈⠻⠆⣈⣻⢭⡙⢀⣀⣀⣀⣠⠟⠀
⠀⢰⡏⠀⠀⢯⣿⠀⠀⠀⠀⢘⡆⠀
⠀⠀⢻⣄⡠⠊⠁⠑⠤⣠⠼⠟⠀⠀

View file

@ -0,0 +1,9 @@
⣠⣤⣤⡤⠤⢤⣤⣀⡀⠀⠐⠒⡄⠀⡠⠒⠀⠀⢀⣀⣤⠤⠤⣤⣤⣤⡄
⠈⠻⣿⡤⠤⡏⠀⠉⠙⠲⣄⠀⢰⢠⠃⢀⡤⠞⠋⠉⠈⢹⠤⢼⣿⠏⠀
⠀⠀⠘⣿⡅⠓⢒⡤⠤⠀⡈⠱⣄⣼⡴⠋⡀⠀⠤⢤⡒⠓⢬⣿⠃⠀⠀
⠀⠀⠀⠹⣿⣯⣐⢷⣀⣀⢤⡥⢾⣿⠷⢥⠤⣀⣀⣞⣢⣽⡿⠃⠀⠀⠀
⠀⠀⠀⠀⠈⢙⣿⠝⠀⢁⠔⡨⡺⡿⡕⢔⠀⡈⠐⠹⣟⠋⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢼⣟⢦⢶⢅⠜⢰⠃⠀⢹⡌⢢⣸⠦⠴⣿⡇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠘⣿⣇⡬⡌⢀⡟⠀⠀⠀⢷⠀⣧⢧⣵⣿⠂⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠈⢻⠛⠋⠉⠀⠀⠀⠀⠈⠉⠙⢻⡏⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢰⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠄⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,55 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣤⡶⣶⠟⢿⣹⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠹⡦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠶⠛⠛⠛⢀⣜⠲⣀⣼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠹⣎⢲⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⠶⠋⠤⠀⠀⢀⠀⡸⠆⡇⢻⡌⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠘⡍⣾⠳⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⡟⠁⠀⢀⣜⣀⣀⣈⡉⠁⠀⣄⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠹⣬⡏⢈⡙⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠏⠀⢀⠔⠉⠁⠀⠀⠀⠨⠫⡤⠉⡷⢧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢳⣥⠘⠈⢄⢣⠀⠀⠀⠀⠀⠀⠀⠀⣸⠇⠀⠐⠁⠀⠀⠀⠀⣠⣎⠀⢀⡀⣌⠐⡾⠧⠝⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢸⢸⣦⡀⠈⢂⢂⠀⠀⠀⠀⠀⠀⠀⡟⠀⠄⢠⢄⠀⠀⠠⠊⠁⠀⠉⢻⡆⠠⣷⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠻⠬⢻⣱⡈⠓⢦⣀⢆⢐⠀⠀⢠⠀⢠⠇⡜⠀⠀⠊⢀⠄⠀⣀⢀⠀⠀⢸⠣⠄⣸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡓⠳⢂⢄⠙⢎⠎⠄⠀⠀⠀⢸⢰⠃⠀⠀⡴⢁⠔⠊⠀⢈⡀⢀⡌⠛⣶⢿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡼⢮⣆⣁⠀⣈⠈⠂⢠⠀⢸⡜⡘⢀⡞⠐⡡⠔⠈⠁⠀⡠⠁⣸⡶⢇⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⢬⣿⡘⣂⣉⢿⡄⠙⡄⢸⡇⢣⣾⠗⠀⠀⣀⣤⣖⣭⡴⠾⠁⠃⠁⠀⠀⠀⠀⣀⡀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⡀⡄⢝⢻⣮⠻⠎⠷⡾⢁⣤⠶⠛⠛⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⢠⠈⡤⢹⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣦⡀⠑⡙⢷⣷⣄⢈⢉⣁⡈⠉⠉⠉⠉⠙⠻⣖⣲⣦⣄⠀⠀⡇⠀⠀⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣩⡛⡄⣎⢻⣮⡳⣮⡉⠛⠂⠭⣛⡛⠫⠤⢤⣧⣸⡀⠀⢡⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡶⠀⠀⠀⢰⠀⢹⡄⠹⣿⣦⡙⢦⡀⠀⢀⠬⣁⠒⠤⣤⣟⠙⡆⠀⡇⠀⠀⣴⠉⠙⡄⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣄⡀⠀⢸⡆⢸⡀⠀⡱⠉⠻⡆⠹⣷⢤⣁⣈⣆⡀⣀⣽⣏⠳⣤⠃⠀⠀⠉⠀⣠⠃⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡉⠟⠒⢼⣼⢠⢃⠃⢧⡰⣥⡀⠙⠦⠮⡿⣳⠕⠦⣧⠦⣟⡄⢀⡀⠤⠔⠊⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡔⡈⣦⡇⠀⠀⠀⠟⣜⠀⡆⣗⠇⠈⢷⡄⠀⢀⣤⠶⠊⠉⠀⠀⠀⠹⣆⠙⠲⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢧⣁⠼⠀⠀⠀⠀⠈⢿⢧⣴⢺⠄⠀⢨⣷⡴⢛⠴⡄⠒⠄⠀⠀⠀⠀⠈⢷⡀⣽⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠓⢿⡎⠀⢀⣿⡟⠀⠘⢄⠸⠀⠆⠀⠀⠀⠀⠀⠀⢷⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠊⠈⠑⡀⠀⠀⠈⢿⢀⣾⡿⠃⠀⠀⢸⢀⠌⠀⠀⠀⠀⠀⠀⠠⠿⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠀⢀⠃⠀⠀⢀⣤⡻⣛⠁⠀⠀⠀⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡚⣀⠀⠀⠀⠀⠀⠀⢠⠊⣀⣤⣶⠿⠋⠀⠈⠑⢶⣶⡦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢅⢀⠙⡄⠀⠀⢀⣴⣿⠿⠛⢹⡋⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡌⡇⠇⣠⣾⣿⠟⠁⠀⠀⣀⣉⡀⠙⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⣾⣿⠟⠁⠀⠀⠀⢰⠁⣆⡅⣠⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⠤⢄⠀⢀⣼⣿⣿⠏⠀⠀⣀⡀⠀⠈⢦⡀⠴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠸⡉⠑⠲⢄⢂⣾⣿⣿⡏⢀⡄⢀⡠⠒⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠑⠒⠂⠚⠸⢟⣿⣟⠐⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⡔⠀⠁⠀⠀⠈⠹⡌⠁⠀⠉⠁⠲⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢀⣀⣀⣐⠁⠀⠀⠀⠀⠰⡀⠘⠀⠀⡐⠀⠀⢸⢀⡖⠂⢧⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢠⠔⠋⠉⠀⠀⠉⢙⠲⣤⣀⠙⢤⢡⢠⣡⣴⠴⢂⠨⠀⡎⠌⠌⠃⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣇⠀⣀⠀⠀⢀⠄⠁⠀⠩⠯⣩⡦⢬⠞⢋⣀⣂⠤⠖⠂⣁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠙⠒⠋⠀⠀⢰⠀⠐⠊⠁⠐⠉⠀⢸⣶⣾⡿⠏⠋⢭⡀⠀⢱⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠓⠠⠄⡀⠀⡀⠐⠁⡎⣧⠹⣀⠀⠀⠀⠈⠀⢰⠀⢀⡀⠠⠢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⡠⠊⡩⠟⠋⣧⠋⠀⠀⠃⠘⠄⠈⡀⠤⡀⠀⢀⡴⠂⠀⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢠⠃⢀⡠⠄⠊⠀⠱⡀⠀⠀⠀⢀⢴⡄⠀⠈⠂⡬⠁⡠⢀⠀⠀⠀⠀⠱⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠘⠔⠁⠀⠀⠀⠀⠀⠑⠂⠉⠉⠈⢻⣿⠆⠠⢸⠀⢰⣱⠃⠀⠀⠀⢰⡏⡥⠐⠂⢉⠁⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⠀⢀⠤⠐⠂⠀⠀⡀⠃⢸⣟⡠⠀⢀⣤⣾⣧⠀⠠⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⡆⠀
⠀⠀⠀⠀⠀⠀⠀⢲⠀⠀⡰⠋⠈⢠⠁⠀⠀⠀⡈⠅⠭⡕⠪⣿⣅⠘⠅⠀⠀⠈⢧⠀⠀⠀⠀⠄⠁⠉⠒⢄⢀⣀⠀⠀⢸⠟⡐⡗⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠓⢄⢣⡀⠀⠘⠤⡀⣀⢀⣠⡴⠂⡰⣾⣿⡇⠣⡒⠢⣀⠀⠀⠙⠀⡄⠀⢀⠀⠀⠀⠘⡄⠀⠑⠤⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠒⠲⠶⠟⠏⠁⠆⠠⠞⢞⠁⡏⠘⢤⠀⠀⠀⠁⠀⠰⠀⣇⠀⠘⠦⣸⢀⠆⡰⠀⢀⠀⡇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢎⠀⡐⠀⠀⢸⢌⢐⢣⠀⠈⠧⢤⣠⢄⠒⠁⠀⠈⠉⠮⢁⢻⣇⠴⢃⣴⣶⣀⡁⠐⠒⡀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢠⡀⠀⣾⡘⠈⠈⠂⠀⠀⠘⠗⠿⠿⣷⣶⠚⠀⠂⢀⣾⢣⣴⣯⠉⠒⠀⠒⠀⠀⠈⡄
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢇⠁⠀⡆⡇⠙⡰⢄⢀⡠⠤⠜⠀⠀⠀⠀⠀⢅⠀⠐⠁⠎⠸⣟⢓⠌⠂⢄⠀⣀⡀⠀⠄
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡸⢌⡂⠀⠱⡘⠀⡇⠀⠁⠀⠀⠀⠀⠀⠀⢀⠤⠒⢲⡄⡀⠀⠠⠘⡌⠆⠀⠀⢻⣖⠢⡄⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠭⠀⠔⠁⠀⠀⠈⠒⠒⠀⠀⠀⠀⠀⠰⡐⠉⠀⠀⠐⡰⠁⠈⢲⡇⠀⠀⠀⠀⢀⢬⠀⢳⠘⡄
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡆⢆⠀⠀⠀⠀⠀⢀⠞⡄⠀⠀⠀⠀⠈⠐⠒⠒⠀⠁⠀⠀⢸⡷⡦⣀⣀⡔⠀⠀⠑⡌⢀⠇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠊⠀⢣⠀⠀⡀⣀⠀⠀⠀⠀⠀⠀⠀⢀⡞⠀⢸⠀⠀⠀⠀⠀⠀⠧⠊⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡆⢰⢀⠇⡌⢠⣼⠇⠀⠀⠀⠀⠀⣠⢞⡀⠀⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠂⢧⡘⡆⠀⠁⠀⠀⠀⢀⣤⠞⠁⠘⠓⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⢷⣶⣶⣶⠿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠶⠶⠟⠛⠉⢹⠃⢀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠁⠰⡄⠀⠀⠀⢸⡀⠈⢀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠋⠁⠀⠀⠀⠀⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,16 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢔⣶⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼⠗⡿⣾⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡼⠓⡞⢩⣯⡀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠰⡹⠁⢰⠃⣩⣿⡇⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢷⣿⠿⣉⣩⠛⠲⢶⡠⢄⠐⣣⠃⣰⠗⠋⢀⣯⠁⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣯⣠⠬⠦⢤⣀⠈⠓⢽⣾⢔⣡⡴⠞⠻⠙⢳⡄
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣵⣳⠖⠉⠉⢉⣩⣵⣿⣿⣒⢤⣴⠤⠽⣬⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⢻⣟⠟⠋⢡⡎⢿⢿⠳⡕⢤⡉⡷⡽⠁
⣧⢮⢭⠛⢲⣦⣀⠀⠀⠀⠠⡀⠀⠀⠀⡾⣥⣏⣖⡟⠸⢺⠀⠀⠈⠙⠋⠁⠀⠀
⠈⠻⣶⡛⠲⣄⠀⠙⠢⣀⠀⢇⠀⠀⠀⠘⠿⣯⣮⢦⠶⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⢻⣿⣥⡬⠽⠶⠤⣌⣣⣼⡔⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⢠⣿⣧⣤⡴⢤⡴⣶⣿⣟⢯⡙⠒⠤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠘⣗⣞⣢⡟⢋⢜⣿⠛⡿⡄⢻⡮⣄⠈⠳⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⠮⠴⠵⢋⣇⡇⣷⢳⡀⢱⡈⢋⠛⣄⣹⣲⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠈⢿⣱⡇⣦⢾⣾⠿⠟⠿⠷⠷⣻⠧⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠻⠽⠞⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,13 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⡦⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠏⠄⣺⠃⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⡋⢚⠄⠊⣿⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⢏⣔⣤⢲⣋⣿⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠏⠁⡔⠻⣿⢡⠼⢧⠀⠀⠀⠀
⣾⣷⠶⣤⣀⠀⠀⠀⠀⠀⠀⠀⡜⠀⡰⠋⠀⣙⣀⣰⣽⡀⠀⠀⠀
⠙⠻⣤⠐⢺⡗⠤⡀⠀⠀⠀⠀⠇⢀⢃⣴⡿⢋⠤⠾⠯⢽⣄⠀⠀
⠀⠀⠀⠙⠢⢄⠀⠐⠴⣄⠀⠀⣰⣻⡿⢛⡉⠉⠀⠀⠐⠀⢿⡀⠀
⠀⠀⠀⠀⠀⠀⠙⢴⠁⣠⣵⢶⣿⣾⢭⡭⠤⣀⠀⠄⢀⠁⠀⢧⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠁⠿⠁⠈⠫⠻⣷⣝⡢⢄⠀⠀⠀⠈⠱⣾⠁
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⣄⠀⠈⠻⢿⣶⣤⣄⣀⣀⣴⠉⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡘⡄⠹⣦⠈⠉⠉⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠒⠢⠽⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,28 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢀⣠⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡴⠛⢦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠏⠁⠉⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⡾⠀⠈⠳⣄⠀⠀⠀⠀⠀⢀⣴⠟⠁⠀⠘⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣄⡇⠀⠀⠀⠀⠘⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢠⠇⠀⠀⠀⠈⢧⡀⠀⣠⠴⠊⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⠀⠀⠀⣴⠖⠲⢬⣳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢀⡾⠀⠀⠀⠀⠀⢉⣷⠚⠁⠀⠀⠀⠀⠀⠀⢸⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⡇⠀⠀⢰⠃⠀⠀⠀⠈⠙⢿⡂⠄⠀⠀⠀⠀⠀⠀
⠀⠀⣰⠏⠀⠀⠀⠀⠀⠀⢼⠉⡇⠀⠀⠀⠀⠀⠀⢠⡎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠀⠀⡾⠀⠀⠀⠀⠀⠀⣰⠟⠦⣀⠀⠀⠀⠀⠀
⠀⡼⠁⠀⠀⠀⠀⠀⠀⠀⠸⡄⢳⡀⠀⠀⠀⠀⢀⠞⠀⢀⣀⠀⠀⠀⠀⠀⠀⣶⡄⠀⠀⠀⠀⢸⠀⠀⡇⠀⠀⠀⠀⣠⡞⠁⠀⠀⠘⡇⠀⠀⠀⠀
⠀⢧⡀⠀⠀⠀⠀⠀⠀⠀⠀⢳⣸⡇⠀⠀⠀⣴⣏⡴⠚⠉⠙⠃⠀⠀⠀⣀⡀⠙⠦⣄⠀⠀⠀⠘⡇⢠⡇⠀⠀⢠⠜⠁⠀⢀⣀⣠⣼⣃⣀⡀⠀⠀
⠀⠀⠉⢙⣲⣤⣤⡤⠤⢤⡀⠀⢳⣧⠀⣠⢞⡷⢋⡴⠖⠙⣷⠀⠀⠀⠀⠻⢇⣀⡀⠈⠙⢦⡀⠀⣷⢸⠇⠀⡴⢃⣠⠖⣺⡭⠛⠁⠀⠀⠈⠉⠳⡄
⢠⡶⠊⠉⠀⠀⠀⠈⠉⠙⠃⠀⠈⣿⣶⣱⣿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠲⢼⣦⣽⢷⢠⣾⢟⣫⠴⠋⠁⠀⠀⠀⠀⠀⠀⠀⠈⡗
⠸⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣟⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣟⣏⣁⣀⣀⣀⡠⠤⠴⢒⣒⣷⠆⠀⢠⠇
⠀⠈⠙⠲⠤⣀⠀⠀⠀⠀⠀⢀⣾⠳⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⢻⡛⢦⡛⠳⠭⣍⣉⠉⠉⠀⠀⢀⣠⠏⠀
⠀⠀⠀⠀⠀⠈⠳⢤⣀⣀⡴⠋⣇⣴⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡙⢦⠀⠀⠉⠉⠒⠒⠒⠋⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣬⡖⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⢰⠋⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢠⢸⡄⠀⠀⠀⠙⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢸⣸⡇⠀⠀⠀⠀⠈⢧⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⣀⣠⠤⠦⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢸⡏⠀⠀⠀⠀⠀⠀⠘⡆⠀⢰⡏⣠⠖⠀⠀⣠⠶⠋⠁⠀⠀⣠⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠈⢳⠀⠀⠀⠀⠀⠀⠀⢸⡄⢸⣻⠁⠀⣠⠎⠁⠀⠀⠀⢀⡴⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠈⠳⠤⣀⣀⠀⠀⠀⠀⣧⢸⡇⢀⠜⠀⠀⠀⠀⠀⣰⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢀⣤⠒⠒⠚⠛⠻⠷⠶⣶⣾⣾⣷⠃⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢿⡅⠀⠀⠀⠀⠀⠀⠀⣼⣿⠏⠓⢶⣦⣀⣀⣀⡼⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠸⢯⠀⠀⠀⠀⠀⢀⡾⢻⣿⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠘⢦⣀⣀⡤⠞⢹⣠⠏⡇⠀⠀⠀⠀⠀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠘⠻⠀⡇⠀⠀⣀⣤⠖⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,20 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣾⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣶⡶⡴⢦⣼⣟⣻⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⡳⣋⡿⣦⡲⣺⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠸⣼⣸⠟⠀⠛⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣽⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣦⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣷⣿⢷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣴⣿⢿⢯⣯⡀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣿⣟⢎⣾⢻⡆⠀⠀⠀⠀⠀⠀⠀⢀⡼⢻⢛⣏⣯⢽⡿⡿⣻⡻⣤⡀
⠀⠀⠀⠀⠀⠀⠀⣾⣿⣶⣆⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠃⣕⠙⢧⣽⢸⣯⠀⡀⠀⠀⠀⠀⠀⠘⢯⣡⣂⣹⣎⡾⠀⠑⠛⠛⠉⠁
⠀⠀⠀⠀⠀⠀⠀⠹⣷⣾⡟⣿⠻⢦⣠⠄⠀⡄⢀⣠⣴⣶⣹⣿⣿⢧⣦⣽⣿⣿⣺⠣⣄⣀⡀⠀⠀⠀⠐⣻⡿⡿⣿⢧⡆⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣗⡒⠷⢦⣝⣶⣾⣟⡭⢶⣋⣲⡿⡿⠏⡿⢻⠿⠇⢹⣎⠻⡻⣳⢿⣷⣄⠀⢸⣃⢼⡐⣇⡷⢯⣆⠀⠀⠀⠀
⠀⣴⣦⣄⡀⠀⠀⠀⢈⣿⠿⢷⠶⠾⠿⣿⡿⠿⣥⣬⣭⣿⣷⠇⠀⠁⡼⠆⡰⣸⠿⣦⣷⣿⡺⠿⠿⠂⠘⠻⢾⡵⣿⡷⣞⣿⡄⠀⠀⠀
⠀⣷⡿⣿⣿⣤⠀⠀⢨⣯⢘⠆⡖⡪⣻⣿⣻⡂⢄⣑⢆⣻⡇⠀⠀⠀⠻⣷⣧⣯⠾⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠃⠀⠀⠀
⠀⡿⣿⣿⠻⣿⣷⡀⠀⠛⢷⣮⣼⠞⠋⡟⠸⣒⡈⢢⣱⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣿⣿⠯⣍⣳⡈⢷⡀⠆⠀⠉⠁⠀⠀⠀⠀⠙⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣰⣾⠻⠷⣶⣭⣹⣤⢗⣮⡰⣃⣤⣤⣤⣤⣤⢤⣤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣿⠅⣾⢉⣁⣈⣙⣻⣿⣿⣟⡶⠲⢶⡛⢭⣿⣟⣿⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣿⣮⣥⠊⢡⡔⣮⣿⣿⣧⠉⢻⣷⣦⡍⣿⣿⣷⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠈⠻⣷⣮⠷⠛⢹⠏⣷⡌⢢⣀⣫⢝⣿⠿⠟⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠋⠀⣹⣡⠈⡎⢫⣲⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⣲⣿⠿⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,20 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠠⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢠⡄⡅⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠒⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠘⡀⠅⠀⠦⠀⠀⠀⠃⠀⠀⢀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⡃⠀⠇⠄⠀⢨⠀⡀⣀⠀⠀⠀⡈⠀⠀⠀⠀⠀
⠀⠀⠈⠀⠂⠁⠀⠀⠀⠈⠀⠂⠡⠉⢠⠄⠀⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢁⣀⠀⠀⢀⣀⠀⠀⠄⡀⠊⠀⠀⠄⠘⠀⠀⠀⠀
⠀⠆⠀⣼⣿⣿⣧⢀⣾⣿⡆⠘⠤⠄⠂⠀⠀⡒⠐⠀⠀⠀⠀
⢀⢠⢸⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠁⠀⠀⠰⣀⠀⠀⠀⠀⠀
⢈⠀⣿⣿⠁⠈⣿⣿⣿⣿⣿⣿⣆⠁⠈⠀⢀⠀⠀⢀⠀⠀⠀
⠈⢄⣿⠻⣆⢠⣿⠿⣿⣿⣿⣿⣿⡆⠀⢀⠊⣰⢀⠜⠀⠀⠀
⠀⠀⣿⠀⢹⣦⠃⢠⣿⢿⣿⣿⣿⠇⠀⣁⢊⠀⢀⠐⠀⠀⠀
⠀⠀⢿⠀⢸⡏⢀⣾⠏⠈⣿⣿⣯⣤⣤⣤⡀⠒⠀⢀⢰⠇⠀
⠀⠀⢸⠀⢸⣧⡾⠁⠀⣠⣿⣿⣿⣿⣿⣿⣿⣷⠀⢈⠐⢠⠆
⠀⠀⠀⡆⣸⠏⠀⣠⣾⠟⣩⠋⣉⠭⠛⢿⣿⣿⣧⠈⠀⠀⠄
⠀⠀⠘⠳⣮⣴⣟⣫⠄⠚⠭⣁⣀⣤⠴⠟⢻⣿⣿⡇⠸⠀⠀
⠀⠀⠀⠀⠈⢻⣦⢭⣙⣒⣶⣶⠻⠦⠤⣤⣼⣿⣿⡆⠂⠀⠀
⠀⠀⠀⠀⠀⠀⠙⢦⣈⣉⠦⢄⡉⠑⠲⢦⣿⣿⡿⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠙⢷⡀⠐⠛⠿⠿⠿⠟⠋⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,73 @@
⢡⢊⠐⡀⠐⠠⠐⠢⠑⠠⠃⠰⢀⠢⠄⡁⠂⠔⢈⠐⠠⠂⡁⠂⠔⢈⠐⠠⢂⠐⠄⠂⠅⡂⠥⠈⠔⡀⠆⠠⢁⠂⡐⠌⠐⡀⠢⢁⠂⡐⢈⠐⠠⠐⠂⠔⠈⠄⠣⠠⢁⠢⠐⠠⠂⡁⠂⠔⢈⠐⠠⠂⡁⠂⠔⢈⠐⡀⠂⠔⠠⠌⠢⠑⡈⠤⠁⠂⠔⠠⢁⠂⠅
⠆⠆⠓⡀⠊⡐⠈⢂⠑⠂⠑⠂⢀⠂⠐⠐⠈⠐⡀⠂⠁⢂⠐⠈⠐⡀⠊⠐⠀⠂⠌⠂⠐⡀⠂⠁⢂⠐⠠⠁⠂⠐⠀⠒⠐⠀⠒⠀⢂⠐⡀⠠⠀⢈⠀⠌⠀⡈⠀⠁⡀⠠⢈⠐⠐⠐⠈⠐⡀⠂⠁⢂⠐⠈⠐⡀⠂⠐⠈⠄⠃⠐⠂⠁⠒⠀⢂⠁⠂⠒⠀⠂⠂
⢏⡘⡐⠠⠁⢀⠂⠠⢀⠂⠐⡈⠀⠄⡈⠐⡈⠠⠐⠠⠁⡀⠂⠌⢀⠐⠠⠁⡈⠐⠠⠈⠄⠐⠈⡐⠠⢀⠂⠄⡁⠂⠌⠐⠠⢈⠠⠁⠠⠀⠀⠄⠁⣠⣤⣀⠂⢀⡐⠀⢀⠀⡀⠄⢈⠐⠈⠠⠐⠠⠁⡀⠂⠌⠀⠄⠡⠈⠐⡀⠂⠁⠄⡁⠂⠌⢀⠐⡀⢂⠁⢂⠀
⡎⠰⣀⠡⠐⢀⠠⠁⠄⠠⢁⠠⠁⡐⠠⢁⠠⢀⠁⢂⠐⢀⠡⠐⠀⠂⠄⡁⠠⠁⢂⠐⢈⠠⠁⡀⠂⠄⡐⠠⢀⠡⢀⠁⠂⠄⠐⠀⠁⡀⠡⢀⣾⣿⠿⣿⣷⡿⣿⣷⡄⠂⠀⢀⠂⠈⠄⠁⠌⠐⡀⠄⠡⢀⠡⠈⠄⠂⠁⠄⡈⠐⠠⠐⡀⠂⠄⢂⠠⠀⠌⡀⠀
⣌⠡⠄⡐⠀⢂⠠⠈⠐⡀⠂⠄⡁⠠⠐⠠⠀⢂⠈⠄⠐⠠⠐⠀⠡⠈⠠⠐⠀⡁⠂⡀⢂⠐⠠⢀⠁⢂⠠⠐⠠⢀⠂⢈⠐⠈⠀⠌⠀⡀⢀⣾⡿⢻⣴⣿⣿⣿⠿⣿⣇⠀⠐⡀⠀⠡⠈⠐⡈⠄⡀⠂⠁⠄⠠⠈⠐⠈⡐⠠⢀⠁⢂⠁⠄⡈⠐⠠⢀⠁⢂⠐⠀
⢆⠱⠐⠠⠁⠂⠠⢈⠐⠀⠌⠐⡀⠄⢁⠂⢁⠀⠂⠌⠠⠁⠌⠠⠁⠠⠁⠄⡁⠄⢁⠀⠂⠌⠀⠄⡈⠄⠠⢈⠐⡀⠐⠀⠂⠁⠠⠀⠂⢠⣾⡿⣝⣧⣿⡿⣿⠀⠀⣸⡟⠁⠀⠄⠂⡁⠌⠐⠠⠐⢀⠡⢈⠀⠂⠡⢈⠐⠀⠂⠄⡈⠠⢈⠀⠄⡁⠂⠄⡈⠄⠂⠀
⢎⠰⢁⠂⠡⠈⠐⠠⠈⠄⡈⠄⠠⠐⠠⠈⢀⠈⡐⠈⡐⠠⠄⠁⠠⠁⠂⠄⠠⢈⠀⠌⠐⡈⠄⠂⡀⠂⠁⠄⠂⡀⠁⠀⠂⠈⠀⠐⣀⣸⣿⣶⣿⡟⢻⡗⠘⣇⠀⣿⣁⠀⠂⠠⠀⠄⠂⠈⠄⡁⠂⢀⠂⠄⠁⠂⠄⠂⠁⠌⡀⠄⠡⢀⠂⠐⠠⠁⠠⠐⢀⠡⠀
⢎⡐⠂⠌⡀⠡⠈⠄⠡⢀⠐⠠⠁⠠⠁⠌⠠⠐⠠⠑⠀⠄⠐⢈⠀⢂⠡⠀⠡⠀⠌⢀⠂⠄⡐⠠⢀⠡⠈⠐⡀⠄⠀⡁⢀⣴⣾⣿⡛⢯⣽⡟⠛⣧⡀⢻⣀⣿⣠⡟⠀⠀⠐⠀⠁⠄⠡⡈⠢⠐⠀⢂⠠⠈⠠⠁⠂⠌⠐⠠⠐⢀⠂⠄⠂⢁⠂⢁⠂⢁⠂⠠⠀
⡆⡘⢐⠠⢀⠁⡐⠈⠄⡀⠂⢁⠂⢁⠐⡈⠄⢈⠐⠠⠈⠠⢈⠀⡐⠠⠀⠌⡀⢁⠂⠄⠐⠠⢀⠐⡀⠂⠌⠐⠠⠀⡁⠀⣾⣍⣿⣤⣟⡦⣿⣇⠀⠈⢻⣝⣿⠁⣿⠁⢠⣨⡄⠈⠄⠊⡐⠀⠄⠠⠁⠠⠀⠌⢀⠡⠈⡀⠌⠠⢁⠀⠂⠄⡁⠂⡈⠄⠐⡀⠄⠂⠀
⢆⠱⢀⠂⠄⠂⠠⠈⠄⠐⢈⠠⠐⢀⠂⠄⠐⡀⠂⠄⠁⠂⠄⠂⢀⠂⠡⢀⠐⡀⠂⠈⠄⠡⠀⢂⠐⡈⠄⠂⡁⠄⠀⠸⣿⣿⣤⣴⣾⡿⠷⣿⣦⠀⠀⣿⠁⣸⠃⣠⣟⡞⠁⠀⠂⠄⠐⠈⡀⠂⠌⢀⠡⠈⡀⠄⡁⠠⢀⠡⢀⠈⡐⠠⠐⢀⠐⡈⠁⠄⠂⡈⠀
⢎⠰⢈⠀⢂⠡⠀⠡⠈⠄⢂⠀⡉⢀⠠⠈⢀⠐⢈⠠⠁⡈⠐⡈⠀⠌⠐⡀⠄⡐⠈⠐⡈⠠⠁⡀⠢⠐⠀⢂⠀⠀⡁⢀⣿⣿⣉⣳⣤⣹⣧⣤⣛⣷⣄⡟⢰⣧⣼⠗⠉⡀⠌⠐⠈⠀⠂⢁⠐⡀⠂⠄⡐⠠⢀⠂⠄⢁⠀⠂⠄⠂⡀⠡⠐⠠⠐⠀⢂⠈⡀⠐⠀
⢎⠰⢈⠐⠠⠀⠌⠠⠁⠌⠠⠐⢀⠠⠀⠌⢀⠂⠄⠂⡐⢀⠡⠀⠌⡀⠡⠀⡐⠠⠈⠄⠠⠁⠄⡀⢁⠠⠁⢀⠀⠂⠀⣾⣿⣦⠴⢖⣚⣧⢤⣄⣈⣙⣻⣷⠟⠋⠀⢀⠂⢀⠀⠄⠂⠁⠌⢀⠂⠐⡀⢂⠐⠠⠀⠂⠌⢀⠈⡐⢀⠂⠄⡁⢂⠂⠡⠈⠀⠄⠠⠁⠀
⢎⠰⢈⠀⢂⠁⠄⢂⠁⠌⢀⠂⠠⠀⠂⠌⡀⠄⠂⡁⢀⠂⡐⠈⡀⠐⠠⠁⡀⢂⠐⠄⡁⠄⢂⠀⢂⠠⠈⡀⠠⠀⡀⢻⣿⣷⣋⣩⣴⣾⠿⣿⣿⠟⠋⠁⢀⠂⠌⠂⠁⢀⠠⠀⢂⠡⠈⠀⠄⠡⠀⠄⠂⡁⠄⢁⠂⠄⢂⠐⡀⠂⢀⠐⠠⠀⢂⠠⠁⡈⠐⡈⠀
⢎⠰⢈⠐⠠⠈⡀⠄⠐⠈⡀⠐⡀⠁⠌⠀⠠⠀⠁⠄⠂⠠⢀⠁⠠⠁⢂⠐⠀⡂⢈⠐⢀⠂⠠⠐⠠⠐⠀⠄⠀⠄⠀⠀⠙⠛⠛⠉⠀⠀⡀⠉⠀⢀⠠⠈⠀⠠⠀⡀⠂⠠⠐⠈⡀⠄⡈⠐⡈⠐⠠⠈⠐⡀⠐⡀⠂⠄⠂⡐⠠⠁⠄⡈⠄⠂⠠⠐⠀⠄⡁⠄⠀
⢎⠰⢈⠐⠠⠁⡀⠂⡁⠂⠐⡀⠀⠠⠀⠂⠁⠀⠂⠀⠠⠁⠠⠈⡀⢁⠂⣈⠠⠄⠂⢀⠂⢀⠂⠈⠄⠈⠐⠠⠈⢀⠈⠐⠀⠀⡀⠀⠈⠀⠀⡀⠄⠀⢀⠠⠐⠀⡁⠠⠈⠄⡁⠂⠄⢂⠠⠁⠠⠁⠂⢁⠂⡐⢀⠐⡈⠠⠐⠄⠁⠂⠠⢀⠂⠌⠠⢁⠈⠄⡐⠠⠀
⢎⠰⢈⠀⢂⠁⡀⠂⠄⢁⠠⠀⠐⠀⣠⣶⣶⣤⣁⠂⠀⠐⠀⠐⠀⠄⢂⠀⡀⠂⠐⠀⠠⠀⠀⠂⠠⠈⠀⢀⠐⠀⡀⠂⠌⠀⠠⢀⠂⠁⡐⠀⠄⠂⠄⠂⠠⠁⠄⠂⢁⠐⠠⠐⢈⠠⠀⠌⠠⢁⠈⠠⠐⠀⠄⠂⠄⢁⠈⠠⢀⠁⠂⠄⠂⠠⠁⠄⠂⡐⢀⠂⠀
⡎⠰⢈⠐⡀⠂⡀⠡⢈⠀⠄⠐⠀⢰⣷⡟⠻⣏⠻⣧⣀⠐⠈⠀⡈⠠⠀⠂⠀⢁⠈⠀⠄⠀⠁⣠⣴⣤⡈⠀⠀⠂⡀⢁⠂⠁⠂⠄⠂⢁⠐⠈⠠⢈⠐⢈⠠⢈⠐⠈⡀⠌⠐⡀⠂⠄⠡⠀⢁⠂⠈⠄⠁⠌⠠⠁⢂⠀⢂⠀⢂⠈⡐⠈⡀⠡⢈⠐⠠⠐⡀⢂⠀
⢎⡑⠠⢂⠠⠐⠀⠡⠀⠂⠀⠄⠈⠀⣿⢿⡀⠘⢦⡈⢻⣦⠐⠀⠀⠄⠀⠁⠈⠀⡀⠠⠀⣠⡿⣿⣯⣽⡇⠀⠁⠠⠀⠂⠌⢀⠁⠂⠌⢀⠠⠁⠂⠄⡈⠄⢀⠂⠌⢀⠐⠈⠄⠐⠈⠀⠄⠈⠀⢀⠂⠀⠈⢀⠐⠈⠠⠐⠀⠌⡀⠄⠐⠠⢀⠡⢀⠂⠁⠄⡐⠀⠀
⡆⠰⠁⠄⠂⠄⢁⠂⠡⠈⠀⠄⠂⠀⢻⣿⠛⢦⣄⣹⠦⣌⣳⡀⠀⣠⠈⠀⢾⠀⠀⢀⣼⢯⠞⢡⣿⣿⠁⠀⡈⠀⠄⠡⠈⠄⡈⠐⠈⠀⠄⡈⠐⠠⠐⡀⠂⡐⢈⠀⠌⠐⡈⠠⠁⠈⠀⠀⢂⣤⣄⠈⡀⠠⠐⠈⠐⡀⢁⠂⠠⢀⠁⠂⠄⡐⠀⡈⠄⠂⠄⠡⠀
⡌⠱⢈⠐⡈⢀⠂⢈⠐⡀⠁⠠⠀⠄⠘⣿⣷⣤⡀⠙⣆⠈⠻⣿⡄⠘⣇⠀⣾⠀⣴⠿⢲⣋⣤⣿⡿⠃⠀⠀⡐⠈⠄⠡⢈⠀⠄⠁⡈⠐⠠⢀⠁⠂⡁⠄⠐⡀⠂⠄⠂⡁⠠⠀⢀⠐⠀⣰⣿⣿⣿⣧⠀⠐⠀⠐⠀⡐⠠⢈⠐⠀⠌⡐⠠⢀⠡⢀⠐⠈⠄⢂⠀
⡅⢣⠈⠄⠐⠠⠐⢀⠂⠠⠈⢀⠐⠀⡀⠹⣿⣦⡉⠛⠚⣆⠀⠈⠻⣆⢻⢠⣇⡾⠃⢠⣟⣠⣾⡞⠃⠀⠐⠀⡀⠌⠠⢁⠀⡈⢀⠂⠄⠁⠂⠄⠂⠁⠄⠂⢁⠠⠁⡐⠠⠐⠀⡐⠀⠠⣼⠟⣿⠁⢹⣿⣧⠀⡈⠀⠂⠠⠐⠠⠈⠐⠠⠐⡀⠄⠂⠄⠂⠌⠠⢀⠂
⡜⠠⠌⠠⢁⠂⠐⡀⠂⢁⠐⠠⢀⠂⡀⠄⠹⣿⣏⠛⠒⠾⠷⣄⠀⠙⣞⣿⠋⣀⣴⣋⣽⡿⠋⠀⠀⢈⠠⠐⠠⠂⠁⡀⠄⠐⡀⠂⠌⢀⠁⠂⠌⠐⡈⠐⠠⢀⠡⠀⠐⠠⢀⠠⠐⣸⠏⢰⠇⢀⣼⢷⣿⡆⠀⠀⡁⠐⠈⠄⡁⠌⠐⠠⢀⠂⡁⠐⠈⢀⠒⠀⠀
⡌⠱⢈⠐⠠⢀⠁⠠⠁⠂⢈⠀⢂⠂⠠⠀⠀⣨⣿⢿⣶⣒⠲⢮⣿⣶⣼⣧⣾⣭⣿⠟⠉⠀⢀⠐⠈⠠⡐⠈⡀⠄⢁⠠⠈⡀⠄⠁⠄⠂⠈⠐⠀⡁⠠⠈⠠⠀⢀⠂⠁⠀⠆⠀⢰⣏⣴⢺⣴⠟⠁⣸⣿⡇⠀⠂⢀⠈⡐⠠⠀⠄⡁⢂⠠⠐⢀⠡⠁⠂⠠⢈⠀
⡅⢣⠈⠐⡀⠂⠈⠄⠡⠈⠄⡈⠄⠐⠀⠁⣰⣿⠓⠒⣛⣻⠟⠛⣩⣿⣯⠙⡯⣿⡆⠀⢀⠀⠂⡈⠌⠁⠠⠐⠀⡐⠀⢂⠁⢀⠀⠂⢀⠐⠀⠂⠁⠀⠠⠐⠀⠐⠀⡀⠨⡄⠀⠄⣟⡼⠁⢸⣇⡤⠞⠁⣿⣧⠀⠐⠀⠠⠐⠠⠁⠠⠐⢀⠂⡁⠂⡁⠐⠈⡐⠀⠀
⡜⢠⠘⠀⠄⡁⠈⠄⠡⠐⡀⠠⢀⠐⠀⠄⠸⣿⡟⢉⡽⢛⣿⡿⠉⠀⢸⣧⡷⣾⡇⠀⡀⠌⠐⠠⠐⢀⠐⡀⠡⠀⠌⡀⠠⠀⠠⢀⣤⣤⣬⣄⣈⡐⠀⠂⠄⠈⠳⣄⠀⣷⠀⢸⡿⠀⠀⢸⠏⣀⣤⢾⣿⠃⠀⠄⠂⠁⠀⡁⠄⡁⠂⠠⠐⠀⠄⡀⠄⠁⠄⡈⠀
⡜⠠⠌⠐⢠⠠⡁⠂⢁⠐⠀⡐⠀⠀⢂⠀⠄⠹⢿⣿⣴⣯⠏⠀⠀⠀⣼⢸⣽⣷⠇⠀⡀⠄⠁⠠⠀⢂⠠⢀⠁⢂⠐⡀⠐⠀⠐⠀⠛⢾⣟⠿⢭⣙⡛⠶⣤⣂⡁⠈⢳⡸⡆⣹⠃⠀⢠⠟⣉⣡⣤⣾⠿⢷⣦⣄⠀⠄⠁⠀⢂⠐⠉⡐⠀⢁⠠⠀⠂⡁⢂⠐⠀
⡌⠱⢈⠐⠠⠐⠀⡐⠀⠠⢁⠠⠁⠠⠀⠂⢀⠀⢀⠈⠉⠀⠀⠀⠂⡀⠹⠿⠛⠁⠀⠀⠠⠀⡈⠄⢁⠂⠠⢀⠂⠄⠂⡐⠀⢈⠠⠀⡀⠄⠙⢷⣦⣬⣽⢯⣍⠉⠉⠓⠦⢽⣽⣼⣀⡰⣟⣫⣷⡿⣛⡥⢞⣋⠙⣿⣆⠐⠀⠁⡀⠂⡐⠀⡈⠠⠐⢈⠀⡐⢀⠂⠀
⢣⠑⡨⠀⢂⠐⠀⠄⠈⠄⡀⠂⢁⠐⡀⠁⠀⠀⠂⠀⠠⠐⠀⠁⠀⠄⡀⠀⠀⡀⠄⠀⠁⠠⢀⠐⡀⠂⠁⠄⠂⠄⡁⠐⡈⢀⠀⠄⠀⠄⠂⢀⠈⠛⠷⣶⣾⣛⠓⣲⡶⢦⣼⣿⣿⣟⡉⠁⣀⣈⡿⠯⢭⣁⠉⣿⡗⠀⡀⢂⠀⡐⠀⡁⠄⠂⢁⠂⠐⡀⢂⠐⠀
⢣⠘⠠⠐⡀⠄⢁⠈⡐⠠⢀⠁⢂⠠⢀⠡⠈⠐⢀⠁⠀⠐⠀⠂⠄⡀⠠⠀⠄⡀⠄⠐⡈⠐⡀⠄⠠⢁⠈⠄⡁⠂⠠⠁⠄⠂⡀⠂⠄⡀⠁⠂⠈⠄⢀⠀⠀⠉⠛⠛⠛⣿⣯⢿⠘⣿⠏⠉⠛⠳⢭⣓⣦⣬⣽⠟⠁⠀⠀⡀⠠⠐⠠⠐⡀⠌⢀⠂⠁⠄⠂⠄⠀
⠣⢌⢁⠂⠄⠐⡀⢂⠐⠠⠀⠌⡀⠄⠂⠠⠈⢀⠠⠀⡈⠄⡁⢈⠀⠐⠀⠂⠐⡀⠐⠠⢀⠡⠀⠄⡁⠂⡀⠂⠄⠁⠂⢁⠂⠐⡀⠡⠀⠄⠂⡁⠀⠀⠂⠀⠁⠠⠀⠄⠀⠙⣷⣞⣷⡻⡄⠀⠄⢀⠀⢈⠉⠉⠀⡀⠄⠈⠀⢀⠐⠠⠁⠂⠄⡐⠠⢈⠐⢈⠐⠈⠀
⠇⡌⠠⠂⠌⡀⠐⡀⠂⠄⢁⠂⠄⠠⠁⡐⠀⠀⡀⢤⣴⣶⣤⣄⠈⠐⠀⠈⢀⠀⠁⠂⠄⠂⠈⠄⠠⠁⠐⠈⡀⠡⠈⠀⠄⠁⠠⠁⢂⠠⢁⠠⠁⠌⠐⡀⠂⠄⠀⠂⢈⠀⠀⠙⢿⣽⣿⣄⠈⠀⡈⠀⠄⠁⢀⠀⢀⠠⠈⠠⠐⢀⠡⠈⠄⠐⡀⠂⠄⠂⡈⠐⠀
⢣⠘⢠⠁⡐⠀⡁⠠⠁⢂⠠⠈⠄⠂⠁⠀⡀⠂⢰⣿⣟⠻⣭⡙⠿⣦⡀⠂⠠⠐⠈⠀⠄⠈⠐⠀⠂⢈⠀⠁⠀⠄⠀⡁⠀⠂⠀⠐⠀⡀⠂⡀⠂⠌⠐⡀⠌⠐⠠⠀⠂⠠⠈⢀⠀⠀⠉⠉⢀⠠⠐⠀⠂⠄⡀⠂⠄⠠⠈⠄⠡⠀⢂⠡⠐⠀⠄⠡⠐⠠⢀⠡⠀
⢣⠘⠠⠐⡀⢁⠠⠁⠂⠄⡐⠈⠄⠈⠄⢁⠀⠄⢻⣿⡇⠀⢈⡷⢤⣬⣿⣄⠀⠀⣴⠂⠀⠈⠀⣤⠁⠀⡀⠈⢀⣈⣠⣤⣥⣀⡁⠀⠂⢀⠐⢀⠡⠀⠡⢀⠐⢈⠐⡀⢂⠐⠀⡀⠠⠁⠠⠁⠌⠐⠀⢁⠈⠄⠐⢈⠠⠁⡐⠈⠄⠂⠄⠂⠄⠡⠈⡐⠠⠁⠄⠂⠀
⠣⢌⢁⠂⠐⠠⠀⢂⠡⠀⡐⠈⠄⡈⠄⠂⠈⠀⣿⣾⠟⠶⢾⡇⠀⠀⠙⢿⣆⢼⡛⠀⠀⠂⣰⠟⢀⣠⣴⡛⠋⣩⡭⠟⠛⣿⣷⠀⠈⢀⠀⢂⠠⢈⠐⡀⢈⠠⠀⠄⡀⢂⠁⠠⠐⠂⠄⠁⡀⠂⢈⠀⢂⠈⠄⠂⡀⢂⠠⠁⢂⠈⡐⠈⠠⠀⠡⠐⢀⠁⠌⠠⠀
⠇⡌⢠⠈⠄⡁⠐⡀⠂⠁⠠⢈⠐⡈⠠⠁⠌⠀⣿⣿⡀⠀⠀⢳⣄⠀⠄⠀⢻⢸⠆⠀⢠⣴⣷⠾⠛⠋⡉⠉⢛⡧⠀⢀⣼⣿⠇⠀⠂⠠⠀⢂⠠⠀⠂⠄⠂⠠⠁⠂⠐⠠⠈⠄⠡⠈⢀⠂⠠⠁⠂⠈⠄⠂⠠⢁⠐⠀⠄⡈⠄⠐⡀⠁⠂⡁⢂⠁⠌⠠⠀⢁⠀
⢣⠘⠠⠐⠠⢀⠁⠠⠈⠄⡁⠂⡐⠠⠐⢀⠀⠀⠻⣿⣷⠤⠤⣤⣝⣦⡀⠀⢸⡾⡇⡴⣿⠞⠁⠀⠀⢄⣠⠶⠿⠶⢶⣿⣻⠏⠀⠀⠁⠠⠐⡀⠄⡈⠐⠠⢈⠀⡁⠂⢁⠐⠈⠀⠐⠈⠀⠀⠐⡀⠡⠈⡐⠈⡀⢂⠈⠄⠂⡐⠀⢂⠐⠈⠄⠐⠠⠁⢂⠀⡁⠂⠀
⢃⡈⢁⠈⠀⠀⠈⡀⠁⠀⠀⠁⢀⠀⠀⢀⠀⠁⠀⠈⠛⣿⣿⣤⣤⣿⣿⣄⡀⣇⣿⡜⢁⣀⣀⣤⣼⣏⠁⠀⠀⠀⣸⣿⡏⠀⢀⠀⠁⢀⠀⠀⡀⢀⠁⠀⠀⠀⡀⠁⠀⠀⣄⣧⣤⣀⠈⠀⡀⠀⡀⠁⠀⢀⠀⠀⠀⢀⠁⢀⠁⠀⠀⠁⡈⠀⢁⠀⠀⡀⠀⠈⠀
⡆⡘⠠⠈⠄⡈⠄⠐⡈⠐⢈⠀⠂⡀⢂⠠⠀⠂⢀⢠⣴⣿⢿⠟⠋⠉⠉⢉⣽⣿⣿⣾⣿⣿⣥⣄⡀⠈⠉⢛⣶⣿⡿⠏⠀⠀⠀⠄⢀⠂⢀⠁⠀⠂⠀⠂⠌⢀⠀⡁⢀⣶⢿⣿⣾⣿⣧⡀⠀⠄⠐⠀⠡⠀⠄⡈⠄⠂⠐⠠⠈⠄⠂⡁⠠⠈⠀⠄⠂⠠⠁⢂⠀
⢆⠱⢈⠐⠠⠀⠄⠡⠐⠈⡀⠄⢁⠠⠀⠠⠀⠐⢀⣿⣟⡴⠞⠦⣤⠶⣺⠏⣡⡿⠀⣿⢦⠈⠙⡿⠿⣿⡿⣿⡟⠛⠁⠀⡀⠂⠈⠀⡀⠀⠂⠀⠄⢀⡁⠀⠠⠀⠂⢀⣾⢃⡾⠃⠀⣼⣿⡇⠀⡀⠂⢁⠠⠁⡐⢀⠂⠌⠠⠁⡈⠄⢁⠀⠂⠁⠌⡐⠈⠠⠁⠄⠀
⢎⠰⢈⠐⠠⠁⡐⠠⠈⠄⡀⠂⠄⠠⠁⡀⠄⠀⠸⣿⠉⣀⡴⢋⡵⠞⢻⡶⣿⢿⡿⢏⡘⣷⡼⠓⢦⡀⣽⣿⠋⠀⠀⢀⠀⠠⢀⠁⠀⠄⠁⣰⣶⢦⣄⡈⠀⠠⠀⣼⢣⣾⣇⠀⣼⣻⣿⣷⣄⠀⠠⠀⢀⠂⠠⢀⠂⡐⠠⡁⠄⠄⠂⠠⠁⡈⠐⡀⠌⢀⠡⠈⠀
⢎⠰⡈⠐⡀⢁⠀⢂⠡⠀⠄⠡⢈⠀⠂⢀⠀⠐⠀⢻⣿⣭⡖⣋⣠⣾⠟⠁⠀⢿⡇⠀⠙⢳⡙⣦⠀⣿⡽⠃⠀⠄⠂⠀⡀⠂⠄⠈⡀⠀⠀⢹⡻⣾⡿⣿⣷⣄⡀⣿⠏⠁⢻⡞⣿⠟⣩⣿⣿⡄⠐⡀⠠⠐⠀⢂⠐⠈⢀⠠⠀⠂⠄⠡⠐⠀⠡⢀⠐⡀⠂⡁⠀
⡃⢆⠑⠠⠐⡀⠈⠄⡐⠈⡀⠂⠄⡈⠐⡀⠀⡁⠄⠀⠙⠛⠟⠛⠋⠁⠀⢀⠀⠸⣿⣄⣀⣀⣿⣼⡿⠏⠁⠀⡀⠀⠐⠠⠐⠈⠠⠁⠄⢂⠁⠈⢷⡌⣷⣌⣙⢿⢿⡏⠀⠀⢸⡟⢉⣴⠏⢈⣿⡇⠀⠀⠄⠠⠁⠄⠂⢁⠠⠀⠌⠐⠈⠄⠂⢁⠂⠄⠂⠠⠁⠄⠀
⡍⢢⠉⠠⠐⢀⠡⠐⡀⠐⡀⢁⠂⢀⠡⠀⠄⠀⡀⠌⠀⠄⠠⠀⠐⠀⠂⠀⠠⠀⠈⠉⠛⠟⠛⠉⢀⠀⠐⠀⢀⠀⢁⠂⠁⠌⢀⠁⢂⠀⠄⠂⠀⠻⣇⡀⠉⠻⣿⡏⠀⠀⢸⣧⡾⢋⣤⣾⣿⣏⡀⠐⠀⠠⠐⠈⡀⠂⠠⠈⠄⡈⠐⠠⠁⠂⡈⠄⠈⠄⠡⠐⠀
⡑⢂⠌⠠⠁⠂⡀⠂⠄⢁⠀⠂⠌⠀⠄⡁⠂⠐⡀⠄⠠⠀⠄⠠⠀⢂⠐⠈⠀⠄⠁⠂⠈⢀⠀⠠⠀⠀⡀⠐⡀⢈⠀⢂⠡⠈⠄⠐⡀⠈⠀⠄⠁⠀⠙⣷⣀⠀⢈⡇⠀⠀⣼⢋⣴⡿⠋⣸⠿⢼⣿⣆⠈⠀⠄⠂⢀⠁⠂⠡⠐⠀⡁⢂⠁⡐⠠⠈⠐⡈⠐⠠⠀
⡍⢢⢈⠐⠠⠁⠠⢈⠐⡀⢈⠐⠠⠁⢂⠐⡀⠡⢀⠂⡐⠀⠌⢀⠂⠄⢂⠐⡀⠂⠄⡀⢁⠀⠠⠀⠠⠀⠐⠀⡐⠠⠈⠄⠂⡁⠐⠠⠐⠀⡁⠠⠈⠀⢶⡈⡿⢦⡀⣧⠀⢰⣿⣿⣯⡤⢾⣭⣤⠴⢿⣿⠈⠀⠄⠂⠠⠈⠠⢁⠂⢁⠐⠠⢀⠐⠠⠁⢂⠠⢁⠐⠀
⡜⢠⠂⡈⠄⠁⠂⠄⠂⡀⠂⠌⠀⠂⠄⠂⡐⠀⢂⠐⠀⡈⠄⠂⠠⢈⠠⠀⠄⡁⠂⢀⠂⠀⠁⠀⠁⠄⠐⡀⢀⠂⠁⠌⠀⠄⡁⠐⠠⠁⡀⠄⠀⠂⠘⢧⣹⣄⣻⣽⣄⣿⠟⠀⠀⠀⠄⢀⡷⠤⢾⣿⡇⠀⠠⠐⢀⠁⠂⠄⢂⠠⠈⠐⡀⠈⠄⠡⠀⡐⠠⠈⠀
⡜⠠⠒⠀⠌⠠⠁⢂⠐⡀⠐⠠⠁⡈⠄⠒⠀⠌⠀⠄⠂⠄⠂⡁⠐⠠⠐⠈⡀⠄⠁⠄⠐⠈⠀⢄⣶⣶⣄⠀⠂⢈⠐⠀⠌⢀⠐⡈⠄⠐⡀⢀⠂⠠⢀⠀⠁⠉⠛⠛⠿⣷⣾⢟⡓⠒⢺⡛⠶⣤⣼⣿⠃⠀⠁⠄⠠⠈⠐⡈⠀⠄⡈⠐⡀⠁⠌⡀⢡⠀⡠⠁⠀
⡌⠱⢈⠐⠈⠄⠂⠄⢂⠀⡁⠂⢁⠐⢀⠡⠈⠀⠌⠐⠠⠈⡐⠀⡁⢂⠁⢂⠠⠈⠄⠂⠀⡐⢀⣾⣟⡟⣿⡄⠐⠀⠠⠈⡀⠂⠠⢀⠂⠐⠠⢀⠀⠄⠀⠐⠈⠠⠀⠄⠀⠙⠿⠏⠙⠳⢾⣧⣴⣿⡿⠃⠀⡐⠈⢀⠠⠁⠂⠄⠡⠐⢀⠁⠄⢈⠐⢀⠂⠐⠀⡈⠀
⡅⢣⠈⠄⡁⢂⠈⡐⠀⠔⠠⢈⠀⠄⠂⢀⠂⠁⠌⢀⠁⠐⠀⠁⠠⠀⠌⠀⠄⡁⠐⠀⠐⢀⢸⣿⢻⢻⣹⣧⠀⠈⠀⠄⠠⠁⠂⠄⡈⠄⢁⠂⡀⠂⠡⢀⠂⡀⠈⢀⠈⠄⠀⡀⠄⠀⡀⠀⠉⠀⠀⠀⢀⠀⠄⢀⠐⠠⠁⢂⠐⢀⠂⡐⠈⠠⢈⠀⠂⢁⠐⡀⠀
⡜⠠⠌⠐⠠⢀⠂⠠⢁⠂⠁⠄⠈⠠⢈⠠⠀⠡⠀⠂⢀⠈⠄⠂⠁⢀⠠⠈⠀⢀⠐⠈⠀⢀⣼⣿⣾⠈⢧⣿⠀⠠⠁⠀⠂⠄⡁⠂⠄⠐⡀⠂⡀⢁⠂⠄⠠⠐⢁⠂⠈⡀⢀⠀⠀⡐⠀⠐⠀⠈⠀⠀⠂⠀⠄⠂⡈⠄⠂⠄⠂⡀⠂⡐⠈⠠⠀⠂⢁⠀⠂⠄⠀
⡌⢡⠘⠠⢁⠂⠂⡁⠤⠐⠈⠀⠌⠐⡀⠂⠁⠄⠂⠠⠀⣠⣦⣤⣌⡀⠀⢀⠈⠀⡀⠀⢡⣾⣿⢿⣻⠀⢸⣿⡄⠀⠠⠁⢈⠀⠄⡁⠂⡐⠠⠁⡀⠄⠂⢌⠠⠁⠂⢀⠁⠠⠀⠌⠐⠠⠐⠠⠈⠄⡁⠌⠠⢁⠠⢁⠠⠐⠈⠠⠁⡀⠡⠀⠡⢀⠁⠂⠄⡈⠐⢈⠀
⡑⠢⢁⠐⡀⠌⠐⠀⡀⠐⢈⠐⠈⡀⠐⡈⠄⡀⠄⠀⠐⣿⣿⣟⡛⠻⠷⣦⣄⡁⠀⠀⣾⣿⢯⣾⣿⡀⠀⣿⡇⠀⠂⠐⠀⠈⠠⠐⠀⠄⠠⢁⠀⠂⠌⠠⠀⠂⢁⠠⠈⠄⡁⠂⠡⠐⠠⠁⠌⡀⠄⠠⢁⠠⠀⢂⠀⠂⡁⠂⢁⠠⠐⠈⠠⢀⠂⡁⠄⠠⠁⠂⠀
⢣⠑⡈⠐⡀⠌⠐⡀⠄⢁⠠⠈⠐⢀⠡⠀⠄⠀⠐⠈⠀⠙⣿⣦⡭⠿⠶⠦⣽⣻⢶⣄⢻⣿⡻⣯⢿⡇⠀⢸⡇⠀⠀⠂⠈⠀⠄⠂⠁⡈⠐⠀⢂⠁⠂⢁⠈⠄⠂⡀⢂⠐⠠⢀⠡⠈⠄⠂⡐⠠⠀⡁⢂⠠⠈⡀⠌⠐⢀⠁⠂⠠⠈⠄⡁⠠⠐⡀⠄⠡⢈⠐⠀
⠣⢌⠐⠠⠀⠂⡐⠀⠂⠄⡐⢈⠐⠠⠐⢈⠀⠂⢁⠀⠂⡀⠘⣯⢯⠙⠓⠶⢤⣈⡙⢻⣿⣿⠳⣼⡌⣷⠀⢸⡇⠀⢀⣴⡶⠆⢀⠠⠁⠠⢈⠐⡀⠄⢁⠂⢀⠂⡐⠀⠄⡈⠄⠂⠠⠁⢂⠐⢀⠂⠁⡐⠠⠐⢀⠐⠠⠈⡀⠌⡀⠡⠈⠄⡀⢁⠂⠄⠠⠁⠂⠄⠀
⠃⠌⠀⠠⠁⢀⠀⠌⠐⡀⠄⠂⡐⠀⡁⠂⢈⠐⡀⠀⢂⠀⠄⠘⢿⣿⣓⣶⣾⡛⠿⣛⣷⢿⣷⣿⣧⢻⡄⢸⡇⣰⣿⢿⠀⠄⡀⠠⠀⡁⠄⠂⠠⠐⡀⠐⡀⢂⠠⠁⡐⢀⠂⠌⢀⠡⢀⠈⡀⠂⢁⠠⠀⡁⢀⠂⠠⠁⡀⠂⠐⡀⢁⠂⠄⠂⡈⠄⠁⠌⠐⠈⠀
⠠⠀⣶⣶⡆⠀⡀⠂⠐⡀⠄⠡⢀⠂⠄⡁⠂⠠⢀⠡⠀⠂⡐⠀⢠⡿⣿⣡⣈⣉⣷⠛⠋⠓⠻⣿⣿⣯⡇⣸⢻⠟⠁⠀⠀⡀⠀⠄⠐⢀⠐⡈⠄⠂⠠⢁⠠⢀⠂⠐⢀⠂⠄⠂⠄⠂⠄⠐⠠⠁⠂⡐⢈⠀⢂⠠⠁⡐⠀⡁⢂⠀⢂⠐⡀⢂⠐⠈⠠⠈⠄⠡⠀
⠀⠀⢾⣿⡇⠐⠀⡐⠠⠀⠂⡁⠄⡀⠂⠄⢁⠐⠠⠐⢈⠐⠀⠀⢿⢿⣡⣤⠤⠭⠽⠶⣄⣀⡀⠀⣛⣿⣷⣿⠛⠀⠐⠠⠁⢀⠀⠄⡁⠂⠐⠠⠐⠈⡐⠀⠄⠂⡈⠐⡀⠈⠄⠂⡈⠐⡈⢀⠡⠈⠄⠁⠄⠂⠠⢀⠂⠄⠂⠐⡀⠈⠄⢂⠠⠀⠌⠠⠁⠌⡐⠠⠀
⠀⠀⣻⣿⡇⠀⠄⢀⠠⠁⢂⠐⡀⠐⢈⠐⠠⠈⠄⢁⠂⠀⠌⠀⠘⠿⣷⣤⣶⣛⣋⣉⣭⡽⠟⣛⣭⠟⠋⠀⠀⠠⠀⠁⠄⠂⢈⠠⠐⠈⠠⠁⠄⡁⠐⡈⢀⠂⢀⠁⠀⢁⠀⠂⠀⡁⠐⡀⠐⢈⠠⠈⠀⠄⡁⠄⠂⡐⠈⡐⠀⡁⠂⠄⠂⡈⠄⡁⠐⠠⢀⠐⠀
⠀⠀⣽⣿⡅⠐⠀⠂⢀⠂⠄⢂⠠⠐⡀⠌⠐⠈⠐⢀⠠⠐⠀⠐⡀⠀⠀⠈⠉⠉⠉⠁⠀⠀⡀⠉⠁⠀⠄⠂⡁⠂⢁⠈⢀⠂⠄⠂⠄⠁⢂⠡⠀⠄⠡⠀⠄⠀⠂⠀⠁⠠⠀⠄⠁⠠⠁⡀⠌⠀⠄⠂⡁⠂⠠⠐⠠⢀⠂⠄⡁⢀⠂⠌⡀⠄⡐⠠⠈⠐⢀⠈⠀
⠀⠀⣾⣿⡇⢀⠂⠁⠠⠀⠂⠄⠂⠡⠐⠂⠁⠠⠁⠠⢀⠂⡈⠀⢀⠈⠀⠂⠀⠄⠀⠂⠈⠀⠀⠀⠄⠁⢂⠐⠀⡁⠂⠈⠀⠄⡈⠐⠈⡐⠀⢂⠈⢀⠂⠀⠄⠂⠀⢁⣠⣴⣾⣶⡌⠁⠐⢀⠠⠁⠂⡐⠠⠁⠠⢁⠂⠄⠐⠠⠐⠀⡐⠠⢀⠐⢀⠂⠡⢈⠠⠐⠀
⠀⠀⣻⣿⡇⠀⠠⠈⠐⠠⠈⡐⠂⢁⠐⠀⠌⠀⠌⡐⠀⡐⠠⠁⡀⢂⠐⡀⠂⠄⠂⡐⢀⠂⠐⡈⠠⠁⠠⠀⠡⠀⠠⠐⠀⡀⠀⠌⠐⠀⢈⠀⠐⠀⢀⠈⠀⢀⣴⠟⣻⣿⣿⡿⠁⠀⢈⠀⠐⡈⢀⠐⠠⠁⠂⠄⢂⠈⠄⡁⠂⢁⠐⠠⢀⠂⠄⠠⠁⠠⠀⡐⠀
⠀⠀⣿⣿⡇⠐⠀⡐⠈⡀⠁⠄⢁⠀⠂⡈⠄⠈⠄⠐⠠⢀⠡⠐⠀⠄⠂⡀⠌⠠⠁⡀⢂⠈⡁⠄⠁⡀⢡⣶⣶⣶⣦⣤⡀⠀⠄⠠⠀⠐⠀⠠⠀⢨⡀⢀⣰⣿⡤⠖⣛⣿⣿⠃⠀⡀⠂⠀⢂⠐⡀⢈⠐⠠⠁⡐⠀⢂⠐⠀⠡⠀⠌⠐⡀⠐⡈⠠⠈⠄⠐⡀⠀
⠀⠀⢾⣿⡄⠀⠁⢀⠐⠀⠌⡀⠂⠠⢁⠀⠂⡁⠌⠠⠁⡀⠂⠄⠡⢈⠐⠀⡐⠠⢁⠐⢀⠂⢀⠂⠄⠀⠹⣿⡾⣿⣯⣉⣉⣛⣶⣤⡀⢸⡇⠀⠀⣸⢡⡾⠉⣴⠛⣉⣩⣿⣿⡄⠀⢀⠐⠀⠂⠄⡐⠠⠈⠄⠐⡀⠡⠀⡈⠄⠡⠐⠠⠁⡐⠀⠐⡀⠡⢀⠡⢀⠀
⠀⠰⠶⠿⠶⠄⠁⠠⠀⠌⠀⠄⠡⠐⡀⢈⠐⠀⠌⠐⡀⠄⡁⠂⡐⢀⠂⠁⠠⢁⠠⢈⠀⠄⠂⠀⠂⢀⠀⠈⢿⣿⣿⠥⠾⠽⠧⣌⠙⢦⣙⢦⣠⢯⡟⣀⠾⠉⠉⠉⣉⣽⡿⠁⠀⡀⠂⢈⠐⠠⠀⠄⡁⠈⠄⠠⠁⠄⡐⢀⡁⠌⠀⠂⠀⠌⠐⡀⠐⠠⢀⠂⠀
⢀⠠⣼⣾⡗⠀⡀⠁⢀⠂⠡⢈⠐⢀⠐⠠⠈⡐⠈⠄⡀⠂⠄⡁⢀⠂⡐⠈⠐⠠⠐⠀⠂⡀⢂⠐⠈⠀⠐⠀⠀⢻⡿⣷⠴⠒⠛⠉⠙⠒⢮⣷⣿⣿⣾⣭⡶⣶⠿⠿⢿⣍⠀⠀⡀⠀⡐⠀⠌⡀⠡⠐⡀⠡⠐⠠⠁⠄⠄⠂⠄⠐⠈⡀⢁⠂⠡⠐⠈⡀⢂⠐⠀
⠀⡀⢈⣿⡇⠠⠀⠌⢀⠐⡀⢂⠈⡀⠌⠠⠁⠠⠈⠄⡀⢁⠂⠄⠠⠐⠀⠌⡀⢁⠐⡀⠁⠄⡀⠂⠌⠀⠈⡀⠄⠈⠻⠿⣶⣶⣶⣶⣿⣻⡯⢿⣿⣿⡿⣟⣋⠛⢭⣍⣉⣻⣿⣄⠀⠐⠀⡐⠠⢀⠁⡐⠠⠐⢀⠡⠀⠌⠠⠈⡀⠂⢁⠐⡀⠠⠁⢂⠁⡐⢀⠂⠀
⠐⠀⣾⣿⡗⠀⠠⠀⡀⠂⡀⢂⠐⠀⠄⡁⠂⠁⠌⡀⠐⡀⢂⠈⠄⡈⠐⡀⠐⡀⠂⢀⠁⠂⠄⡈⠄⠡⠀⠀⠄⠂⠀⠀⣴⣮⠗⣫⡟⢁⡴⣻⢏⣿⢏⢦⡈⢯⡹⣗⠮⢭⣿⡿⠀⠀⠂⢀⠂⠄⠂⡀⢂⠁⡀⠂⠡⠐⢀⠡⠀⠌⢀⠂⠄⠂⡁⠂⠠⠐⠠⠈⠀
⠀⠈⠛⣻⡃⠀⠁⠄⢀⠁⠄⢂⠈⠐⠠⠐⠈⡐⠠⢀⠁⠄⠂⡀⢂⠠⠁⡀⢂⠐⠈⡀⠌⠐⡀⠄⡈⠐⡀⠁⠠⠐⠀⢸⣿⡷⢚⡽⡷⣹⢩⠗⣻⢸⡎⢧⡹⣄⣳⣤⣽⣾⡿⠁⠀⠂⢁⠀⠌⡀⠂⠐⡀⠐⢀⠁⢂⠐⠠⠐⠈⡀⢂⠐⡀⠂⠄⡁⠂⠄⡁⢂⠀
⠀⠁⢘⣿⡏⠀⠄⠂⠠⠈⢀⠂⡈⠄⠁⠌⠐⢀⠡⢀⠂⠐⠠⠀⠄⠂⡐⠀⠄⡈⠐⠀⠌⡐⠀⡐⠠⠁⠠⠈⠀⠄⠀⡀⢻⣿⣯⣼⣡⣇⡞⣰⡯⠀⠀⢀⠙⢾⣿⣿⠿⠋⠀⢀⠐⠀⢀⠂⠄⢀⠁⠂⠄⠁⠂⠈⠄⡐⠠⠁⢂⠐⢀⠂⠄⡈⠐⡀⠐⠠⠐⡀⠀
⠀⠈⢻⣿⡇⠈⠀⡐⠀⠡⢀⠂⠄⠠⢁⠈⠄⠂⠄⡀⠂⠌⢀⠡⠐⠠⠐⠈⠠⢀⠡⠈⠠⠐⡀⠐⠠⠁⠂⠁⠄⠂⠐⠀⡀⠙⠻⢯⣿⣿⠿⠋⠀⠀⠐⠀⠠⠀⠀⠀⠀⠀⠈⠀⠀⠂⠄⠐⢈⠠⠈⠐⡈⠠⠁⠌⠠⠀⠄⡁⠂⡀⢂⠐⠠⠐⠠⢀⠁⢂⠁⠐⠀
⠀⠐⠳⣿⡇⢀⠂⠄⠈⠄⡀⠂⠌⠀⠄⡈⠐⢈⠀⠄⠐⡀⠂⠄⠂⠁⠄⡁⠂⠄⠂⠈⠄⢁⠠⠈⠄⡁⠠⢁⠂⡈⠄⠁⠄⡀⠂⡀⠀⠀⢀⠠⠀⠂⠀⡀⠁⠀⠂⠀⠀⠂⠁⡀⠡⢈⡐⠈⡀⠠⢀⠁⠄⢂⠈⠠⠁⢂⠐⠠⠁⠠⠀⠌⢀⠂⠡⠀⠌⠠⠈⢀⠂
⠠⠀⠿⢿⡏⠀⠀⠄⢈⠀⠄⠡⢀⠁⠂⠤⠁⠂⡀⠌⠀⠄⡁⢂⠈⡐⠠⠐⠈⡐⠈⠐⡈⠠⢀⠂⡐⠠⠐⠠⡐⠀⠐⠈⡀⢀⠀⡀⠀⠁⠀⡀⢀⠐⠠⠐⢀⠁⢂⠁⠄⡁⢂⠐⠄⠁⡀⠐⢀⠐⡀⠈⠄⠂⠠⠁⠂⠄⠂⢁⠂⠁⠌⡐⠀⠄⠡⢈⢐⠠⠁⠂⠀
⢤⣁⣀⠀⠀⠀⠐⠀⠠⠈⠀⠂⠄⠢⠈⠀⠀⠁⠀⠄⠁⠂⠀⠄⠂⠀⠁⠠⠁⠐⠈⠀⠄⠁⠀⠄⡀⠁⠌⠐⠀⠈⠀⠂⠐⠀⠐⠀⠌⠀⠁⠀⠂⠈⠐⠀⠂⠈⠀⠂⠠⠐⠀⠂⠀⠁⠀⠐⠀⠂⠀⠁⠂⠁⠄⠁⠈⠠⠈⠀⠂⠁⠐⠀⠈⢀⠂⠀⠂⠀⠂⠈⠀

View file

@ -0,0 +1,39 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡿⣸⣿⡀⠀⠀⠀⠀⠀⣠⣴⣶⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⡇⣻⣿⡀⠀⠀⢀⡔⠿⢧⡋⢹⢃⠙⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⡟⠀⢿⣿⡇⠀⣠⡾⠃⠀⡼⠁⣾⠆⠀⣸⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⠀⠘⢸⣿⣇⣴⠟⠁⠀⢸⡀⢸⠧⢠⣾⠋⠀⠀⠀⠀⠀⠀⢀⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⠗⠀⠀⠸⢋⡚⢉⡤⣴⠞⢰⠁⡜⢤⣿⠇⠀⠀⠀⠀⠀⠀⡐⠈⡄⢸⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⠁⠀⠀⢰⣯⠀⢫⡌⣿⡆⠘⢰⢳⢸⡇⠀⠀⠀⠀⠀⠀⢰⠈⠂⠀⠈⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⢧⠀⢀⣦⢟⡻⡽⡼⣇⠸⠀⠀⣼⠠⣿⠃⠀⠀⠀⠀⠀⠰⠠⢌⠀⠁⢀⢣⠂⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡿⣝⡄⢾⣿⣌⢻⠥⢓⡯⠀⠂⠀⡏⣷⣿⡀⠀⠀⠀⠀⠀⡅⠡⠂⢌⠀⠠⠈⠄⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡟⣵⢿⣼⣿⣿⣿⡀⢏⠀⠳⡀⠀⠀⣇⢹⣿⣇⠀⠀⠀⠀⢰⠈⡐⠡⠌⠀⠀⠃⠀⠄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢧⣿⡇⡟⣿⣞⡬⢿⡈⢆⠐⡁⠀⠀⣿⣸⣿⣿⡆⠀⠀⠀⠀⠁⡐⠠⠈⠀⠀⠀⡁⠠⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡀⠀⠀⠀⠸⡿⡷⡈⢻⣿⣿⣣⠙⡄⠂⠀⢁⠀⢿⣼⣿⡿⠃⠀⠀⠀⠂⠀⠀⠀⠐⠀⠀⠀⠀⠐⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢀⡤⢶⣶⣿⣉⠛⠯⡹⢿⠉⣦⣄⣀⡙⣽⠱⠈⣿⣿⣿⢷⣄⠠⠁⠂⠀⣾⢸⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀
⠀⠀⣀⡴⠾⠛⡁⠀⢿⣯⡳⠜⡠⠁⠌⠂⠙⣿⡌⣟⣾⣑⢢⢿⡿⣙⠿⣬⢢⠀⠀⠀⠘⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢀⠴⠧⢶⢶⣶⡿⠁⢈⡉⠣⢬⠁⠀⢀⠀⠀⠈⠏⠠⠌⡳⠭⡜⢔⢫⠞⠴⠃⠀⠀⠀⠸⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠘⢾⢿⣿⣆⣆⠐⠀⠤⣀⠀⠀⠀⠠⠀⠙⢦⡀⠀⠁⠀⠀⠁⢈⠨⠳⣶⡁⢃⠒⠀⠀⠀⢹⣿⠀⠀⠀⠀⢀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠻⣿⣯⣌⢧⠐⠀⠐⠈⠑⣂⠤⢄⡀⠀⠀⠈⡄⣐⡂⠀⠀⠀⠀⠈⢿⠧⠀⣀⠀⠀⢸⣿⣄⠀⢠⣾⣿⣟⡻⢟⡻⠖⡶⢄⠀⠠⢀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢻⣻⣬⠻⡖⡄⠀⠄⠡⡀⣉⠒⠂⠉⠐⠀⠀⢄⣉⡙⠳⢶⣶⡤⠤⠳⣆⣀⠰⠀⢸⡿⣻⣦⡟⣿⡛⣮⠱⡃⠐⠠⠀⣿⡄⠐⢀⣤⣶⠾⠋⠉⠀⠀
⠀⠀⠀⠀⣿⣿⡥⠉⣖⡘⢦⡀⡘⢥⣂⠐⡀⠀⠀⠈⠀⠈⠉⠀⠂⠠⠉⣉⠁⠒⠒⠒⠒⡈⣽⣿⣯⡇⠡⡙⠦⡙⠔⡠⢀⠁⣿⣿⡄⠀⠞⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠘⣿⣯⢱⠋⠈⠣⣛⣉⣁⣈⡅⣠⠘⠶⠳⣶⠖⠐⠒⡤⡥⠥⣤⢦⡥⣤⢤⠤⢄⡿⠻⠓⠛⠄⠈⠱⠈⢐⠀⠦⣽⣻⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠘⠯⣴⣦⣶⣾⣿⡿⣽⣳⢾⣥⣌⣆⡠⠀⣀⠀⠁⠈⠉⢉⣉⠛⠙⠒⠒⠒⠉⡅⡐⠀⠀⠰⡤⣀⠀⠀⢈⠤⢳⢶⢹⣿⣿⣆⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⣿⣿⣧⢏⠾⡼⠯⠽⠿⢛⢉⣤⣶⣾⡭⠭⠖⠒⠒⠒⢈⡁⠄⣡⠊⠠⠀⠐⠁⠲⡤⣀⠮⡜⡣⢎⡱⢾⣭⡻⣷⣦⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠁⠎⠾⠱⣿⠾⣟⡵⣿⠟⠋⢀⠠⠀⣀⠨⠔⠊⠁⠀⣰⡿⠀⠀⢄⡤⣼⣷⠏⡀⢭⡲⢍⣣⠆⣓⠺⣽⣾⡻⣷⡄⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠶⣏⠱⠇⠠⢀⣐⡥⠖⢋⡀⠀⠀⠀⢀⡿⢁⣾⣶⣟⣮⣽⣿⣿⣿⣦⡁⠪⢍⡒⠩⣑⣻⡴⣯⣝⣻⣿⣆⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠙⠻⠛⠀⠀⠻⣩⣿⣷⣏⠍⠀⠀⠀⠀⢀⣼⣿⡟⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣽⡦⢵⣧⢛⡭⢳⠶⣿⣼⣿⠄
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣶⣾⠓⡀⠐⢠⣿⣿⣿⣿⣧⠄⠀⠀⢀⢬⣿⣿⡿⠃⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⡿⡿⠿⢦⣭⣿⡬⢿⣿⣿⠿⠃⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣭⣥⠒⠀⠁⢸⣿⣿⣿⠟⡹⡄⣐⠀⢮⣿⣿⣿⠀⠀⠀⠀⠙⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠓⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣮⠉⠄⠉⢀⣤⣾⣿⣿⠯⡕⡜⣐⠈⣜⣾⢻⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⣧⠠⡤⢌⣾⣿⣿⣿⣿⡟⡝⡁⣊⠳⢻⢹⢸⡟⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⠀⠷⣸⣿⣿⣿⣿⣯⢞⠕⣈⠙⣶⠹⣤⢳⣿⣯⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠃⠈⢻⣿⣿⣿⣿⡣⢌⢰⠀⢷⡹⢴⣧⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠿⠀⠀⣼⣹⣿⢨⣿⣿⣭⡁⠠⢸⣇⠺⢿⡟⣿⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡀⠀⠀⢹⣷⢿⣾⡿⣿⡿⢁⠘⢸⠘⠘⣾⡑⠛⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠣⠀⢠⡜⠁⠘⢿⣳⣿⣹⠄⠘⠈⠂⠁⢚⠄⠘⣜⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣿⣧⠜⡘⠀⠘⠀⠀⠄⠀⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⣿⣴⡀⠂⢡⠀⠀⠀⢿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠹⣷⡄⠂⢆⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠀⠘⡆⢰⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣧⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,42 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⠀⠀⠀⠀⢢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⡄⠀⠀⠀⠀⢃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⢨⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡸⠀⠀⠀⠀⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⢁⠂⠀⠀⠀⠀⠀⢠⣆⠀⠀⠀⠀⠀⢀⠔⠉⠠⠉⠰⡘⢠⠍⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⣰⠎⠀⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⠎⠀⠀⠀⠁⠀⢯⢄⠴⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠺⠆⠈⠃⣮⡁⠀⠀⠀⢀⡞⢀⠀⠀⠀⠀⠀⠯⠇⠀⡀⠀⠀⠀⠸⡧⢛⠩⠑⡀⢠⣸⠀⡠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠟⠀⣸⡷⠀⠀⠀⡼⠀⠀⢡⠀⠀⣤⣤⠀⠀⠨⣿⠆⠀⠀⠀⠑⠤⠤⠜⠁⢰⠃⠐⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠘⣗⠀⠀⠠⡇⠀⠀⢸⠀⣠⠌⠉⠀⠀⠀⠀⠀⠀⠾⠀⠀⠀⠀⠀⡂⡞⠄⡸⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠘⠋⠀⠶⡀⠀⠀⠀⠀⢻⡄⠀⠀⢗⡀⠀⣸⠀⠰⡲⠀⠿⠀⠀⠀⣴⡵⠀⠀⠀⠀⠀⢐⡜⡀⣁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠸⠆⠠⣶⠀⠠⠶⠠⣦⠈⢳⣠⠀⠈⣆⠀⡯⠀⠀⣦⠀⡈⢀⣤⡄⠀⠀⠀⠀⠀⠀⢠⠞⠊⠀⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⡆⠀⠀⢀⣤⡀⢖⡄⠀⠀⠀⠀⠹⣆⡀⠙⡂⢰⡀⠀⠀⣠⣷⣆⠉⠐⠀⠻⠗⠀⠀⡰⠋⢀⡔⠀⢲⡀⠀⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠐⢷⣀⠀⠈⠋⠀⣀⠀⠀⠀⠀⣁⡐⢈⡳⡂⠹⡄⢧⢂⣸⠹⢋⢠⢣⢳⣠⠀⠀⣡⠎⠀⠀⠘⣧⢒⠘⢀⡠⠋⢀⡀⣀⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠘⣿⢦⡀⠀⠀⠘⠁⠀⠠⢸⣿⡍⠻⠒⢿⣦⠹⡄⢻⡟⠀⠘⡀⠘⣠⡣⣠⠞⠁⠀⠀⠀⠀⢈⠈⢉⠁⠀⠀⠈⢁⠙⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠘⠶⡼⣕⠲⠦⢤⣀⣀⠘⢿⡵⡂⠀⠀⠉⠑⢎⣿⠁⠀⠀⠀⡆⣿⢾⡫⠠⣀⣤⡴⠿⢛⠿⡿⣿⠆⠀⣀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢶⣬⡳⣲⠢⣍⢳⡀⣷⠁⠀⡀⠀⠀⠄⢿⡀⠀⠀⠠⠁⣿⢽⣴⠿⠛⠁⠀⠈⠀⣰⡷⢁⠔⡪⠂⠐⢀⣨⠖⠂⠉⠉⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠍⠉⢛⠳⢔⣧⠘⣧⠀⢄⠀⡀⠀⠚⡷⠁⠀⠀⣰⣿⠏⠑⠠⠀⠀⠀⠠⣪⢟⣴⣗⣁⠦⠴⠛⣉⢀⡀⢤⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⡠⢴⡲⣞⢲⣒⡲⢤⡤⢬⢆⡙⠷⡌⠳⣄⠂⠀⠀⠂⠶⡄⢠⣆⡿⠁⠀⠀⠀⢠⠔⠈⡡⢃⠊⠔⠀⠁⠐⠊⠽⣂⠉⠈⠑⠨⡺⡄⡀⠀
⠀⠀⠀⠀⠀⢠⠜⣃⣨⡧⡽⠞⠙⠓⠚⠑⠘⠚⠓⠤⡵⢠⣛⡲⣦⡀⢤⡔⣷⡜⣿⣡⡀⠐⠀⢀⢨⣠⣖⣑⠚⠶⢶⡶⢖⡤⠤⣄⠉⠐⠂⠐⠂⠓⠳⣅⠀
⠀⠀⠀⠀⣠⣿⠲⠋⠁⠀⢀⡤⣲⠲⠆⢶⠻⠖⢚⡴⠞⠉⠈⠀⠍⠻⣛⢯⣽⣻⡣⠯⠴⣶⠍⠉⠉⠀⠊⠉⠉⢟⣶⣌⡳⣬⡛⣦⠝⡄⠀⠀⠀⠀⠀⠀⠑
⢀⣀⠤⠞⠋⠁⠀⠀⢀⠔⠃⡡⠴⣱⠖⠉⠠⣰⣏⡤⠊⡀⠚⢁⠀⠐⣴⢯⣭⣾⢮⢮⡹⢶⠆⠀⠐⢀⠀⠈⠀⢢⣘⡹⣿⣿⡝⢶⣽⢻⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⡠⠋⣤⣪⡴⠋⠁⠀⠠⣺⣿⠝⣀⢀⡠⢉⣀⣠⣦⣴⠿⢻⠃⠡⠁⢌⠢⡂⠴⢄⠠⠤⠄⠴⠦⣔⣺⣿⣯⡙⠆⢻⣾⠀⠀⠀⢠⠀⠀⠀
⠀⠀⠀⠀⣀⣴⣿⡿⠞⠋⠁⠀⠀⠐⠑⠀⣿⣯⣴⢾⢿⣿⢿⣿⣿⢿⠏⠠⠁⡐⠀⡀⠰⠌⢷⣦⣶⡧⣤⡶⠚⢛⢛⠋⢩⢲⠀⠀⢸⡇⠀⠀⣀⡀⠃⠀⠀
⠀⠈⠉⠋⠉⠉⠀⠀⠀⠀⠀⠀⠀⢨⡴⢇⣧⡁⠒⠛⠹⣹⡿⢋⢿⣾⡇⣘⡀⠄⠀⠄⠁⡚⠼⢟⠮⣿⡹⢺⣧⣛⢊⢁⣀⠁⠸⠛⠜⣀⠀⢀⡉⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⡏⠘⢇⢸⠏⠀⣬⡾⣿⣹⢛⣦⣾⢿⣌⢇⡘⠄⠘⡀⣷⣿⣃⠀⠈⠳⣏⣀⠙⡲⣌⠋⠉⣎⠆⠀⣉⡴⠊⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠙⠃⠀⠞⠂⠀⠀⢻⣆⣀⣀⡠⣾⡟⠀⡀⠿⢦⡙⢫⢼⢟⣾⣶⢣⣰⢿⣾⠟⠈⠹⢦⡀⠙⣮⢥⠀⠨⡳⣜⠁⡖⢆⠲⠃⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠠⣾⡇⠀⠀⠀⠀⠈⠉⠉⣸⡟⢀⢙⠋⠀⢈⣁⡘⠛⠐⠹⣻⣿⢿⣿⠏⠀⠀⠀⠠⢿⡀⢈⢧⠓⠀⠘⠝⣷⣌⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⡀⣿⠁⡀⠀⠀⠀⠈⠋⠂⠀⠀⠀⠁⠙⠹⠘⠀⠀⠀⠀⠀⠙⡇⠀⢹⣧⠀⠀⠈⢌⣿⡆⢃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣌⡁⣷⠉⠤⠤⢠⡴⠶⣶⣤⠀⠀⠀⠀⠀⠀⠀⠀⢲⠆⣤⡟⠀⡇⠀⢈⢻⡄⠀⠀⠀⢻⣷⡜⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣷⢻⡀⠀⠢⢺⣩⡇⠀⢹⡆⠀⠀⠀⠀⠀⠀⠀⠐⢆⡉⠡⠞⠀⠀⠘⣸⡇⠀⠀⠀⠀⣿⣱⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⡼⠳⣤⣀⠄⣂⣀⡤⠚⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⢰⣿⡇⠆⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠁⢏⠨⣯⠉⠹⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠁⠀⠀⠀⢸⣿⠄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣾⠋⠀⠀⠀⠀⣾⡿⠌⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠇⠀⠀⠀⠀⠀⣿⡟⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠖⠉⠀⠀⠀⠀⠀⢀⣾⣿⠂⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⢤⣾⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢤⣤⣶⡿⠞⠟⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,13 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣖⡀⢢⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠃⢨⠃⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⢀⣀⣀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢎⡰⠊⠉⠀⠉⠑⡆⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡞⡉⠑⡆⠀⡎⡌⠀⠀⢰⡾⠂⠀⡄⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠿⠇⢠⣏⡐⠓⢇⠀⡀⠈⡓⠒⠊⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠼⣸⠀⠀⢸⠊⠀⠀⠰⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠔⠒⢎⠀⠀⡘⠆⣁⡇⢆⣡⠴⠥⢄⡀⠀⠀
⠀⢀⡀⠀⡀⠀⠀⠀⢠⠎⠀⣀⠤⣾⠷⠦⢼⢿⣉⡳⣋⡤⠀⠀⢀⡇⠀⠀
⢠⡎⠀⣠⢈⡆⠀⠀⡆⡠⠊⠀⢰⠁⠀⠈⡰⢺⠉⡏⠂⠉⢲⠖⠛⠲⢄⡀
⠘⢇⡀⠙⠋⠀⢀⡠⢏⠁⢴⣆⠈⠒⠶⢲⠁⠈⢀⣇⠀⠀⣸⢃⡴⠆⢀⡇
⠀⠈⠙⠒⠶⠖⠋⠁⠈⠐⠚⠁⠀⠀⠀⠘⠦⠤⠊⠀⠉⠉⠁⠀⠑⠒⠊⠀

View file

@ -0,0 +1,17 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠤⠒⠒⠢⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⢟⣇⠤⠒⠂⠤⡀⠀⢰⠃⠀⠀⣀⠄⠀⢣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠞⠁⠀⠀⠀⠀⠈⢆⢺⠀⠀⠀⠣⣀⣀⡼⢤⣶⣶⣶⣤⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣸⡀⠀⢀⣴⣤⠀⡜⠘⢆⣠⠴⠋⣩⣴⡾⢟⣿⣿⣿⣿⣶⣾⣭⣝⡶⣄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣤⠀⢸⣿⠃⠀⠀⣠⡼⠣⣤⣿⣿⣛⠤⠛⣿⣿⡿⣻⣿⣟⡿⠿⣿⣘⣿⡀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣠⣴⣶⣶⣿⣿⣯⣶⣶⣄⣀⠀⠀⠀⠀⠀⠀⠀⠐⠀⠀⢀⠀⠀⠀⠈⢺⣻⣄⠀⠻⣄⣀⣴⣋⢔⢪⡶⠛⠀⢑⣲⢶⣿⣿⠾⠛⢡⠁⠀⠰⢿⣿⣿⡽⡆⠀⠀⠀
⠀⠀⣠⣾⡿⠛⣿⡿⣿⣿⡯⠭⣍⣛⠷⣿⣧⢀⣶⡿⠲⡀⢀⣤⣪⠭⠭⣉⠑⠢⡀⠀⠉⠚⠭⣶⢶⡞⠁⢁⣴⢻⠀⠀⢰⠁⠀⠉⢆⠀⠀⣀⠤⣁⠀⢰⣁⡈⠙⢿⢻⠀⠀⠀
⠠⠊⠉⠉⠁⠈⢉⢼⣿⠏⣴⡄⠀⠈⠙⠯⣿⣷⠁⢀⣷⢡⡾⠋⠐⢀⡀⠈⢳⠀⢱⠀⠀⢠⣾⡟⡏⣇⣴⢟⣡⠼⡀⠀⠀⠁⠀⠀⡸⡰⠉⢀⣆⡤⢷⠼⡟⠋⠀⠸⡼⠀⠀⠀
⠀⠀⠀⠀⠀⢀⡇⢸⠉⠉⠉⠐⣦⣄⠀⠀⠈⢿⣧⡸⣿⢸⠃⠀⠀⠘⠯⠤⠋⣴⡽⠀⠀⠎⠁⣸⣼⢟⠁⠈⠀⠀⡹⠢⢄⣀⡠⠔⠁⡇⠀⠀⡟⠻⡷⣦⠇⠀⠀⢠⢧⠠⣾⣦
⠀⠀⠀⠀⣀⠸⡂⠀⠉⠈⠀⠀⠈⠫⡄⠀⠀⠀⠘⢳⣽⣾⡆⠀⠀⠀⠀⠀⠱⠋⠀⠀⣠⣴⣾⣟⠁⣨⣖⠤⠤⣲⠥⣤⠤⣀⠀⠀⠀⠳⣄⠀⠑⢄⡀⠀⠀⢀⡴⢳⣣⠑⠛⠉
⠀⠀⠀⠈⠿⠛⠣⡀⠀⠀⠀⠀⠀⢠⠃⠀⠀⠀⠀⠀⠈⠿⣟⣦⡀⠑⠦⣴⣶⡾⣶⣿⠟⡏⣾⣿⣦⡤⠜⠀⣼⠁⢀⡿⠀⠀⠱⡄⠀⠀⠈⠓⠲⠤⠬⠟⠛⠉⠀⢺⡟⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⠢⠤⠤⠤⠖⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡉⠟⠻⠶⠞⠖⠛⠭⠠⣾⣷⠋⣿⣿⠟⣁⡠⠎⠢⠤⠝⠀⠀⠀⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠃⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠐⠀⠀⠀⠀⠀⠀⠀⢠⡟⠁⠀⢻⡝⡟⣶⣦⣶⣦⣤⠀⠀⠀⢠⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠀⡀⡀⡘⣷⡬⠢⣑⠀⠀⠈⠑⢄⡠⠚⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡁⠀⠁⠈⠀⠁⡨⠊⠉⠁⠂⢼⣵⠀⠀⠉⠁⠂⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⡀⠀⠀⠀⠇⠀⠀⠀⠀⢾⢿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠈⠢⢄⣀⡴⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,13 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⠟⠹⣧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣷⣦⣄⣠⣿⠃⢠⣄⠈⢻⣆⣠⣴⡞⡆⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢀⣀⣀⣿⠀⠈⢻⣇⢀⣾⢟⡄⣸⡿⠋⠀⡇⣇⣀⣀⠀⠀⠀⠀⠀
⠀⣤⣤⣤⣀⣱⢻⠚⠻⣧⣀⠀⢹⡿⠃⠈⢻⣟⠀⢀⣤⠧⠓⣹⣟⣀⣤⣤⣤⡀
⠀⠈⠻⣧⠉⠛⣽⠀⠀⠀⠙⣷⡿⠁⠀⠀⠀⢻⣶⠛⠁⠀⠀⡟⠟⠉⣵⡟⠁⠀
⠀⠀⠀⠹⣧⡀⠏⡇⠀⠀⠀⣿⠁⠀⠀⠀⠀⠀⣿⡄⠀⠀⢠⢷⠀⣼⡟⠀⠀⠀
⠀⠀⠀⠀⠙⣟⢼⡹⡄⠀⠀⣿⡄⠀⠀⠀⠀⢀⣿⡇⠀⢀⣞⣦⢾⠟⠀⠀⠀⠀
⠀⠠⢶⣿⣛⠛⢒⣭⢻⣶⣤⣹⣿⣤⣀⣀⣠⣾⣟⣠⣔⡛⢫⣐⠛⢛⣻⣶⠆⠀
⠀⠀⠀⠉⣻⡽⠛⠉⠁⠀⠉⢙⣿⠖⠒⠛⠻⣿⡋⠉⠁⠈⠉⠙⢿⣿⠉⠀⠀⠀
⠀⠀⠀⠸⠿⠷⠒⣦⣤⣴⣶⢿⣿⡀⠀⠀⠀⣽⡿⢷⣦⠤⢤⡖⠶⠿⠧⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠛⢿⣦⣴⡾⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,37 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⠴⢤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⢾⣛⡆⠈⡏⠰⠶⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢦⣿⣄⣉⣁⣤⠽⣦⣤⡶⠶⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠚⠹⡉⢃⣴⠟⠉⠀⠀⠀⠀⠉⠻⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⢡⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠈⢷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡂⣿⡇⠀⠀⠀⠀⣠⣤⣀⠀⠀⠀⠘⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⢻⣷⠀⠀⠀⠀⢯⡉⣿⡆⠀⠀⣰⡇⠀⢀⣀⢤⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣧⣀⠀⠀⢀⣴⡟⠀⠀⣰⣿⡷⢏⡭⠔⠹⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠛⠿⠿⠟⠋⠀⢀⣼⣿⣿⣿⠿⣭⡉⢛⡃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣀⣤⠶⠿⣟⣟⣝⡷⣲⢤⣀⠀⠀⠀⠀⠀⠀⢠⠀⠀⠀⠀⠀⠀⣠⣾⡿⠃⠹⡟⢖⠢⠽⠦⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⢀⣴⠞⠁⠀⠀⠀⠀⠀⠉⠙⢦⣕⡯⣷⣄⠀⠀⠠⣴⠋⢓⡶⠂⠀⢀⣼⣿⠟⠁⠀⠀⠈⠺⡄⠋⣀⣰⣀⠀⠀⠀⠀⠀⠀
⠀⣠⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢯⣒⢭⣦⠀⠀⢸⠕⠦⠇⠀⣤⣿⡿⠃⣠⠴⠶⠶⣤⡀⠀⠀⠼⠿⡏⠀⠀⠀⠀⠀⠀
⢀⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣝⡫⢧⠀⠀⠀⠀⣠⣾⡿⠉⠀⢸⠁⢀⣀⠀⠈⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣼⠁⠀⠀⠀⠀⣠⣶⣿⣿⣷⣦⡀⠀⠀⠀⠀⠙⡮⣛⡆⠀⠀⣰⣿⡏⢐⡀⠀⠸⣦⣀⣨⠇⠒⣸⣀⣀⣄⣀⡀⠀⠀⠀⠀⠀⠀
⢹⠆⠀⠀⠀⢠⣿⡿⠃⠀⠀⠉⢻⡄⠀⠀⠀⠀⠙⣗⢿⠀⣸⡟⡙⢷⡈⢠⠀⡀⠈⠉⣁⠘⣠⠟⠉⠉⠙⢿⣿⡆⠀⠀⠀⠀⠀
⠘⣇⠀⠀⠀⠈⢿⡇⠀⢲⠀⠀⠀⢻⡀⠀⢤⣴⡀⠹⣽⣴⡿⣁⠀⠈⠻⣦⣤⣥⣌⣡⡤⠞⠁⠀⣰⠛⠆⣸⣿⡇⠀⠀⠀⠀⠀
⠀⢻⡄⠀⠀⠀⠀⠉⠙⠉⠀⠀⠀⢸⠀⠀⠚⠻⠁⠀⢿⣿⢣⢀⡤⠶⠲⢮⣍⡉⠉⠁⠀⣤⠀⠀⠘⢿⣿⡿⠏⠀⠀⠀⠀⠀⠀
⠀⠀⢻⣄⠀⠀⠀⠀⠀⠀⠀⠀⣰⠋⠀⡀⠀⠀⠀⠀⢸⣿⣰⠏⢀⡴⢶⡄⢸⡇⠀⢖⠚⠉⠓⣲⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠙⠷⣦⣄⣀⣀⣠⣴⠾⠁⠀⢰⣕⢲⣪⡉⠅⣾⣿⡟⠀⠈⠳⠭⠵⠋⠀⠀⣼⣁⢄⣸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠀⠀⠀⢤⡼⠉⢹⡣⣉⠀⣿⣿⡇⠀⠀⢠⣴⠶⢦⡀⠀⠁⠀⠀⣙⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡔⠟⡛⡀⡆⣿⡟⣷⠀⠀⣿⣇⣲⠈⡿⢀⣴⣾⣿⠿⠿⣿⣷⣦⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢰⡀⡷⣰⣇⡴⠠⠜⠀⠀⠀⠀⣿⡇⡘⣷⣄⠀⠙⣉⠞⢡⣿⡟⠁⠀⠀⠀⠀⠈⠻⣿⣆⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠠⣤⣯⣷⣧⠿⠵⠶⠶⣤⣄⡀⠀⢻⣇⠡⡌⠻⣏⠉⠁⠀⢺⣿⠀⠀⢀⣶⣶⣤⠀⠀⠘⣿⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠠⢾⡿⡋⠗⠈⠃⠈⠁⠰⠉⡻⢶⣜⣿⢘⠂⣠⣌⣷⡀⠀⢸⣿⡆⠀⠈⠧⠄⢸⡇⠀⠀⣹⠇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣰⠏⠄⠁⠀⠀⠀⠀⠀⠀⠀⠁⠈⠙⢿⣏⠰⡏⣬⣿⢻⡀⠀⠻⣿⣄⠀⠀⣠⠞⠀⠀⢠⡟⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢰⡏⠴⠀⠀⠀⠀⢀⣠⣀⣀⠀⠀⠀⠀⠈⢻⣧⡙⢦⣤⡾⠁⠀⠀⠈⠙⠛⠋⠁⠀⠀⣠⡞⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠸⢿⡀⠀⠀⠀⣰⠋⠁⠀⠉⠙⢦⠀⠀⠀⠀⢻⣟⢦⣄⡀⠀⠀⠀⠀⠀⠀⠀⣀⣤⠾⠋⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢹⡹⣇⠀⠀⠘⡇⠀⠀⠖⡆⠀⠘⣧⠀⠀⠀⠀⠻⣎⢿⠹⠳⢲⡲⢶⠶⠾⠛⠉⣁⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠸⣎⡹⣧⡀⠀⠻⣦⣤⠴⠃⠀⢰⠏⠀⣤⣀⣴⠀⠙⣧⡱⡀⢠⡾⢟⣛⡓⣆⠀⠿⣿⠛⠁⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠱⣊⠜⣻⣶⣄⣀⠀⠀⠀⣀⠟⠠⣔⣊⠁⣶⣄⠀⠈⢷⣅⢸⠅⢸⣓⣃⣼⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠙⢮⡞⡜⡝⡝⡟⡯⠟⠁⠀⠀⠀⠈⠿⠀⠀⠀⠀⠀⠹⣶⡳⢤⣹⣯⡥⠴⠶⠶⠦⣄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣤⣀⠀⠈⠻⣦⡀⠀⠀⡞⣙⣷⠀⢈⡆⠀⠀⣀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠏⣤⢈⣿⠀⠀⠀⠈⠳⣄⠈⣷⣈⣉⣠⡼⢡⡾⠛⠉⠙⢳⡀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣄⠈⠉⠁⢀⣀⣤⣶⣶⣾⣷⣌⠙⠋⠁⠀⣿⠀⢤⡀⠀⠀⣷
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠻⠿⠛⠛⠉⠁⡼⠋⢠⠨⠍⡳⢄⡀⠀⠘⠻⠛⠁⠀⣰⡿
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⣔⡒⡞⡀⠁⠰⠙⡲⢦⣤⣤⣤⣾⠿⠁
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⠺⠞⠧⠁⠀⠀⠀⠁⠐⠉⠉⠉⠀⠀⠀

View file

@ -0,0 +1,17 @@
⠀⠀⠀⠀⠀⢀⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣸⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢠⡟⠘⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢰⡟⠀⠀⠈⠻⣷⣤⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣠⡟⠀⠀⠀⠀⠀⠈⢻⡿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣰⡟⠀⠀⠀⠀⠀⠀⠀⠀⠻⠸⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢰⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣇⠀⣠⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣀⠀⠀⠀⠀⠀⠀⠀
⣾⡁⢀⣠⠴⠒⠲⣤⣠⠶⠋⠳⣤⣸⣿⣰⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀
⣿⠟⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⣽⠏⣿⡿⢿⣿⣿⣿⣷⣄⠀⠀⠀⠀⢠⣾⣿⣿⣿⠋⢹⡇⠀⠀⠀⠀⠀⠀
⢹⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⡟⠀⣿⠁⠀⠙⣿⡛⠛⢿⡶⠶⠶⠶⣿⣄⣀⣰⠃⠀⢸⡇⠀⠀⠀⠀⠀⠀
⠈⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡿⠁⠀⣿⠀⠀⠀⠈⢷⡀⠘⠛⠀⠀⠀⠀⠈⠉⠳⣄⠀⢸⡇⠀⠀⠀⠀⠀⠀
⠀⠈⢿⣦⡀⠀⠀⠀⠀⠀⢀⣿⣇⣀⠀⢻⠀⠀⠀⠀⢰⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠳⣾⠃⠀⣤⣤⣄⠀⠀
⠀⠀⠀⠉⠻⢶⣄⣠⣴⠞⠛⠉⠉⠙⠻⢾⣇⠀⢀⣰⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡄⠀⣿⢩⡿⣿⡆
⠀⠀⠀⠀⣠⣴⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⢹⡷⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⣿⣟⣵⡿⠁
⠀⢀⣠⡾⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣇⠀⠀⠀⣴⣿⠀⠀⠀⠀⠀⠀⢠⣶⠀⠀⣸⡇⠀⠙⠋⠁⠀⠀
⢸⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⣄⣈⣀⣙⣁⠀⠀⣶⣾⡶⠀⠻⠿⠀⢠⣿⣁⡀⠀⠀⠀⠀⠀
⠈⠛⠻⠿⠶⠶⠶⡤⣤⣤⣤⣄⣀⣤⣀⣠⣤⣀⣀⣹⣿⣿⣿⣿⣤⣽⣿⣴⣶⣶⡦⢼⣿⣿⣿⣿⠇⠀⠀⠀⠀

View file

@ -0,0 +1,25 @@
⠀⠀⠀⠀⢀⡴⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⡟⠱⣧⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢾⠃⠀⠻⡢⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⢿⠁⠀⣯⡀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠰⡇⠀⠀⠀⢹⣾⣦⡀⠀⠀⠀⠀⠀⠀⠀⣠⣾⠀⠀⠀⠀⣠⣾⡿⠁⡇⠀⠀⢸⠇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣤⠁⠀⠀⠀⠀⢫⠻⣮⣦⡀⠀⠀⠀⢀⣴⣎⡞⣤⣴⣦⣻⠟⢗⣒⠠⣇⡀⠀⠈⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣿⠀⠀⠀⠀⠀⠏⣇⠈⠻⣿⣦⣀⣴⣿⣿⣾⡷⢿⣛⣃⡭⣅⣰⣶⢻⠋⠀⠀⠀⣧⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣿⠀⠀⡀⠀⠀⢸⢸⠀⠀⠙⠟⢷⣿⣿⣿⣿⣿⡟⣛⣛⠋⣿⣫⣭⠉⠒⠦⡀⠀⡟⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣿⠀⠀⢡⠀⠠⠀⠿⡄⠀⠀⠀⠀⠙⠻⣿⣿⣿⣿⣋⠉⢛⡽⠛⠵⣄⠔⠳⣌⢦⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠿⠀⠀⢃⢆⠀⢳⠄⣇⠀⠀⢀⡠⠀⠀⠈⠻⢿⣞⣋⢙⣥⣴⣆⣛⣺⣧⣀⣿⣿⣀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢠⣇⠀⠀⢾⣦⡀⢡⢧⢶⣶⠃⠀⠀⠀⠀⠀⠀⠙⠻⣿⣾⣿⣿⣿⣿⣿⠿⢿⣿⣿⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⣽⣦⡀⠁⠓⢔⡀⢸⡿⠇⠀⠀⣠⡴⠾⠛⢻⠄⠀⠈⠫⠻⡿⣿⠿⡇⢀⣼⡝⠈⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠹⢇⠙⠲⠤⠄⢉⡞⠀⠀⠀⡴⠋⠀⣀⣀⠘⡀⢰⢴⡇⠀⣰⣶⣎⣿⣿⣯⡿⠇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣽⣿⢒⣤⣤⡀⢸⠀⠀⠀⠀⢀⣴⣿⣿⣟⠻⣇⡸⠀⢱⣠⣿⣋⢻⢿⡿⣿⢽⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢵⣿⣿⣿⠶⣶⣾⠀⠀⠀⢠⣾⢿⣿⣷⡲⠀⢧⠃⠀⠀⠻⡿⡟⢸⢿⢿⣽⣷⡿⡂⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⣵⣟⣏⡩⠟⠇⠉⠉⠀⠚⢇⣫⣛⡻⠃⠀⢸⠠⠒⠀⠀⠫⢔⡁⠈⢳⡀⠙⢷⣄⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢾⣟⣭⠊⠀⠀⢁⠀⠀⠀⠀⠀⠀⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⣀⣈⣉⣒⠳⡠⠀⢻⠆⠀⠀⠀⠀
⠀⠀⠀⢰⣯⣮⢇⠖⠠⠄⠸⡀⠀⠀⠀⠀⠀⠀⠀⠤⡀⠀⠀⠀⠀⢠⣮⣥⣴⣶⣾⠇⢸⠳⣚⠇⠀⠀⠀⠀
⠀⠀⠀⢸⣏⡤⡾⣶⢚⠤⠊⠱⣄⠀⠀⠀⠀⠀⠀⠀⠘⢆⠀⠀⢀⡀⠙⠛⠿⡿⢋⢀⡼⠀⢹⡃⠀⠀⠀⠀
⠀⠀⠀⠀⠉⠁⣿⣹⡏⠀⠀⡠⠁⢗⠤⣀⠀⠀⠀⠀⠀⠈⠳⣤⣀⣈⣀⠤⠴⡥⢤⣼⠶⠝⠛⠁⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠛⠲⠶⠆⠈⠛⢻⡟⣿⣿⠿⣷⣶⣤⣄⣀⠀⠈⠪⣊⢉⡠⢟⣴⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡰⣶⢖⡇⢙⢿⠁⠠⢙⡻⢿⣿⣟⠷⢶⣤⣤⠲⠙⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣀⢠⣜⠿⢿⣋⠀⠀⡆⠀⠀⠀⠘⠳⠋⠊⠁⢻⠿⡧⣖⣠⡄⢀⡀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢀⣄⢶⠷⠟⠋⠀⠀⠀⠀⢘⡗⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢛⣏⡈⡽⠛⠿⢫⡶⣤⡀⠀⠀⠀⠀
⠀⢀⣶⡯⠛⠋⠀⠀⠀⠀⠀⠀⣯⡁⠈⠁⠲⠤⣀⡀⠀⠀⠀⠀⣀⣠⠈⠀⠐⠓⠂⠒⡄⢀⣽⢷⡦⡀⠀⠀
⠀⢻⠉⠀⠀⠀⠀⠀⠀⠀⠀⣦⣵⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡸⢀⠀⠀⠀⠀⠈⠉⣡⡇⠀⠹⣾⢆⠀
⢸⡇⣇⠀⠀⠀⠀⠀⠀⠀⢰⣼⣦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠩⠋⠀⠀⠀⠀⠀⠀⠁⠺⣵⠀⠙⣿⣆

View file

@ -0,0 +1,72 @@
⢯⡝⢮⡁⢍⡳⣙⢮⡵⡙⠯⣉⠣⠀⠉⠉⠉⠀⡀⢀⡀⠀⠀⠀⠀⠀⠈⠉⠉⠀⠀⠀⠉⠀⠁⠀⠀⠀⠀⠈⠁⠀⠀⠀⠄⠠⠀⠄⡐⠠⢀⠀⡀⢀⠀⡀⢀⠀⡀⢀⠀⡀⢀⠀⠀⠀⠀⠀⠀⠄⠠⠀⠄⠠⠀⠄⡀⠀⠀⠣⢎⠑⠀⢀⠰⠌⠒⠁⠊⠀⠁⠉⠀⠀⠁⠂⠀⣤⣻⣟⣿⣻⣟⡿⣭⣿⢿⡿⣿⣿⢿⡿⣿⣛⡇⠈⣟⡿⣿⣿
⢧⠞⡵⢲⠀⠵⠎⠀⠀⠁⠀⠀⠀⢀⠄⠢⠄⠁⠀⠀⠀⢀⠠⠀⠤⠐⢀⠂⠀⠠⠐⠠⠀⡐⠀⢂⠐⠀⠄⠠⢀⠠⢀⠀⡀⠄⠀⡀⢀⠂⠄⠐⠀⠂⡐⠀⢂⠐⠀⠂⡐⠀⠄⡈⠐⠠⢀⠀⠀⠈⠄⠡⠈⠄⡁⠂⠄⡁⠀⠈⠀⠀⠀⠁⠀⠀⠀⠀⠀⢀⣀⣀⣀⣀⠀⠀⠀⠀⠈⠹⣞⡷⣯⣟⡷⣯⣟⣿⣟⡾⣟⡿⣽⣫⣟⠀⢯⢽⣿⣾
⢫⡞⣍⠃⠀⠘⠀⠀⢀⠠⠐⠠⠁⠈⠀⢀⠀⠤⡀⢃⠈⠀⠀⠀⠀⢀⠀⢀⠀⠂⢁⠠⠁⠀⠌⠀⡀⠡⠈⢀⠂⠠⠀⠂⠐⠈⡀⠐⡀⠄⢈⠀⡁⠐⢀⠈⡀⠄⠈⠄⢀⠂⠐⠀⡁⠂⠄⠂⠄⡀⠈⠠⠁⠂⠀⠁⠀⠀⠀⠀⠀⢀⡀⠀⠄⠀⠂⠈⠀⠀⠀⠀⠉⠙⠛⠳⣦⣄⡀⠀⠀⠙⢿⣽⣻⢷⣯⣞⡿⣽⡿⣽⣳⢯⣻⠀⣹⢚⡷⣻
⡳⠜⠂⠀⠀⠠⢀⠁⠂⠀⠀⠀⣠⢀⠃⠈⢀⠐⠀⠀⠈⠐⠀⠂⠐⠀⢀⠂⢈⠐⠀⠄⡈⠐⡀⢁⠠⠐⠀⠂⠠⠁⠠⠁⡈⠐⠀⡁⠠⠀⠂⠐⠀⡁⠂⠠⠀⠄⢁⠈⠄⡈⠄⠡⢀⠁⠂⠁⠘⠀⠀⠀⠀⠀⢀⠠⡀⠖⠒⠉⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠙⢢⠀⠀⠈⢹⣯⢿⣶⣻⣟⣷⢿⣻⡽⣷⢿⠀⣎⠝⠈⢹
⠀⠀⢀⠢⠘⠀⠀⢀⠀⡐⠂⢡⠀⠤⠀⠀⠀⠀⠀⠀⢀⠀⡀⠄⢀⠂⡀⠂⠄⠂⠈⠄⠐⠠⠀⠂⡀⠂⠁⠌⠐⠈⡀⠂⠐⠈⡀⠐⢀⠂⢁⠈⠄⠐⡀⠡⠐⢈⠠⢈⡐⠠⠈⠀⠀⠀⠀⠀⠀⣀⡠⠤⠒⠈⠁⠀⠀⠀⠀⠀⢀⣀⣠⣤⣴⢦⣶⣞⣶⣣⣤⠐⠀⠄⠀⠀⠀⠀⡐⠀⡀⠀⠀⠀⠈⢿⣮⢷⣻⣾⣻⢷⡿⣝⡿⠀⠉⣰⠀⢸
⡀⠆⠈⠀⢀⠠⠐⠈⠠⠀⠁⠀⢀⠀⠂⠀⠀⠠⠀⠄⠂⡐⠀⠄⠂⠠⠐⢀⠂⠌⢀⠂⠌⠀⠄⡁⠠⢀⠡⠐⠈⡀⠐⠈⠄⡁⠐⡈⠠⠐⠀⢂⠈⠄⡐⢀⠂⡤⠊⠁⠀⠀⠀⠀⢀⠠⠔⠂⠉⠀⠀⠀⠀⠀⠀⣀⣠⣴⡶⣿⣯⣟⡿⣳⢟⡻⢳⡛⠾⣍⠳⡈⢆⠈⠀⠀⠀⠀⠀⠐⡀⠄⠀⠀⠀⠈⠻⣟⣯⣷⣟⣯⢿⣽⡛⠀⣼⡗⠀⣜
⠀⠀⠠⠉⠀⢃⠀⠀⠁⠀⠀⠂⠀⠄⠀⠠⢀⠁⢠⢈⠤⡄⠃⠂⡈⠄⢁⠀⠂⡐⠀⠄⠂⢁⠠⠐⠀⠄⡀⠂⢁⠠⠈⠄⠂⡀⠁⠄⡐⠀⠡⢀⠐⠠⢐⠠⠁⠀⠀⠀⡀⠤⠐⠊⠁⠀⠀⠀⠀⠀⣀⣤⡶⣞⡿⡟⢯⡳⢏⠷⡬⢧⡝⡶⢭⠞⠣⠛⠹⢈⠑⡰⢈⡜⢠⠀⠀⠀⠀⠀⠠⠐⠈⠀⠀⠀⠀⠉⢿⣯⣿⡽⣯⣜⡿⣯⡟⡇⠀⣞
⠀⠂⠀⠁⠀⢀⠠⠀⢀⠀⠄⢡⠂⡀⢄⣂⠦⡙⠆⠋⠀⠀⡐⠠⠀⠌⠀⠄⡁⠠⢈⠠⢈⠀⠄⠂⡁⠄⠐⡈⠀⠄⢂⠠⢁⠠⠈⠄⡀⠌⢀⠂⠌⡐⠁⠀⠀⠀⠄⠂⠐⠀⠀⠀⠀⠀⣀⣤⢶⠻⣝⢣⢟⡱⢎⡵⢣⠝⠎⠋⠉⠁⠈⠀⠀⡀⠠⢀⠐⡀⢣⠐⡡⢜⡡⠂⠄⠀⠀⠀⠀⠈⠐⠀⠄⠀⠀⠀⠈⠳⣯⣟⡾⣽⣹⢧⣿⠁⢰⣹
⠀⠀⠀⡀⡖⠀⠀⡀⢂⢌⡐⢦⡙⡜⣌⠆⠓⠁⠀⠀⠄⠡⢀⠁⡐⠈⢀⠂⢀⠁⠄⠂⡀⠌⢀⠂⠄⡈⠐⡀⠡⠈⡀⠄⠂⡀⠡⢀⠐⢀⠂⠜⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⢠⠰⣚⠱⣊⢦⡙⢦⢋⠎⠑⠁⠈⠀⡀⠀⡄⠂⠄⠃⠌⢂⠡⢄⠢⡐⢌⢢⡙⡔⠣⠜⡁⠂⢁⠀⠀⠀⠀⠁⢂⠈⢀⠀⠀⠀⠀⠈⠙⢿⣻⣽⣯⠟⠀⡾⣽
⠀⣀⠆⡑⢠⡐⢦⡑⠣⢎⣜⣢⡵⠋⠀⠀⡠⠀⠀⠌⠠⠁⡀⠐⠀⡁⠂⢈⠀⠈⠄⠁⡀⠂⡀⠂⡐⠀⠁⠀⠀⠁⠄⠂⢁⠀⠂⠄⠈⡔⠈⠀⠀⠀⠠⠈⠀⠀⠀⢀⠠⡐⠬⣡⠓⡬⠑⡌⢂⠉⡀⠤⢈⠆⡘⠄⠃⠌⠡⢀⠉⠤⡉⢆⠡⣊⠔⡡⢉⠆⡒⠰⢈⠁⠒⠀⢁⠠⠀⠀⠀⠀⠀⠄⠈⡀⢈⠀⠀⠀⠣⡀⠀⠙⠷⣯⠃⢼⣹⣿
⣼⡻⠞⡠⠓⡜⣤⣜⣳⡞⠋⠁⠀⢠⠔⠃⠀⢀⠠⠈⠄⠡⢀⠁⢂⠐⡀⠂⢈⠐⠈⡐⠀⡐⠠⢁⠐⠀⢠⠆⠀⠀⠂⠌⡀⠈⠠⡘⠔⠀⠀⠀⠀⠈⠀⠀⠀⡀⠌⢄⠃⠌⡑⠠⠊⢄⡁⠆⡡⢊⠰⢁⠊⡐⠐⡈⠡⠌⢂⠅⢊⠔⡰⢈⠒⡀⠎⠐⠁⠂⠀⠁⠀⠀⠈⠀⠀⠀⠀⢀⡀⠀⠀⠠⠁⠀⠄⠂⠄⠀⠀⠙⢆⡀⠀⠐⠸⣯⢿⣽
⣟⠡⢊⢴⣹⣼⣳⠾⠁⠀⠀⢀⠖⠁⠀⠀⠄⠂⠄⠡⠈⠀⠀⡀⠀⠀⢀⠁⢂⠠⠁⠄⠂⠠⠐⠀⠀⣠⡏⠀⠀⠠⢁⠂⠀⢄⢣⠅⠀⠀⢀⠂⠀⠀⠀⢀⠂⠐⡈⠤⠈⡔⠠⢃⠅⠢⠐⠌⡐⠄⠂⠌⡐⠠⢁⠐⠡⠈⠄⢈⠠⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣠⠤⠴⠒⠒⠉⢀⠐⠠⠀⠁⠠⠁⡀⠂⠄⠂⠀⠀⠀⠳⡄⠀⠀⠘⢯⢿
⡉⣦⢿⡶⣏⠓⠁⠀⠀⢀⠔⠀⠀⢀⠐⡈⠄⠡⠈⠀⢀⣴⡾⠍⠀⠀⠠⠈⠄⡐⢀⠂⠌⡀⠁⠀⢠⡷⠁⠀⠠⠁⠀⡠⡔⣊⠆⠀⠀⠀⠠⠀⠀⠀⠀⠂⢀⠀⠰⢈⠡⡀⡑⠂⠌⡐⢉⠐⠠⢈⠐⠠⢀⠡⠀⠌⠀⠁⡀⠂⠀⠀⠀⠀⠀⣀⣠⣤⠶⠋⠛⠉⠁⠀⠠⠀⠂⠐⡈⠀⠐⠠⢀⠈⠄⠐⠀⠌⠀⠀⠀⠀⠀⡀⠙⢦⠀⠀⠀⠹
⣟⣯⢏⠳⠈⠀⠀⢀⡔⠋⣠⡾⠉⠄⢂⠀⠂⠀⣠⡾⣟⡾⠁⠀⠀⠌⠠⠁⢂⠐⠠⠀⠀⠀⠀⢀⣿⡝⠀⠀⠀⢀⣾⠓⡜⠀⠀⠀⠀⠀⠐⠀⠀⠀⠀⠐⠀⠠⠐⢂⠡⡐⢄⡉⠐⡀⠂⠌⠐⡀⠌⠀⠂⠀⠐⠀⠈⠀⠀⠀⣀⡤⠴⠖⠛⠉⠁⢀⠀⡐⠠⠀⠌⢀⠡⠀⢁⠂⠀⠁⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠠⠐⠀⠈⠓⡀⠀⠀
⡟⠴⠉⢀⠀⢀⡴⠃⣠⣾⠟⠀⠐⠈⠀⢀⡰⣾⣽⣻⡝⠀⠀⠀⠌⠠⠁⠌⠠⠈⠀⠀⠀⠀⠀⣼⣯⠇⠀⠀⣴⡿⠂⡝⠂⠀⠀⠀⠀⠀⠈⡀⠂⠀⠀⠀⢈⠀⠄⠀⠒⡀⠂⠄⢁⠠⠁⠈⢀⠀⠀⠀⠀⠀⠀⣀⡤⠔⠢⠉⠁⠀⠄⠠⠀⠂⢈⠀⡐⢀⠀⠡⠀⠂⠀⠈⠀⠀⠀⣀⣀⣤⣴⣲⣶⣲⢍⡚⡴⣀⣀⠀⠀⠀⠁⠀⠐⠀⠀⠀
⠊⠀⡐⠁⣠⠏⢀⣼⣟⠃⠀⠀⠀⣀⠶⢡⣟⡷⣯⠓⠀⠀⠠⠁⠌⠀⠁⢀⡀⠀⠀⠈⠄⠀⢰⣿⡽⠀⠀⣾⣯⠇⡱⠎⠀⠀⠀⠀⠀⠀⠀⠀⡐⢀⠀⠀⠀⠠⠀⠈⠄⢀⠈⠀⠂⠀⠀⠁⠀⠀⢀⡀⠐⠊⠉⢀⠀⡀⠄⠐⠈⠠⠈⠀⠄⠁⠂⠀⠀⠀⠈⠀⠀⢀⣀⣤⡴⣶⣻⡾⣟⣾⡽⣷⣻⣽⣯⣗⠣⣝⢦⢏⡴⣀⠀⠀⠀⠀⠀⠀
⢠⠊⢀⡞⠁⣠⣿⡻⠌⠠⢁⣲⡞⠋⣴⣻⢯⣿⠁⠀⠀⠠⠁⠌⠀⠀⣴⣯⠁⠀⠀⠰⠀⠀⣾⢯⡃⢀⣼⣿⡞⠠⠑⠀⠀⠀⠀⠐⠀⠂⠀⠀⢀⠀⠀⠀⠀⠀⠀⠁⡀⢀⠐⠈⠀⠀⠀⠀⠀⠀⠄⠀⡐⠀⠡⠀⠐⢀⠠⠈⢀⠁⠄⠁⠈⠀⠀⢀⣀⢤⡴⣲⢯⡿⣽⣾⣻⡷⣟⣿⡽⣾⣻⡟⣷⣫⣷⣯⣳⢌⡚⡼⣱⢋⡯⣓⢦⡤⣄⡀
⠁⢠⠏⠀⣼⣟⣷⠃⢌⡱⣾⠣⠉⣰⡿⣯⡿⡏⠀⠀⠌⠠⠁⠀⣀⣾⢯⠁⠀⠀⣰⢏⠀⢨⣟⣿⣀⡾⣟⣾⠅⠘⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠂⠈⡀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠐⠈⠀⠌⠀⡀⠐⠠⠁⠂⠠⠐⠀⠀⠀⠀⠀⣠⠤⣞⣳⡾⣯⢿⣟⡿⠽⣳⠿⣽⠻⠟⠚⠛⠁⠁⠀⠀⠉⢲⣯⣷⢿⡼⣑⢎⢧⠳⣍⠶⡳⢬⡹
⣴⠋⠀⣾⣟⡞⠧⣈⣶⡟⠃⠀⣰⡿⣽⢳⡟⡇⠀⠀⠂⠀⡀⢶⣻⡽⠃⠀⠀⣸⣯⡆⠀⣼⣻⢮⣽⠃⣽⢿⡀⠂⠀⠀⠀⠀⢀⠠⠐⠀⠁⠀⠀⠀⢁⠀⠈⢦⣀⠀⠀⠀⠀⢀⠐⠈⠀⢀⠂⢁⠀⠂⠄⠁⠀⠀⠁⠀⠀⣀⠄⠀⠀⣼⢲⡿⣽⢿⡽⠿⠕⠊⠀⠐⠒⠉⠀⠀⠀⠀⠀⣀⡠⢤⡀⠀⢻⡷⣿⣯⢷⣏⢎⣎⠳⣌⡳⣍⠧⣝
⠇⠀⣼⣻⢾⡙⣤⢿⡓⢨⠁⢠⣿⣟⡾⣿⡹⠀⠀⠀⣀⡖⠁⣼⢯⠇⠀⠀⢠⣿⣳⠁⠀⣿⡽⣟⡾⠐⣯⣿⠀⠀⠀⠀⡀⢂⠀⠐⠀⠡⠈⡀⠀⠀⠀⠈⠄⠀⠈⠉⠁⠀⠡⠀⢀⠐⠈⠀⠄⠂⠈⠀⠀⠀⠀⠀⢠⢒⡱⠌⠀⠀⣸⡼⣯⣟⣯⡟⠉⠀⠀⠀⠀⠀⠀⣀⣠⣤⣶⠾⣹⢧⣛⣧⣇⠀⠈⢻⣽⣾⣟⡾⣭⢎⡳⢥⣛⢬⡛⡼
⠀⣼⠿⣝⡞⣴⠿⢃⡐⠃⢰⣿⣻⣼⠋⠁⠁⠀⢀⡼⡏⠀⢰⣿⡻⠀⢠⢠⣿⡽⠇⠀⢀⣿⣟⡯⠁⠐⣿⣎⠀⠀⠀⠁⡀⠠⢀⠁⠂⡀⢡⣠⣤⠄⠀⠀⠈⡐⠠⠀⠌⠐⠀⡁⢀⠂⠀⠁⠀⠀⠀⠀⠀⠀⠀⢀⢮⣱⠃⠀⠀⣰⢷⣻⢷⡫⠞⠀⠀⠀⠀⠀⠀⢼⡿⣽⠯⣟⢾⣻⡷⣟⣯⢿⣽⠂⠀⠈⢿⣾⣏⡿⣽⣻⡔⢣⢎⡧⢽⡱
⣼⣯⣟⡾⣽⢏⠃⡜⠬⢡⣿⣾⣳⡟⠀⠀⠀⢀⡾⠋⠀⢀⣿⣳⠇⠀⣼⢯⣷⢻⠁⠀⢰⣟⣾⠃⢠⠘⣿⠆⠀⠀⢀⠁⠠⠐⠀⣠⢶⠽⠋⠁⠀⠀⠀⠀⠀⠀⠄⠡⠀⠌⠐⠀⠀⠀⢀⠤⠄⠀⠀⠀⠀⠀⢠⣏⠖⡇⠀⠀⣐⣯⢿⡯⠟⠀⠀⠀⠀⢀⠆⡂⠀⢘⣿⣝⡷⣫⣿⡝⣻⣽⢯⣿⣞⣟⢦⠀⠘⣯⣿⣽⣳⣻⣞⡱⢎⣝⡲⣝
⣿⣾⣳⣟⠿⡀⡝⢬⠡⣿⣳⢯⡷⠁⣰⡇⢠⠟⠀⠀⠀⣼⡿⡝⠀⢠⣿⣻⡽⠊⠀⠀⢸⣟⡾⠁⡰⠀⡿⠀⠀⠀⠀⠂⢄⠢⠝⠃⠀⠀⠀⠀⠀⠯⡔⢣⠀⠀⠀⠂⠐⠀⠀⢀⢤⠰⣩⠞⠀⠀⠀⠀⠀⡰⣏⡜⡏⠀⠀⢠⣟⣾⣛⠎⠀⠀⠀⠀⡄⢣⠘⡄⠀⠈⢿⣾⣟⣿⢷⠂⠀⠻⣟⣾⣽⣻⢯⠀⠀⢻⣷⣯⣷⢻⡾⣽⣎⠮⡵⢎
⣿⣞⣷⠯⡱⡘⡜⢢⡹⡷⣯⢿⡅⣹⢿⣽⠘⠀⠀⠀⣸⢯⣟⡇⠀⢸⡧⣟⡇⠀⡅⠀⢘⡿⡇⠀⢧⠀⠇⠀⠀⠠⠁⠜⠊⠁⠀⠀⠀⠀⠀⠀⠈⣳⢚⡥⢚⠤⣀⣀⠠⡰⡸⣌⢎⣗⢣⠏⠀⠀⠀⠀⢰⡝⣲⠍⠀⠀⠀⣾⢯⡷⠁⠀⠀⠀⠀⠀⠘⡄⢣⠜⣡⠀⠈⢿⡾⠏⠃⠀⡀⠀⢻⣽⣾⡽⣶⣒⠀⠈⢿⣾⣏⡿⣽⣷⣻⡼⣱⢫
⣿⡾⣝⢣⠱⡑⣎⢡⠿⣽⢯⡟⣀⣿⣯⠃⠀⢀⠂⢀⣿⣟⡏⠀⠀⣻⡇⣿⡇⠀⠆⠀⠈⣿⡇⢀⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠄⠀⠀⠘⡧⣞⡥⣚⢴⢪⡕⣣⠷⡜⠮⣜⡫⠄⠀⠀⠀⢠⢇⡻⡜⠀⠀⠀⣸⣿⡻⠀⠀⠀⠀⣠⠀⠀⠀⠈⣇⠚⣥⢒⡀⠀⠀⠀⢀⠖⡱⠀⠀⢿⡷⣿⣻⣧⠀⠀⣻⡷⣯⣻⢷⣯⢷⣷⢣⢏
⣿⡽⢃⠦⣙⠲⠌⣞⡿⣏⣿⠰⣼⣻⠌⠀⢠⠋⠀⢸⣟⣾⠁⠀⠀⣿⠆⣿⡃⠀⡅⠀⠀⣚⢧⠠⢇⡄⠀⠀⠀⢀⠴⣉⠞⡀⠀⠀⠀⠂⠀⠀⠀⠈⢵⠺⣔⡱⢎⡳⣜⡡⢎⡭⢳⡍⡗⠀⠀⠀⢀⡞⣼⢱⠃⠀⠀⢰⡿⣞⠁⠀⠀⠀⠰⣀⠒⠀⠀⠀⠈⠳⢤⢣⡙⣜⢲⣼⣛⠮⡱⡁⠀⠀⢻⣿⢷⣏⠇⠀⢽⣻⣷⣻⣟⣾⣻⣯⡟⡼
⣿⡝⢢⠱⣊⠵⣉⡾⣽⢧⡟⣰⣯⡛⠀⠀⡎⡅⠀⣾⣽⡞⠀⠀⠠⣿⠃⢸⡗⡠⠄⠀⠀⢐⢣⡙⠦⡀⠀⠀⠠⠜⣆⢧⣋⢷⣀⠀⠀⠀⠄⠁⠀⠀⢸⣋⠶⣩⢎⡵⣌⠳⣎⡜⢧⡝⠆⠀⠀⢀⣎⠾⣄⠏⠀⠀⢠⣟⡿⠀⠀⠀⠀⠀⡱⢈⠜⣀⠀⠀⠀⠀⠃⢧⡘⢬⠟⠎⣑⢊⠱⡱⠀⠀⠘⣯⣿⡃⠀⠀⣾⣽⣷⣻⣞⣷⣻⣷⣻⣘
⣿⠘⣌⠣⡕⢪⢴⣻⣝⣻⠌⣷⢯⠃⠀⢢⠵⠀⠀⣿⡾⡅⠀⠀⠀⣿⡁⢢⠝⡴⠀⠀⠀⠀⢧⢚⡱⠀⠀⠀⠀⢩⠜⣶⢩⢞⡱⣆⠀⠀⠀⢀⠀⠀⠀⢭⣳⠱⣎⢲⣩⠳⣤⢋⠶⣙⠂⠀⠀⡸⣬⢓⠎⠀⠀⠀⣼⢯⠃⠀⢸⠀⠀⠀⡱⢈⡒⢌⡆⠀⠀⠀⠀⠐⠹⡌⢎⣷⠻⠞⣳⠱⡀⠀⠀⢻⡖⠁⢀⣶⣟⣾⢳⣽⢾⣳⣿⣳⣧⣳
⣏⠞⣨⠓⣌⠳⣞⣳⡞⡷⢸⣽⡧⠀⡸⢡⠞⠀⢸⡿⣽⠂⠀⡁⠀⣿⠄⣘⢎⡱⠀⠀⠀⠀⢘⢦⡑⠀⠀⠀⠀⠰⢫⣜⢣⢎⠷⡜⢦⡀⠀⠀⠀⠀⠀⢸⠲⡭⣜⢣⡜⡳⢬⡙⡞⣭⠀⠀⢠⣓⠧⠉⠀⠀⠀⢰⣯⡏⠀⠀⣯⠀⠀⠀⢑⢢⠘⡆⠞⡤⠀⠀⠀⠀⠀⢙⠎⡥⢃⠶⣈⠧⡁⠀⠀⠀⠀⢠⣾⡷⣟⣯⣟⡾⣯⣓⣯⡷⡏⠃
⣏⠞⡴⣋⠴⡩⣟⣵⡻⣅⢻⣾⠁⢰⡑⡫⢜⠀⢸⣟⣿⠀⠀⡀⠀⢿⣃⢈⠦⡁⠀⠀⠀⠀⠈⢦⡑⠀⠀⠀⢀⡭⢳⣌⢳⠪⣝⡹⢎⡵⡄⠀⠀⠀⠀⠀⢏⠷⣘⢦⡹⣱⠣⡝⣼⣡⠀⠀⡴⢋⠎⠀⠀⠀⢀⣾⣿⠀⠀⢣⣿⠀⠀⠀⠈⢢⠱⣌⠫⣔⢣⠄⠀⠀⠀⠀⢋⠖⣩⢒⡍⡲⡁⠀⠀⠀⣰⣿⣻⣽⡻⡾⣝⣻⢵⡯⣟⠃⠀⠀
⣎⠳⡜⣆⠣⠵⣿⣼⡳⠎⣼⣻⠀⡱⢬⠱⢎⠄⢸⡿⣞⠀⠀⡀⠀⣏⠳⣌⠳⠀⠀⠀⠄⠀⠀⠣⠄⠀⠠⣜⠳⣜⢣⡜⢣⡛⣬⠓⣏⢶⣙⣆⠀⠀⠀⠀⠸⣩⢓⠮⣱⢣⢛⡜⢦⠇⠀⠀⠖⠀⠀⠀⠀⠀⣸⣿⢾⣀⣼⣷⣻⠀⠀⠀⠀⠀⠳⢌⠳⣈⠆⣏⠦⠀⠀⠀⠀⠘⡥⢊⡴⢡⠃⠀⠀⢰⣿⣞⣷⣟⣾⣟⡿⣽⣶⠛⠀⠀⠀⡀
⣎⠷⣙⡬⢣⡹⣷⢾⡝⠲⣜⡯⠀⡱⢊⡵⢊⠆⠘⣿⣭⠀⠀⠀⠸⣜⡝⢦⡙⠀⠀⠀⠀⠀⠀⠘⡀⠀⠰⣍⠻⣜⢆⡺⢥⡛⡴⢫⡜⣞⢲⡬⢳⡄⠀⠀⠀⢡⡏⢧⢳⡩⢞⡸⢭⠞⠀⣠⢄⠀⠀⠀⣠⡴⡟⣾⢿⡿⢯⣷⡿⡄⠀⠀⠀⠀⠘⢌⡳⢄⢫⡔⣩⢓⠦⣀⠀⠀⠘⣱⠸⣡⠂⠀⣰⣿⣟⡾⣽⠞⠃⠉⣠⡿⠊⠀⣀⣴⣳⣿
⣎⠷⣌⠳⣅⠺⣽⢯⣏⠱⣎⡕⠀⡵⣉⠖⣩⠚⡄⢻⡷⣀⠀⠀⢹⢆⡛⢦⡑⠀⠀⠀⠀⠀⠀⠀⢀⠀⠐⠸⢫⡜⢧⡹⣆⢳⡜⣣⠜⣆⠧⣝⡣⢞⣤⠀⠀⠀⢹⣎⠳⡜⣬⢓⡭⢞⡡⢎⡯⣞⡿⣟⣷⣻⣽⢯⣿⣽⣻⣯⢿⡅⠀⠘⡄⠀⠀⠀⠱⡊⠵⡘⠤⢋⠲⣅⢚⠤⣀⢌⠇⡐⠀⢰⣟⣷⣻⠝⠁⠀⠀⣾⣽⠃⢠⡾⣽⣳⡿⣽
⣎⢗⣎⠻⣌⠓⣯⣟⡮⢱⣚⡤⠀⢖⡡⢎⡅⢫⡜⣡⢏⡖⠀⠀⢘⣎⢳⣃⠆⠀⠀⠀⠀⡀⠀⠀⠀⠀⠀⠀⠀⠈⠓⠳⢍⡳⢮⡱⢫⡜⢮⡱⣙⡎⢾⡱⣄⠀⠐⢎⡳⣝⢢⡍⢶⡩⡝⢮⣑⣻⣽⢿⣽⣳⣯⢿⡾⣽⣳⢿⣯⣷⠀⠀⢻⣤⠀⠀⠀⠘⠡⡙⠜⣣⠓⡌⢎⡚⠤⠋⠂⠀⢠⡿⣽⠞⠁⠀⠀⠀⣼⣳⢿⣚⣯⢟⣧⢿⣽⣳
⡘⢮⡜⡳⣌⠳⡸⣿⡜⡡⢞⡄⠀⢣⠞⣰⢊⡥⣚⠤⣫⢜⡁⠀⢸⡜⣣⠞⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠲⣙⢧⣚⠵⣊⡕⢺⢥⠳⣍⢶⡀⠈⡼⣘⢧⡚⣥⢚⡝⢦⠳⣼⢯⡿⣞⡷⣯⡿⣽⣳⣯⢿⣹⣿⡀⠀⠐⣯⢷⣄⠀⠀⠀⠈⠘⠤⠛⠌⠃⠉⠀⣀⠄⢀⣿⢿⠁⠀⠀⠀⠀⢠⣿⡽⣷⣻⢞⣻⡼⠏⠃⠁
⢈⢳⣜⣱⣍⢣⣇⢹⣧⢱⣋⡖⠀⢣⢚⣤⣃⡖⣭⢲⢱⣎⡆⠀⢈⡞⣥⢛⠀⠀⠘⣭⢋⣷⣓⡞⣤⠀⢠⣄⣀⡀⠀⠀⠀⠀⠀⠈⠑⣎⣯⢳⣼⣙⣮⣱⣭⣖⣳⣤⢓⣭⣶⡙⣴⢋⣼⣃⡟⣼⣯⣿⣽⣛⣷⣻⣷⣻⣞⣿⣻⣾⣵⡂⠀⢹⡟⣯⣷⣤⡀⠀⠀⠀⠀⢀⣠⣴⣾⡏⢀⣼⣯⠁⠀⣼⡀⠀⠀⣼⣷⣿⣳⣯⣟⣯⣷⣴⣤⣆
⠈⢿⡩⢧⡙⢧⡘⢧⠙⣏⡹⢇⠀⠸⡘⢧⡙⢼⣙⢏⠿⣙⢇⠀⠈⠁⠉⠈⠀⠀⠀⠉⠘⠁⠋⢻⣍⢃⣈⠽⣍⠻⢟⣣⠤⣀⠀⠀⠀⠈⠈⠀⢹⡻⢼⣣⠻⣜⣣⡝⢯⡝⣏⠻⣥⠻⣥⢛⡼⢯⣟⡿⣽⣻⣟⡿⣟⣯⢿⣽⣻⢿⣯⡇⠀⠈⠛⠋⠉⠉⠁⠀⢀⣠⣼⡿⣿⢯⣟⡇⣼⣻⠁⠀⣼⠁⠃⠀⠀⣿⣽⡿⣟⡿⣽⣟⡿⣿⣻⣽
⡂⢸⡱⢎⡵⢣⠞⣂⠧⠰⣭⢳⠀⠐⡍⢖⡩⢖⡭⢎⡝⣎⢞⡀⠀⢰⢆⠦⠀⢠⣤⣀⣀⡀⠀⠀⠀⠀⠀⠉⠈⠉⠈⠈⠑⠁⠉⠁⠀⠀⠀⠀⠉⢳⣣⠮⡕⢦⠳⣜⢣⠞⣬⠳⣌⠳⣎⠳⣜⡿⣾⡽⣷⣻⢾⣽⣻⢾⣟⣾⡽⣯⣷⣧⠀⠀⠀⠀⠀⣠⣴⡿⣟⣯⠿⡽⣏⣽⢾⡽⣳⣿⣧⡿⣅⠂⠀⠀⢰⣟⣯⣟⣾⣻⢷⣯⣟⣿⣽⣻
⣥⠀⢧⣋⠶⣙⠞⢤⢃⠣⢎⣳⠀⠀⠸⣘⢆⡏⢾⡱⠜⡬⢮⡅⠀⢈⡞⡣⠀⢸⢶⡽⣯⢟⡿⣷⣦⣤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⢾⡱⢦⡡⢟⡸⢣⡛⣬⢣⡛⡴⢫⠜⡳⣌⠳⣭⡿⣼⣻⢷⣯⢿⡾⣽⣻⣞⣷⡽⣷⣻⣖⠀⠀⠀⣀⣞⡽⣿⡽⣽⣞⣿⣳⣟⣮⣟⡿⣽⣳⣟⣿⢠⠁⠀⠀⢸⣿⣟⣾⣳⣟⡿⣾⡽⣿⣾⢿
⣎⡄⠘⣬⢚⡥⣛⡔⢪⠱⣍⢖⡣⠀⠀⢣⠎⣼⢣⡝⣸⢡⡳⠆⠀⠀⡽⡁⠀⢸⣟⡿⣼⡹⢾⣝⣳⢯⣿⣻⢷⣶⣤⢄⣠⣀⣠⣤⣤⢶⣯⢶⣭⢣⡝⢪⢕⡣⡝⢦⣣⠝⡼⣡⢏⡵⣊⠷⣱⣻⢷⣫⣿⡽⣯⣟⣷⣯⣟⣾⣽⣻⣽⣻⣦⣤⣐⡿⣞⣿⣳⣟⣧⣿⣞⣷⣟⣾⣽⣻⢷⣯⢿⡍⡄⠀⠀⠀⣾⣟⣿⣞⣯⡿⣽⣳⢿⣿⣽⣿
⡜⣲⠀⢣⡝⢲⡱⣌⢣⢣⡜⣪⠕⠀⠀⠈⡜⢦⣣⠝⣦⠓⣭⢳⠀⠀⠸⡅⠀⣞⣿⣽⣳⣟⡿⣾⣽⣻⢾⣽⣻⣞⡿⣟⣿⣻⣽⣳⢿⣟⢾⣟⣾⣿⣻⢷⣎⣶⡙⡎⡖⢫⠵⣡⢞⣲⡙⣎⢷⣯⣟⣳⡽⣯⣟⣾⡽⣾⣽⣞⣾⣳⢿⣷⡿⣾⣟⣿⢯⣷⢯⣟⣧⣿⣹⢾⡽⣽⢾⣭⣟⡿⣯⢓⠁⠀⠀⠀⣿⣿⣳⢯⡿⣽⢯⣟⣿⣽⣾⢿
⠈⡵⢣⠀⠞⣥⢛⡴⣃⢇⡚⣥⡛⠆⠀⠀⢩⠲⣡⢛⡴⢋⡼⣣⠀⠀⠐⡁⠀⣾⣯⣷⢻⢾⡽⣷⣯⣟⡿⣞⣷⢯⡿⣽⣳⣟⣷⣻⣟⣾⣻⣞⡷⣯⣟⣯⡿⣞⣿⣳⣭⣣⢏⠥⢋⠶⣹⡘⢾⣳⠿⣽⣻⡽⣞⣷⣻⢷⣻⢾⣯⢿⡻⣞⡿⣽⣟⣯⣿⢿⣻⣿⢾⣳⣯⢿⡽⢯⣟⡾⣽⢿⡳⠚⠀⠀⠀⢀⣿⡿⡽⣯⣟⣿⣻⢾⣽⣾⢿⣻
⠀⠘⡝⣆⠘⢬⡳⢼⠁⠀⠀⠀⠉⠃⠀⠄⠀⢳⠢⡝⣬⢃⠷⣙⠆⠀⠀⠀⠀⣿⣳⣯⢿⢯⡿⣷⢯⡿⣽⣻⢾⣻⣟⣯⣿⢾⣻⢷⣯⣟⡷⣿⡽⣿⢾⣳⣟⡿⣞⡷⣯⢿⣾⣛⣮⡞⡥⣚⡽⢯⣟⢯⣟⣽⣻⣽⣻⢿⣻⢿⣛⠟⣿⣻⡟⣽⡿⣯⣿⠏⠉⠙⢿⢻⣽⣻⢯⣟⣯⣟⣯⣿⠃⠆⠀⠀⠀⢠⣿⣿⣛⡷⣯⢷⣯⣟⣾⣟⣿⣿
⡄⠀⠹⡜⣄⠸⣱⠃⠀⠀⢀⣴⣤⡄⠀⠀⠀⠈⢧⡙⣆⠫⣞⠭⡆⠀⠀⠀⢰⣻⣟⣞⣻⣞⡿⣽⣟⣿⣳⢿⣯⢷⣯⣷⣯⣿⣽⣾⣳⢯⣟⣷⣻⡽⣯⢷⡿⣽⢿⡽⣟⡿⣾⣟⢷⣻⡷⣟⡾⣟⣞⡿⣾⣞⣷⢯⡟⠻⠉⠀⠈⠘⡻⢷⣿⣟⣿⢿⣝⡢⠀⠀⠀⢿⣻⣽⣷⢻⣾⢾⣽⣾⡃⠀⢀⠀⠀⢰⣿⣯⢷⣻⣟⡿⣾⡽⣾⣟⣾⣿
⣳⡀⠀⠹⡜⡤⠁⠀⠀⢠⢻⣼⣳⣿⣳⣄⡀⠀⠈⠝⣦⢛⡬⢳⢥⠀⠀⠀⠐⣿⡽⣯⢷⣾⣽⡷⣿⢾⣯⣿⡾⢿⠯⠷⠿⠻⠾⠿⠽⢿⣻⢾⡷⣿⢽⣯⢷⣯⣿⣻⣽⣟⡷⣿⢾⣷⣻⣽⣻⣽⣮⢷⣿⡞⠋⠁⠀⠀⡀⠄⠀⠀⠰⣯⣟⣾⣿⣻⣯⢇⣂⣀⠀⠐⣿⣿⣞⢻⣮⣟⡷⣯⠀⠠⢞⡅⠀⢸⣷⡿⣯⡷⣟⣿⣳⣟⣷⣻⣿⢾
⢧⡻⡄⠀⠘⡵⠀⠀⠀⡹⢎⣷⢫⣾⢯⣿⡽⣄⠀⠀⠃⢯⠴⡩⢞⡄⠀⠀⣠⢿⣻⡵⣿⡽⠞⠟⠙⠋⠀⠁⠁⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠩⣽⡷⣿⢾⡽⣞⡷⣽⣾⣭⣿⡽⣞⣷⢧⡿⣵⡾⣽⡟⠊⠀⠀⡐⢀⠆⡐⠀⠀⠀⠀⡿⣭⣗⠛⠁⠈⠏⠒⡈⠁⠈⣿⣷⣛⣮⣷⢿⣝⠃⠀⠀⠈⠅⠀⢸⣿⣽⣷⣻⣟⣾⣳⣟⡾⣽⣾⣿
⣏⡳⣝⣆⠀⠈⠀⠀⠀⢹⡹⣞⢧⣯⣛⢾⣳⣏⣦⠀⠀⠈⢖⣣⢋⡖⡀⠀⢹⡿⠝⠋⠁⢀⣀⢤⢀⡰⠂⠈⠁⠀⠀⠀⠀⠑⠈⠛⠖⡶⢆⣄⠀⠙⢹⣯⣗⣯⣿⡿⣽⣟⣾⡽⣯⢯⣏⡿⣯⠟⠃⠀⠀⠀⠀⡐⡈⠔⡁⠀⠀⠀⠀⣿⢿⡽⣆⠀⠀⠀⠀⠁⠀⠀⠈⣟⡿⣽⠾⣏⠎⠀⣰⣷⡀⠀⠀⢈⣿⣾⣗⡿⣾⣽⣳⣯⢿⣽⣳⣿
⠊⢽⡺⣜⢧⡀⠀⠀⠀⢸⢇⡯⢯⣏⣟⡾⣷⣻⣗⢯⡀⠀⠀⠙⢮⡱⢆⠀⠈⡔⡦⠜⠃⠋⠈⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠘⠁⠲⠽⣞⡿⠓⠉⢀⣼⣏⣷⣫⢿⣯⠿⠉⠀⠀⠀⠀⣀⠒⢠⠘⠠⠀⠀⢀⣰⡾⣿⢯⣿⣟⣦⣀⣀⣧⢾⠀⠀⣀⡩⢟⣿⡛⠀⠀⣰⣟⣾⢧⠀⠀⠀⣿⣷⣯⣟⡷⣯⢷⣯⢿⣞⣿⣽
⢀⠀⠱⢫⠶⣝⡂⠀⠀⠸⣎⢽⣫⣟⡾⣽⣳⡟⣯⢗⡛⡄⠀⠀⠱⣙⢦⠄⠀⠐⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣠⠤⠤⠤⠤⠤⠀⠀⠀⠀⠀⢤⡀⠈⠁⢀⣾⣻⣾⡽⣾⡽⡟⠎⠁⢀⡐⠀⡀⢆⡐⠌⣀⠃⡅⠀⢀⣯⣷⢿⡟⣻⢞⣽⢯⢿⡿⣽⢿⣶⢿⣻⣷⠾⠑⠀⠀⣸⢿⣽⣞⣿⡆⠀⠀⣿⣿⡾⣽⣻⢽⣟⣾⣿⣻⢾⡽
⢎⠲⣀⡀⠈⠉⠃⠀⠀⢸⡜⡲⣽⢾⡽⣯⢷⡻⣟⢯⡷⣤⠀⠀⠀⠘⠈⠀⠀⠀⠀⠀⠀⠀⠀⣀⣠⣤⣶⣾⢛⣉⣀⣀⣠⣤⣤⣤⣤⣤⣤⣤⣄⣰⣯⠏⠀⢠⣾⢷⢯⠗⠛⠉⠀⢀⡠⠔⡂⢄⠢⢁⠢⡐⢌⠠⠒⠀⠀⢸⣾⢯⣯⣟⡷⣯⣟⣯⣻⡽⢯⣟⣾⣟⠷⠉⠀⢀⡀⠀⠀⠉⠺⡽⣞⢷⡀⠀⢻⣷⡿⣯⣟⡿⣾⣻⣾⡽⣓⠾
⠌⢳⢡⡜⡱⢒⡄⠀⠀⢰⡹⡕⢮⡿⣾⡽⣷⣻⡽⣾⣟⡿⣆⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣶⢿⣻⠿⣽⣻⢾⣿⣻⢿⡿⣟⣯⢿⣽⣻⣟⢿⣽⣻⡷⠍⠀⢰⣯⢾⠉⠀⡀⠄⠒⡈⠤⣀⠣⠌⡐⠄⢃⠐⠁⠢⠌⡑⠀⠀⣾⣿⣻⣗⣯⢿⣳⣾⣳⣷⢿⣻⠻⠘⠁⠀⢠⣾⣭⣷⣆⠀⠀⡄⠀⠙⢿⠄⠀⢸⣿⣟⡷⣽⣾⣟⡷⣯⠗⡎⠀
⣤⡀⠈⠐⠙⠦⠄⠀⠀⢰⣹⡙⢎⣿⢷⣻⢷⣯⢷⣛⣾⡝⡧⠀⠀⠀⠀⠀⠀⠀⠀⠹⡞⣽⣯⢏⡿⣧⢯⣿⣼⡽⣯⢿⡽⣯⣟⣾⣳⣯⢾⣧⣛⠶⠀⢀⣿⣯⣯⠀⠀⠁⠠⢡⠘⠤⢀⠒⠤⢁⠊⠤⡀⠀⠀⣁⠂⠀⢠⣿⡷⢿⡾⣽⣯⢷⣾⢿⡽⠋⠁⢀⣠⣴⣿⣳⢿⣳⣟⣮⡄⠀⠘⢤⡀⠀⠀⠀⣼⣿⢯⡿⣵⣟⣾⣽⣳⠛⠀⠀
⠀⠉⠓⠶⠤⡀⠀⠀⠀⣰⢣⡝⣊⣿⢯⣟⣯⣞⣯⢷⣯⢽⡁⠀⠀⠀⠀⢠⢞⣣⠀⠀⠿⣼⣞⡯⣿⣽⣻⢾⣳⡿⣽⢯⣟⣷⣻⣞⡷⣯⣟⡾⣧⠈⠀⢸⣿⢾⣽⣂⠀⠀⠀⠃⠘⠀⠁⠊⠀⠡⠊⡐⠤⢁⠀⠀⠀⢀⣾⣻⣽⢯⡷⣏⣾⢯⡛⠊⠀⣀⣴⢫⣾⣱⢯⣿⣻⠉⠋⠛⠁⠀⠀⣾⣝⡆⠀⠀⣿⣯⣿⣽⣳⢯⣟⢾⣸⠁⠀⣸
⢦⣤⣀⣀⠀⠀⠀⠀⠀⣧⠳⣜⢡⣿⣻⢮⣗⡿⣞⣯⣾⢳⠀⠀⠀⡀⠀⣎⠳⣜⣃⠀⠘⡱⢯⣷⣳⣏⡿⣯⢿⣽⢯⣟⡿⣾⡽⣯⣟⣳⣯⢿⣻⠀⠀⢾⣽⣻⡽⣷⣦⡀⠀⠀⠀⠀⠒⠦⣤⢀⡀⠀⠀⠀⠀⠀⣀⠀⠈⢷⣟⣿⣞⣿⠭⠃⠀⣠⣞⣷⣻⣛⣧⢿⣟⣾⢷⡄⠀⠀⠀⣤⣞⡿⣏⠇⠀⠀⣿⣟⣾⣳⣟⣻⡞⢧⠃⠀⢠⢻
⡷⣞⡽⢮⠃⠀⠀⠀⢰⢣⡛⡜⡆⣿⣽⣛⡾⣽⣻⣭⡟⡆⠀⠀⠀⠀⠘⣬⢛⢦⡝⣂⠀⠈⢯⣻⢗⣯⢿⣽⢯⣟⡿⣞⣿⣳⣟⣯⢿⡝⣯⣿⠧⠀⠀⣹⣾⣳⡿⣟⣾⣟⣧⣤⣀⢀⣠⡶⣯⡷⣽⣳⣶⣶⣶⣻⣽⣢⠄⠀⠙⠾⡳⠃⠀⣠⢾⡿⣽⣞⣷⣻⣾⣟⠛⠚⠋⠀⠀⢰⣾⡿⣽⣟⠾⠁⠀⢀⣿⣿⣳⡟⣾⢽⣭⠓⠀⢠⣿⣻
⣟⡾⣽⠋⠀⠀⠀⠀⣏⠖⡹⡜⣥⢻⡾⣭⢿⣽⣳⢯⡷⠂⠀⠀⣸⠀⠀⠸⣭⠲⣭⢓⡆⠀⠈⢷⣻⢮⡿⣽⣻⢾⣽⡻⣷⣏⣿⣞⢿⣻⠿⣽⣟⡀⠀⢿⣻⣽⡿⣟⣿⣞⣯⠷⠞⠿⣽⡿⣽⣛⡷⣫⢿⣼⣹⢯⡷⣟⣦⡳⢄⠀⠀⠀⣼⢯⣟⣵⣻⣞⣳⢿⣳⣿⣶⡶⣶⢶⣶⣿⣳⣿⢿⣽⠎⠀⠀⣼⣿⢾⣯⢿⣽⢻⡬⠃⠀⣾⢷⣿
⡿⣜⠃⠀⠀⠀⠀⣜⡣⢋⡵⣙⠦⡿⣽⣏⣷⢻⣽⡏⡟⠀⠀⢀⢧⣃⠀⠀⠀⠻⡴⣋⡞⡥⠀⠀⢞⣻⢿⣷⣻⢿⡾⣟⣿⢾⣟⡾⣿⣻⢿⣻⠾⣥⠀⠈⣿⢯⡗⠈⠉⠎⡙⡄⠀⠀⢹⣟⡿⣝⣷⣻⣟⡾⣽⢯⣻⣽⣞⠧⠈⠀⣠⢟⣾⢧⣟⡾⣳⣯⣟⣯⢷⣻⢶⡽⣯⣟⣾⢳⣯⣿⣻⠞⠀⠀⣸⢿⣾⢿⣽⣻⣞⢧⡏⠀⢰⡿⣿⣻
⡟⡜⠀⠀⠀⠀⣸⠖⣍⡓⢶⡩⢞⣽⢶⣻⣞⡿⣯⡗⡇⠀⠀⠈⢶⡩⢆⠀⠀⠀⠑⢣⢞⣱⢃⡀⠈⠞⠻⠞⠏⠛⠙⠋⠈⠉⠀⣹⡷⣟⠏⠓⠉⠀⠀⠀⠉⢿⣻⣆⠀⠀⠈⣟⣀⣠⣰⣿⣻⢾⣽⣳⢯⡿⣽⣳⣯⣷⠋⠀⠀⣰⢯⣟⡯⣟⣾⡽⣷⣟⣾⣽⣻⢯⣿⡽⣷⣻⣾⢯⡷⣯⠓⠀⠀⣰⣿⣟⡾⣯⡷⣟⣾⡝⠆⠀⣾⣿⣟⣿
⡝⠀⠀⠀⠀⢠⡻⡜⢢⡛⢦⡝⣎⡿⣯⢷⣯⣾⢷⡹⠀⠀⢀⡀⠀⢫⡝⡄⠀⠱⡀⠀⠈⠧⢏⡲⠀⠀⠀⠀⠀⠀⣠⣤⣶⢿⣼⡽⠍⠁⠀⣀⣀⢠⣀⣀⠀⠀⢻⣞⣷⣢⢄⠀⠙⠯⣽⡾⣽⣾⡳⣟⣯⣽⡷⣿⣞⠃⠀⢀⣼⣳⡿⣾⣽⣻⣾⡽⣷⠿⣾⡽⣯⣿⢾⣽⣷⢿⣯⣿⠛⠀⠀⢀⣶⣟⣷⣹⣟⣷⣻⡽⣷⢻⠀⢠⣿⢷⣿⣻
⠁⠀⠀⠀⢀⢧⡳⢍⢧⡙⢮⡜⡼⣽⡽⣞⣾⡽⠃⡀⠀⠀⢸⣷⡄⠀⠸⣱⡀⠀⠀⠀⠀⠀⠉⠘⢯⠄⠀⠠⣶⢻⣽⣷⣻⠿⠈⠁⢀⣴⡾⣾⡽⣶⣻⣾⠷⣄⠀⠘⠹⣯⣟⡷⡀⠀⠀⠘⣿⢶⣻⣭⣟⣳⡟⠧⠁⠀⣰⣾⣳⣯⣟⣮⢷⣻⣾⡽⣯⣿⣳⣟⣷⣹⣯⢟⣾⠛⠃⠁⠀⢀⣴⣿⢻⣞⣷⣻⣞⡷⣏⣿⣽⠣⠀⣼⢿⣯⡿⣿
⠀⠀⠀⡠⢋⠶⣹⡘⢦⡙⡶⣩⢽⣧⣻⣽⡳⣟⡅⠀⠀⠀⡟⠓⠈⠀⠀⠀⠳⠄⠀⠀⠀⠀⠀⣀⠀⠈⠂⠀⠘⢯⢷⡽⠃⠀⢀⣼⣿⣻⣝⣳⢿⣹⢷⣫⣿⣞⣳⣆⡀⠀⠛⠾⣍⡷⣦⢶⡿⣯⣟⣾⣻⠗⠋⠀⢠⣞⡵⣻⣯⢿⣽⡛⠻⣿⣳⣿⣳⢷⣯⢿⡾⣟⠞⠛⠈⠀⢀⣤⣞⡿⣽⢼⣻⣟⣾⣳⣯⡿⣽⣾⣟⠃⠀⣿⡿⣾⢿⣿
⠀⠀⡰⢡⢋⠖⣥⢛⡬⢳⡱⢽⣞⣳⢯⣞⣿⣱⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⠀⠈⠂⠀⠀⡴⣻⡽⣟⣶⣤⣀⠀⠈⠘⠀⢠⣾⢯⣟⡾⣧⢿⡽⣯⣟⣯⢷⡻⣞⣿⣾⢿⡶⣤⣀⠀⠉⠀⠋⠐⠈⠙⠈⠀⠀⡀⠈⢿⣽⣻⠷⠀⠉⠉⠁⠀⢘⡿⣽⣻⢿⡞⡟⠉⠀⠀⣀⣤⣞⢯⡷⣯⡽⣯⣟⣷⣻⢷⣻⡾⣽⢷⣻⠎⠀⢸⣯⣟⣿⣻⣽
⠀⢬⡑⢣⠎⠼⣘⠧⣚⠵⣊⣿⡽⣻⢾⣽⣻⡆⠀⠀⠀⠀⠀⠠⠀⠀⠀⠀⠀⢀⣀⠀⠀⠉⢷⣻⡽⣷⢯⢷⠃⠀⠀⣰⢟⡿⣞⣯⢿⡽⣯⣟⣷⣻⣞⣯⢿⣹⠾⣝⣿⡽⣷⣯⢷⣦⡀⠀⠀⠀⠠⢤⡶⣟⣿⡀⠈⠉⠙⠯⠀⠀⢶⣒⣾⣟⡿⡽⠋⠋⠀⠀⣀⡰⣿⡽⣞⣯⢿⣹⢷⣟⡷⣟⡾⣽⣻⣷⢿⣯⠟⠁⠀⣠⣿⡟⣾⣳⢿⣽
⠈⢦⡙⢆⢎⡱⢭⡚⢥⠳⣹⣾⣽⣻⠾⣽⢿⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⣞⣷⡶⣄⠀⢹⡿⣽⠫⠂⠀⠀⣼⣟⣾⣽⣻⣞⣯⣟⣷⣻⡞⣷⣻⢾⣯⣟⡿⣽⢾⣝⣳⣯⣟⣷⣭⣷⣤⣀⠀⠀⠻⢟⣾⡽⣄⠀⠠⢄⣀⣤⡞⠿⠚⠉⠀⠀⢀⣤⣖⣿⣽⣻⡳⣿⣝⡾⣯⡟⣿⣞⣿⡽⣿⣻⡽⡟⠋⠀⢀⣠⣾⢿⡵⣿⣳⣯⡟⠎
⠀⠀⠈⠘⠢⠙⢆⠻⣌⣳⣟⣾⣱⢯⡽⣟⡯⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⢿⡽⣞⡯⣟⣿⣻⢧⣞⢿⡀⠁⠀⠀⣼⢿⣯⡷⣞⣷⣻⢾⡽⣞⣷⣻⢷⡯⣟⡾⣭⡿⣽⣟⡾⣷⣟⡾⣯⢻⣾⣳⣯⣏⢦⡄⡀⠈⠛⠽⢆⠀⠈⠉⠀⠀⢀⣀⡤⣶⢯⡿⣞⡿⣞⡷⣯⣟⡷⣯⣟⣶⡿⣽⡾⡿⣝⠳⠉⠀⠀⣠⣴⣿⣻⡽⣯⣟⣷⡻⠜⠁⠀
⣠⢀⠀⠀⠀⠀⠈⠀⠘⠓⠻⣽⢯⣿⢻⣏⡇⡇⠀⠀⠀⠀⠀⣴⡾⣿⣹⢯⡽⣾⣝⡾⣵⣻⣏⡾⠉⠀⠀⠀⣾⢯⡿⣷⣻⣽⣾⡽⣯⢿⣽⣞⡷⣯⣟⣾⣽⣳⣿⣳⣯⢿⡷⣯⢿⣽⣳⣯⣷⡿⣯⢯⣽⡻⣴⢤⣀⠀⠀⢀⣠⡶⣽⣻⠾⣽⣛⢿⡼⣽⢯⡿⣽⣳⣯⣟⡿⡽⢏⡟⠡⠙⠀⠀⢀⣤⣶⡿⣟⣿⣞⡷⣻⢷⣻⣞⡷⣤⣶⢿
⢧⣋⢯⡓⡶⡤⣄⣀⠀⠀⠀⠀⠈⠘⠣⣛⠼⣅⠀⠀⠀⣀⡾⣷⡿⣿⣹⢯⣟⡷⣯⣟⣿⣳⡯⠁⠀⠀⠀⣼⢯⣿⣹⢯⣷⣻⢾⣽⢯⣟⡾⣽⣻⣽⣛⣾⣽⣳⢯⡷⣯⡿⣽⢯⣟⡾⣽⢻⠞⡉⠁⠉⠉⠁⠉⠃⢋⡟⣻⢏⡿⡽⣟⣯⣿⢶⡿⣯⣟⣯⣿⠻⠻⠍⢳⠍⠣⠁⠉⠀⣀⣠⣴⣾⣿⣻⣾⢻⣟⡷⣯⢿⡽⣯⢷⡾⣝⡳⣿⣿
⢧⡹⢦⣙⡱⢳⣍⢮⣝⡲⢤⣀⡀⠀⠀⠀⠙⠂⠀⠀⠀⠙⣻⣽⣳⣯⢟⣯⡿⣽⠷⣯⣷⠿⠁⠀⠀⠀⣸⠏⢿⣞⣷⣻⢾⣽⣻⣞⣯⢿⣹⢯⣗⣯⢿⡽⣶⣟⡿⣽⣻⣽⡻⢯⢯⡝⢮⠳⠉⠐⠉⠁⠀⠀⢀⡀⣀⠀⠀⠉⠐⠙⠞⢲⡱⣎⢻⡱⣍⠠⠬⠓⠓⠈⠁⠀⣀⣤⢶⣟⣷⣻⣟⢾⡽⣷⣫⡿⣯⢿⡽⣏⢿⣽⣫⢿⣅⢻⡷⣿
⢣⠝⢦⠣⣝⠲⣬⢓⡬⣝⣣⠽⣸⠕⣦⢀⠀⠀⠀⠀⠀⠀⢵⢯⣷⣫⣟⠾⣽⣫⣟⡿⣽⠃⠀⠀⠀⡰⠏⠀⣼⣻⠾⣽⡻⣜⣿⣹⡾⣟⢯⣟⡾⡽⢯⡟⣧⢿⣻⡽⢟⢧⡻⣝⠚⠈⠁⠀⠀⠀⠀⠢⡙⢎⡱⠜⡤⢋⠖⡲⢄⣄⣀⡀⠀⠀⠀⠁⠀⠀⣀⣀⣤⣤⣶⣿⣽⣯⡿⣾⣻⣽⣮⣿⣻⣷⣻⡽⣯⢿⣽⣫⢟⣶⢯⣟⡮⢳⣟⣿
⡑⠎⡆⠓⣌⠳⣡⠳⡜⢦⡱⢫⡕⡻⣔⢫⡳⣆⡄⠀⠀⠀⠈⠻⣰⠿⣼⣻⢧⢿⣼⣻⠁⠀⠀⠀⠀⠀⢠⣾⢿⡽⣫⢷⣻⡽⣞⠷⢩⣽⢻⣞⡷⣿⣏⡿⣟⡾⣣⢽⠫⠎⠁⠀⠀⠀⠐⢿⠀⠀⠀⠀⠈⠑⠨⢓⡌⢣⢚⡱⢊⡔⢮⣿⡿⣷⣾⣶⡷⣿⣽⣻⣞⡷⣿⣽⣻⣼⣟⡷⣯⢷⣯⢷⣻⢾⣵⣻⣽⣻⣞⡷⣯⣟⡿⣾⡕⣫⢾⣿
⡘⡱⢈⠳⢄⠳⣄⢣⠙⢦⡙⡷⣘⠗⣎⠷⡳⡼⣘⢧⢆⡀⠀⠀⠈⠛⠃⢿⣯⣷⣻⠇⠀⠀⠀⠀⢠⣼⣻⣼⡿⣾⢽⣳⡻⠗⢉⣴⣟⣾⡽⣾⡽⣷⠯⠟⢣⠏⠑⠈⠀⠀⠀⠈⢀⡀⠀⢻⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⠃⠘⠡⠚⠼⠷⠟⣿⢳⡿⡽⢷⡟⡿⣾⣟⣿⣽⣷⡿⣾⣿⣻⡿⣾⡿⣽⣻⣞⡷⣯⣗⣯⢟⡾⣹⢻⡵⢏⡹⣟⣿
⡱⢡⢋⠦⡩⠖⣌⠲⣉⠆⡉⠖⢭⡛⣬⢳⠳⣍⡳⢎⡧⠉⠀⠀⠀⠀⠀⠁⠘⠋⠏⠀⠀⠀⠀⠠⠛⢾⣟⣯⣿⢯⠗⠃⠁⣤⣟⣯⣿⢯⣟⣷⡙⠀⠁⠀⠀⠀⡠⠐⠀⠀⠤⠊⢷⡡⠀⣻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡀⣼⣻⢾⣟⣾⢿⣟⣷⡿⣟⣿⣽⡿⣷⣿⣻⣷⣻⣮⣿⢾⣵⣿⣼⣦⣷⣯⣿

View file

@ -0,0 +1,31 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡴⢻⡄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠞⠀⠀⣷⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠏⠀⠀⠀⢻⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡇⢻⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣞⣽⠀⠀⠀⠀⢸⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢧⠀⢃⠣⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣆⠀⠀⠀⡰⢹⠋⠀⠀⠀⠀⠀⠸⡇⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢸⠀⠸⡄⠑⢄⠀⠀⠀⠀⠀⣀⣤⡤⢤⣄⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠜⣇⣠⠊⠀⢨⠆⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠀⡇⠀⠀⠑⢦⣀⡴⠋⠁⠀⠀⠀⠀⠈⠙⠓⠤⣤⣀⡀⠀⢀⣠⠞⠀⢸⠁⠀⠀⢸⠂⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡄⡇⠀⠀⠀⠀⡍⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠀⠀⠀⠀⠀⣇⠀⠀⡟⠀⠀⠀⠀⠀⠀⢰⡇⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⣄⠀⢣⢰⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⢠⡾⡀⠀⠀⠀⠀⠀⠀⢸⠁⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⡾⠁⠳⣸⣿⠀⠀⠀⠘⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣧⠞⡇⠇⠀⠀⠀⠀⠀⠀⠾⠴⠒⢲⠀
⠀⠀⠀⠀⣤⢄⡀⣇⠀⠀⠈⢿⢂⠀⠀⠀⠱⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣯⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⠀
⠀⠀⠀⠀⢿⠀⠈⠉⠀⠀⠀⠸⣮⡇⠀⠀⠀⠘⠢⣀⠀⠀⠀⣀⡤⠤⠐⠒⠚⠉⠉⠉⠙⠒⠠⠜⢋⢹⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼⠀⠀
⠀⠀⠀⠀⠘⣆⠀⠀⠀⠀⠀⠀⢡⡈⢳⡄⠀⠀⠀⠀⠀⠀⠀⢠⣵⡀⠀⠀⠀⢰⣾⡽⠟⠒⠂⠀⠘⢌⠀⠀⠀⠀⠀⠀⠀⠀⣀⠄⢿⡀⠀⠀
⠀⠀⠀⠀⠀⠈⠢⡀⠀⠀⠀⠀⠀⢳⢦⣻⡄⠀⢀⣰⠤⡄⠀⠘⣿⠇⠀⠀⠀⠀⠀⢀⣠⣤⣤⣤⣄⡀⠱⡤⠄⠀⠀⠀⠀⠐⣅⠀⠀⣹⠆⠀
⠀⠀⠀⠀⠀⢀⡼⠁⠀⠀⠀⠀⠀⠀⢣⣹⡿⠖⢻⣟⠈⠁⠀⠀⠈⡆⠀⠀⠀⠀⣰⣿⠿⣿⡏⣿⣿⣿⣷⣷⡇⠀⠀⠀⠀⠀⠈⠲⢎⡁⠀⠀
⠀⠀⠀⠀⠀⠛⠤⠤⠤⣶⠀⠀⠀⠀⢀⣏⣔⣾⣿⣿⣿⣴⣄⠀⠀⠁⠀⠀⠀⠀⣿⠁⠘⣿⣧⠻⣿⣿⠟⣁⠉⠢⣀⡀⠀⠀⢀⣠⠞⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣀⠞⡇⠀⣸⣾⡟⢻⡇⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⢿⠀⠀⠘⣻⡗⢻⢅⠤⠭⣒⠂⠀⠙⡄⢳⢁⡼⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠀⡟⡻⣿⣿⠁⢻⣧⡻⣿⣿⣿⠇⠀⢀⡀⠀⠀⠀⠀⠀⠀⠘⣿⠟⢣⡢⠀⠀⠤⠤⠄⠀⢳⠀⠋⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠟⠁⢨⠉⠀⠀⡟⠛⠋⠉⡠⠀⢿⣿⡿⠁⠀⡤⠀⠀⠀⠀⠀⠀⡎⢀⣴⣤⣄⣄⠀⠀⠘⡀⡇⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡠⠋⠀⠀⢸⠀⠀⠀⠗⠀⠀⠀⢣⡀⠀⣹⢄⣀⠴⠁⠀⠀⠀⠀⠀⢀⣴⡌⢿⣿⣿⡇⠀⠀⢠⡁⢻⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣀⣴⡿⠀⠀⢠⡄⡜⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠁⠀⠀⠀⠀⠀⠀⠀⣠⣴⣿⣿⣷⣼⣿⣿⠏⠀⢀⢾⠙⣄⢧⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣠⡾⢻⠋⠀⠀⠀⠈⡫⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⣠⣿⣿⣿⣿⣿⡿⠋⠁⢀⡴⠋⢈⠀⠈⢢⡳⡀⠀⠀
⠀⠀⠀⢀⣾⠋⡠⠃⠀⠀⠀⢀⠞⠀⢧⡆⠀⠀⣀⠵⠤⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣿⣿⣁⡀⢀⡴⢋⡔⡠⠋⠀⠀⠀⢳⡌⢦⠀
⠀⠀⢠⡿⠁⡴⠁⠀⠀⢀⡔⠁⠀⠀⠀⠡⡴⠋⠀⠀⠀⠀⠈⠉⢱⠀⠀⠀⠀⠀⠀⣠⣿⣿⣿⣯⣿⣿⣿⡟⠋⠁⠀⠀⠀⠀⠀⠀⠀⡟⡀⣧
⠀⠀⣟⠁⡜⠁⠀⠀⡰⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠠⡁⠙⢦⠀⠀⠀⠀⢠⠏⢹⣟⠛⠛⠛⢉⡙⠻⡆⠀⠀⠀⠀⠀⠀⠀⠀⣇⠀⢸
⠀⢸⠸⡼⠀⠀⢀⠎⠀⢀⣴⣶⣶⣶⣶⣄⣀⡀⠀⠀⠀⠀⢀⡟⢦⠀⢧⠀⠀⠀⡼⠀⠸⠂⠀⣰⡾⠿⡞⢦⠹⣠⣶⣶⣾⣶⣦⡀⢰⠟⢀⡿
⠀⢸⡼⠀⠀⣠⠃⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣏⠉⠉⡆⠉⠉⢦⠈⡆⢸⠤⠤⠤⡗⡆⠀⠀⢰⢣⢱⣔⠘⠮⢽⣻⣿⣿⣿⣿⣿⣿⡏⣀⡾⠁
⠀⣸⠁⠀⠀⠁⠀⢀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⢰⠀⢠⣛⣄⠃⡼⠀⠀⠀⢿⠀⠀⠀⠘⠚⢾⣿⣤⡶⣼⣿⣿⣿⣿⣿⣿⣿⣿⡏⠀⠀
⠀⡏⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⢸⠀⢀⠟⠈⣠⠁⠀⠀⠀⠘⡄⢨⡇⠀⠀⠈⠀⢋⡻⠋⣸⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀
⢸⠁⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⡘⢴⣾⠀⡴⠁⠀⠀⠀⠀⠀⣿⡀⠀⠀⢀⣀⠀⠀⠀⢠⡿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀
⢸⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣰⠃⠊⣠⠞⠀⠀⠀⠀⠀⠀⠀⢿⠇⠀⠀⠈⣿⠀⠀⠀⠘⠛⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀

View file

@ -0,0 +1,15 @@
⠀⠀⢠⠔⢆⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠏⢆⠀⠀⠀⠀
⠀⠀⡜⠀⠈⢶⡀⠀⠀⠀⠀⢠⠆⠀⠀⣠⠾⠉⠀⢈⠀⠀⠀⠀
⠀⢀⡄⠀⠀⠘⡌⢢⣆⣀⣴⣷⣷⣾⡏⣋⡭⡕⠂⢸⡇⠀⠀⠀
⠀⢸⡇⠠⠀⠈⡀⠀⠉⠻⢿⣿⣯⠭⠹⡿⣎⠁⣠⣸⠇⠀⠀⠀
⠀⠀⡁⠐⢃⠠⣱⠀⡀⠄⠈⠙⢿⣷⣤⣵⣜⣣⣼⣽⡄⠀⠀⠀
⠀⠀⢱⠄⠺⢥⠘⡼⠁⢀⡠⠴⠆⠉⠻⢿⠿⣏⢉⡟⠃⠀⠀⠀
⠀⠀⢰⡏⣑⠒⠸⠁⠀⢊⣠⡤⣴⠀⢆⢰⠶⣽⣿⣾⠀⠀⠀⠀
⠀⠀⠰⣿⣷⣶⡄⣀⣠⢾⣿⡿⢸⠄⢀⣺⣇⠿⡯⠿⡤⠀⠀⠀
⠀⠀⢐⣾⠒⠈⠆⠀⠈⠉⠒⠀⠀⠈⠀⠈⢀⣂⡵⡈⢑⡀⠀⠀
⠀⠀⠼⣏⣆⣂⠤⡀⠀⠀⠀⠐⠆⠀⠀⠸⢷⣶⠞⠈⢓⡂⠀⠀
⠀⠀⠈⠙⣾⠀⣀⣒⣦⣀⡀⠀⠈⠠⣌⢁⠤⡦⡤⠳⠘⠀⠀⠀
⠀⠀⠀⠈⠉⢁⣨⣁⢿⠟⠝⡷⣶⡦⢬⣐⡪⠟⠀⠀⠀⠀⠀⠀
⠀⠀⢀⣀⡄⠮⠛⠏⠄⠆⠀⠈⠉⠉⠹⠻⠖⢴⢠⢄⢀⠀⠀⠀
⢀⡴⠟⠋⠀⠀⠀⠤⠁⠐⠤⠀⠀⠀⠀⠔⠉⠓⢒⡈⢹⢷⡄⠀
⢰⠃⠀⠀⠀⠀⢘⡖⠂⠀⠀⠀⠀⠀⠀⠲⠀⠀⠀⠐⠑⡄⠙⣄

View file

@ -0,0 +1,56 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⡄⠀⠀⠉⢢⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡈⠀⢰⠀⠀⠀⠀⢣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⢴⠀⠀⠀⢃⠀⠀⠀⠀⣂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠒⠀⠀⠀⠀⠀⠄⠀⠀⠀⡿⢦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⢍⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⢀⠀⣈⣢⢔⠀⣀⢄⠀⡀⡐⡵⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⠀⠑⠀⠀⠠⠁⠀⢀⢒⢦⠀⢤⡐⠱⡘⢦⡡⠵⢝⢷⡄⠀⢃⢱⠘⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢣⡀⠀⠑⣧⠁⠀⢸⠀⣀⢧⠸⣟⣤⠷⣼⠙⡄⠹⢫⡷⡀⡀⡌⣇⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠳⣀⢠⠁⢸⣾⣹⠽⣿⠎⢇⠸⢿⣾⢿⣿⣿⠒⣏⡇⢣⠱⢰⢸⡆⠈⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢉⣧⣶⣻⠁⣯⡦⠀⠀⠘⠀⠈⠁⠊⠀⠈⡀⢹⣿⣸⡟⡜⡌⣿⡀⠀⢣⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣏⣿⡏⡌⣼⣿⢶⡆⢀⠀⠀⠀⠀⠀⠀⠀⢨⡄⠀⠀⠁⡇⣿⣧⠀⠐⣧⢂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⢽⣻⢿⡔⣼⢟⠂⠐⠛⠀⠀⠀⠀⠀⠀⠀⠈⠁⠀⣠⣾⣷⣿⣿⢇⠀⣿⢫⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠺⠙⡎⢹⣾⡦⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⣿⣏⠏⢹⠸⢸⢠⠛⢸⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⢸⠿⢿⣧⣄⡀⠀⣀⣀⣀⣠⣴⣶⣾⣿⣿⣿⣿⣇⠚⠃⠜⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢂⠐⠀⡆⢀⠀⠀⠈⡀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡤⠐⠒⠀⠒⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠜⠀⢂⢃⠈⡔⠀⠀⠀⠀⠀⢄⣘⣿⣿⣿⣿⣿⣿⠿⠛⣽⠿⠁⠀⠄⠀⠀⠀⠀⠀⠈⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠁⠀⠸⣄⡉⠁⠀⠀⠀⢠⠊⣿⠟⢻⠟⣛⢉⣐⡲⢎⠀⠀⠀⠀⠈⠢⠄⠀⠀⠀⠀⠀⢂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠂⠀⠀⠀⣆⠴⣿⣞⡵⠋⠁⠀⠈⠙⠳⣷⣄⠀⠀⠀⠀⠀⠘⣶⣄⡠⢀⠀⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⡧⡀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⠋⠀⠀⠀⠀⠀⠀⠀⠀⢸⣷⣤⣄⣠⣤⣤⣿⣿⣿⣷⣾⣿⣦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢐⠖⠁⠀⠀⠒⠄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⡀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠑⡄⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠀⠀⠀⠀⠼⣿⣿⡷⢄⠀⠀⠀⣀⠄⢊⣼⣿⣿⣿⡿⢃⡼⠁⠙⠻⡛⠛⠛⠻⠿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢄⠀⠀⠌⣰⣿⣿⣿⣤⣉⣉⣁⣠⣶⣿⣿⣿⣿⠟⢠⠞⠀⠀⠀⠀⠈⢂⠀⠀⠀⠘⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢂⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣏⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠋⠀⡠⠁⠀⠀⠀⠀⠀⠀⠀⠑⠠⡀⠀⠈⢿⣿⠏⠀⢉⣦⡀⠀⠀⠀⠀⠀⠀⠀⠰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⡀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡉⠻⢿⣿⣿⣿⣿⣿⣿⣿⠿⠋⠀⠀⢜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣱⢶⣻⣵⣶⣿⣿⣿⣧⢀⡠⢔⢶⠀⠀⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠦⡀⡏⠙⠻⠿⣿⡟⠁⠀⠀⠀⢨⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣵⣿⣿⣿⣿⣿⣿⣿⠟⣩⣤⡿⠃⠀⠀⠀⢠⠀⠀⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⠃
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣿⡴⠁⡇⠀⠀⠀⠀⠉⠢⣀⠀⠀⠀⠳⡀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⣿⣿⣿⢟⠟⣻⡫⠗⠉⠀⠀⠀⠀⠀⠘⡄⡆⠈⡀⡔⠀⠀⠀⡠⠁⠀⠀⠀⠀⢀⡌⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⠃⠀⡇⠀⠀⠀⠀⠀⠀⣠⣿⣶⣤⢴⠛⠲⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⠟⠛⣩⠖⡿⠐⠁⠀⠀⠀⠀⠀⢀⠀⠀⠀⣱⣡⣀⠈⠀⠀⠀⠈⠀⠀⠀⠀⠀⢀⣮⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠇⠀⣀⣼⣤⣤⣀⣀⣤⣾⣿⣿⡏⣠⣾⡛⠒⠂⠈⣀⠀⣠⣾⣿⣿⣿⡟⢁⣴⡪⠒⠁⠀⠀⠀⠀⠀⠀⠀⣀⠾⠒⠀⠁⠀⠘⠺⣯⡶⡄⠀⠀⠀⠀⠐⠊⠐⡺⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣴⣿⣿⣿⣿⣿⣿⣿⡿⠛⠁⠀⣾⣩⠴⠓⠀⠀⠈⣾⣿⣿⣿⣿⣿⣯⠾⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⢀⠄⢉⠀⡄⠀⠀⠀⠀⠀⠀⢧⣘⡄⠀⠀⠀⢀⡴⠊⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⠛⢿⣿⣿⡿⠿⠿⢿⠋⠀⢀⡤⠖⠛⡟⢲⣿⡏⠉⣁⣿⣿⣿⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡎⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⢹⡁⠀⠀⡨⠉⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡀⠀⠉⠀⠀⠀⠀⢀⠤⠞⠁⢀⢀⣠⣧⣽⣿⣿⣿⠟⠛⢿⠛⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠹⠉⠃⢂⠀⠀⢀⣶⠁⣀⣤⣶⣾⣿⣿⣿⣿⣿⡿⠁⠀⠀⠈⢆⠀⠀⠈⠐⢄⠀⢀⡀⠀⠀⠀⠀⠀⡀⢸⡂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⢦⣦⣴⣦⣷⣄⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟⠀⠀⠀⠀⠀⠘⡆⠀⠀⠀⠀⠀⠈⠀⠀⠀⠂⠉⠀⢨⠉⠋⢍⠐⢄⠀⠀⠀⠀⠀⠀⠀⠀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⢿⣿⡟⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠱⡌⢇⠀⠀⠀⠀⠀⢐⡜⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⢸⣿⣿⣿⣿⣿⡟⢋⠉⠉⠀⠀⠀⠀⢀⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⢸⠀⣀⠤⠔⠂⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠈⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⢰⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⢇⠚⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣇⠀⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡂⢠⣿⣿⣿⡏⠀⠀⠀⠀⠀⠀⠀⠀⢀⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡰⠛⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣾⣿⠇⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠀⠀⢸⢧⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣴⣿⣿⣿⡿⠛⢷⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠈⠀⠘⠉⠐⠠⠄⣀⡀⠀⢀⡀⡖⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣠⣶⣿⣿⣿⡿⠋⠁⠀⠀⠈⢃⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣀⣴⣾⣿⣿⣿⠿⠋⠁⠀⠀⠀⠀⠀⠀⠀⢢⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠴⣞⣫⣶⣿⠟⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠣⠀⠈⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣠⣴⡿⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢲⡀⠈⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠟⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠪⢂⠘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠑⣅⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⠀⠀⠀⠀⠀⠀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢽⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠀⠰⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⣿⣿⠿⠛⢿⣿⣿⣷⠀⠀⢀⣠⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡛⣿⡀⠀⠀⠙⣻⣿⣷⡾⠛⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢿⣷⣀⣠⣴⠿⠋⠁⢀⣴⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢫⡉⠉⠀⢀⣠⣶⣿⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣦⣤⣶⣿⣿⡿⠋⣼⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⡿⠋⣠⣾⣿⢿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠟⠉⣀⠔⢹⠟⠁⠀⢻⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣶⣉⡠⠊⠁⠸⠀⠀⠘⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,18 @@
⠀⠀⠀⠀⣀⡀
⠀⠀⠀⠀⣿⠙⣦⠀⠀⠀⠀⠀⠀⣀⣤⡶⠛⠁
⠀⠀⠀⠀⢻⠀⠈⠳⠀⠀⣀⣴⡾⠛⠁⣠⠂⢠⠇
⠀⠀⠀⠀⠈⢀⣀⠤⢤⡶⠟⠁⢀⣴⣟⠀⠀⣾
⠀⠀⠀⠠⠞⠉⢁⠀⠉⠀⢀⣠⣾⣿⣏⠀⢠⡇
⠀⠀⡰⠋⠀⢰⠃⠀⠀⠉⠛⠿⠿⠏⠁⠀⣸⠁
⠀⠀⣄⠀⠀⠏⣤⣤⣀⡀⠀⠀⠀⠀⠀⠾⢯⣀
⠀⠀⣻⠃⠀⣰⡿⠛⠁⠀⠀⠀⢤⣀⡀⠀⠺⣿⡟⠛⠁
⠀⡠⠋⡤⠠⠋⠀⠀⢀⠐⠁⠀⠈⣙⢯⡃⠀⢈⡻⣦
⢰⣷⠇⠀⠀⠀⢀⡠⠃⠀⠀⠀⠀⠈⠻⢯⡄⠀⢻⣿⣷
⠀⠉⠲⣶⣶⢾⣉⣐⡚⠋⠀⠀⠀⠀⠀⠘⠀⠀⡎⣿⣿⡇
⠀⠀⠀⠀⠀⣸⣿⣿⣿⣷⡄⠀⠀⢠⣿⣴⠀⠀⣿⣿⣿⣧
⠀⠀⠀⢀⣴⣿⣿⣿⣿⣿⠇⠀⢠⠟⣿⠏⢀⣾⠟⢸⣿⠀⠀
⠀⢠⣿⣿⣿⣿⠟⠘⠁⢠⠜⢉⣐⡥⠞⠋⢁⣴⣿⣿⠃
⠀⠀⣾⢻⣿⣿⠃⠀⠀⡀⢀⡄⠁⠀⠀⢠⡾⠁
⠀⠀⠃⢸⣿⡇⠀⢠⣾⡇⢸⡇⠀⠀⠀⡞
⠀⠀⠀⠈⢿⡇⡰⠋⠈⠙⠂⠙⠢
⠀⠀⠀⠀⠈⢧

View file

@ -0,0 +1,8 @@
,
/|\
/||
,____,-'__'-,-.-.
'-._(/(\-.
'-.(_/\/_.)
a.'\''',-
'._/,-'

View file

@ -0,0 +1,32 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀████░░██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀████⠀⠀░░██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██░░⠀⠀░░░░░░██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀██⠀⠀⠀⠀⠀⠀░░██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██░░██⠀⠀⠀⠀⠀⠀⠀⠀░░██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
██░░░░██████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██░░██⠀⠀⠀⠀⠀⠀░░⠀⠀████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
██░░░░██░░░░████⠀⠀⠀⠀⠀⠀██████░░░░░░██⠀⠀⠀⠀░░░░██████████████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
██░░⠀⠀⠀⠀████░░░░██████░░░░░░░░░░░░░░██░░░░░░██░░░░░░░░░░░░████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
██░░░░⠀⠀⠀⠀⠀⠀██░░░░░░░░░░░░░░░░░░░░░░░░░░░░██░░██░░░░░░░░░░░░░░██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀██░░⠀⠀⠀⠀⠀⠀██░░░░░░░░░░░░░░░░░░░░░░░░░░░░██░░██░░░░░░░░░░░░░░░░████⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀⠀⠀
⠀⠀██░░⠀⠀⠀⠀██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░████░░░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀
⠀⠀██░░░░⠀⠀░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░⠀⠀██░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀
⠀⠀⠀⠀██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░⠀⠀⠀⠀██░░░░░░░░░░████░░░░░░░░██⠀⠀
⠀⠀⠀⠀████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀⠀⠀██░░░░░░████░░░░░░░░░░░░██⠀⠀
⠀⠀⠀⠀██░░██░░░░░░░░░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀⠀⠀⠀⠀██░░░░██░░░░░░░░░░░░░░░░██⠀⠀
⠀⠀⠀⠀⠀⠀██░░██░░░░░░░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀⠀⠀⠀⠀██████░░░░░░░░░░░░░░░░░░██⠀⠀
⠀⠀⠀⠀⠀⠀██░░██░░░░░░░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀⠀⠀██░░░░░░░░░░░░░░░░░░░░░░░░░░██
⠀⠀⠀⠀⠀⠀⠀⠀████⠀⠀░░░░░░░░░░░░░░░░░░░░░░░░░░⠀⠀⠀⠀██░░░░░░░░░░░░░░░░░░░░░░░░░░░░██
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀░░██████░░░░░░░░░░░░░░⠀⠀⠀⠀██░░⠀⠀░░░░░░░░░░░░░░░░░░░░░░░░░░██
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀████░░░░░░░░░░⠀⠀⠀⠀██⠀⠀░░⠀⠀░░⠀⠀⠀⠀⠀⠀⠀⠀░░░░░░░░░░░░██⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀████⠀⠀░░⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀░░░░░░░░░░░░░░██⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀░░⠀⠀░░░░░░░░░░██⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██████████████████████⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀░░░░░░██⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀░░░░██⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀░░░░██⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██████⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀████████⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,29 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀████
⠀⠀⠀⠀⠀⠀██⠀⠀████⠀⠀⠀⠀⠀⠀⠀⠀████⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀██⠀⠀██
⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀████⠀⠀██░░░░░░⠀⠀░░⠀⠀░░⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀██⠀⠀⠀⠀██
⠀⠀⠀⠀⠀⠀████⠀⠀⠀⠀⠀⠀⠀⠀██░░░░░░░░░░░░░░⠀⠀░░⠀⠀██⠀⠀⠀⠀██⠀⠀⠀⠀████
⠀⠀⠀⠀⠀⠀██▒▒██⠀⠀⠀⠀⠀⠀⠀⠀██░░░░░░░░░░░░░░░░████⠀⠀██⠀⠀⠀⠀██▒▒██
⠀⠀⠀⠀⠀⠀██▒▒▒▒██⠀⠀⠀⠀⠀⠀⠀⠀██████████████████████⠀⠀⠀⠀██▒▒▒▒██
⠀⠀⠀⠀⠀⠀⠀⠀██▒▒▒▒██⠀⠀⠀⠀░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀██▒▒▒▒██⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀██▒▒▒▒▒▒██⠀⠀░░░░░░░░░░░░░░░░░░░░░░░░██▒▒▒▒▒▒██⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██▒▒▒▒▒▒██░░░░░░░░░░░░░░░░░░░░░░██▒▒▒▒▒▒██⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██▒▒▒▒▒▒▒▒██░░░░░░░░░░░░░░░░░░░░██▒▒▒▒▒▒██⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██▒▒▒▒██░░░░░░░░░░░░░░░░░░░░░░░░██▒▒▒▒██⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██▒▒██░░░░░░░░░░░░░░░░░░░░░░░░░░██▒▒██⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀██░░░░██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀██░░░░░░██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀██░░░░░░░░██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░██⠀⠀⠀⠀⠀⠀
⠀⠀██░░░░░░░░░░░░██░░██████░░░░░░░░░░░░░░██████░░██⠀⠀⠀⠀⠀⠀
⠀⠀██░░░░░░░░░░░░██░░░░░░░░██░░░░░░░░░░██░░░░░░░░██⠀⠀⠀⠀⠀⠀
⠀⠀██░░░░░░░░░░░░░░██░░░░░░░░██░░░░░░██░░░░░░░░██░░██⠀⠀⠀⠀
██░░░░░░░░░░░░░░░░░░██░░░░░░░░⠀⠀⠀⠀░░⠀⠀░░░░░░██░░░░██⠀⠀⠀⠀
██░░░░░░░░░░░░░░░░░░░░████░░⠀⠀⠀⠀████⠀⠀⠀⠀████░░░░░░░░██⠀⠀
██░░░░░░░░░░██░░░░░░░░░░░░████⠀⠀⠀⠀⠀⠀⠀⠀██░░░░░░░░░░░░██⠀⠀
⠀⠀██░░░░░░░░██░░░░░░░░██████████████████████░░░░░░░░██⠀⠀
⠀⠀██░░░░░░░░░░████░░░░░░⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀██⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀░░░░░░██⠀⠀
⠀⠀⠀⠀████████████████████████████████████████████████⠀⠀⠀⠀

View file

@ -0,0 +1,23 @@
⠀⠀⠀⠀⠀⠀⠀⣀⡈⢯⡉⠓⠦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠻⣉⠹⠷⠀⠀⠀⠙⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣠⠞⠀⠀⠀⠀⠀⠀⠀⢿⡇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⢈⡇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⡇⠀⠹⠝⠀⠀⠀⠀⠀⣼⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣠⠞⠀⣀⣠⣤⣤⠄⠀⠀⢠⡏⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠚⠢⠼⠿⠟⢛⣾⠃⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⡴⣻⠃⠀⠀⠀⠀⢸⡉⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⣰⢻⡷⠁⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢰⢽⡟⠁⠀⠀⠀⠀⠀⠀⠀⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢾⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡆⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢸⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠘⢧⣳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣷⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠈⣷⣱⡀⠀⠀⠀⠀⣸⠀⠀⠀⠈⢻⣦⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⣷⡙⣆⠀⠀⣾⠃⠀⠀⠀⠀⠈⢽⡆⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠸⡇⢷⡏⠃⢠⠇⠀⠀⣀⠄⠀⠀⠀⣿⡖⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⡇⢨⠇⠀⡼⢀⠔⠊⠀⠀⠀⠀⠀⠘⣯⣄⢀⠀
⠀⠀⠀⠀⠀⠀⠀⢰⡇⣼⡀⣰⣷⠁⠀⠀⠀⠀⠀⠀⠀⠀⣇⢻⣧⡄
⠀⠀⠀⠀⣀⣮⣿⣿⣿⣯⡭⢉⠟⠛⠳⢤⣄⣀⣀⣀⣀⡴⢠⠨⢻⣿
⠀⠀⢀⣾⣿⣿⣿⣿⢏⠓⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢨⣿
⠀⣰⣿⣿⣿⣿⣿⣿⡱⠌⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⢭⣾⠏
⣰⡿⠟⠋⠛⢿⣿⣿⣊⠡⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣼⡿⠋⠀
⠋⠁⠀⠀⠀⠀⠈⠑⠿⢶⣄⣀⣀⣀⣀⣀⣄⣤⡶⠿⠟⠋⠁⠀⠀⠀

View file

@ -0,0 +1,29 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠴⣄⠀⠀⠀⠀⣀⣀⣀⠤⣤⣄⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣏⠀⠋⠀⠀⢀⣨⡭⠽⠿⢯⡛⢿⡑⢦⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠘⢦⡤⠤⢖⣉⣁⣀⠀⠀⠀⠙⡄⠱⡀⠹⡄⠀⠀⠀⠀
⠀⠀⣀⠀⠀⠀⢀⠜⣁⠴⠚⠉⣁⣀⡀⠑⡀⠀⠀⠀⠀⡇⠀⠹⡄⠀⠀⠀
⠀⢺⠉⠃⠀⢠⡿⠚⣁⣤⠞⠉⣠⠤⠬⣷⡀⠀⠀⠀⠀⠇⠀⢀⣷⠀⠀⠀
⠀⠀⠙⠒⣲⠟⠓⠋⣵⠋⠀⠀⠈⠁⠀⠈⢧⠀⠀⠀⠀⠀⠀⡼⠀⣇⠀⠀
⠶⠤⠤⠖⢡⠶⣄⡜⠁⠀⠀⠀⠀⠀⠰⠖⣾⠀⠀⠀⠀⠀⡜⠀⠀⢸⠀⠀
⠀⠀⠀⠀⠀⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⡏⠀⠀⠀⠀⠊⠀⠀⠀⢸⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠀⠀⠀⠀⠀⠀⠀⠀⠀⡸⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠁⠀⠀⠀⠀⠀⠀⠀⢀⣠⠴⠛⣉⡗
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠁⠀⠀⠀⠀⠀⠀⠀⢰⠋⣡⡶⠛⠉⠁⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀⠀⠀⢀⣠⠤⢤⣤⣤⡾⠀⣏⣄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⡾⠀⠀⠀⠰⠛⠉⠉⠉⠛⠉⠀⠀⣿⠀⡆⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢧⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⠖⠚⡟⡆⢿⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣆⠀⠀⠀⠀⠀⢀⣾⣍⣀⠀⣸⠇⢹⠈⢦⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⢦⡀⠀⠀⠀⠈⠸⡄⠈⠉⠁⠀⠀⢣⣠⠃⠀
⠀⠀⠀⠀⣰⢷⡀⠀⠀⠀⠀⠀⠹⣆⠀⠀⠀⠀⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢻⠀⠉⠍⠳⠤⠤⠤⢶⡄⣇⠀⠀⠀⠀⢱⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⢷⡀⠀⠀⠀⠀⡴⠋⠀⢹⠀⠀⠀⠀⠀⣇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢇⣀⣀⣴⡄⠉⠲⠶⠚⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠸⡄⠈⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢹⡄⠀⠀⠀⠀⢠⠀⠀⠀⠀⠀⡴⠃⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣙⡶⣄⠀⢀⡘⣆⠀⠀⣶⠞⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣠⠶⠒⠒⠋⠉⠁⠀⠈⣹⠻⠏⣻⠇⠀⢘⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣼⣥⡶⠋⠉⠉⠉⠉⠉⠉⠁⢠⡞⠁⣠⡶⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠈⠉⠀⠀⠀⠀⠀⠀⠀⠀⢠⠏⣠⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠏⣼⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣈⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠿⠟⠁⠀⠀⠀⠀

View file

@ -0,0 +1,42 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⢟⢿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⡇⣸⣸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⡟⢸⡷⣯⣼⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⡿⣆⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡼⢏⣷⠏⠀⠸⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣴⣿⣿⠙⠁⢿⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⢡⡟⢻⠀⠀⠀⣹⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣰⣾⡿⠟⢻⡇⠀⠀⣷⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⢡⣸⠁⠈⠀⠀⢠⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⠋⠀⠀⢸⡇⠀⠀⣼⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⡇⣾⢿⡀⠀⠀⠀⣼⣿⣿⣿⣀⣀⡟⠦⣄⠀⠀⠀⠀⠀⢀⡾⣿⡿⠁⠀⠀⠀⢸⡇⠀⠀⣿⣇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⠀⣿⠀⠙⢀⣠⠴⠛⠉⠁⠀⠀⠉⠉⠁⠀⠛⢦⡀⠀⣰⠟⣧⣿⠃⠀⠀⠀⠴⠛⢛⣷⠀⢹⣿⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⠀⢻⡆⠐⠻⣿⡷⠆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⡇⠀⠀⠀⠀⠀⢀⣾⠋⠀⣿⡿⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⡄⠀⣻⣤⠾⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⠀⠀⠀⠀⠐⠶⣿⠁⠀⢠⣿⠇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⣇⣰⠏⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢧⠀⠀⠀⠀⠀⣼⠇⠀⠰⣱⣿⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳⡀⢀⣠⠞⠁⠀⢀⣼⣿⠇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢻⡋⠀⠀⣠⣴⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢠⠞⠁⠀⢠⣞⡋⢹⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢷⣶⡿⢿⣿⣿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⣠⠏⠀⠀⢠⡏⠀⠱⢼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣤⠶⣄⠀⠀⠀⠀⠀⠀⠘⢿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢀⡀⠀⠀⠀⠀⢴⡛⢀⠀⠀⠋⣇⣀⣠⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⠑⣄⢸⡄⠀⠀⠀⠀⠀⠀⠘⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠸⡏⠓⠶⢤⡀⠀⣟⠛⠛⠙⠳⠮⣍⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣧⠀⠈⣸⡗⠀⠀⠀⠀⠀⠀⠀⠸⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣧⠀⠀⠀⠈⠙⠚⢦⣄⡀⠀⠀⠈⠓⠲⠖⠒⢒⣲⣴⡤⣤⣀⠀⠀⠀⣙⣦⣤⣯⡤⠤⠤⢤⣄⡀⠀⠀⠀⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠈⢧⠀⠀⠀⠀⠀⠀⠀⠉⠓⠢⢤⡀⢰⡀⠀⠘⠛⠉⠀⠀⠈⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠐⠺⣧⣤⣤⣤⡿⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠑⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣷⣶⣾⣧⡀⠀⣠⠖⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⣦⠟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠳⠤⣀⠈⠀⠀⠀⢰⣿⠿⠿⢿⣿⣿⣿⣿⣿⣿⣶⣶⣄⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠴⠎⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠓⠲⠴⠇⠈⠳⢦⣄⣀⠉⠙⠛⢿⣿⣿⣿⣿⠀⢀⣀⣀⣤⡴⣶⡞⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡆⠉⠉⠁⠒⠒⠛⠛⠋⠉⣿⠛⠋⠁⠀⠀⠀⠹⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠁⠀⠀⠀⢄⠀⠀⠀⢀⠄⣷⠀⠀⠀⠀⠀⠀⠀⠈⠛⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀⠀⠀⠑⢤⠔⠁⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡎⠀⠀⠀⠀⠀⢀⠔⠁⠱⢄⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡎⠀⠀⠀⠀⠀⠐⠁⠀⠀⠀⠀⠁⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠤⣴⠞⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠝⣆⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢘⠈⠀⡸⠀⠀⠀⠀⠀⠀⠀⠀⠀⢳⣀⠸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣤⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢧⠀⢀⡀⠀⠀⠀⠀⠀⢦⡀⣯⠛⠛⠀⠀⠀⠀⢠⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡼⡄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡄⣼⠁⠀⠀⠀⠀⠀⠀⣹⠃⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣹⡀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⡆⠀⠀⠀⡆⠀⠀⣿⠀⠀⠀⠀⠀⠀⢀⣿⢃⣀⠴⠶⠒⠀⠀⠀⠀⠀⠀⠀⢳⣷⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⡠⠴⣶⡒⠲⣾⣇⠀⢀⡾⠀⠀⢀⡇⠀⠀⠀⠀⠀⣀⣾⡿⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⡤⠒⠉⠁⠀⠀⢈⣉⡷⣾⣿⣦⣾⣧⠀⠀⣸⣷⣦⣤⣤⣶⣿⣿⡟⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⡏⠲⣄⡀⠀
⠀⠀⠀⠀⠀⣠⠞⠁⠀⠀⠀⠀⠀⠀⠀⠈⠛⢻⣿⣿⣿⣿⣷⣤⣿⣾⢼⣿⣿⣷⣾⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⡇⠈⣿⢿⣦
⠀⠀⠀⢀⠞⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣿⣿⣿⣮⣿⣿⢿⣥⣾⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣼⢹⠀⠀⡛⣿⠋
⠀⠀⢠⡏⣀⣀⡠⠤⠖⠀⠀⠀⠀⠀⠀⠀⠲⣿⣿⣿⣿⣿⣿⣿⡿⣿⣯⣿⣿⣿⣿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡴⠋⠀⡿⠀⠀⡿⣿⠀
⠀⠀⣟⠿⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⣿⣿⣿⣹⣿⣿⣿⣮⣻⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⢀⣀⠤⠴⠾⠋⠀⠀⣼⠃⢀⣤⣿⣿⠀
⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣶⣿⣿⣿⣿⣿⣿⡗⣿⣟⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀⠈⠁⠀⠀⠀⠀⠀⣴⠋⠀⣾⡷⠋⠁⠀
⠀⠀⠛⠛⠛⠛⠒⠒⠒⠒⠂⠠⠤⠤⠤⠤⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⠀⠀⠀⠀⠀⢀⣤⠿⠷⠒⠛⠉⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⠛⠛⠻⣿⣿⣿⣿⠟⠋⢻⣿⣿⣿⣿⣿⣇⣿⣿⣿⣿⠿⠟⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,23 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠋⠛⢶⣤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣤⣤⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡆⠀⠀⠉⠻⠷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⡾⠋⢡⣀⠈⠙⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⠠⢤⣀⠀⠀⠈⢳⣦⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠟⠈⠀⡁⢻⡓⠘⢿⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⡇⠀⠾⠄⠀⠀⠀⣿⣿⣟⡲⣤⡀⠀⠀⠀⠀⣰⣯⣤⠎⠰⡇⠀⣳⠀⠀⢻⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⠀⠰⠦⣤⣀⠀⠈⠏⢿⡑⣌⡟⣦⡀⠀⣴⡟⠾⠓⠒⠒⠦⡀⢹⣇⠀⠘⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⡆⣸⣾⣿⣿⣦⣄⡀⠈⣿⡈⣻⡏⢽⣾⢻⠁⢀⠀⠀⢀⣠⣝⣭⣿⠀⠀⣿⣷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡍⠉⠵⢾⡗⠉⢧⢀⠻⣷⣿⣇⡾⠃⠘⠀⣄⠐⠀⠶⢟⣿⣿⣿⠀⠀⣿⣿⡱⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡻⣦⡀⠸⢯⠃⠈⠟⠀⠇⠀⠻⠃⠀⠀⢸⡿⠛⢰⣾⣿⣿⣿⠋⠀⣸⣿⡿⢽⢿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⣟⡙⢶⡮⠛⠀⠀⠀⠀⠀⠀⠀⠀⠀⡟⠁⢀⣾⢹⣿⠋⠛⠀⢠⣥⣿⡄⠘⢻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠌⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠼⠉⠈⠀⠀⠀⠀⢸⣅⣿⠿⠂⢸⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠰⡆⠀⣀⣀⣀⣼⡿⠻⠀⠁⠀⢿⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⠃⠀⠀⠀⠀⠀⠀⠀⢀⣠⠀⠀⠀⠀⠀⠀⠀⠀⠉⠣⣿⣍⣭⣉⠀⠀⠭⠖⢦⣼⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠛⢷⡆⠀⠀⠀⠀⠀⣸⣿⡶⡶⢤⣄⣀⣸⢧⠀⠀⠀⠑⣦⣀⢪⡑⠦⡀⠀⠀⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⠾⡟⠀⠀⠀⠀⣠⣿⡿⠿⠷⠚⠉⠁⢉⠻⢽⣟⣀⠀⠀⠙⣦⡙⣷⡈⠣⡀⠸⣏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣾⠃⠀⠀⢠⣴⣿⡉⠉⠀⠀⠀⠀⠐⠛⠓⠀⠘⠛⠿⣶⡄⢹⣷⡜⣧⠀⠈⠀⢻⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⡾⠃⠀⠀⠀⢹⡆⢿⡆⠀⠀⠀⠀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠙⢦⠻⡹⡌⢧⡀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⠏⠀⠀⠀⠀⠀⣸⣷⣻⣷⣄⣤⠴⠒⠀⠠⠴⠤⠆⠀⠀⢦⣀⠀⠀⢳⡿⢿⡏⠳⣶⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣁⣀⠀⠀⣀⣀⣼⣯⣽⣿⠙⠿⠛⣠⣴⡄⠀⠀⠀⠐⠀⠀⢠⢹⠀⠀⠀⠓⢸⢧⠀⢹⣼⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢺⣧⣽⣿⣿⠞⠋⠙⠛⠋⠿⢁⣠⣴⣋⣡⡤⠤⠤⠤⠤⠤⠤⣀⡈⢳⡇⠀⠀⠀⠸⣿⠀⣼⡿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⣿⣿⣉⠀⠀⢀⣀⣤⣶⠿⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠙⠳⢤⡀⠀⠀⢹⣰⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠛⠻⠟⠊⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠑⢧⣾⠏⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,14 @@
⠀⠀⠀⠀⠀⠀⠀⣀⣤⡴⠶⠿⠛⢏⡿⠖⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢀⡴⣞⠯⠉⠈⠀⣠⡶⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣠⣴⠟⠙⠈⣎⡹⠂⣴⠋⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢠⣯⡟⢚⣀⠀⠀⠀⡰⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⡿⡃⢋⣌⠂⠈⠆⡠⡎⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣸⢿⠎⢰⡈⠀⠈⠀⣹⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⣸⣿⡄⠷⣠⠀⠀⠀⡸⡗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢹⣾⣿⣷⣛⠀⠀⠀⣜⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠸⣿⢻⣏⠸⡃⠀⠀⠈⢹⢧⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢻⣿⡮⣠⣗⠒⠤⠀⠀⠹⣳⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣼⢿⣗⣧⣦⢤⠇⢀⣤⣄⠙⣿⡦⣄⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⠄
⠀⠀⠈⠛⢏⣷⣶⣜⣤⣈⠂⠜⠀⢀⣀⡉⡭⠯⠖⠲⠒⢶⢖⣯⠟⠁⠀
⠀⠀⠀⠀⠀⠙⠻⣿⣿⣷⣷⣯⣔⡿⣃⠦⡵⣠⠠⢤⣤⠿⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠓⠿⠽⣷⣿⣾⡿⠞⠛⠉⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,7 @@
\\\\//
==\\__\\///
//\\//
==////==
//\\___//
///\\\\==
//\\\\

View file

@ -0,0 +1,10 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣄⢀⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢿⣿⣿⡿⠀⠀⠀⠀
⠀⠀⠀⠀⣀⣀⣤⠖⠛⠉⠉⠉⠉⠉⠙⠒⠦⣿⣏⣀⠀⠀⠀⠀
⠀⠀⣠⠞⠁⠀⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢵⡄⠀⠀
⠀⢰⣯⠀⠀⢀⠂⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⣿⠀⠀
⠀⠈⣇⢀⢠⠇⠀⣶⡶⠄⠀⠀⠀⢠⣶⡶⠀⠀⣸⣀⣼⠟⠀⠀
⠀⠀⠙⠛⠾⡆⠀⠙⠛⠃⠀⠀⠀⠀⠙⠋⠀⠀⣹⠟⠁⠀⠀⠀
⢀⡴⠚⠉⠛⢿⠀⠀⠀⠀⢿⣿⠆⠀⠀⠀⠀⢀⣿⠋⠉⠉⢳⡄
⢾⡀⡄⠀⣄⡼⠻⢧⠤⣤⠤⠤⣤⣠⣦⣾⠶⠞⢿⣤⡄⣠⣀⡷
⠈⠙⠛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠀

View file

@ -0,0 +1,18 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠤⣄⣀⡤⠤⠤⡀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣀⣀⣀⡀⠀⡎⠀⠀⠀⠉⠀⠀⠀⠙⡄⠀
⠀⢠⠖⠉⠓⢦⡏⠉⢆⡤⠒⠋⠉⠁⠀⠀⠀⠀⠈⠑⠃⠀⠀⠀⠀⠀⠀⠀⠀⠱⠀
⢠⠃⠀⠀⠀⠀⠀⠀⢨⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡇
⡜⠀⠀⠀⠀⠀⠀⠀⡜⠀⠀⢠⠆⠀⠀⠀⠀⠀⠀⠀⠀⡄⠀⠀⠀⠀⠀⠀⠀⠀⡇
⡇⠀⠀⠀⠀⠀⠀⡸⠁⠀⠰⠥⠤⡄⠀⠀⠀⠀⠀⠀⠀⠈⢆⠀⠀⠀⠀⠀⠀⠀⡇
⡃⠀⠀⠀⠀⠀⢠⠃⠀⠀⠀⠀⢸⡁⠀⠀⡴⠀⠀⠀⠀⠀⠀⠣⢄⡀⠀⠀⠀⠀⡇
⡇⠀⠀⠀⠀⢀⠏⠀⠀⠀⠀⠀⠀⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢲⠒⠒⠋⠁
⢱⠀⠀⢀⡴⠁⢠⡤⢄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⡤⣔⠖⠋⠁⠀⠘⣆⠀⠀⠀
⠀⠉⢩⠃⠀⠀⠀⠉⠃⠚⠭⣆⡀⠀⠀⠀⠀⠀⠈⠓⠉⠀⠀⠀⠀⠀⠠⡞⠁⠀⠀
⠀⠰⠧⠤⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢆⠀⠀
⠀⠀⠀⠀⡎⠀⠀⠀⠀⠀⠀⠀⠀⣠⣶⣿⡯⠗⠀⠀⠀⠀⠀⠀⠀⠀⢠⠖⠚⠀⠀
⠀⠀⠀⢸⠀⠀⣀⡀⠀⠀⠀⠀⠀⠀⠉⠉⠁⠀⠀⠀⢀⠀⠀⠀⠀⠀⢨⠀⠀⠀⠀
⠀⠀⠀⠈⠉⠉⠁⡇⠀⠀⠀⠀⢦⡀⢀⡤⢄⣀⣀⡴⢋⣀⡤⠖⠊⠉⠙⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠛⠉⠉⣉⠭⠉⠋⡏⠀⠀⢀⡇⠈⠓⠦⣄⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⡴⠁⠀⠀⠀⠙⠒⠒⠉⠀⠀⠀⠀⠈⠳⣄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⡜⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⢧⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,35 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣻⠟⠛⠛⠳⣯⡓⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣞⡿⠋⠀⠀⠀⠀⠀⠻⣮⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣀⢴⣿⣭⣭⣟⠶⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⡿⠁⠀⠀⠀⠀⡀⠀⠀⠘⢷⡹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⣰⣻⠟⠁⠀⠀⠈⠻⢦⡑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣞⡾⠁⠀⠀⠀⠀⢠⡿⠀⠠⠀⠈⢷⡹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣸⣳⠏⠀⠀⠀⠀⠀⠀⠈⠹⣦⡓⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣞⣾⠁⠀⠀⠀⠀⢀⣿⠃⢀⠁⠠⡀⠈⣷⣹⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢠⣯⡟⠀⠀⠀⣤⠀⠀⠀⠀⠀⠈⠻⣮⡣⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡜⣼⠃⠀⠀⠀⠀⠀⣼⡟⢀⠠⠐⠀⢡⠀⠘⣷⢳⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣼⣿⠃⠀⣴⠀⠹⣷⡀⠀⠀⠀⠀⠀⠈⢷⣜⢦⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣿⠏⠀⠀⠀⠀⠀⢰⣿⠀⠄⠂⠐⡈⠀⢃⠀⢹⣎⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⡟⣿⠀⠀⠏⠀⡀⠻⣷⡀⠀⠀⠀⠀⠀⠈⢻⣌⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣏⡿⠀⠀⠀⠀⠀⠀⣸⡟⠀⠰⠀⠂⠡⢀⠸⡀⠈⣿⢿⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢸⣟⡏⠀⣠⠂⠐⠀⡀⠙⣿⡄⠀⠀⠀⠀⠀⠀⠙⣧⡳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⣿⠃⠀⠀⠀⠀⠀⠀⣿⠇⡂⠁⠄⡁⠐⠠⠀⢡⠀⠸⣏⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢸⣿⡇⠀⣟⠀⠠⠁⠀⠄⡈⢿⣆⠐⠀⠀⠀⠀⠀⠈⢿⡜⢦⣀⣤⢴⣖⣶⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⣿⠀⡇⠈⡐⠀⠌⠐⠠⠘⡆⠀⢿⣼⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢸⣿⡇⠀⡯⠀⢂⠠⠁⠠⠀⠌⢿⣆⠀⠀⠀⠀⠀⠀⣀⣿⣾⡿⠛⠋⠉⠉⢹⡄⠀⢠⡿⠀⠀⠀⠀⠀⠀⠀⠀⣿⡄⣠⣐⡀⠁⠌⠠⢁⠀⢣⠀⠸⣏⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢸⣿⡇⠀⢃⠐⠀⠄⠠⠁⡐⠈⡈⣿⡆⠀⠀⢀⣴⠿⠛⠉⢸⡇⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠿⢟⠛⢻⡧⠐⠈⡐⠠⢀⠂⠆⠀⣿⣽⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⢸⣿⡇⠀⠀⠂⢈⠀⢂⠐⠀⢂⠐⢸⣧⠀⠀⠀⠀⠀⠐⠀⢸⡁⠀⠀⠀⠀⠈⡗⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⣧⣴⣤⡀⠂⢂⠀⡃⠀⢸⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠘⣿⡇⠀⠀⠡⠀⠂⠄⠂⢡⣾⠿⠿⠿⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⣟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⠋⠉⠉⣿⡇⠀⠡⠀⢸⠀⠈⣧⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⡿⣿⠀⠠⠁⠐⠠⠐⠠⡘⢿⣤⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣇⠀⠀⠀⠀⠀⢻⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⡟⠀⢈⠐⠠⠈⠀⠀⣿⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⣿⣿⠀⠀⡃⢀⠂⠀⣿⡿⠛⠿⠶⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡀⠀⠀⠀⠀⠘⣧⠀⠀⠀⠀⠀⠀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠈⢷⡀⢀⠈⠄⠐⡀⠀⢼⡾⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢿⣿⡇⠀⡇⠀⡀⠂⢹⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⡇⠀⠀⠀⠀⠀⠈⠳⣄⡀⠀⢀⣾⣿⣿⣿⣦⡀⠀⠀⠀⠀⠀⠈⢿⡄⠢⠐⠠⠀⠀⢸⡇⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢸⣿⣧⠀⠰⠀⠠⠐⠀⠹⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠟⠀⠀⠀⠀⠀⠀⠀⠀⠈⠙⠶⣾⣿⣿⣿⣿⣿⣷⠀⠀⠀⠀⠀⠀⠘⢿⣄⠂⠐⠀⠀⣼⢧⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠈⣿⣿⠀⠘⠄⠐⠀⠌⢠⡿⠀⠀⠀⠀⣀⣤⣦⣶⣤⣴⠏⠀⣀⣤⣴⣶⣶⣶⣦⣤⡀⠀⠀⠙⢿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠀⠀⠜⣿⡀⠈⠀⢠⣿⣿⠁⢀⡀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠸⣿⣇⠀⠻⡀⠈⠀⣿⠃⠀⠀⢠⣾⣿⣿⡿⢿⣿⠏⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀⠉⢿⡛⠉⠀⠀⠀⠀⠀⠀⠀⠀⠐⠘⣿⣀⣴⣿⣿⣿⣿⣿⣭⣟⢦⣀⣀⣀⠀⠀
⠀⠀⠀⢻⣻⣆⠀⠱⣀⢩⣿⠀⠀⠀⠠⠟⠋⠁⠀⣰⠃⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠀⠀⠀⠀⠀⠈⢷⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⣿⣿⡟⠙⣿⣿⠁⠀⢹⣿⡿⠿⣯⡻⡆
⠀⠀⠀⠈⢻⣻⣦⠀⠉⢸⡗⠀⠀⠀⠀⠀⠀⠀⢠⡟⠀⠀⠀⠈⠛⠿⣿⣿⣿⠿⠛⠉⠀⠀⠀⠀⣀⠀⠀⠈⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣿⣿⡶⠀⣿⣿⡀⠐⠈⢁⠠⠀⣼⣇⡇
⠀⠀⠀⠀⠀⠙⢽⡷⣦⣽⡇⠀⠀⠀⠀⠀⠀⠀⢰⡇⢀⠀⠀⠀⠀⠀⠀⠀⢀⠀⠀⠀⠀⠀⠀⠀⣿⠀⠀⠀⠸⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⢿⣝⣿⡼⣿⣧⡐⠈⣠⣤⢾⣫⠟⠁
⠀⠀⠀⠀⠀⠀⠀⠙⢻⣿⠇⠀⠀⠀⠀⠀⠀⠀⢸⠇⠘⣧⠀⠀⠀⠀⠀⢀⣾⣧⣄⣀⢀⣀⣠⣾⠋⠀⠀⠀⠀⠙⢦⣀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣻⡇⠀⠘⢿⣿⣛⡿⠷⠋⠁⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡾⣿⠀⠀⠀⠀⠀⠀⠀⢠⡟⠀⠀⠈⠳⣶⣤⡴⣾⢿⡹⢮⡝⣯⢻⣽⣿⣿⣄⠀⠀⠀⠀⠀⠀⠉⠓⠦⣤⣄⣀⣀⣠⣤⠿⢻⡞⣷⠀⠀⠀⠉⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢀⣾⣷⣿⠀⠀⠀⠀⠀⣀⡴⠋⠀⠀⠀⠀⠀⠹⣷⡹⣎⢷⡹⢧⣻⣼⠿⣿⣄⠉⠙⢷⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⡿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⢻⣽⣧⣤⣀⣀⣠⡴⠞⠋⠀⠀⠀⠀⠀⠀⠀⠀⠘⠻⣯⣞⣭⣻⣟⣷⡀⢀⠛⢿⡄⢸⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠐⣶⣶⣶⣿⡿⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠈⢿⣿⡿⠛⠛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠛⠛⠛⠻⣧⡈⠐⢈⣡⣾⠏⠀⠀⠀⠀⠀⠀⠀⣀⣤⣶⣯⠿⠟⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠘⢿⣓⣶⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠻⠛⠋⠁⠀⠀⠀⠀⠀⠀⠶⠛⠉⢸⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠻⣿⣺⣿⣿⣻⢦⣤⣤⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣸⢿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⢿⣿⣧⠀⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡿⣾⠹⣧⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣾⠛⣯⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢈⣷⡿⠀⠘⠻⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠟⠁⠀⢿⣸⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⡇⠀⠀⠖⠀⠙⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠁⢶⠀⠀⢸⣿⠇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠙⠒⠒⠒⠖⠶⠦⠤⠤⢤⡤⣤⠤⣤⢤⡤⣤⢤⡤⠤⠤⠤⠴⠶⠒⠒⠒⠒⠊⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -0,0 +1,27 @@
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣶⢤⣀⠀⠀⢀⣤⣾⢿⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣀⡼⠟⠋⠉⢝⠃⢸⣛⣇⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⠋⠰⠀⠀⠀⠈⢧⣀⠹⠹⣆⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⡇⢀⡇⠀⢠⡀⠀⠘⣿⡌⠇⣿⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣼⢁⡾⢳⣦⠘⣟⣆⡀⣿⣷⢠⢺⡇⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣽⣧⡀⠀⠀⢀⣴⣞⡛⣿⣿⣿⡟⢿⠿⠁⠉⠛⢉⣿⣿⡟⢳⣿⠿⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣶⣦⣤⣤⣼⣿⣿⣿⣿⣿⠛⠿⣿⣿⣿⣿⣿⣷⣾⡇⠀⠀⠠⠿⣯⣿⣷⣾⣟⣀⣤⡀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⠛⠿⢿⣿⠿⠿⠆⠀⠙⢿⣿⣿⠿⢿⣿⣦⣤⣴⣾⡿⣻⡿⠛⣿⣶⣾⡧⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠳⠶⣤⣀⣀⠀⠙⠷⣀⣼⣿⣿⣿⣿⣥⣾⣿⣧⣼⣿⣿⣿⣷⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⣻⣿⠑⢦⡀⠈⠻⢧⣿⣿⠋⠼⢿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣿⣿⠉⣿⡷⢤⡀⠀⠉⠛⠚⣁⣌⣿⣿⣿⣿⣿⣿⣿⣷⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠔⠛⠓⢿⠇⠀⢠⣀⡴⠛⢦⣄⠀⢀⣨⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠁⠀⠀⠀⠘⣶⣀⣼⣿⣉⠙⠚⢿⡿⠿⣄⣿⣏⢻⣿⣿⣿⣿⠃⣏⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠁⠀⠀⠀⣤⡀⠀⠈⢧⠈⣟⣿⣤⡀⠠⡇⠀⠀⣿⣿⡆⠻⣿⡿⠻⢾⠋⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠞⠁⠀⠀⠀⣠⠞⠉⣿⣦⡀⢸⠀⠹⣝⡻⣿⣿⠃⠀⠀⣸⣿⠣⡄⠹⣆⠀⠘⢇⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠞⠙⢄⠀⣠⡴⠚⠁⠀⠀⢛⣹⣿⣎⠀⠀⠀⠑⠚⡛⠀⠀⠀⣹⣿⡷⠄⠀⠈⢷⣄⠈⣷⠀⠀
⠀⠀⠀⠀⠀⢀⣤⣤⣀⡴⠋⠀⣀⣴⠾⠋⠁⠀⠀⠀⠀⠀⡼⣻⣿⣿⣧⡀⠀⠀⢠⠇⠤⣀⣠⣿⣿⡀⠀⠀⠀⢸⠏⠀⣿⡄⠀
⣴⣶⣶⣶⣶⣿⣿⣿⣿⣤⣀⣬⡟⠁⠀⠀⠀⠀⢰⡶⠤⠞⣿⣿⣻⣿⣿⣷⣄⢀⡞⠀⠀⣰⡿⢻⣿⡿⢿⣷⡆⠀⣀⡴⠋⢙⣆
⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀⠀⠀⠀⠀⠀⠙⠲⢄⣉⣿⣿⡿⣿⣿⣿⣿⠇⠀⢰⣿⠳⣼⣿⠃⣠⠀⠙⣆⠀⠀⠀⢻⡟
⠀⠉⠛⠿⠿⣿⣿⣿⣿⣿⣿⣿⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠀⠀⢈⡝⠀⢠⣿⡇⠀⢻⡟⠚⠁⠀⠄⠈⢧⡴⠀⠈⣧
⠀⠀⠀⠀⠀⠀⠀⠀⠙⠿⠿⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣾⣿⣿⣶⣴⣿⡉⠉⠙⠳⡀⠀⠀⠀⣒⣚⠡⢒⣶⡿
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⣻⣿⣿⣿⣿⣿⣿⡀⠀⠀⠀⠉⠲⠤⠤⣄⣸⡤⠔⠋⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣿⣿⠿⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⠟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠉⠉⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀

View file

@ -37,6 +37,7 @@ tooltip label {
#network,
#workspaces,
#taskbar,
#submap,
#cpu,
#pulseaudio,
#privacy,
@ -74,6 +75,7 @@ right-side modules
#cpu,
#pulseaudio,
#tray,
#submap,
#privacy {
margin: 4px 0px 4px 4px;
}
@ -96,6 +98,10 @@ right-side modules
border: none;
}
#submap.name {
color: @colorfg;
}
/*
connects the workspace and taskbar together :3
*/
@ -114,7 +120,7 @@ right-side modules
*/
#cpu {
margin: 4px 0 4px 0;
margin: 4px 0 4px 4px;
border-radius: 32px 0px 0px 32px;
}
#memory {

View file

@ -8,12 +8,18 @@
height = 20;
modules-left = ["hyprland/workspaces" "wlr/taskbar" "custom/media"];
modules-center = ["clock"];
modules-right = ["cpu" "memory" "network" "pulseaudio" "privacy" "tray"];
modules-right = ["hyprland/submap" "cpu" "memory" "network" "pulseaudio" "privacy" "tray"];
# left
"hyprland/workspaces" = {
format = "{id}";
};
"ext/workspaces" = {
# not enabled yet, hyprland and mango need two different configs ;-;
format = "{id}";
ignore-hidden = true;
on-click = "activate";
};
"wlr/taskbar" = {
format = "{icon}";
icon-size = 12;
@ -33,6 +39,13 @@
};
# right
"hyprland/submap" = {
format = "{}";
# always-on = true;
# default-submap = "normal";
max-length = 12;
tooltip = false;
};
"cpu" = {
format = " {usage}%";
interval = 1;
@ -84,11 +97,6 @@
# fixes spotify not showing up when "close button should minimize the Spotify window" is false
show-passive-items = true;
};
# i only enable this for debugging of window rules lol
"hyprland/window" = {
format = "{class} | {title}";
};
};
};

View file

@ -0,0 +1,12 @@
[font]
size = 10
normal = { family = "DepartureMono Nerd Font Mono", style = "Regular" }
[general]
import = ["theme.toml"]
[mouse]
hide_when_typing = true
[scrolling]
history = 100000

View file

@ -0,0 +1,10 @@
{upkgs, ...}: {
programs.alacritty = {
enable = true;
package = upkgs.alacritty-graphics;
};
xdg.configFile."alacritty/alacritty.toml" = {
source = ./alacritty.toml;
};
}

View file

@ -7,4 +7,4 @@ enabled = true
show_message = false
[image_preview]
protocol.type = "kitty"
protocol.type = "sixel"

View file

@ -2,79 +2,32 @@ vim.g.mapleader = " "
vim.opt.termguicolors = true -- use terminal colors
vim.opt.relativenumber = true
vim.opt.number = true
vim.opt.wrap = false
vim.opt.colorcolumn = "80"
require("plugins")
require("lsp")
require("colors")
local uv = vim.loop
local colorscheme_filepath = "/home/aurora/.cache/nvim/neovim-colors"
local colors = {}
-- move windows :3
vim.keymap.set("n", "<A-h>", function()
vim.cmd("wincmd h")
end)
vim.keymap.set("n", "<A-j>", function()
vim.cmd("wincmd j")
end)
vim.keymap.set("n", "<A-k>", function()
vim.cmd("wincmd k")
end)
vim.keymap.set("n", "<A-l>", function()
vim.cmd("wincmd l")
end)
-- function to load colors
local function load_colors()
local new_colors = {}
for line in io.lines(colorscheme_filepath) do
table.insert(new_colors, line)
end
-- ensure the table has enough entries to avoid indexing issues
if #new_colors >= 18 then
colors = new_colors
require("base16-colorscheme").setup({
base00 = colors[17],
base01 = colors[1],
base02 = colors[3],
base03 = colors[3],
base04 = colors[5],
base05 = colors[8],
base06 = colors[5],
base07 = colors[8],
base08 = colors[18],
base09 = colors[4],
base0A = colors[11],
base0B = colors[5],
base0C = colors[6],
base0D = colors[7],
base0E = colors[6],
base0F = colors[16],
})
-- set colors for blink.cmp's completion menu
vim.api.nvim_set_hl(0, "BlinkCmpMenu", { bg = colors[17] })
vim.api.nvim_set_hl(0, "BlinkCmpMenuBorder", { bg = colors[17], fg = colors[13] })
vim.api.nvim_set_hl(0, "BlinkCmpMenuSelection", { bg = colors[15], fg = colors[17] })
vim.api.nvim_set_hl(0, "BlinkCmpScrollBarThumb", { bg = colors[18] })
vim.api.nvim_set_hl(0, "BlinkCmpKind", { bg = colors[17], fg = colors[14] })
vim.api.nvim_set_hl(0, "BlinkCmpLabel", { bg = colors[17], fg = colors[18] })
vim.api.nvim_set_hl(0, "BlinkCmpLabelMatch", { bg = colors[17], fg = colors[18] })
vim.api.nvim_set_hl(0, "BlinkCmpLabelDetail", { bg = colors[17], fg = colors[18] })
vim.api.nvim_set_hl(0, "BlinkCmpLabelDescription", { bg = colors[17], fg = colors[18] })
else
print("Error: Not enough colors in file")
end
end
-- initial load
load_colors()
-- vim.defer_fn(load_colors, 1)
-- set up a file watcher
local function watch_colorscheme()
local handle
handle = uv.new_fs_event()
if handle then
uv.fs_event_start(handle, colorscheme_filepath, {}, function(err, _, _)
if err then
print("Error watching colorscheme file:", err)
return
end
-- debounce by adding a slight delay before reloading
vim.defer_fn(load_colors, 100)
end)
end
end
watch_colorscheme()
-- splits <3 (i love splits sm)
vim.keymap.set("n", "<leader>s", function()
vim.cmd("split")
end)
vim.keymap.set("n", "<leader>v", function()
vim.cmd("vsplit")
end)

View file

@ -0,0 +1,220 @@
local colorscheme_filepath = "/home/aurora/.cache/nvim/neovim-colors"
local colors = {}
local function hex_to_int(hex)
hex = hex:gsub("#", "")
return tonumber(hex:sub(1, 2), 16) * 0x10000 + tonumber(hex:sub(3, 4), 16) * 0x100 + tonumber(hex:sub(5, 6), 16)
end
-- TODO: change to use lab color space
local function blend_colors(c1, c2, t)
local r1 = math.floor(c1 / 0x10000)
local g1 = math.floor((c1 % 0x10000) / 0x100)
local b1 = c1 % 0x100
local r2 = math.floor(c2 / 0x10000)
local g2 = math.floor((c2 % 0x10000) / 0x100)
local b2 = c2 % 0x100
return math.floor(r1 + (r2 - r1) * t) * 0x10000
+ math.floor(g1 + (g2 - g1) * t) * 0x100
+ math.floor(b1 + (b2 - b1) * t)
end
-- function to load colors
local function load_colors()
local new_colors = {}
for line in io.lines(colorscheme_filepath) do
table.insert(new_colors, line)
end
-- ensure the table has enough entries to avoid indexing issues
if #new_colors == 18 then
colors = new_colors
require("base16-colorscheme").setup({
base00 = colors[18],
base01 = colors[1],
base02 = colors[3],
base03 = colors[3],
base04 = colors[5],
base05 = colors[8],
base06 = colors[5],
base07 = colors[8],
base08 = colors[17],
base09 = colors[4],
base0A = colors[11],
base0B = colors[5],
base0C = colors[6],
base0D = colors[7],
base0E = colors[6],
base0F = colors[16],
})
-- colors ------------------------------------------------------------------
local color_00 = colors[1]
local color_01 = colors[2]
local color_02 = colors[3]
local color_03 = colors[4]
local color_04 = colors[5]
local color_05 = colors[6]
local color_06 = colors[7]
local color_07 = colors[8]
local color_08 = colors[9]
local color_09 = colors[10]
local color_10 = colors[11]
local color_11 = colors[12]
local color_12 = colors[13]
local color_13 = colors[14]
local color_14 = colors[15]
local color_15 = colors[16]
local fg = colors[17]
local bg = colors[18]
local bg_90 = blend_colors(hex_to_int("#000000"), hex_to_int(bg), 0.90)
-- blink.cmp ---------------------------------------------------------------
vim.api.nvim_set_hl(0, "BlinkCmpMenu", { bg = bg })
vim.api.nvim_set_hl(0, "BlinkCmpMenuBorder", { fg = color_12, bg = bg })
vim.api.nvim_set_hl(0, "BlinkCmpMenuSelection", { fg = bg, bg = color_14 })
vim.api.nvim_set_hl(0, "BlinkCmpScrollBarThumb", { bg = fg })
vim.api.nvim_set_hl(0, "BlinkCmpKind", { fg = fg, bg = bg })
vim.api.nvim_set_hl(0, "BlinkCmpLabel", { fg = fg, bg = bg })
vim.api.nvim_set_hl(0, "BlinkCmpLabelMatch", { fg = fg, bg = bg })
vim.api.nvim_set_hl(0, "BlinkCmpLabelDetail", { fg = fg, bg = bg })
vim.api.nvim_set_hl(0, "BlinkCmpLabelDescription", { fg = fg, bg = bg })
-- telescope :3 ------------------------------------------------------------
vim.api.nvim_set_hl(0, "TelescopeNormal", { bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopePromptNormal", { bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopeResultsNormal", { bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopePreviewNormal", { bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopeBorder", { fg = color_15, bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopePromptBorder", { fg = color_15, bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopeResultsBorder", { fg = color_15, bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopePreviewBorder", { fg = color_15, bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopePromptTitle", { fg = color_15, bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopeResultsTitle", { fg = color_15, bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopePreviewTitle", { fg = color_15, bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopePromptPrefix", { fg = color_14, bg = bg_90 })
vim.api.nvim_set_hl(0, "TelescopePromptCounter", { fg = color_13, bg = bg_90 })
-- gitsigns.nvim -----------------------------------------------------------
vim.api.nvim_set_hl(0, "GitSignsAdd", { fg = color_13 })
vim.api.nvim_set_hl(0, "GitSignsChange", { fg = color_11 })
vim.api.nvim_set_hl(0, "GitSignsDelete", { fg = color_09 })
local blame_palette = {
color_13,
color_11,
color_09,
color_06,
color_05,
color_04,
color_03,
color_12,
}
local blame_group = vim.api.nvim_create_augroup("GitSignsBlameColors", { clear = true })
local function get_heatmap_palette()
local c1 = hex_to_int(color_13) -- old
local c2 = hex_to_int(color_14) -- recent
local palette = {}
for i = 0, 7 do
palette[i] = blend_colors(c1, c2, i / 7)
end
return palette
end
local heatmap_palette = get_heatmap_palette()
local function set_blame_colors()
local highlights = vim.api.nvim_exec2("highlight", { output = true }).output
local i = 1
for hl_name in highlights:gmatch("(GitSignsBlameColor%.[%x]+)") do
local color = blame_palette[(i - 1) % #blame_palette + 1]
vim.api.nvim_set_hl(0, hl_name, { fg = color })
i = i + 1
end
i = 1
for hl_name in highlights:gmatch("(GitSignsColorTemp%.fg%.[%d]+)") do
local color = heatmap_palette[(i - 1) % #heatmap_palette + 1]
vim.api.nvim_set_hl(0, hl_name, { fg = color })
i = i + 1
end
end
set_blame_colors()
vim.api.nvim_create_autocmd("FileType", {
group = blame_group,
pattern = "gitsigns-blame",
callback = function()
set_blame_colors()
end,
})
-- fyler.nvim --------------------------------------------------------------
vim.api.nvim_set_hl(0, "FylerBlue", { fg = color_06 })
vim.api.nvim_set_hl(0, "FylerGreen", { fg = color_02 })
vim.api.nvim_set_hl(0, "FylerGrey", { fg = color_08 })
vim.api.nvim_set_hl(0, "FylerRed", { fg = color_01 })
vim.api.nvim_set_hl(0, "FylerYellow", { fg = color_03 })
vim.api.nvim_set_hl(0, "FylerFSDirectoryIcon", { fg = color_06 })
vim.api.nvim_set_hl(0, "FylerFSDirectoryName", { fg = fg })
vim.api.nvim_set_hl(0, "FylerFSFile", { fg = color_15 })
vim.api.nvim_set_hl(0, "FylerFSLink", { fg = color_08 })
vim.api.nvim_set_hl(0, "FylerGitAdded", { fg = color_04 })
vim.api.nvim_set_hl(0, "FylerGitConflict", { fg = color_03 })
vim.api.nvim_set_hl(0, "FylerGitDeleted", { fg = color_03 })
vim.api.nvim_set_hl(0, "FylerGitIgnored", { fg = color_08 })
vim.api.nvim_set_hl(0, "FylerGitModified", { fg = color_05 })
vim.api.nvim_set_hl(0, "FylerGitRenamed", { fg = color_05 })
vim.api.nvim_set_hl(0, "FylerGitStaged", { fg = color_04 })
vim.api.nvim_set_hl(0, "FylerGitUnstaged", { fg = color_05 })
vim.api.nvim_set_hl(0, "FylerGitUntracked", { fg = color_06 })
vim.api.nvim_set_hl(0, "FylerWinPick", { fg = color_15, bg = fg })
else
print("Error: Not enough colors in file")
end
end
-- initial load
load_colors()
-- vim.defer_fn(load_colors, 1)
-- set up a file watcher
local function watch_colorscheme()
local handle
handle = vim.loop.new_fs_event()
if handle then
vim.loop.fs_event_start(handle, colorscheme_filepath, {}, function(err, _, _)
if err then
print("Error watching colorscheme file:", err)
return
end
-- debounce by adding a slight delay before reloading
vim.defer_fn(load_colors, 100)
end)
end
end
watch_colorscheme()

View file

@ -38,7 +38,7 @@ function M.on_attach(_, bufnr)
end -- TODO: someone who knows the builtin versions of these to do instead help me out please.
nmap("<leader>D", vim.lsp.buf.type_definition, "Type [D]efinition")
nmap("<leader>e", vim.diagnostic.open_float, "Show [E]rror")
nmap("<leader>E", vim.diagnostic.open_float, "Show [E]rror")
-- See `:help K` for why this keymap
nmap("K", vim.lsp.buf.hover, "Hover Documentation")

View file

@ -15,7 +15,22 @@ return {
blink.setup({
keymap = {
preset = "default",
["<C-space>"] = { "show", "show_documentation", "hide_documentation" },
["<C-e>"] = { "hide", "fallback" },
["<C-y>"] = { "select_and_accept", "fallback" },
["<C-k>"] = { "select_prev", "fallback_to_mappings" },
["<C-j>"] = { "select_next", "fallback_to_mappings" },
["<Up>"] = { "select_prev", "fallback" },
["<Down>"] = { "select_next", "fallback" },
["<C-b>"] = { "scroll_documentation_up", "fallback" },
["<C-f>"] = { "scroll_documentation_down", "fallback" },
["<Tab>"] = { "snippet_forward", "fallback" },
["<S-Tab>"] = { "snippet_backward", "fallback" },
["<C-S-k>"] = { "show_signature", "hide_signature", "fallback" },
},
appearance = {

View file

@ -1,5 +1,5 @@
vim.api.nvim_create_autocmd("FileType", {
pattern = "lua",
pattern = { "lua", "nix", "gleam" },
callback = function()
vim.opt_local.shiftwidth = 2
vim.opt_local.tabstop = 2
@ -7,11 +7,14 @@ vim.api.nvim_create_autocmd("FileType", {
end,
})
vim.api.nvim_create_autocmd("FileType", {
pattern = "nix",
callback = function()
vim.opt_local.shiftwidth = 2
vim.opt_local.tabstop = 2
vim.opt_local.expandtab = true
vim.api.nvim_create_autocmd("User", {
pattern = "TelescopePreviewerLoaded",
callback = function(args)
local ft = args.data.filetype
if vim.tbl_contains({ "lua", "nix", "gleam", "rust" }, ft) then
vim.bo.shiftwidth = 2
vim.bo.tabstop = 2
vim.bo.expandtab = true
end
end,
})

View file

@ -1,88 +1,110 @@
local servers = {}
servers.lua_ls = {
settings = {
Lua = {
formatters = {
ignoreComments = false,
if nixCats("lang.lua.lsp") then
servers.lua_ls = {
settings = {
Lua = {
formatters = {
ignoreComments = false,
},
signatureHelp = { enable = true },
diagnostics = {
globals = { "nixCats", "vim" },
-- disable = { 'missing-fields' },
},
workspace = {
-- make the server aware of the neovim runtime files
library = vim.api.nvim_get_runtime_file("", true),
checkThirdParty = false,
},
},
telemetry = { enabled = false },
},
}
end
if nixCats("lang.nix.lsp") then
servers.nil_ls = {
settings = {},
}
end
if nixCats("lang.rust.lsp") then
local rust_analyzer_cmd = os.getenv("RUST_ANALYZER_CMD")
servers.rust_analyzer = {
cmd = { rust_analyzer_cmd },
settings = {
server = {
-- For debugging rust-analyzer, to see log location do :LspInfo in neovim
-- extraEnv = { {["RA_LOG"]="project_model=debug"} },
},
cargo = {
allFeatures = false,
allTargets = false,
buildScripts = { enable = true },
target = "x86_64-unknown-linux-gnu",
},
signatureHelp = { enable = true },
diagnostics = {
globals = { "nixCats", "vim" },
-- disable = { 'missing-fields' },
},
workspace = {
-- make the server aware of the neovim runtime files
library = vim.api.nvim_get_runtime_file("", true),
checkThirdParty = false,
enable = true,
},
},
telemetry = { enabled = false },
},
}
}
end
servers.nil_ls = {
settings = {},
}
if nixCats("lang.zig.lsp") then
servers.zls = {
settings = {},
}
end
local rust_analyzer_cmd = os.getenv("RUST_ANALYZER_CMD")
servers.rust_analyzer = {
cmd = { rust_analyzer_cmd },
settings = {
server = {
-- For debugging rust-analyzer, to see log location do :LspInfo in neovim
-- extraEnv = { {["RA_LOG"]="project_model=debug"} },
},
cargo = {
allFeatures = false,
allTargets = false,
buildScripts = { enable = true },
target = "x86_64-unknown-linux-gnu",
},
diagnostics = {
enable = true,
},
},
}
if nixCats("lang.elixir.lsp") then
local elixir_ls_cmd = os.getenv("ELIXIR_LS_CMD")
servers.elixirls = {
cmd = { elixir_ls_cmd },
settings = {},
}
end
servers.zls = {
settings = {},
}
if nixCats("lang.gleam.lsp") then
servers.gleam = {
settings = {},
}
end
local elixir_ls_cmd = os.getenv("ELIXIR_LS_CMD")
servers.elixirls = {
cmd = { elixir_ls_cmd },
settings = {},
}
if nixCats("lang.haskell.lsp") then
servers.hls = {
settings = {},
}
end
servers.gleam = {
settings = {},
}
servers.hls = {
settings = {},
}
local java_home = os.getenv("JAVA_HOME")
servers.jdtls = {
settings = {
java = {
contentProvider = { preferred = "fernflower" },
configuration = {
runtimes = {
{
name = "OpenJDK 17",
path = os.getenv("OPENJDK_17"),
},
{
name = "OpenJDK 21",
path = os.getenv("OPENJDK_21"),
if nixCats("lang.java.lsp") then
local java_home = os.getenv("JAVA_HOME")
servers.jdtls = {
settings = {
java = {
contentProvider = { preferred = "fernflower" },
configuration = {
runtimes = {
{
name = "OpenJDK 17",
path = os.getenv("OPENJDK_17"),
},
{
name = "OpenJDK 21",
path = os.getenv("OPENJDK_21"),
},
},
},
},
},
},
}
}
end
if nixCats("lang.protobuf.lsp") then
servers.protols = {
settings = {},
}
end
-- Taken from nixCats example:
-- If you were to comment out this autocommand

View file

@ -8,13 +8,13 @@ return {
line = "<leader>cc",
block = "<leader>bc",
},
opLeader = {
opleader = {
line = "<leader>c",
block = "<leader>b",
},
extra = {
above = "<leader>c0",
below = "<leader>bo",
above = "<leader>c<S-o>",
below = "<leader>co",
eol = "<leader>cA",
},
})

View file

@ -1,8 +1,53 @@
vim.keymap.set("n", "<leader>P", function()
vim.api.nvim_exec_autocmds("User", { pattern = "ConformProject" })
vim.cmd("ConformProject")
end, { noremap = true, silent = true })
vim.api.nvim_create_user_command("ConformProject", function()
local conform = require("conform")
local root = vim.fn.getcwd()
-- respects .gitignore
local handle = io.popen(string.format("cd %s && git ls-files --cached --others --exclude-standard", root))
if not handle then
vim.notify("Failed to scan project files", vim.log.levels.ERROR)
return
end
local files = {}
for file in handle:lines() do
table.insert(files, vim.fn.fnamemodify(file, ":p"))
end
handle:close()
-- format each file
-- TODO: maybe run each formatter on the directory instead as it may be faster
-- although that would actually mean we can't count what files were formatted so i don't know
local formatted_count = 0
for _, filepath in ipairs(files) do
local bufnr = vim.fn.bufadd(filepath)
vim.fn.bufload(bufnr)
local ok, err = conform.format({ bufnr = bufnr })
if ok then
formatted_count = formatted_count + 1
-- Save the buffer
vim.api.nvim_buf_call(bufnr, function()
vim.cmd("write")
end)
end
end
vim.notify(string.format("Formatted %d files", formatted_count), vim.log.levels.INFO)
end, {})
-- docs -> https://github.com/stevearc/conform.nvim
return {
{
"conform.nvim",
enabled = nixCats("format") or false,
event = "User ConformProject", -- also will load when we format the entire project yayayayy :333
keys = {
{ "<leader>p", desc = "Format File (pretty :3)" },
},
@ -12,9 +57,12 @@ return {
conform.setup({
formatters_by_ft = {
lua = nixCats("lang.lua.format") and { "stylua" } or nil,
nix = nixCats("lang.nix.format") and { "nixfmt" } or nil,
nix = nixCats("lang.nix.format") and { "alejandra" } or nil,
rust = nixCats("lang.rust.format") and { "rustfmt", lsp_format = "fallback" } or nil,
haskell = nixCats("lang.haskell.format") and { "ormolu" } or nil,
proto = nixCats("lang.protobuf.format") and { "buf" } or nil,
toml = nixCats("lang.toml.format") and { "taplo" } or nil,
sql = nixCats("lang.sql.format") and { "sqlfluff" } or nil,
},
format_on_save = {
timeout_ms = 500,

View file

@ -4,12 +4,12 @@ return {
cmd = { "Fyler" },
keys = {
{
"<leader>tf",
"<leader>e",
function()
return require("fyler").toggle({ kind = "split_right" })
end,
mode = { "n" },
desc = "Open [F]yler",
desc = "Open File [E]xplorer (Fyler)",
},
},
load = function(name)

View file

@ -0,0 +1,93 @@
return {
{
"vim-fugitive",
enabled = nixCats("git.merge") or false,
cmd = { "Git", "Gvdiffsplit" },
},
{
"resolve-nvim",
enabled = nixCats("git.merge") or false,
event = { "BufReadPre", "BufNewFile" },
after = function(plugin)
require("resolve").setup({
default_keymaps = false,
on_conflicts_resolved = function(info)
-- NOTE: am not sure if i wanna stage files automatically
-- local filepath = vim.api.nvim_buf_get_name(info.bufnr)
-- vim.fn.system({ "git", "add", filepath })
-- vim.notify("conflicts resolved :3 file staged yayayayy <3", vim.log.levels.INFO)
vim.notify("conflicts resolved :3", vim.log.levels.INFO)
end,
})
end,
},
{
"gitsigns.nvim",
enabled = nixCats("git.gitsigns") or false,
after = function(plugin)
require("gitsigns").setup({
signs = {
add = { text = "" },
change = { text = "" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
untracked = { text = "" },
},
signs_staged = {
add = { text = "" },
change = { text = "" },
delete = { text = "_" },
topdelete = { text = "" },
changedelete = { text = "~" },
untracked = { text = "" },
},
on_attach = function(bufnr)
local gitsigns = require("gitsigns")
-- toggle git blame
vim.keymap.set("n", "<leader>gb", function()
local wins = vim.api.nvim_list_wins()
for _, win in ipairs(wins) do
local buf = vim.api.nvim_win_get_buf(win)
local ft = vim.api.nvim_get_option_value("filetype", { buf = buf })
if ft == "gitsigns-blame" then
vim.api.nvim_win_close(win, true)
return
end
end
vim.cmd("Gitsigns blame")
end)
vim.keymap.set("n", "<leader>bl", gitsigns.toggle_current_line_blame)
vim.keymap.set("n", "]c", function()
if vim.wo.diff then
vim.cmd.normal({ "]c", bang = true })
else
gitsigns.nav_hunk("next")
end
end)
vim.keymap.set("n", "[c", function()
if vim.wo.diff then
vim.cmd.normal({ "[c", bang = true })
else
gitsigns.nav_hunk("prev")
end
end)
vim.keymap.set("n", "<leader>hs", gitsigns.stage_hunk)
vim.keymap.set("n", "<leader>hu", gitsigns.undo_stage_hunk)
vim.keymap.set("n", "<leader>hS", gitsigns.stage_buffer)
vim.keymap.set("n", "<leader>hU", gitsigns.reset_buffer_index)
vim.keymap.set("n", "<leader>hi", gitsigns.toggle_current_line_blame)
vim.keymap.set("n", "<leader>hp", gitsigns.preview_hunk_inline)
end,
})
end,
},
}

View file

@ -6,4 +6,5 @@ require("lze").load({
{ import = "plugins.mini-hipatterns" },
{ import = "plugins.format" },
{ import = "plugins.comment" },
{ import = "plugins.git" },
})

View file

@ -1,6 +1,7 @@
return {
{
"telescope.nvim",
enabled = nixCats("telescope.enable") or false,
cmd = { "Telescope" },
keys = {
{
@ -51,10 +52,25 @@ return {
mode = { "n" },
desc = "[T]elescope search [B]uffers",
},
{
"<leader>th",
function()
return require("telescope.builtin").highlights()
end,
mode = { "n" },
desc = "[T]elescope [H]ighlights",
},
},
load = function(name)
vim.cmd.packadd(name)
vim.cmd.packadd("telescope-fzf-native.nvim")
if nixCats("telescope.fzf") then
vim.cmd.packadd("telescope-fzf-native.nvim")
end
if nixCats("telescope.zf") then
vim.cmd.packadd("telescope-zf-native.nvim")
end
end,
after = function(plugin)
local telescope = require("telescope")
@ -62,6 +78,8 @@ return {
telescope.setup({
defaults = {
border = true,
borderchars = { "", "", "", "", "", "", "", "" },
mappings = {
i = {
["<C-k>"] = actions.move_selection_previous, -- move to prev result
@ -72,7 +90,13 @@ return {
},
})
pcall(telescope.load_extension, "fzf")
if nixCats("telescope.fzf") then
telescope.load_extension("fzf")
end
if nixCats("telescope.zf") then
telescope.load_extension("zf-native")
end
end,
},
}

View file

@ -2,16 +2,14 @@
# https://github.com/BirdeeHub/nix-wrapper-modules
{
inputs,
spkgs,
mpkgs,
...
}:
let
inherit (inputs.nixcats)
}: let
inherit
(inputs.nixcats)
utils
;
in
{
in {
imports = [
inputs.nixcats.homeModule
];
@ -32,244 +30,284 @@ in
];
# see the packageDefinitions below.
# This says which of those to install.
packageNames = [ "auroranvim" ];
packageNames = ["auroranvim"];
luaPath = "${./.}";
# the .replace vs .merge options are for modules based on existing configurations,
# they refer to how multiple categoryDefinitions get merged together by the module.
# for useage of this section, refer to :h nixCats.flake.outputs.categories
categoryDefinitions.replace =
{
pkgs,
settings,
categories,
extra,
name,
mkNvimPlugin,
...
}@packageDef:
{
lspsAndRuntimeDeps = with pkgs; {
general = [
ripgrep
fd
];
treesitter = [
tree-sitter
];
lang = {
lua = {
lsp = [ lua-language-server ];
format = [ stylua ];
};
nix = {
lsp = [
nil
nix-doc # TODO: i forgot what this is for
];
format = [ nixfmt ];
};
rust = {
lsp = [
cargo
mpkgs.rust-analyzer
];
format = [ rustfmt ];
};
zig = [
spkgs.zls # FIX: using spkgs version as zls is broken rn ;-;
];
elixir = [
elixir-ls
];
gleam = [
gleam
];
haskell = {
lsp = [ haskell-language-server ];
format = [ ormolu ];
};
java = [
categoryDefinitions.replace = {
pkgs,
settings,
categories,
extra,
name,
mkNvimPlugin,
...
} @ packageDef: {
lspsAndRuntimeDeps = with pkgs; {
general = [
ripgrep
fd
];
treesitter = [
tree-sitter
];
lang = {
lua = {
lsp = [lua-language-server];
format = [stylua];
};
nix = {
lsp = [nil];
format = [alejandra];
docs = [nix-doc]; # TODO: i forgot how to integrate this into neovim
};
rust = {
lsp = [cargo mpkgs.rust-analyzer];
# nightly rustfmt has nicer features :3
format = [(rustfmt.override {asNightly = true;})];
};
zig = {
lsp = [zls];
# TODO: needs formatter field
};
elixir = {
lsp = [elixir-ls];
# TODO: needs formatter field
};
gleam = {
lsp = [gleam];
# TODO: needs formatter field
};
haskell = {
lsp = [haskell-language-server];
format = [ormolu];
};
java = {
lsp = [
jdt-language-server
javaPackages.compiler.openjdk17
javaPackages.compiler.openjdk21
];
# TODO: needs formatter field
};
};
startupPlugins = with pkgs.vimPlugins; {
general = [
lze
plenary-nvim
nvim-notify
nvim-web-devicons
base16-nvim
mini-nvim
];
treesitter = [
nvim-treesitter-textobjects
nvim-treesitter.withAllGrammars
];
};
optionalPlugins = with pkgs.vimPlugins; {
general = [
];
ui = [
dressing-nvim
];
qol = [
undotree
mini-hipatterns
];
telescope = [
telescope-nvim
telescope-fzf-native-nvim
telescope-ui-select-nvim
];
fyler = [
fyler-nvim
];
lsp = [
nvim-lspconfig
];
completion = [
blink-cmp
nvim-cmp
luasnip
friendly-snippets
cmp_luasnip
cmp-buffer
cmp-path
cmp-nvim-lua
cmp-nvim-lsp
cmp-cmdline
cmp-nvim-lsp-signature-help
cmp-cmdline-history
lspkind-nvim
];
format = [
conform-nvim
];
comment = [
comment-nvim
];
lang = {
java = [
nvim-jdtls
];
protobuf = {
lsp = [protols];
format = [buf];
};
};
# shared libraries to be added to LD_LIBRARY_PATH
# variable available to nvim runtime
sharedLibraries = {
general = with pkgs; [
# libgit2
];
};
environmentVariables = {
lang = {
rust.lsp = {
# it literally won't see the rust-analyzer provided to it
# if you don't use an envrionment variable to tell it
RUST_ANALYZER_CMD = "${mpkgs.rust-analyzer}/bin/rust-analyzer";
};
elixir.lsp = {
ELIXIR_LS_CMD = "${pkgs.elixir-ls}/scripts/language_server.sh";
};
java.lsp = {
JAVA_HOME = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_17 = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_21 = "${pkgs.javaPackages.compiler.openjdk21}";
};
toml = {
format = [taplo];
};
bash = {
lsp = [bash-language-server];
};
sql = {
format = [sqlfluff];
};
};
extraWrapperArgs = {
test = [
''--set CATTESTVAR2 "It worked again!"''
];
};
# lists of the functions you would have passed to
# python.withPackages or lua.withPackages
# get the path to this python environment
# in your lua config via
# vim.g.python3_host_prog
# or run from nvim terminal via :!<packagename>-python3
extraPython3Packages = {
test = _: [ ];
};
# populates $LUA_PATH and $LUA_CPATH
extraLuaPackages = {
test = [ (_: [ ]) ];
};
};
startupPlugins = with pkgs.vimPlugins; {
general = [
lze
plenary-nvim
nvim-notify
nvim-web-devicons
base16-nvim
mini-nvim
];
treesitter = [
nvim-treesitter-textobjects
nvim-treesitter.withAllGrammars
];
};
optionalPlugins = with pkgs.vimPlugins; {
general = [];
ui = [
dressing-nvim
];
qol = [
undotree
mini-hipatterns
];
telescope = {
enable = [
telescope-nvim
telescope-ui-select-nvim
];
fzf = [telescope-fzf-native-nvim];
zf = [telescope-zf-native-nvim];
};
fyler = [
fyler-nvim
];
lsp = [
nvim-lspconfig
];
completion = [
blink-cmp
nvim-cmp
luasnip
friendly-snippets
cmp_luasnip
cmp-buffer
cmp-path
cmp-nvim-lua
cmp-nvim-lsp
cmp-cmdline
cmp-nvim-lsp-signature-help
cmp-cmdline-history
lspkind-nvim
];
format = [
conform-nvim
];
comment = [
comment-nvim
];
git = {
merge = [
resolve-nvim
vim-fugitive
];
gitsigns = [
gitsigns-nvim
];
};
lang = {
java = [
nvim-jdtls
];
};
};
# shared libraries to be added to LD_LIBRARY_PATH
# variable available to nvim runtime
sharedLibraries = {
general = with pkgs; [
# libgit2
];
};
environmentVariables = {
lang = {
rust.lsp = {
# it literally won't see the rust-analyzer provided to it
# if you don't use an envrionment variable to tell it
RUST_ANALYZER_CMD = "${mpkgs.rust-analyzer}/bin/rust-analyzer";
};
elixir.lsp = {
ELIXIR_LS_CMD = "${pkgs.elixir-ls}/scripts/language_server.sh";
};
java.lsp = {
JAVA_HOME = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_17 = "${pkgs.javaPackages.compiler.openjdk17}";
OPENJDK_21 = "${pkgs.javaPackages.compiler.openjdk21}";
};
};
};
extraWrapperArgs = {};
# lists of the functions you would have passed to
# python.withPackages or lua.withPackages
# get the path to this python environment
# in your lua config via
# vim.g.python3_host_prog
# or run from nvim terminal via :!<packagename>-python3
extraPython3Packages = {};
# populates $LUA_PATH and $LUA_CPATH
extraLuaPackages = {};
};
# see :help nixCats.flake.outputs.packageDefinitions
packageDefinitions.replace = {
# these are the names of your packages
# you can include as many as you wish.
auroranvim =
{ pkgs, ... }:
{
# they contain a settings set defined above
# see :help nixCats.flake.outputs.settings
settings = {
wrapRc = true;
# IMPORTANT:
# your alias may not conflict with your other packages.
aliases = [
"auroravim"
"auravim"
"foxyvim"
"avix"
"fvix"
"auim"
];
auroranvim = {pkgs, ...}: {
# they contain a settings set defined above
# see :help nixCats.flake.outputs.settings
settings = {
wrapRc = true;
# IMPORTANT:
# your alias may not conflict with your other packages.
aliases = [
"auravim"
"foxyvim"
"avix"
"fvix"
];
};
# and a set of categories that you want
# (and other information to pass to lua)
categories = {
general = true;
ui = true;
qol = true;
telescope = {
enable = true;
# only enable one at a time
fzf = false;
zf = true;
};
# and a set of categories that you want
# (and other information to pass to lua)
categories = {
general = true;
ui = true;
qol = true;
telescope = true;
fyler = true;
lsp = true;
completion = true;
treesitter = true;
format = true;
comment = true;
fyler = true;
lang = {
lua = {
lsp = true;
format = true;
};
nix = {
lsp = true;
format = true;
};
rust = {
lsp = true;
format = true;
};
zig = true;
elixir = true;
gleam = true;
haskell = {
lsp = true;
format = true;
};
java = true;
};
lsp = true;
completion = true;
treesitter = true;
format = true;
comment = true;
git = {
merge = false; # not really setup yet.. </3
gitsigns = true;
};
lang = {
lua.lsp = true;
lua.format = true;
nix.lsp = true;
nix.format = true;
nix.docs = true;
rust.lsp = true;
rust.format = true;
zig.lsp = true;
zig.format = true;
elixir.lsp = true;
elixir.format = true;
gleam.lsp = true;
gleam.format = true;
haskell.lsp = true;
haskell.format = true;
java.lsp = true;
java.format = true;
protobuf.lsp = true;
protobuf.format = true;
toml.format = true;
bash.lsp = true;
sql.format = true;
};
};
};
};
};
};

View file

@ -1,4 +1,9 @@
{inputs, ...}: {
{
inputs,
upkgs,
mpkgs,
...
}: {
imports = [
inputs.nixcord.homeModules.nixcord
];
@ -6,10 +11,12 @@
programs.nixcord = {
enable = true;
equibop.enable = true;
equibop.package = upkgs.equibop;
discord = {
vencord.enable = false;
equicord.enable = true;
equicord.package = mpkgs.equicord;
};
config = {
@ -68,7 +75,6 @@
forwardAnywhere.enable = true;
spotifyCrack.enable = true;
spotifyShareCommands.enable = true;
spotifyControls.enable = true;
fullUserInChatbox.enable = true;
gifPaste.enable = true;
ignoreActivities = {
@ -133,7 +139,7 @@
whoReacted.enable = true;
whosWatching.enable = true;
quickReply.enable = true;
questCompleter.enable = true;
# questCompleter.enable = true; # does not seem to exist anymore?
shikiCodeblocks = {
enable = true;
useDevIcon = "COLOR";
@ -157,7 +163,6 @@
"1436964273162289185"
"1436988320474206311"
"1449837047383855119"
"1436965652861685891"
"1436968495190642722"
"1465424321919975454"
"1468324280445046824"
@ -202,6 +207,7 @@
"1419557866502754334"
"1436985041203892315"
"1438071327515742229"
"1436965652861685891"
];
}
{
@ -247,4 +253,8 @@
];
};
};
programs.nixcord.config.plugins.bypassStatus = {
enable = true;
};
}

View file

@ -8,7 +8,7 @@
programs.yazi = {
enable = true;
enableZshIntegration = false; # i mod"if"ied the script in my .zshrc
enableZshIntegration = false; # i modified the script in my .zshrc
settings = {
mgr = {
@ -170,7 +170,7 @@
[filechooser]
cmd=${upkgs.xdg-desktop-portal-termfilechooser}/share/xdg-desktop-portal-termfilechooser/yazi-wrapper.sh
default_dir=$HOME
env=TERMCMD='kitty --title filechooser'
env=TERMCMD='alacritty --title filechooser -e '
open_mode=suggested
save_mode=last
'';

View file

@ -0,0 +1 @@
#!/usr/bin/env bash

View file

@ -1,2 +1,2 @@
#!/usr/bin/env bash
pkill -f "kitty --title btop -e btop" || { kitty --title btop -e btop & disown; }
pkill -f "alacritty --title btop -e btop" || { alacritty --title btop -e btop & disown; }

View file

@ -0,0 +1,128 @@
{
"$schema": "https://github.com/fastfetch-cli/fastfetch/raw/dev/doc/json_schema.json",
"logo": {
"type": "auto",
"source": "nixos",
},
"display": {
"separator": " > ",
"constants": [],
},
"modules": [
{
"type": "title",
"format": "╭─────╯ {user-name}@{host-name} ╰───────────────╌╌╌┄┄┄┈┈┈",
"outputColor": "cyan",
},
{
"type": "os",
"key": "│ os",
"keyColor": "cyan",
"format": "{name} {version}",
},
{
"type": "kernel",
"key": "│ kernel",
"keyColor": "cyan",
"format": "{sysname} {arch} - {release}",
},
{
"type": "uptime",
"key": "│ uptime",
"keyColor": "cyan",
},
{
"type": "packages",
"key": "│ pkgs",
"keyColor": "cyan",
},
{
"type": "cpu",
"key": "│ cpu",
"keyColor": "magenta",
"temp": true,
"format": "{name} {cores-physical}c/{cores-logical}t @ {freq-max} ({temperature})",
},
{
"type": "gpu",
"key": "│ gpu{1}",
"keyColor": "magenta",
"driverSpecific": false,
"detectionMethod": "pci",
"temp": true,
"percent": {
"green": 50,
"yellow": 80,
"type": 0
},
"format": "{name} ({temperature}) [{type}]",
},
{
"type": "memory",
"key": "│ memory",
"keyColor": "magenta",
},
{
"type": "swap",
"key": "│ swap",
"keyColor": "magenta",
},
{
"type": "disk",
"key": "│ disk({1})",
"keyColor": "magenta",
},
{
"type": "shell",
"key": "│ shell",
"keyColor": "green",
},
{
"type": "terminal",
"key": "│ term",
"keyColor": "green",
},
{
"type": "wm",
"key": "│ wm",
"keyColor": "green",
},
{
"type": "terminalfont",
"key": "│ font",
"keyColor": "green",
"format": "{name}",
},
{
"type": "locale",
"key": "│ locale",
"keyColor": "green",
},
{
"type": "title",
"format": "├─────────────────────────────────────────╌╌╌┄┄┄┈┈┈",
"outputColor": "red",
},
{
"type": "command",
"key": "│",
"keyWidth": 3,
"keyColor": "red",
"shell": "bash",
"text": "for i in {0..7}; do printf \"\\e[4%dm \\e[0m\" $i; done",
},
{
"type": "command",
"key": "│",
"keyWidth": 3,
"keyColor": "red",
"shell": "bash",
"text": "for i in {0..7}; do printf \"\\e[10%dm \\e[0m\" $i; done",
},
{
"type": "title",
"format": "╰─────────────────────────────────────────╌╌╌┄┄┄┈┈┈",
"outputColor": "red",
},
]
}

View file

@ -14,16 +14,22 @@
];
initContent = ''
# yazi wrapper!!!
function yazi() {
local tmp="$(mktemp -p "/run/user/$UID" -t "yazi-cwd.XXXXXX")" cwd
command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d ''' cwd < "$tmp"
[ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd"
rm -f -- "$tmp"
}
# yazi wrapper!!!
function yazi() {
local tmp="$(mktemp -p "/run/user/$UID" -t "yazi-cwd.XXXXXXXX")" cwd
command yazi "$@" --cwd-file="$tmp"
IFS= read -r -d ''' cwd < "$tmp"
[ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd"
rm -f -- "$tmp"
}
hyfetch # oh i'm so gay!! :3
# oh i'm so gay!! :3
function hf() {
local queer_flags=('genderfae' 'lesbian' 'xenogender' 'transgender' 'transfeminine' 'transbian' 'pansexual')
local ascii_art=('fox-1.txt' 'fox-2.txt' 'fox-3.txt' 'blackhole-1.txt' 'butterfly-4.txt' 'butterfly-7.txt' 'flower-3.txt' 'flower-4.txt')
hyfetch --ascii-file="$XDG_DATA_HOME/ascii-art/$ascii_art[RANDOM % $#ascii_art + 1]" --preset="$queer_flags[RANDOM % $#queer_flags + 1]" --args="--config themes/laimu.jsonc"
}
hf
'';
shellAliases = {
@ -50,7 +56,7 @@
# open nix develop with preferred shell
# description: nd = nix develop
nd = "nix develop -c $SHELL";
nd = "[[ -f ./flake.sh ]] && ./flake.sh -c $SHELL || nix develop -c $SHELL";
# description: cdns = change directory [to] nix settings
cdns = "cd ~/.nix";
@ -65,9 +71,6 @@
# upgrades the system
upgrade = "cdns && nix flake update && nh os switch ./ --accept-flake-config";
# kitty's ssh command (to fix xterm and other stuff qwq)
kssh = "kitty +kitten ssh";
# pipes are prettyyyy!!!! :3333
pipes1 = "pipes.sh -r 1024 -p 8 -f 30";
pipes2 = "pipes.sh -r 4096 -p 16 -f 100";

View file

@ -0,0 +1,27 @@
[colors.primary]
background = '{{ background }}'
foreground = '{{ foreground }}'
[colors.cursor]
cursor = '{{ cursor }}'
text = '{{ cursor }}'
[colors.normal]
black = '{{ color0 }}'
red = '{{ color1 }}'
green = '{{ color2 }}'
yellow = '{{ color3 }}'
blue = '{{ color4 }}'
magenta = '{{ color5 }}'
cyan = '{{ color6 }}'
white = '{{ color7 }}'
[colors.bright]
black = '{{ color8 }}'
red = '{{ color9 }}'
green = '{{ color10 }}'
yellow = '{{ color11 }}'
blue = '{{ color12 }}'
magenta = '{{ color13 }}'
cyan = '{{ color14 }}'
white = '{{ color15 }}'

View file

@ -0,0 +1,24 @@
[colors]
alpha=1.000000
alpha-mode=default
background={{ background | strip }}
foreground={{ foreground | strip }}
selection-background={{ foreground | strip }}
selection-foreground={{ background | strip }}
regular0={{ color0 | strip }}
regular1={{ color1 | strip }}
regular2={{ color2 | strip }}
regular3={{ color3 | strip }}
regular4={{ color4 | strip }}
regular5={{ color5 | strip }}
regular6={{ color6 | strip }}
regular7={{ color7 | strip }}
bright0={{ color8 | strip }}
bright1={{ color9 | strip }}
bright2={{ color10 | strip }}
bright3={{ color11 | strip }}
bright4={{ color12 | strip }}
bright5={{ color13 | strip }}
bright6={{ color14 | strip }}
bright7={{ color15 | strip }}
urls={{ color13 | strip }}

View file

@ -0,0 +1,11 @@
# background color of the root window
rootcolor=0x{{ color12 | strip }}ff
# inactive window border
bordercolor=0x{{ color0 | strip }}ff
# active window border
focuscolor=0x{{ color14 | strip }}ff
# urgent / alerted window border
urgentcolor=0x{{ color10 | strip }}ff

View file

@ -14,5 +14,5 @@
{{ color13 }}
{{ color14 }}
{{ color15 }}
{{ background }}
{{ foreground }}
{{ background }}

View file

@ -13,12 +13,18 @@ equibop.target = "~/.config/equibop/themes/base16-colors.css"
equicord.template = "discord-template.css"
equicord.target = "~/.config/Equicord/themes/base16-colors.css"
kitty.template = "kitty-template.conf"
kitty.target = "~/.config/kitty/theme.conf"
hyprland.template = "hyprland-template.conf"
hyprland.target = "~/.config/hypr/colors.conf"
mango.template = "mango-template.conf"
mango.target = "~/.config/mango/colors.conf"
foot.template = "foot-template.ini"
foot.target = "~/.config/foot/theme.ini"
alacritty.template = "alacritty-template.toml"
alacritty.target = "~/.config/alacritty/theme.toml"
waybar.template = "waybar-template.css"
waybar.target = "~/.config/waybar/colors.css"

View file

@ -1,7 +1,7 @@
# a submap for emulating keys/buttons/functions on the keyboard or mouse
bind = $mod+shift+alt, a, submap, virtual
submap = virtual
bind = $mod+shift, c, submap, cursor
submap = cursor
# exit submap
bind = , escape, submap, reset
@ -38,6 +38,6 @@ binde = alt, e, exec, wlrctl pointer scroll -15 0 # scroll left
binde = alt, y, exec, wlrctl pointer scroll 0 15 # scroll right
# catches all other keys and keeps us in the submap
bind = , catchall, submap, virtual
bind = , catchall, submap, cursor
submap = reset

View file

@ -1,10 +1,19 @@
# window rules
# ---------------------------------------------------------------------------- #
# terminal - blur
windowrule {
name = terminal-blur
match:class = ^(foot|Alacritty)$
match:fullscreen = false
opacity = 0.95
}
# ---------------------------------------------------------------------------- #
# task manager
windowrule {
name = task-manager
match:class = ^(kitty)$
name = terminal-manager
match:class = ^(foot|Alacritty)$
match:title = ^(btop)$
float = true
center = true
@ -15,33 +24,13 @@ windowrule {
# terminal filechooser
windowrule {
name = terminal-filechooser
match:class = ^(kitty)$
match:class = ^(foot|Alacritty)$
match:title = ^(filechooser)$
float = true
center = true
size = (monitor_w*0.85) (monitor_h*0.85)
}
# ---------------------------------------------------------------------------- #
# yazi explorer
#windowrule {
#name = yazi
#match:class = ^(kitty)$
#match:title = ^(yazi)$
#float = true
#center = true
#size = (monitor_w*0.85) (monitor_h*0.85)
#}
# ---------------------------------------------------------------------------- #
# kitty - blur
windowrule {
name = kitty-blur
match:class = ^(kitty)$
match:fullscreen = false
opacity = 0.95
}
# ---------------------------------------------------------------------------- #
# imhex - blur
windowrule {
@ -59,3 +48,13 @@ windowrule {
match:fullscreen = false
opacity = 0.97
}
# ---------------------------------------------------------------------------- #
# spotify - blur
windowrule {
name = spotify-blur
match:class = ^(spotify)$
match:initial_class = ^(spotify)$
match:fullscreen = false
opacity = 0.93
}

View file

@ -4,10 +4,6 @@
package = null;
portalPackage = null;
plugins = [
#inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprscrolling
];
xwayland.enable = true;
extraConfig = ''
@ -23,8 +19,8 @@
"$mod" = "SUPER";
# applications
"$terminal" = "kitty";
"$explorer" = "kitty -e yazi";
"$terminal" = "alacritty";
"$explorer" = "alacritty -e yazi";
"$browser" = "zen-twilight";
# menu
@ -64,18 +60,18 @@
layout = "dwindle";
};
plugin = {
# options at https://github.com/hyprwm/hyprland-plugins/tree/main/hyprscrolling
hyprscrolling = {
fullscreen_on_one_column = false;
column_width = 1.0;
};
};
dwindle = {
preserve_split = true;
};
scrolling = {
fullscreen_on_one_column = true;
column_width = 0.9;
wrap_focus = true;
wrap_swapcol = true;
direction = "right";
};
decoration = {
rounding = 8;
@ -111,7 +107,7 @@
force_no_accel = false; # not recommended to turn on
};
cursor.no_hardware_cursors = true;
# cursor.no_hardware_cursors = true;
misc = {
enable_anr_dialog = false;
@ -130,6 +126,12 @@
"alt, tab, exec, pkill -x rofi || rofi -modi window -show window -show-icons"
"$mod, v, exec, pkill -x rofi || cliphist list | rofi -dmenu | cliphist decode | wl-copy"
# manage windows / session
"$mod+alt, c, killactive"
"$mod, f, fullscreen"
"$mod, x, togglefloating"
"$mod+Alt, Delete, exit" # exit hyprland
# screenshots
# todo: add active monitor
"$mod, s, exec, grim -g \"\$(slurp -d)\" - | wl-copy" # region
@ -137,7 +139,7 @@
"$mod+ctrl, s, exec, grim - | wl-copy" # all monitors
# hyprpicker
"$mod, n, exec, hyprpicker -v"
"$mod, n, exec, hyprpicker | wl-copy"
# hyprlock
"$mod+alt, y, exec, hyprlock"
# task manager
@ -152,12 +154,8 @@
"Shift_R, XF86AudioPlay, exec, playerctl shuffle toggle"
"Shift_R, XF86AudioNext, exec, playerctl loop track"
# manage windows / session
"$mod+alt, c, killactive"
"$mod, f, fullscreen"
"$mod, x, togglefloating"
"$mod, i, togglesplit"
"$mod+Alt, Delete, exit" # exit hyprland
# dwindle layout keybinds
"$mod, i, layoutmsg, togglesplit"
# move focus
"$mod, h, movefocus, l"
@ -278,26 +276,29 @@
];
layerrule = [
#"blur, aurorashell"
#"ignorealpha 0.7, aurorashell"
#"blur, aurorashell"
#"ignorealpha 0.7, aurorashell"
"blur on, match:namespace waybar"
"ignore_alpha 0, match:namespace waybar"
"blur on, match:namespace waybar"
"ignore_alpha 0, match:namespace waybar"
"blur on, match:namespace rofi"
"xray on, match:namespace rofi"
"ignore_alpha 0, match:namespace rofi"
"blur on, match:namespace rofi"
"xray on, match:namespace rofi"
"ignore_alpha 0, match:namespace rofi"
];
env = [
"EDITOR,auravim"
"XCURSOR_THEME,Bunny (Icy) and Strawberries"
"XCURSOR_SIZE,24"
"HYPRCURSOR_THEME,Bunny (Icy) and Strawberries"
"HYPRCURSOR_SIZE,24"
"QT_QPA_PLATFORM,wayland"
# makes portals work correctly
"QT_QPA_PLATFORMTHEME,xdgdesktopportal"
# the other option that might work :3
#"QT_QPA_PLATFORMTHEME,flatpak"
];
};
};

View file

@ -0,0 +1,14 @@
{inputs, ...}: {
imports = [
inputs.mango.hmModules.mango
];
wayland.windowManager.mango = {
enable = true;
};
xdg.configFile."mango" = {
recursive = true;
source = ./mango;
};
}

View file

@ -0,0 +1,248 @@
################################################################################
##### Monitors /////////////////////////////////////////////////////////////////
################################################################################
# note: display stream compression pending for open source
# amd gpu driver and my monitor (VG279QM) only supports DP 1.2
# so no >240hz atm
# main monitor
monitorrule = name:DP-2,width:1920,height:1080,refresh:240,x:0,y:0
# second monitor
monitorrule = name:DP-3,width:1920,height:1080,refresh:144,x:1920,y:0
# third monitor (drawing tablet)
monitorrule = name:HDMI-A-2,width:2560,height:1440,refresh:60,x:3840,y:0
# tv
monitorrule = name:HDMI-A-1,width:1920,height:1080,refresh:60,x:-1920,y:0
################################################################################
##### Startup //////////////////////////////////////////////////////////////////
################################################################################
exec-once = waybar
exec-once = waybar --config ~/.config/mango/waybar.jsonc
exec-once = awww-daemon
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
exec-once = wl-clip-persist --clipboard regular
exec-once = playerctld daemon
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY XDG_SESSION_TYPE=wayland XDG_CURRENT_DESKTOP=wlroots PATH
################################################################################
##### Themeing /////////////////////////////////////////////////////////////////
################################################################################
borderpx = 2
gappih = 5 # inner gap horizontal
gappiv = 5 # inner gap vertical
gappoh = 10 # outer gap horizontal
# we set the bottom vertical gap by using an empty layer that defines an exclusive zone
gappov = 0 # outer gap vertical
border_radius = 8
focused_opacity = 1.0
unfocused_opacity = 1.0
blur = 1
blur_layer = 1
blur_optimized = 1
blur_params_radius = 6
blur_params_num_passes = 2
blur_params_noise = 0.02
blur_params_brightness = 0.9
blur_params_contrast = 0.9
blur_params_saturation = 1.2
cursor_size=24
cursor_theme=Bunny (Icy) and Strawberries
################################################################################
##### Animations ///////////////////////////////////////////////////////////////
################################################################################
animations=1
layer_animations=1
################################################################################
##### Input ////////////////////////////////////////////////////////////////////
################################################################################
# keyboard stuff
repeat_rate = 50
repeat_delay = 300
# mouse stuff
accel_profile = 0
################################################################################
##### Keybinds /////////////////////////////////////////////////////////////////
################################################################################
# applications
bind = SUPER, t, spawn, alacritty
bind = SUPER, e, spawn, alacritty -e yazi
bind = SUPER, r, spawn, zen-twilight
# rofi
bind = SUPER, d, spawn_shell, pkill -x rofi || rofi -show drun -show-icons
bind = SUPER, v, spawn_shell, pkill -x rofi || cliphist list | rofi -dmenu | cliphist decode | wl-copy
bind = ALT, TAB, spawn_shell, pkill -x rofi || rofi -modi window -show window -show-icons
# manage session
bind = SUPER+ALT, c, killclient
bind = SUPER+SHIFT, r, reload_config
bind = SUPER+ALT, delete, quit
# screenshots
# grim - | wl-copy
bind = SUPER, s, spawn_shell, grim -g $(slurp -d) - | wl-copy
bind = SUPER+ALT, s, spawn_shell, grim -g $(slurp -o) - | wl-copy
bind = SUPER+CTRL, s, spawn_shell, grim - | wl-copy
# task manager
bind = SUPER+CTRL, escape, spawn, task-manager.sh
bind = SUPER+CTRL, grave, spawn, task-manager.sh
# color picker
bind = SUPER, n, spawn, hyprpicker -v
# lock screen
bind = SUPER+ALT, y, spawn, hyprlock
# media keybinds
bind = NONE, XF86AudioMute, spawn, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bind = NONE, XF86AudioPlay, spawn, playerctl play-pause
bind = NONE, XF86AudioNext, spawn, playerctl next
bind = NONE, XF86AudioPrev, spawn, playerctl previous
# needs to be `bind` for some reason, doesn't work otherwise
# if all of them are `bind` and not `binds`, it also doesn't work
# weird bug!! qwq
binds = Shift_R, XF86AudioPlay, spawn_shell, playerctl shuffle toggle
binds = Shift_R, XF86AudioNext, spawn, playerctl loop track
bind = NONE, XF86AudioRaiseVolume, spawn, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+
bind = NONE, XF86AudioLowerVolume, spawn, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%-
binds = Shift_R, XF86AudioRaiseVolume, spawn, playerctl volume 0.05+
binds = Shift_R, XF86AudioLowerVolume, spawn, playerctl volume 0.05-
# window states
bind = SUPER, f, togglefullscreen
bind = SUPER+ALT, f, togglefakefullscreen
bind = SUPER, x, togglefloating
# layouts
bind = SUPER, u, switch_layout
# move focus - l/d/u/r
bind = SUPER, h, focusdir, left
bind = SUPER, j, focusdir, down
bind = SUPER, k, focusdir, up
bind = SUPER, l, focusdir, right
# move focus - stack
bind = SUPER+SHIFT, j, focusstack, next
bind = SUPER+SHIFT, k, focusstack, prev
# swap window - l/d/u/r
bind = SUPER+ALT, h, exchange_client, left
bind = SUPER+ALT, j, exchange_client, down
bind = SUPER+ALT, k, exchange_client, up
bind = SUPER+ALT, l, exchange_client, right
# swap window - stack
bind = SUPER+SHIFT, h, exchange_stack_client, next
bind = SUPER+SHIFT, l, exchange_stack_client, prev
# swap focused window with master
bind = SUPER, g, zoom
# view tag
BIND = SUPER, 1, view, 1, 0
BIND = SUPER, 2, view, 2, 0
BIND = SUPER, 3, view, 3, 0
BIND = SUPER, 4, view, 4, 0
BIND = SUPER, 5, view, 5, 0
BIND = SUPER, 6, view, 6, 0
BIND = SUPER, 7, view, 7, 0
BIND = SUPER, 8, view, 8, 0
BIND = SUPER, 9, view, 9, 0
BIND = SUPER, 0, view, 10, 0
BIND = SUPER, minus, view, 11, 0
BIND = SUPER, equal, view, 12, 0
# toggle tag on monitor
BIND = SUPER+ALT, 1, toggletag, 1, 0
BIND = SUPER+ALT, 2, toggletag, 2, 0
BIND = SUPER+ALT, 3, toggletag, 3, 0
BIND = SUPER+ALT, 4, toggletag, 4, 0
BIND = SUPER+ALT, 5, toggletag, 5, 0
BIND = SUPER+ALT, 6, toggletag, 6, 0
BIND = SUPER+ALT, 7, toggletag, 7, 0
BIND = SUPER+ALT, 8, toggletag, 8, 0
BIND = SUPER+ALT, 9, toggletag, 9, 0
BIND = SUPER+ALT, 0, toggletag, 10, 0
BIND = SUPER+ALT, minus, toggletag, 11, 0
BIND = SUPER+ALT, equal, toggletag, 12, 0
# move window to tag
BIND = SUPER+SHIFT, 1, tag, 1, 0
BIND = SUPER+SHIFT, 2, tag, 2, 0
BIND = SUPER+SHIFT, 3, tag, 3, 0
BIND = SUPER+SHIFT, 4, tag, 4, 0
BIND = SUPER+SHIFT, 5, tag, 5, 0
BIND = SUPER+SHIFT, 6, tag, 6, 0
BIND = SUPER+SHIFT, 7, tag, 7, 0
BIND = SUPER+SHIFT, 8, tag, 8, 0
BIND = SUPER+SHIFT, 9, tag, 9, 0
BIND = SUPER+SHIFT, 0, tag, 10, 0
BIND = SUPER+SHIFT, minus, tag, 11, 0
BIND = SUPER+SHIFT, equal, tag, 12, 0
# mouse binds :3
mousebind = SUPER, btn_left, moveresize, curmove
mousebind = SUPER, btn_right, moveresize, curresize
################################################################################
##### Miscellaneous ////////////////////////////////////////////////////////////
################################################################################
# focus follows mouse cursor
sloppyfocus = 1
# automatically focus windows when they request activiation
focus_on_activate = 1
# scroll speed
axis_scroll_factor = 1.0
# disables hotarea for overview mode
enable_hotarea = 0
################################################################################
##### Environment Variables ////////////////////////////////////////////////////
################################################################################
env = XCURSOR_THEME,Bunny (Icy) and Strawberries
env = XCURSOR_SIZE,24
env = QT_QPA_PLATFORM,wayland
env = QT_QPA_PLATFORMTHEME,xdgdesktopportal
################################################################################
##### Imports //////////////////////////////////////////////////////////////////
################################################################################
# windowrules!!! <3
source = ./windowrules.conf
# layerrules :3
source = ./layerrules.conf
# colors generated from palette generator
source = ./colors.conf

View file

@ -0,0 +1,3 @@
# ---------------------------------------------------------------------------- #
# slurp no blur
layerrule=noblur:1,layer_name:selection

View file

@ -0,0 +1,5 @@
{
"layer": "bottom",
"position": "bottom",
"height": 10,
}

View file

@ -0,0 +1,7 @@
# ---------------------------------------------------------------------------- #
# i don't wanna minimise windows
windowrule = ignore_minimise
# ---------------------------------------------------------------------------- #
# terminal - blur
windowrule = appid:^(foot|Alacritty)$, focused_opacity:0.95, unfocused_opacity:0.95

View file

@ -1,16 +1,15 @@
{spkgs, ...}: {
{...}: {
wayland.windowManager.river = let
layout = "rivertile";
in {
enable = true;
xwayland.enable = true;
package = spkgs.river-classic; # FIX: using spkgs version as zls is broken rn ;-;
settings = let
main = "Super";
# applications
terminal = "kitty";
terminal = "alacritty";
browser = "firefox";
in {
default-layout = "${layout}";
@ -18,7 +17,7 @@
border-width = 1;
spawn = [
''${layout}''
"${layout}"
"awww-daemon"
"waybar"
@ -37,7 +36,7 @@
"${main} R" = ''spawn "${browser}"'';
# move focused view to top of layout stack
"${main} N" = ''zoom'';
"${main} N" = "zoom";
# focus next/previous view
"${main} J" = "focus-view previous";

View file

@ -3,7 +3,7 @@
enable = true;
config = rec {
modifier = "Mod4"; # Mod4 = Super/Meta
terminal = "kitty";
terminal = "alacritty";
# disable sway bar
bars = [];

View file

@ -1,5 +1,4 @@
{ config, lib, pkgs, ... }:
{
{pkgs, ...}: {
imports = [
./hardware-configuration.nix
];
@ -14,7 +13,7 @@
};
boot = {
kernelPackages = pkgs.linuxPackages_latest;
kernelPackages = pkgs.linuxPackages_6_12;
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
@ -35,10 +34,6 @@
};
};
systemd.services.systemd-networkd.environment = {
SYSTEMD_LOG_LEVEL = "debug";
};
systemd.network = {
enable = true;
@ -117,7 +112,7 @@
users.users.foxora = {
isNormalUser = true;
extraGroups = [ "wheel" ];
extraGroups = ["wheel"];
packages = with pkgs; [
tree

View file

@ -1,32 +1,35 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
lib,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "ehci_pci" "megaraid_sas" "usb_storage" "usbhid" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["ahci" "ehci_pci" "megaraid_sas" "usb_storage" "usbhid" "sd_mod" "sr_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/7f22e35f-7536-49c4-9c04-88874e87f266";
fsType = "btrfs";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/7f22e35f-7536-49c4-9c04-88874e87f266";
fsType = "btrfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/0213-F9A0";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/0213-F9A0";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/0d04172b-aed8-42ea-9cb8-e5dcbf960200"; }
];
swapDevices = [
{device = "/dev/disk/by-uuid/0d04172b-aed8-42ea-9cb8-e5dcbf960200";}
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View file

@ -0,0 +1,85 @@
{
config,
lib,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix
];
networking.hostName = "delphinus";
boot = {
kernelPackages = pkgs.linuxPackages_latest;
loader = {
timeout = 10;
grub = {
enable = true;
forceInstall = true;
device = "nodev";
extraConfig = ''
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
terminal_input serial;
terminal_output serial
'';
};
};
};
networking = {
networkmanager.enable = true;
useDHCP = false;
usePredictableInterfaceNames = false;
nftables.enable = true;
firewall = {
enable = true;
allowedTCPPorts = [6767];
allowedUDPPorts = [];
};
};
time.timeZone = "Europe/Amsterdam";
i18n.defaultLocale = "en_US.UTF-8";
console = {
font = "Lat2-Terminus16";
keyMap = "us";
};
users.users.fox = {
isNormalUser = true;
extraGroups = ["wheel"];
packages = with pkgs; [
tree
];
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPGwai/gXJOJZQujpk0BSwdjSe2as3pT567bYhzjaQ4M aurora@nixarawrui"
];
};
services = {
openssh = {
enable = true;
ports = [6767];
settings = {
PasswordAuthentication = false;
PermitRootLogin = "no";
AllowUsers = ["fox"];
UseDns = false; # disable rDNS lookup
X11Forwarding = false;
};
};
};
environment.systemPackages = with pkgs; [
neovim
git
wget
];
system.stateVersion = "25.11";
}

View file

@ -0,0 +1,26 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "virtio_pci" "virtio_scsi" "ahci" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/sda";
fsType = "ext4";
};
swapDevices =
[ { device = "/dev/sdb"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

View file

@ -1,5 +1,4 @@
{ config, lib, pkgs, ... }:
{
{pkgs, ...}: {
imports = [
./hardware-configuration.nix
];
@ -14,7 +13,7 @@
};
boot = {
kernelPackages = pkgs.linuxPackages_latest;
kernelPackages = pkgs.linuxPackages_6_12;
loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
@ -23,11 +22,13 @@
networking = {
networkmanager.enable = true;
nftables.enable = true;
firewall = {
allowedTCPPorts = [
2222
];
allowedUDPPorts = [];
};
};
@ -40,7 +41,7 @@
PasswordAuthentication = false;
PermitRootLogin = "no";
AllowUsers = ["foxora"];
UseDns = false; # enables rDNS lookup
UseDns = false; # disable rDNS lookup
X11Forwarding = false;
};
};
@ -57,7 +58,7 @@
users.users.foxora = {
isNormalUser = true;
extraGroups = [ "wheel" ];
extraGroups = ["wheel"];
packages = with pkgs; [
tree
@ -91,4 +92,3 @@
system.stateVersion = "25.11";
}

View file

@ -1,32 +1,35 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
lib,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "megaraid_sas" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "megaraid_sas" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/1bc53888-6db8-46df-aa28-975b710c5de8";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/1bc53888-6db8-46df-aa28-975b710c5de8";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/12CE-A600";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/12CE-A600";
fsType = "vfat";
options = ["fmask=0077" "dmask=0077"];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/60643004-6916-46b3-8655-66fdc28cf5ad"; }
];
swapDevices = [
{device = "/dev/disk/by-uuid/60643004-6916-46b3-8655-66fdc28cf5ad";}
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View file

@ -1,7 +1,8 @@
{
inputs,
lib,
config,
root,
upkgs,
spkgs,
...
}: {
imports = [
@ -19,10 +20,23 @@
efi.canTouchEfiVariables = true;
};
kernelPackages = upkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v4;
# kernelPackages = upkgs.cachyosKernels.linuxPackages-cachyos-latest-lto-x86_64-v4;
# TODO: idk make this a toggle or smth idfk
# kernelPackages = upkgs.linuxPackages_latest;
kernelPackages = upkgs.linuxPackages_zen;
kernelModules = ["v4l2loopback"];
kernelParams = [
# force kernel to use dGPU
"amdgpu.primary=0000:03:00.0"
"video=PCI:0000:03:00.0:e"
"initcall_blacklist=simpledrm_platform_driver_init"
"fbcon=map:0"
# stops kernel from setting power states on nvme drives because it keeps
# disconnecting my drive and my system locks up
"nvme_core.default_ps_max_latency_us=0"
"pcie_aspm=off"
"pcie_port_pm=off"
];
extraModulePackages = with kernelPackages; [v4l2loopback];
# qemu
@ -49,13 +63,11 @@
allowedTCPPorts = [
21110 # slimevr
44949 # rquickshare
];
allowedUDPPorts = [
6969 # slimevr
8266 # slimevr
35903 # slimevr
44949 # rquickshare
];
};
@ -84,10 +96,6 @@
environment.sessionVariables = {
NIXOS_OZONE_WL = "1";
# makes portals work correctly
QT_QPA_PLATFORMTHEME = "xdgdesktopportal";
#QT_QPA_PLATFORMTHEME = "flatpak"; # sometimes might need this
};
xdg.portal = {
@ -133,6 +141,30 @@
services = {
displayManager.sddm.enable = true;
displayManager.sddm.wayland.enable = true;
# force sddm to be on the dGPU
displayManager.sddm.wayland.compositor = "weston";
displayManager.sddm.settings = let
xcfg = config.services.xserver;
# from: https://github.com/NixOS/nixpkgs/blob/1ad2d2e524cb1e7b91ebebcd10d224105dd4e1f2/nixos/modules/services/display-managers/sddm.nix#L132-L143
# as for some reason they do it like this and it makes it harder for me to set the option correctly for my gpu
# NOTE: ask butterfly if there is a better way <3
westonIni = (upkgs.formats.ini {}).generate "weston.ini" {
libinput = {
enable-tap = config.services.libinput.mouse.tapping;
left-handed = config.services.libinput.mouse.leftHanded;
};
keyboard = {
keymap_model = xcfg.xkb.model;
keymap_layout = xcfg.xkb.layout;
keymap_variant = xcfg.xkb.variant;
keymap_options = xcfg.xkb.options;
};
};
in {
Wayland = {
CompositorCommand = "${lib.getExe upkgs.weston} --shell=kiosk --drm-device=card0 -c ${westonIni}";
};
};
udisks2.enable = true;
flatpak.enable = true;
@ -195,7 +227,15 @@
users.aurora = {
isNormalUser = true;
uid = 1000;
extraGroups = ["wheel" "disk" "input" "video" "audio" "networkmanager" "games"];
extraGroups = [
"wheel"
"disk"
"input"
"video"
"audio"
"networkmanager"
"games"
];
shell = upkgs.zsh;
@ -209,6 +249,13 @@
};
};
systemd.tmpfiles.rules = let
imagePath = root + "/homes/aurora/profile.png";
in
lib.mkIf (builtins.pathExists imagePath) [
"L+ /var/lib/AccountsService/icons/aurora - - - - ${imagePath}"
];
programs = {
# nix-ld runs unpatched dynamic binaries on nixos :3
nix-ld.enable = true;
@ -236,8 +283,11 @@
portalPackage = upkgs.hyprland-git.xdg-desktop-portal-hyprland;
};
mango = {
enable = true;
};
river-classic = {
package = spkgs.river-classic; # FIX: using spkgs version as zls is broken rn ;-;
enable = true;
};
@ -258,7 +308,7 @@
alvr = {
enable = true;
package = spkgs.alvr;
package = upkgs.alvr;
openFirewall = true;
};
@ -274,7 +324,7 @@
fish.enable = true;
silentSDDM = {
enable = false;
enable = true;
theme = "rei";
};
};
@ -285,6 +335,9 @@
# linux packages!!!
linuxPackages.v4l2loopback
# weston is needed for sddm
weston
# android yay
android-tools
@ -322,8 +375,6 @@
libxscrnsaver
];
}).run
inputs.nix-alien.packages.${stdenv.hostPlatform.system}.nix-alien
];
system.stateVersion = "24.11";

View file

@ -16,4 +16,20 @@
});
hyprland-git = inputs.hyprland-git.packages.${system};
vimPlugins =
(super.vimPlugins or {})
// {
resolve-nvim = super.vimUtils.buildVimPlugin rec {
pname = "resolve-nvim";
src = super.fetchFromGitHub {
owner = "spacedentist";
repo = "resolve.nvim";
rev = "1ed8bcc9ce7d43a0e8e05d0001c9cadb822d95a8";
sha256 = "1h359zv3hcbg81plch1j1hs9nxpi719ygl2slkfdqigz406r9q86";
};
doCheck = false;
version = builtins.toString (src.lastModified or "master");
};
};
})

View file

@ -6,6 +6,7 @@ cerulean.mkNexus ./. (self: {
modules = with inputs; [];
base = inputs.nixpkgs;
homeManager = inputs.home-manager;
groups = {
servers = {};
@ -21,9 +22,11 @@ cerulean.mkNexus ./. (self: {
system = "x86_64-linux";
base = inputs.nixpkgs-unstable;
homeManager = inputs.home-manager-unstable;
modules = with inputs; [
sddm-silent.nixosModules.default
inputs.mango.nixosModules.mango
];
};
@ -47,7 +50,11 @@ cerulean.mkNexus ./. (self: {
networking.hostName = "home-assistant";
boot.kernelParams = ["console=ttyS0" "console=ttyS1" "8250.nr_uarts=2"];
boot.kernelParams = [
"console=ttyS0"
"console=ttyS1"
"8250.nr_uarts=2"
];
systemd.services."serial-getty@ttyS1".enable = true;
microvm = {
@ -55,9 +62,12 @@ cerulean.mkNexus ./. (self: {
# needed to get interface working
qemu.extraArgs = [
"-monitor" "unix:/var/lib/microvms/home-assistant/monitor.sock,server,nowait"
"-chardev" "socket,id=serial1,path=/var/lib/microvms/home-assistant/serial.sock,server=on,wait=off"
"-serial" "chardev:serial1"
"-monitor"
"unix:/var/lib/microvms/home-assistant/monitor.sock,server,nowait"
"-chardev"
"socket,id=serial1,path=/var/lib/microvms/home-assistant/serial.sock,server=on,wait=off"
"-serial"
"chardev:serial1"
];
# memory cannot be 2GB so i doubled it and used 4GB:

View file

@ -1,5 +1,4 @@
{ config, lib, pkgs, ... }:
{
{pkgs, ...}: {
services.home-assistant = {
enable = true;
configDir = "/var/lib/hass/hass";
@ -12,30 +11,38 @@
"esphome"
"met"
"radio_browser"
"hassio"
"stream"
"cast"
"plex"
"dhcp"
"go2rtc"
"mobile_app"
];
extraPackages = python3Packages: with python3Packages; [
getmac
aiohue
numpy
aiodhcpwatcher
async-upnp-client
gtts
numpy
plexapi
pyipp
paho-mqtt
pyturbojpeg
];
extraPackages = python3Packages:
with python3Packages; [
getmac
aiohue
numpy
aiodhcpwatcher
async-upnp-client
gtts
numpy
plexapi
pyipp
paho-mqtt
pyturbojpeg
];
};
# configures the config directory to be mounted
# correctly with the right permissions
systemd.services.hass-permissions = {
wantedBy = [ "multi-user.target" ];
after = [ "var-lib-hass.mount" ];
requires = [ "var-lib-hass.mount" ];
before = [ "home-assistant.service" ];
wantedBy = ["multi-user.target"];
after = ["var-lib-hass.mount"];
requires = ["var-lib-hass.mount"];
before = ["home-assistant.service"];
serviceConfig = {
Type = "oneshot";
ExecStart = "${pkgs.bash}/bin/bash -c 'mkdir -p /var/lib/hass/hass && chown hass:hass /var/lib/hass/hass'";