From b0e19f80937f31cf7024a87fbd891fbba3284ec4 Mon Sep 17 00:00:00 2001 From: PolyMeilex Date: Mon, 18 May 2020 20:39:07 +0200 Subject: [PATCH] Rust Rewrite - Wgpu * Old Project Removed * Rust Rewrite Init Commit * Keyboard And Note Renderers * Fully Working Visualisation * Keyboard Shader * Notes Shader * UI * Better Game States * Midi Out Select * New Main Menu * Update README.md --- .github/workflows/rust.yml | 43 + .gitignore | 35 +- .travis.yml | 22 - .vscode/launch.json | 27 - .vscode/settings.json | 57 - .vscode/tasks.json | 27 +- BUILD-DEPENDS | 5 - CHANGELOG | 34 - COPYING | 339 --- Cargo.lock | 2063 +++++++++++++++++ Cargo.toml | 45 + Makefile.am | 39 - README | 36 - README.md | 73 +- autogen.sh | 4 - build.rs | 51 + config.h.in~ | 124 - configure.ac | 53 - debian/changelog | 27 - debian/compat | 1 - debian/control | 16 - debian/copyright | 31 - debian/docs | 1 - debian/linthesia.dirs | 2 - debian/linthesia.manpages | 1 - debian/linthesia.xml | 72 - debian/rules | 32 - extra/neothesia.desktop | 8 - extra/neothesia.xpm | 531 ----- graphics/InterfaceButtons.tga | Bin 351129 -> 0 bytes graphics/InterfaceButtons/.directory | 4 - .../InterfaceButtons/InterfaceButtons.xcf.rcm | 194 -- graphics/InterfaceButtons/OpenSansEmoji.ttf | Bin 561512 -> 0 bytes .../InterfaceButtons/blue-color-hover.xcf | Bin 3577 -> 0 bytes graphics/InterfaceButtons/blue-color.xcf | Bin 2868 -> 0 bytes .../InterfaceButtons/blue-computer-hover.xcf | Bin 5378 -> 0 bytes graphics/InterfaceButtons/blue-computer.xcf | Bin 5277 -> 0 bytes .../InterfaceButtons/blue-human-hover.xcf | Bin 6921 -> 0 bytes graphics/InterfaceButtons/blue-human.xcf | Bin 6590 -> 0 bytes graphics/InterfaceButtons/blue-left-hover.xcf | Bin 3576 -> 0 bytes graphics/InterfaceButtons/blue-left.xcf | Bin 2825 -> 0 bytes .../blue-preview-off-hover.xcf | Bin 3769 -> 0 bytes .../InterfaceButtons/blue-preview-off.xcf | Bin 3035 -> 0 bytes .../blue-preview-on-hover.xcf | Bin 3079 -> 0 bytes graphics/InterfaceButtons/blue-preview-on.xcf | Bin 2468 -> 0 bytes .../InterfaceButtons/blue-retry-off-hover.xcf | Bin 6396 -> 0 bytes graphics/InterfaceButtons/blue-retry-off.xcf | Bin 6143 -> 0 bytes .../InterfaceButtons/blue-retry-on-hover.xcf | Bin 5870 -> 0 bytes graphics/InterfaceButtons/blue-retry-on.xcf | Bin 5689 -> 0 bytes .../InterfaceButtons/blue-right-hover.xcf | Bin 3545 -> 0 bytes graphics/InterfaceButtons/blue-right.xcf | Bin 2821 -> 0 bytes .../InterfaceButtons/gray-color-hover.xcf | Bin 3582 -> 0 bytes graphics/InterfaceButtons/gray-color.xcf | Bin 2871 -> 0 bytes .../InterfaceButtons/gray-computer-hover.xcf | Bin 5395 -> 0 bytes graphics/InterfaceButtons/gray-computer.xcf | Bin 5283 -> 0 bytes .../InterfaceButtons/gray-human-hover.xcf | Bin 6963 -> 0 bytes graphics/InterfaceButtons/gray-human.xcf | Bin 6590 -> 0 bytes graphics/InterfaceButtons/gray-left-hover.xcf | Bin 3580 -> 0 bytes graphics/InterfaceButtons/gray-left.xcf | Bin 2837 -> 0 bytes .../gray-preview-off-hover.xcf | Bin 3771 -> 0 bytes .../InterfaceButtons/gray-preview-off.xcf | Bin 3038 -> 0 bytes .../gray-preview-on-hover.xcf | Bin 3078 -> 0 bytes graphics/InterfaceButtons/gray-preview-on.xcf | Bin 2473 -> 0 bytes .../InterfaceButtons/gray-retry-off-hover.xcf | Bin 6362 -> 0 bytes graphics/InterfaceButtons/gray-retry-off.xcf | Bin 6131 -> 0 bytes .../InterfaceButtons/gray-retry-on-hover.xcf | Bin 5837 -> 0 bytes graphics/InterfaceButtons/gray-retry-on.xcf | Bin 5680 -> 0 bytes .../InterfaceButtons/gray-right-hover.xcf | Bin 3545 -> 0 bytes graphics/InterfaceButtons/gray-right.xcf | Bin 2836 -> 0 bytes .../InterfaceButtons/green-color-hover.xcf | Bin 3575 -> 0 bytes graphics/InterfaceButtons/green-color.xcf | Bin 2862 -> 0 bytes .../InterfaceButtons/green-computer-hover.xcf | Bin 5373 -> 0 bytes graphics/InterfaceButtons/green-computer.xcf | Bin 5296 -> 0 bytes .../InterfaceButtons/green-human-hover.xcf | Bin 6900 -> 0 bytes graphics/InterfaceButtons/green-human.xcf | Bin 6575 -> 0 bytes .../InterfaceButtons/green-left-hover.xcf | Bin 3561 -> 0 bytes graphics/InterfaceButtons/green-left.xcf | Bin 2820 -> 0 bytes .../green-preview-off-hover.xcf | Bin 3773 -> 0 bytes .../InterfaceButtons/green-preview-off.xcf | Bin 3040 -> 0 bytes .../green-preview-on-hover.xcf | Bin 3072 -> 0 bytes .../InterfaceButtons/green-preview-on.xcf | Bin 2467 -> 0 bytes .../green-retry-off-hover.xcf | Bin 6413 -> 0 bytes graphics/InterfaceButtons/green-retry-off.xcf | Bin 6123 -> 0 bytes .../InterfaceButtons/green-retry-on-hover.xcf | Bin 5923 -> 0 bytes graphics/InterfaceButtons/green-retry-on.xcf | Bin 5678 -> 0 bytes .../InterfaceButtons/green-right-hover.xcf | Bin 3553 -> 0 bytes graphics/InterfaceButtons/green-right.xcf | Bin 2825 -> 0 bytes .../InterfaceButtons/orange-color-hover.xcf | Bin 3267 -> 0 bytes graphics/InterfaceButtons/orange-color.xcf | Bin 2643 -> 0 bytes .../orange-computer-hover.xcf | Bin 5405 -> 0 bytes graphics/InterfaceButtons/orange-computer.xcf | Bin 5272 -> 0 bytes .../InterfaceButtons/orange-human-hover.xcf | Bin 6878 -> 0 bytes graphics/InterfaceButtons/orange-human.xcf | Bin 6546 -> 0 bytes .../InterfaceButtons/orange-left-hover.xcf | Bin 3261 -> 0 bytes graphics/InterfaceButtons/orange-left.xcf | Bin 2616 -> 0 bytes .../orange-preview-off-hover.xcf | Bin 3640 -> 0 bytes .../InterfaceButtons/orange-preview-off.xcf | Bin 2887 -> 0 bytes .../orange-preview-on-hover.xcf | Bin 2916 -> 0 bytes .../InterfaceButtons/orange-preview-on.xcf | Bin 2353 -> 0 bytes .../orange-retry-off-hover.xcf | Bin 6381 -> 0 bytes .../InterfaceButtons/orange-retry-off.xcf | Bin 6061 -> 0 bytes .../orange-retry-on-hover.xcf | Bin 5879 -> 0 bytes graphics/InterfaceButtons/orange-retry-on.xcf | Bin 5590 -> 0 bytes .../InterfaceButtons/orange-right-hover.xcf | Bin 3215 -> 0 bytes graphics/InterfaceButtons/orange-right.xcf | Bin 2596 -> 0 bytes graphics/InterfaceButtons/red-color-hover.xcf | Bin 3583 -> 0 bytes graphics/InterfaceButtons/red-color.xcf | Bin 2879 -> 0 bytes .../InterfaceButtons/red-computer-hover.xcf | Bin 5279 -> 0 bytes graphics/InterfaceButtons/red-computer.xcf | Bin 5175 -> 0 bytes graphics/InterfaceButtons/red-human-hover.xcf | Bin 6706 -> 0 bytes graphics/InterfaceButtons/red-human.xcf | Bin 6318 -> 0 bytes graphics/InterfaceButtons/red-left-hover.xcf | Bin 3578 -> 0 bytes graphics/InterfaceButtons/red-left.xcf | Bin 2841 -> 0 bytes .../red-preview-off-hover.xcf | Bin 3778 -> 0 bytes graphics/InterfaceButtons/red-preview-off.xcf | Bin 3036 -> 0 bytes .../InterfaceButtons/red-preview-on-hover.xcf | Bin 3088 -> 0 bytes graphics/InterfaceButtons/red-preview-on.xcf | Bin 2481 -> 0 bytes .../InterfaceButtons/red-retry-off-hover.xcf | Bin 6177 -> 0 bytes graphics/InterfaceButtons/red-retry-off.xcf | Bin 5955 -> 0 bytes .../InterfaceButtons/red-retry-on-hover.xcf | Bin 5752 -> 0 bytes graphics/InterfaceButtons/red-retry-on.xcf | Bin 5541 -> 0 bytes graphics/InterfaceButtons/red-right-hover.xcf | Bin 3562 -> 0 bytes graphics/InterfaceButtons/red-right.xcf | Bin 2837 -> 0 bytes .../InterfaceButtons/violet-color-hover.xcf | Bin 3583 -> 0 bytes graphics/InterfaceButtons/violet-color.xcf | Bin 2869 -> 0 bytes .../violet-computer-hover.xcf | Bin 5422 -> 0 bytes graphics/InterfaceButtons/violet-computer.xcf | Bin 5269 -> 0 bytes .../InterfaceButtons/violet-human-hover.xcf | Bin 6942 -> 0 bytes graphics/InterfaceButtons/violet-human.xcf | Bin 6581 -> 0 bytes .../InterfaceButtons/violet-left-hover.xcf | Bin 3580 -> 0 bytes graphics/InterfaceButtons/violet-left.xcf | Bin 2832 -> 0 bytes .../violet-preview-off-hover.xcf | Bin 3772 -> 0 bytes .../InterfaceButtons/violet-preview-off.xcf | Bin 3037 -> 0 bytes .../violet-preview-on-hover.xcf | Bin 3079 -> 0 bytes .../InterfaceButtons/violet-preview-on.xcf | Bin 2476 -> 0 bytes .../violet-retry-off-hover.xcf | Bin 6361 -> 0 bytes .../InterfaceButtons/violet-retry-off.xcf | Bin 6186 -> 0 bytes .../violet-retry-on-hover.xcf | Bin 5853 -> 0 bytes graphics/InterfaceButtons/violet-retry-on.xcf | Bin 5721 -> 0 bytes .../InterfaceButtons/violet-right-hover.xcf | Bin 3544 -> 0 bytes graphics/InterfaceButtons/violet-right.xcf | Bin 2829 -> 0 bytes .../InterfaceButtons/yellow-color-hover.xcf | Bin 3146 -> 0 bytes graphics/InterfaceButtons/yellow-color.xcf | Bin 2580 -> 0 bytes .../yellow-computer-hover.xcf | Bin 5390 -> 0 bytes graphics/InterfaceButtons/yellow-computer.xcf | Bin 5185 -> 0 bytes .../InterfaceButtons/yellow-human-hover.xcf | Bin 6825 -> 0 bytes graphics/InterfaceButtons/yellow-human.xcf | Bin 6462 -> 0 bytes .../InterfaceButtons/yellow-left-hover.xcf | Bin 3153 -> 0 bytes graphics/InterfaceButtons/yellow-left.xcf | Bin 2546 -> 0 bytes .../yellow-preview-off-hover.xcf | Bin 3647 -> 0 bytes .../InterfaceButtons/yellow-preview-off.xcf | Bin 2937 -> 0 bytes .../yellow-preview-on-hover.xcf | Bin 2880 -> 0 bytes .../InterfaceButtons/yellow-preview-on.xcf | Bin 2342 -> 0 bytes .../yellow-retry-off-hover.xcf | Bin 6318 -> 0 bytes .../InterfaceButtons/yellow-retry-off.xcf | Bin 6016 -> 0 bytes .../yellow-retry-on-hover.xcf | Bin 5860 -> 0 bytes graphics/InterfaceButtons/yellow-retry-on.xcf | Bin 5601 -> 0 bytes .../InterfaceButtons/yellow-right-hover.xcf | Bin 3113 -> 0 bytes graphics/InterfaceButtons/yellow-right.xcf | Bin 2536 -> 0 bytes graphics/app_icon.ico | Bin 33750 -> 0 bytes graphics/neothesia.xpm | 531 ----- graphics/play_KeyHits.tga | Bin 2685 -> 0 bytes graphics/play_KeyRail.tga | Bin 154 -> 0 bytes graphics/play_KeyShadow.tga | Bin 204 -> 0 bytes graphics/play_Keys.tga | Bin 262188 -> 0 bytes graphics/play_Keys.xcf | Bin 593614 -> 0 bytes graphics/play_KeysBlack.tga | Bin 46840 -> 0 bytes graphics/play_KeysWhite.png | Bin 1936 -> 0 bytes graphics/play_KeysWhite.tga | Bin 2132 -> 0 bytes graphics/play_NotesBlackColor.tga | Bin 9390 -> 0 bytes graphics/play_NotesBlackShadow.tga | Bin 40152 -> 0 bytes graphics/play_NotesWhiteColor.tga | Bin 14498 -> 0 bytes graphics/play_NotesWhiteShadow.tga | Bin 61985 -> 0 bytes graphics/play_Status.tga | Bin 3609 -> 0 bytes graphics/play_Status2.tga | Bin 850 -> 0 bytes graphics/score_RetrySong.tga | Bin 5177 -> 0 bytes graphics/stats_text.tga | Bin 35119 -> 0 bytes graphics/title_ChooseTracks.tga | Bin 6027 -> 0 bytes graphics/title_Exit.tga | Bin 2523 -> 0 bytes graphics/title_GameMusicThemes.tga | Bin 35859 -> 0 bytes graphics/title_InputBox.tga | Bin 22095 -> 0 bytes graphics/title_Logo.tga | Bin 271916 -> 0 bytes graphics/title_OutputBox.tga | Bin 23035 -> 0 bytes graphics/title_SongBox.tga | Bin 18395 -> 0 bytes graphics/trackbox.tga | Bin 9864 -> 0 bytes graphics/trackbox.xcf | Bin 35525 -> 0 bytes graphics/tracks_BackToTitle.tga | Bin 5259 -> 0 bytes graphics/tracks_PlaySong.tga | Bin 4825 -> 0 bytes lib_midi/Cargo.toml | 8 + lib_midi/src/lib.rs | 9 + lib_midi/src/midi.rs | 86 + lib_midi/src/track.rs | 151 ++ lib_midi/src/tracks_parser.rs | 84 + .../Bubble_Bobble_-_Main_Theme.mid | Bin 2519 -> 0 bytes .../Dragon_Warrior_-_Town_Theme.mid | Bin 2243 -> 0 bytes .../Sonic_the_Hedgehog_-_Green_Hill_Zone.mid | Bin 4202 -> 0 bytes .../Super_Mario_Bros_-_Overworld.mid | Bin 5794 -> 0 bytes .../Super_Mario_Bros_-_Underwater.mid | Bin 2498 -> 0 bytes music/Game_Themes/Tetris_-_Theme_A.mid | Bin 1982 -> 0 bytes .../Game_Themes/The_Sims_-_Buying_Theme_1.mid | Bin 4975 -> 0 bytes ...a_A_Link_to_the_Past_-_Overworld_Theme.mid | Bin 4085 -> 0 bytes .../Zelda_Ocarina_of_Time_-_Lost_Woods.mid | Bin 4299 -> 0 bytes ...elda_Ocarina_of_Time_-_Zelda_s_Lullaby.mid | Bin 2239 -> 0 bytes music/Hannon/Lesson_1.mid | Bin 3827 -> 0 bytes music/Hannon/Lesson_2.mid | Bin 3699 -> 0 bytes music/Hannon/Lesson_3.mid | Bin 3699 -> 0 bytes music/Hannon/Lesson_4.mid | Bin 3699 -> 0 bytes music/Hannon/Lesson_5.mid | Bin 3699 -> 0 bytes music/Hannon/Lesson_6.mid | Bin 3699 -> 0 bytes music/Hannon/Lesson_7.mid | Bin 3699 -> 0 bytes music/Hannon/Lesson_8.mid | Bin 3699 -> 0 bytes .../Aria-Notebook_AM_Bach.mid | Bin 2023 -> 0 bytes .../Clementi_Opus_36_no_1_First_Movement.mid | Bin 6345 -> 0 bytes .../Keyboard_Classics/Fur_Elise-Beethoven.mid | Bin 2927 -> 0 bytes .../Minuet_in_F-Leopold_Mozart.mid | Bin 2258 -> 0 bytes .../Keyboard_Classics/Minuet_in_G-JS_Bach.mid | Bin 1153 -> 0 bytes music/Keyboard_Classics/Rondino-Rameau.mid | Bin 2717 -> 0 bytes .../Russian_Folksong-Beethoven.mid | Bin 1830 -> 0 bytes .../Sonatina_in_C-Latour.mid | Bin 963 -> 0 bytes .../0_-_First_Steps/A_Tisket,_A_Tasket.mid | Bin 332 -> 0 bytes .../0_-_First_Steps/Au_Clair_de_la_Lune.mid | Bin 277 -> 0 bytes .../Aura_Lee_(Love_Me_Tender).mid | Bin 295 -> 0 bytes .../Away_in_the_Deep_Forest.mid | Bin 1131 -> 0 bytes .../Learning/0_-_First_Steps/Bridal_March.mid | Bin 551 -> 0 bytes .../Chopsticks_(Short_Version).mid | Bin 1084 -> 0 bytes music/Learning/0_-_First_Steps/Fais_Dodo.mid | Bin 565 -> 0 bytes .../For_Health_and_Strength.mid | Bin 345 -> 0 bytes .../0_-_First_Steps/Good_King_Wenceslas.mid | Bin 313 -> 0 bytes .../0_-_First_Steps/Hot_Cross_Buns.mid | Bin 232 -> 0 bytes .../0_-_First_Steps/I_Saw_Three_Ships.mid | Bin 592 -> 0 bytes .../Jolly_Old_Saint_Nicholas.mid | Bin 646 -> 0 bytes .../Mary_Had_a_Little_Lamb.mid | Bin 313 -> 0 bytes .../0_-_First_Steps/Mexican_Hat_Dance.mid | Bin 463 -> 0 bytes music/Learning/0_-_First_Steps/Ode_to_Joy.mid | Bin 349 -> 0 bytes .../Once_a_Small_Green_Mousie.mid | Bin 1279 -> 0 bytes .../0_-_First_Steps/Rain,_Rain,_Go_Away.mid | Bin 187 -> 0 bytes .../Row,_Row,_Row_your_Boat.mid | Bin 441 -> 0 bytes .../The_Monkey_and_the_Mirror.mid | Bin 756 -> 0 bytes .../0_-_First_Steps/The_Silly_Seal.mid | Bin 1227 -> 0 bytes .../We_Three_Kings_(Short_Version).mid | Bin 366 -> 0 bytes music/Learning/1_-_Very_Easy/Alouette.mid | Bin 807 -> 0 bytes .../Learning/1_-_Very_Easy/Amazing_Grace.mid | Bin 656 -> 0 bytes .../1_-_Very_Easy/Are_You_Sleeping.mid | Bin 501 -> 0 bytes .../1_-_Very_Easy/Away_in_a_Manger.mid | Bin 645 -> 0 bytes .../Beethoven_s_Fifth_Symphony.mid | Bin 744 -> 0 bytes music/Learning/1_-_Very_Easy/Bingo.mid | Bin 711 -> 0 bytes music/Learning/1_-_Very_Easy/Clementine.mid | Bin 508 -> 0 bytes .../1_-_Very_Easy/Five_Fat_Turkeys_Are_We.mid | Bin 508 -> 0 bytes .../Go_Tell_It_on_the_Mountain.mid | Bin 500 -> 0 bytes .../1_-_Very_Easy/I_Have_a_Little_Dreidle.mid | Bin 829 -> 0 bytes .../Jesu,_Joy_of_Man_s_Desiring.mid | Bin 754 -> 0 bytes music/Learning/1_-_Very_Easy/Jingle_Bells.mid | Bin 809 -> 0 bytes .../1_-_Very_Easy/Les_Cloches_(The_Bells).mid | Bin 587 -> 0 bytes .../Learning/1_-_Very_Easy/London_Bridge.mid | Bin 435 -> 0 bytes .../1_-_Very_Easy/My_Palm_Leaf_Hut.mid | Bin 643 -> 0 bytes music/Learning/1_-_Very_Easy/Ode_to_Joy.mid | Bin 937 -> 0 bytes .../1_-_Very_Easy/Oh,_When_the_Saints.mid | Bin 716 -> 0 bytes .../Learning/1_-_Very_Easy/Old_MacDonald.mid | Bin 674 -> 0 bytes .../1_-_Very_Easy/Persian_Market_Monkey.mid | Bin 998 -> 0 bytes .../1_-_Very_Easy/Row,_Row_Row_your_Boat.mid | Bin 592 -> 0 bytes music/Learning/1_-_Very_Easy/Surprise!.mid | Bin 518 -> 0 bytes music/Learning/1_-_Very_Easy/The_Chimes.mid | Bin 451 -> 0 bytes .../Learning/1_-_Very_Easy/The_First_Noel.mid | Bin 900 -> 0 bytes .../1_-_Very_Easy/Turkey_in_the_Straw.mid | Bin 547 -> 0 bytes .../Twinkle,_Twinkle,_Little_Star.mid | Bin 610 -> 0 bytes .../1_-_Very_Easy/We_Gather_Together.mid | Bin 663 -> 0 bytes .../We_Wish_You_a_Merry_Christmas.mid | Bin 511 -> 0 bytes .../Learning/1_-_Very_Easy/Yankee_Doodle.mid | Bin 482 -> 0 bytes .../2_-_Easy/America,_the_Beautiful.mid | Bin 795 -> 0 bytes .../2_-_Easy/Angels_We_Have_Heard_on_High.mid | Bin 1381 -> 0 bytes .../2_-_Easy/Beethoven_s_Fifth_Symphony.mid | Bin 853 -> 0 bytes .../Can_You_Plant_your_Cabbage_So.mid | Bin 877 -> 0 bytes music/Learning/2_-_Easy/Chopsticks.mid | Bin 1718 -> 0 bytes .../2_-_Easy/Do_Your_Ears_Hang_Low.mid | Bin 855 -> 0 bytes music/Learning/2_-_Easy/Fur_Elise.mid | Bin 1307 -> 0 bytes .../Learning/2_-_Easy/Going_Home_-_Dvorak.mid | Bin 2130 -> 0 bytes .../2_-_Easy/Have_You_Ever_Thought.mid | Bin 1484 -> 0 bytes .../2_-_Easy/How_They_Dance,_Dance.mid | Bin 633 -> 0 bytes .../I_ve_Been_Working_on_the_Railroad.mid | Bin 1702 -> 0 bytes music/Learning/2_-_Easy/Jana-Gana-Mana.mid | Bin 1335 -> 0 bytes .../2_-_Easy/Jolly_Old_Saint_Nicholas.mid | Bin 848 -> 0 bytes music/Learning/2_-_Easy/La_Cucaracha.mid | Bin 624 -> 0 bytes music/Learning/2_-_Easy/Lightly_Row.mid | Bin 864 -> 0 bytes music/Learning/2_-_Easy/O_Christmas_Tree.mid | Bin 1098 -> 0 bytes music/Learning/2_-_Easy/Ode_to_Joy.mid | Bin 1009 -> 0 bytes .../Learning/2_-_Easy/Oh,_When_the_Saints.mid | Bin 989 -> 0 bytes .../Oh_There_Was_Once_a_Little_Ship.mid | Bin 981 -> 0 bytes music/Learning/2_-_Easy/Skip_to_my_Lou.mid | Bin 1524 -> 0 bytes .../Learning/2_-_Easy/Sonatina_Piccolina.mid | Bin 5528 -> 0 bytes music/Learning/2_-_Easy/The_Muffin_Man.mid | Bin 1177 -> 0 bytes .../2_-_Easy/The_Wheels_on_the_Bus.mid | Bin 636 -> 0 bytes .../A_Mighty_Fortress_is_Our_God.mid | Bin 1598 -> 0 bytes .../3_-_Medium/A_la_Claire_Fontaine.mid | Bin 1156 -> 0 bytes music/Learning/3_-_Medium/America.mid | Bin 983 -> 0 bytes .../3_-_Medium/Au_Clair_de_la_Lune.mid | Bin 963 -> 0 bytes .../Bahay_Kubo_My_Palm_Leaf_Hut.mid | Bin 874 -> 0 bytes music/Learning/3_-_Medium/Bridal_March.mid | Bin 1525 -> 0 bytes .../3_-_Medium/Eine_kleine_Nachtmusik.mid | Bin 1453 -> 0 bytes .../3_-_Medium/God_Save_the_Queen.mid | Bin 1471 -> 0 bytes .../3_-_Medium/Hanukkah,_Hanukkah.mid | Bin 1039 -> 0 bytes .../3_-_Medium/In_My_Hot_Air_Balloon.mid | Bin 2259 -> 0 bytes .../Jesu,_Joy_of_Man_s_Desiring.mid | Bin 1135 -> 0 bytes .../Learning/3_-_Medium/Joy_to_the_World.mid | Bin 1315 -> 0 bytes .../Learning/3_-_Medium/Mexican_Hat_Dance.mid | Bin 1598 -> 0 bytes music/Learning/3_-_Medium/Morning_Song.mid | Bin 1413 -> 0 bytes .../My_Bonnie_Lies_Over_the_Ocean_Long.mid | Bin 1642 -> 0 bytes .../My_Bonnie_Lies_over_the_Ocean.mid | Bin 685 -> 0 bytes music/Learning/3_-_Medium/Ode_to_Joy.mid | Bin 1122 -> 0 bytes .../3_-_Medium/Oh_When_the_Saints.mid | Bin 1153 -> 0 bytes music/Learning/3_-_Medium/Old_MacDonald.mid | Bin 1138 -> 0 bytes music/Learning/3_-_Medium/Silent_Night.mid | Bin 1128 -> 0 bytes .../3_-_Medium/Sur_le_Pont_d_Avignon.mid | Bin 1803 -> 0 bytes .../3_-_Medium/The_Ants_Go_Marching.mid | Bin 1907 -> 0 bytes music/Learning/3_-_Medium/The_Barn_Cat.mid | Bin 1903 -> 0 bytes .../Learning/3_-_Medium/The_Ghost_Of_Tom.mid | Bin 951 -> 0 bytes .../3_-_Medium/The_Star-Spangled_Banner.mid | Bin 1811 -> 0 bytes music/Learning/3_-_Medium/This_Old_Man.mid | Bin 798 -> 0 bytes .../Toccata_and_Fugue_in_D_minor_-_intro.mid | Bin 742 -> 0 bytes music/Learning/3_-_Medium/We_Three_Kings.mid | Bin 1398 -> 0 bytes .../Ye_Knights_of_the_Round_Table.mid | Bin 2343 -> 0 bytes .../Learning/4_-_Hard/Aupres_de_ma_Blonde.mid | Bin 1864 -> 0 bytes music/Learning/4_-_Hard/Ave_Maria.mid | Bin 2046 -> 0 bytes .../4_-_Hard/Beethoven_s_Fifth_Symphony.mid | Bin 3215 -> 0 bytes music/Learning/4_-_Hard/Brahms__Lullaby.mid | Bin 1195 -> 0 bytes music/Learning/4_-_Hard/Canon_in_D.mid | Bin 1629 -> 0 bytes music/Learning/4_-_Hard/Chinese_Folk_Song.mid | Bin 2365 -> 0 bytes music/Learning/4_-_Hard/Cripple_Creek.mid | Bin 1317 -> 0 bytes .../4_-_Hard/God_Rest_Ye_Merry_Gentlemen.mid | Bin 1506 -> 0 bytes .../Learning/4_-_Hard/God_Save_the_Queen.mid | Bin 1321 -> 0 bytes .../4_-_Hard/Hark!_The_Herald_Angels_Sing.mid | Bin 1703 -> 0 bytes .../Head,_Shoulders,_Knees_and_Toes.mid | Bin 873 -> 0 bytes .../4_-_Hard/In_a_Cabin_in_the_Woods.mid | Bin 1779 -> 0 bytes music/Learning/4_-_Hard/La_Marseillaise.mid | Bin 2954 -> 0 bytes music/Learning/4_-_Hard/Lupang_Hinirang.mid | Bin 3186 -> 0 bytes music/Learning/4_-_Hard/Moonlight_Sonata.mid | Bin 2675 -> 0 bytes .../4_-_Hard/My_Grandfather_s_Clock.mid | Bin 2267 -> 0 bytes music/Learning/4_-_Hard/O_Canada!.mid | Bin 2133 -> 0 bytes music/Learning/4_-_Hard/Oh_Hanukah.mid | Bin 1617 -> 0 bytes .../Over_the_River_and_Through_the_Woods.mid | Bin 2270 -> 0 bytes .../4_-_Hard/Sevivon,_Sov,_Sov,_Sov.mid | Bin 1824 -> 0 bytes music/Learning/4_-_Hard/Shuha_D-Maryam.mid | Bin 1395 -> 0 bytes music/Learning/4_-_Hard/Sonatina_in_G.mid | Bin 6122 -> 0 bytes .../4_-_Hard/Swing_Low,_Sweet_Chariot.mid | Bin 1868 -> 0 bytes music/Learning/4_-_Hard/The_Entertainer.mid | Bin 1829 -> 0 bytes music/Learning/4_-_Hard/The_First_Noel.mid | Bin 1795 -> 0 bytes .../4_-_Hard/The_Yellow_Rose_of_Texas.mid | Bin 2161 -> 0 bytes music/Learning/4_-_Hard/Waltzing_Matilda.mid | Bin 1456 -> 0 bytes music/Learning/5_-_Harder/Amazing_Grace.mid | Bin 2446 -> 0 bytes .../5_-_Harder/Big_Bad_Goblin_Blues.mid | Bin 5192 -> 0 bytes .../Learning/5_-_Harder/Carribean_Cruise.mid | Bin 3841 -> 0 bytes music/Learning/5_-_Harder/Danny_Boy.mid | Bin 2869 -> 0 bytes music/Learning/5_-_Harder/Evening_Falls.mid | Bin 2593 -> 0 bytes music/Learning/5_-_Harder/Greensleeves.mid | Bin 1671 -> 0 bytes .../5_-_Harder/Habanera_from_Carmen.mid | Bin 3702 -> 0 bytes music/Learning/5_-_Harder/Jana-Gana-Mana.mid | Bin 2742 -> 0 bytes .../5_-_Harder/March_on_Android_Moon.mid | Bin 5963 -> 0 bytes .../Learning/5_-_Harder/Moonlight_Sonata.mid | Bin 5720 -> 0 bytes .../5_-_Harder/Once_a_Canadian_Lad.mid | Bin 2210 -> 0 bytes .../Learning/5_-_Harder/Rock_Solid_Blues.mid | Bin 3396 -> 0 bytes .../5_-_Harder/See_How_the_Night_Arrives.mid | Bin 3270 -> 0 bytes .../5_-_Harder/The_Four_Seasons_-_Autumn.mid | Bin 4777 -> 0 bytes .../5_-_Harder/Toreador_from_Carmen.mid | Bin 3023 -> 0 bytes music/Learning/G_Major_Music.txt | 5 - music/Popular/Gymnopedie.mid | Bin 4162 -> 0 bytes music/Popular/Jonh_Lennon_-_Imagine.mid | Bin 22729 -> 0 bytes scripts/Makefile.am | 1 - scripts/delay_screensaver.sh | 42 - src/CompatibleSystem.cpp | 99 - src/CompatibleSystem.h | 35 - src/DeviceTile.cpp | 168 -- src/DeviceTile.h | 106 - src/DpmsThread.h | 75 - src/FileSelector.cpp | 106 - src/FileSelector.h | 29 - src/FrameCounter.h | 54 - src/GameState.cpp | 303 --- src/GameState.h | 245 -- src/KeyboardDisplay.cpp | 752 ------ src/KeyboardDisplay.h | 142 -- src/LinthesiaError.cpp | 30 - src/LinthesiaError.h | 49 - src/Makefile.am | 79 - src/MenuLayout.cpp | 45 - src/MenuLayout.h | 74 - src/MidiComm.cpp | 424 ---- src/MidiComm.h | 102 - src/OSGraphics.h | 30 - src/PlayingState.cpp | 857 ------- src/PlayingState.h | 112 - src/Renderer.cpp | 151 -- src/Renderer.h | 72 - src/SharedState.h | 73 - src/StatsState.cpp | 140 -- src/StatsState.h | 37 - src/StringTile.cpp | 38 - src/StringTile.h | 63 - src/StringUtil.h | 71 - src/TextWriter.cpp | 188 -- src/TextWriter.h | 125 - src/Textures.h | 50 - src/Tga.cpp | 235 -- src/Tga.h | 62 - src/TitleState.cpp | 455 ---- src/TitleState.h | 61 - src/TrackProperties.h | 102 - src/TrackSelectionState.cpp | 376 --- src/TrackSelectionState.h | 52 - src/TrackTile.cpp | 180 -- src/TrackTile.h | 133 -- src/UserSettings.cpp | 50 - src/UserSettings.h | 26 - src/Version.h | 16 - src/event_loop.rs | 0 src/libmidi/Midi.cpp | 526 ----- src/libmidi/Midi.h | 124 - src/libmidi/MidiEvent.cpp | 350 --- src/libmidi/MidiEvent.h | 131 -- src/libmidi/MidiTrack.cpp | 270 --- src/libmidi/MidiTrack.h | 124 - src/libmidi/MidiTypes.h | 15 - src/libmidi/MidiUtil.cpp | 290 --- src/libmidi/MidiUtil.h | 138 -- src/libmidi/Note.h | 73 - src/main.cpp | 527 ----- src/main.rs | 268 +++ src/midi_device/devices_menager.rs | 100 + src/midi_device/mod.rs | 4 + src/neolib/GLShader.cpp | 59 - src/neolib/GLShader.h | 9 - src/neolib/NeoFBO.cpp | 27 - src/neolib/NeoFBO.h | 23 - src/neolib/ParticleSystem.cpp | 60 - src/neolib/ParticleSystem.h | 37 - src/rectangle_pipeline/instance_data.rs | 20 + src/rectangle_pipeline/mod.rs | 6 + src/rectangle_pipeline/rectangle_pipeline.rs | 66 + src/rectangle_pipeline/shader/quad.frag | 10 + src/rectangle_pipeline/shader/quad.frag.spv | Bin 0 -> 372 bytes src/rectangle_pipeline/shader/quad.vert | 28 + src/rectangle_pipeline/shader/quad.vert.spv | Bin 0 -> 2252 bytes .../menu_scene/bg_pipeline/bg_pipeline.rs | 68 + src/scene/menu_scene/bg_pipeline/mod.rs | 3 + .../menu_scene/bg_pipeline/shader/quad.frag | 83 + .../bg_pipeline/shader/quad.frag.spv | Bin 0 -> 6188 bytes .../menu_scene/bg_pipeline/shader/quad.vert | 11 + .../bg_pipeline/shader/quad.vert.spv | Bin 0 -> 1012 bytes src/scene/menu_scene/menu_scene.rs | 310 +++ src/scene/menu_scene/mod.rs | 5 + src/scene/mod.rs | 6 + src/scene/playing_scene/keyboard.rs | 164 ++ .../keyboard_pipeline/instance_data.rs | 36 + .../keyboard_pipeline/keyboard_pipeline.rs | 73 + .../playing_scene/keyboard_pipeline/mod.rs | 6 + .../keyboard_pipeline/shader/quad.frag | 33 + .../keyboard_pipeline/shader/quad.frag.spv | Bin 0 -> 2700 bytes .../keyboard_pipeline/shader/quad.vert | 62 + .../keyboard_pipeline/shader/quad.vert.spv | Bin 0 -> 3372 bytes src/scene/playing_scene/mod.rs | 9 + src/scene/playing_scene/notes.rs | 104 + .../notes_pipeline/instance_data.rs | 21 + src/scene/playing_scene/notes_pipeline/mod.rs | 6 + .../notes_pipeline/notes_pipeline.rs | 91 + .../notes_pipeline/shader/quad.frag | 33 + .../notes_pipeline/shader/quad.frag.spv | Bin 0 -> 3540 bytes .../notes_pipeline/shader/quad.vert | 54 + .../notes_pipeline/shader/quad.vert.spv | Bin 0 -> 3824 bytes src/scene/playing_scene/playing_scene.rs | 198 ++ src/scene/scene.rs | 23 + src/shaders/BlurParticleGLShader.h | 33 - src/shaders/RenderTextureGLShader.h | 23 - src/shaders/test.frag | 17 - src/shaders/test.vert | 5 - src/shaders/test2.frag | 18 - src/shaders/test3.frag | 21 - src/shaders/test3.vert | 38 - src/time_menager.rs | 98 + src/transform_uniform.rs | 32 + src/ui/Roboto-Regular.ttf | Bin 0 -> 171272 bytes src/ui/button_pipeline/button_pipeline.rs | 66 + src/ui/button_pipeline/instance_data.rs | 22 + src/ui/button_pipeline/mod.rs | 6 + src/ui/button_pipeline/shader/quad.frag | 49 + src/ui/button_pipeline/shader/quad.frag.spv | Bin 0 -> 3996 bytes src/ui/button_pipeline/shader/quad.vert | 39 + src/ui/button_pipeline/shader/quad.vert.spv | Bin 0 -> 2880 bytes src/ui/mod.rs | 5 + src/ui/ui.rs | 111 + src/web_wrappers/mod.rs | 1 + src/web_wrappers/time.rs | 32 + src/wgpu_jumpstart/gpu.rs | 57 + src/wgpu_jumpstart/instances.rs | 40 + src/wgpu_jumpstart/mod.rs | 15 + src/wgpu_jumpstart/render_pipeline_builder.rs | 70 + src/wgpu_jumpstart/shader.rs | 4 + src/wgpu_jumpstart/simple_quad.rs | 67 + src/wgpu_jumpstart/surface.rs | 44 + src/wgpu_jumpstart/uniform.rs | 63 + src/wgpu_jumpstart/window.rs | 71 + test.mid | Bin 0 -> 38656 bytes 499 files changed, 5353 insertions(+), 11964 deletions(-) create mode 100644 .github/workflows/rust.yml delete mode 100644 .travis.yml delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/settings.json delete mode 100644 BUILD-DEPENDS delete mode 100644 CHANGELOG delete mode 100644 COPYING create mode 100644 Cargo.lock create mode 100644 Cargo.toml delete mode 100644 Makefile.am delete mode 100644 README delete mode 100755 autogen.sh create mode 100644 build.rs delete mode 100644 config.h.in~ delete mode 100644 configure.ac delete mode 100644 debian/changelog delete mode 100644 debian/compat delete mode 100644 debian/control delete mode 100644 debian/copyright delete mode 100644 debian/docs delete mode 100644 debian/linthesia.dirs delete mode 100644 debian/linthesia.manpages delete mode 100644 debian/linthesia.xml delete mode 100755 debian/rules delete mode 100644 extra/neothesia.desktop delete mode 100644 extra/neothesia.xpm delete mode 100644 graphics/InterfaceButtons.tga delete mode 100644 graphics/InterfaceButtons/.directory delete mode 100644 graphics/InterfaceButtons/InterfaceButtons.xcf.rcm delete mode 100644 graphics/InterfaceButtons/OpenSansEmoji.ttf delete mode 100644 graphics/InterfaceButtons/blue-color-hover.xcf delete mode 100644 graphics/InterfaceButtons/blue-color.xcf delete mode 100644 graphics/InterfaceButtons/blue-computer-hover.xcf delete mode 100644 graphics/InterfaceButtons/blue-computer.xcf delete mode 100644 graphics/InterfaceButtons/blue-human-hover.xcf delete mode 100644 graphics/InterfaceButtons/blue-human.xcf delete mode 100644 graphics/InterfaceButtons/blue-left-hover.xcf delete mode 100644 graphics/InterfaceButtons/blue-left.xcf delete mode 100644 graphics/InterfaceButtons/blue-preview-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/blue-preview-off.xcf delete mode 100644 graphics/InterfaceButtons/blue-preview-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/blue-preview-on.xcf delete mode 100644 graphics/InterfaceButtons/blue-retry-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/blue-retry-off.xcf delete mode 100644 graphics/InterfaceButtons/blue-retry-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/blue-retry-on.xcf delete mode 100644 graphics/InterfaceButtons/blue-right-hover.xcf delete mode 100644 graphics/InterfaceButtons/blue-right.xcf delete mode 100644 graphics/InterfaceButtons/gray-color-hover.xcf delete mode 100644 graphics/InterfaceButtons/gray-color.xcf delete mode 100644 graphics/InterfaceButtons/gray-computer-hover.xcf delete mode 100644 graphics/InterfaceButtons/gray-computer.xcf delete mode 100644 graphics/InterfaceButtons/gray-human-hover.xcf delete mode 100644 graphics/InterfaceButtons/gray-human.xcf delete mode 100644 graphics/InterfaceButtons/gray-left-hover.xcf delete mode 100644 graphics/InterfaceButtons/gray-left.xcf delete mode 100644 graphics/InterfaceButtons/gray-preview-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/gray-preview-off.xcf delete mode 100644 graphics/InterfaceButtons/gray-preview-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/gray-preview-on.xcf delete mode 100644 graphics/InterfaceButtons/gray-retry-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/gray-retry-off.xcf delete mode 100644 graphics/InterfaceButtons/gray-retry-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/gray-retry-on.xcf delete mode 100644 graphics/InterfaceButtons/gray-right-hover.xcf delete mode 100644 graphics/InterfaceButtons/gray-right.xcf delete mode 100644 graphics/InterfaceButtons/green-color-hover.xcf delete mode 100644 graphics/InterfaceButtons/green-color.xcf delete mode 100644 graphics/InterfaceButtons/green-computer-hover.xcf delete mode 100644 graphics/InterfaceButtons/green-computer.xcf delete mode 100644 graphics/InterfaceButtons/green-human-hover.xcf delete mode 100644 graphics/InterfaceButtons/green-human.xcf delete mode 100644 graphics/InterfaceButtons/green-left-hover.xcf delete mode 100644 graphics/InterfaceButtons/green-left.xcf delete mode 100644 graphics/InterfaceButtons/green-preview-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/green-preview-off.xcf delete mode 100644 graphics/InterfaceButtons/green-preview-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/green-preview-on.xcf delete mode 100644 graphics/InterfaceButtons/green-retry-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/green-retry-off.xcf delete mode 100644 graphics/InterfaceButtons/green-retry-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/green-retry-on.xcf delete mode 100644 graphics/InterfaceButtons/green-right-hover.xcf delete mode 100644 graphics/InterfaceButtons/green-right.xcf delete mode 100644 graphics/InterfaceButtons/orange-color-hover.xcf delete mode 100644 graphics/InterfaceButtons/orange-color.xcf delete mode 100644 graphics/InterfaceButtons/orange-computer-hover.xcf delete mode 100644 graphics/InterfaceButtons/orange-computer.xcf delete mode 100644 graphics/InterfaceButtons/orange-human-hover.xcf delete mode 100644 graphics/InterfaceButtons/orange-human.xcf delete mode 100644 graphics/InterfaceButtons/orange-left-hover.xcf delete mode 100644 graphics/InterfaceButtons/orange-left.xcf delete mode 100644 graphics/InterfaceButtons/orange-preview-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/orange-preview-off.xcf delete mode 100644 graphics/InterfaceButtons/orange-preview-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/orange-preview-on.xcf delete mode 100644 graphics/InterfaceButtons/orange-retry-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/orange-retry-off.xcf delete mode 100644 graphics/InterfaceButtons/orange-retry-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/orange-retry-on.xcf delete mode 100644 graphics/InterfaceButtons/orange-right-hover.xcf delete mode 100644 graphics/InterfaceButtons/orange-right.xcf delete mode 100644 graphics/InterfaceButtons/red-color-hover.xcf delete mode 100644 graphics/InterfaceButtons/red-color.xcf delete mode 100644 graphics/InterfaceButtons/red-computer-hover.xcf delete mode 100644 graphics/InterfaceButtons/red-computer.xcf delete mode 100644 graphics/InterfaceButtons/red-human-hover.xcf delete mode 100644 graphics/InterfaceButtons/red-human.xcf delete mode 100644 graphics/InterfaceButtons/red-left-hover.xcf delete mode 100644 graphics/InterfaceButtons/red-left.xcf delete mode 100644 graphics/InterfaceButtons/red-preview-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/red-preview-off.xcf delete mode 100644 graphics/InterfaceButtons/red-preview-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/red-preview-on.xcf delete mode 100644 graphics/InterfaceButtons/red-retry-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/red-retry-off.xcf delete mode 100644 graphics/InterfaceButtons/red-retry-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/red-retry-on.xcf delete mode 100644 graphics/InterfaceButtons/red-right-hover.xcf delete mode 100644 graphics/InterfaceButtons/red-right.xcf delete mode 100644 graphics/InterfaceButtons/violet-color-hover.xcf delete mode 100644 graphics/InterfaceButtons/violet-color.xcf delete mode 100644 graphics/InterfaceButtons/violet-computer-hover.xcf delete mode 100644 graphics/InterfaceButtons/violet-computer.xcf delete mode 100644 graphics/InterfaceButtons/violet-human-hover.xcf delete mode 100644 graphics/InterfaceButtons/violet-human.xcf delete mode 100644 graphics/InterfaceButtons/violet-left-hover.xcf delete mode 100644 graphics/InterfaceButtons/violet-left.xcf delete mode 100644 graphics/InterfaceButtons/violet-preview-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/violet-preview-off.xcf delete mode 100644 graphics/InterfaceButtons/violet-preview-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/violet-preview-on.xcf delete mode 100644 graphics/InterfaceButtons/violet-retry-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/violet-retry-off.xcf delete mode 100644 graphics/InterfaceButtons/violet-retry-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/violet-retry-on.xcf delete mode 100644 graphics/InterfaceButtons/violet-right-hover.xcf delete mode 100644 graphics/InterfaceButtons/violet-right.xcf delete mode 100644 graphics/InterfaceButtons/yellow-color-hover.xcf delete mode 100644 graphics/InterfaceButtons/yellow-color.xcf delete mode 100644 graphics/InterfaceButtons/yellow-computer-hover.xcf delete mode 100644 graphics/InterfaceButtons/yellow-computer.xcf delete mode 100644 graphics/InterfaceButtons/yellow-human-hover.xcf delete mode 100644 graphics/InterfaceButtons/yellow-human.xcf delete mode 100644 graphics/InterfaceButtons/yellow-left-hover.xcf delete mode 100644 graphics/InterfaceButtons/yellow-left.xcf delete mode 100644 graphics/InterfaceButtons/yellow-preview-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/yellow-preview-off.xcf delete mode 100644 graphics/InterfaceButtons/yellow-preview-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/yellow-preview-on.xcf delete mode 100644 graphics/InterfaceButtons/yellow-retry-off-hover.xcf delete mode 100644 graphics/InterfaceButtons/yellow-retry-off.xcf delete mode 100644 graphics/InterfaceButtons/yellow-retry-on-hover.xcf delete mode 100644 graphics/InterfaceButtons/yellow-retry-on.xcf delete mode 100644 graphics/InterfaceButtons/yellow-right-hover.xcf delete mode 100644 graphics/InterfaceButtons/yellow-right.xcf delete mode 100644 graphics/app_icon.ico delete mode 100644 graphics/neothesia.xpm delete mode 100644 graphics/play_KeyHits.tga delete mode 100755 graphics/play_KeyRail.tga delete mode 100644 graphics/play_KeyShadow.tga delete mode 100644 graphics/play_Keys.tga delete mode 100644 graphics/play_Keys.xcf delete mode 100755 graphics/play_KeysBlack.tga delete mode 100755 graphics/play_KeysWhite.png delete mode 100755 graphics/play_KeysWhite.tga delete mode 100755 graphics/play_NotesBlackColor.tga delete mode 100644 graphics/play_NotesBlackShadow.tga delete mode 100755 graphics/play_NotesWhiteColor.tga delete mode 100644 graphics/play_NotesWhiteShadow.tga delete mode 100644 graphics/play_Status.tga delete mode 100644 graphics/play_Status2.tga delete mode 100644 graphics/score_RetrySong.tga delete mode 100644 graphics/stats_text.tga delete mode 100644 graphics/title_ChooseTracks.tga delete mode 100644 graphics/title_Exit.tga delete mode 100644 graphics/title_GameMusicThemes.tga delete mode 100644 graphics/title_InputBox.tga delete mode 100755 graphics/title_Logo.tga delete mode 100644 graphics/title_OutputBox.tga delete mode 100644 graphics/title_SongBox.tga delete mode 100644 graphics/trackbox.tga delete mode 100644 graphics/trackbox.xcf delete mode 100644 graphics/tracks_BackToTitle.tga delete mode 100644 graphics/tracks_PlaySong.tga create mode 100644 lib_midi/Cargo.toml create mode 100644 lib_midi/src/lib.rs create mode 100644 lib_midi/src/midi.rs create mode 100644 lib_midi/src/track.rs create mode 100644 lib_midi/src/tracks_parser.rs delete mode 100644 music/Game_Themes/Bubble_Bobble_-_Main_Theme.mid delete mode 100644 music/Game_Themes/Dragon_Warrior_-_Town_Theme.mid delete mode 100644 music/Game_Themes/Sonic_the_Hedgehog_-_Green_Hill_Zone.mid delete mode 100644 music/Game_Themes/Super_Mario_Bros_-_Overworld.mid delete mode 100644 music/Game_Themes/Super_Mario_Bros_-_Underwater.mid delete mode 100644 music/Game_Themes/Tetris_-_Theme_A.mid delete mode 100644 music/Game_Themes/The_Sims_-_Buying_Theme_1.mid delete mode 100644 music/Game_Themes/Zelda_A_Link_to_the_Past_-_Overworld_Theme.mid delete mode 100644 music/Game_Themes/Zelda_Ocarina_of_Time_-_Lost_Woods.mid delete mode 100644 music/Game_Themes/Zelda_Ocarina_of_Time_-_Zelda_s_Lullaby.mid delete mode 100644 music/Hannon/Lesson_1.mid delete mode 100644 music/Hannon/Lesson_2.mid delete mode 100644 music/Hannon/Lesson_3.mid delete mode 100644 music/Hannon/Lesson_4.mid delete mode 100644 music/Hannon/Lesson_5.mid delete mode 100644 music/Hannon/Lesson_6.mid delete mode 100644 music/Hannon/Lesson_7.mid delete mode 100644 music/Hannon/Lesson_8.mid delete mode 100644 music/Keyboard_Classics/Aria-Notebook_AM_Bach.mid delete mode 100644 music/Keyboard_Classics/Clementi_Opus_36_no_1_First_Movement.mid delete mode 100644 music/Keyboard_Classics/Fur_Elise-Beethoven.mid delete mode 100644 music/Keyboard_Classics/Minuet_in_F-Leopold_Mozart.mid delete mode 100644 music/Keyboard_Classics/Minuet_in_G-JS_Bach.mid delete mode 100644 music/Keyboard_Classics/Rondino-Rameau.mid delete mode 100644 music/Keyboard_Classics/Russian_Folksong-Beethoven.mid delete mode 100644 music/Keyboard_Classics/Sonatina_in_C-Latour.mid delete mode 100644 music/Learning/0_-_First_Steps/A_Tisket,_A_Tasket.mid delete mode 100644 music/Learning/0_-_First_Steps/Au_Clair_de_la_Lune.mid delete mode 100644 music/Learning/0_-_First_Steps/Aura_Lee_(Love_Me_Tender).mid delete mode 100644 music/Learning/0_-_First_Steps/Away_in_the_Deep_Forest.mid delete mode 100644 music/Learning/0_-_First_Steps/Bridal_March.mid delete mode 100644 music/Learning/0_-_First_Steps/Chopsticks_(Short_Version).mid delete mode 100644 music/Learning/0_-_First_Steps/Fais_Dodo.mid delete mode 100644 music/Learning/0_-_First_Steps/For_Health_and_Strength.mid delete mode 100644 music/Learning/0_-_First_Steps/Good_King_Wenceslas.mid delete mode 100644 music/Learning/0_-_First_Steps/Hot_Cross_Buns.mid delete mode 100644 music/Learning/0_-_First_Steps/I_Saw_Three_Ships.mid delete mode 100644 music/Learning/0_-_First_Steps/Jolly_Old_Saint_Nicholas.mid delete mode 100644 music/Learning/0_-_First_Steps/Mary_Had_a_Little_Lamb.mid delete mode 100644 music/Learning/0_-_First_Steps/Mexican_Hat_Dance.mid delete mode 100644 music/Learning/0_-_First_Steps/Ode_to_Joy.mid delete mode 100644 music/Learning/0_-_First_Steps/Once_a_Small_Green_Mousie.mid delete mode 100644 music/Learning/0_-_First_Steps/Rain,_Rain,_Go_Away.mid delete mode 100644 music/Learning/0_-_First_Steps/Row,_Row,_Row_your_Boat.mid delete mode 100644 music/Learning/0_-_First_Steps/The_Monkey_and_the_Mirror.mid delete mode 100644 music/Learning/0_-_First_Steps/The_Silly_Seal.mid delete mode 100644 music/Learning/0_-_First_Steps/We_Three_Kings_(Short_Version).mid delete mode 100644 music/Learning/1_-_Very_Easy/Alouette.mid delete mode 100644 music/Learning/1_-_Very_Easy/Amazing_Grace.mid delete mode 100644 music/Learning/1_-_Very_Easy/Are_You_Sleeping.mid delete mode 100644 music/Learning/1_-_Very_Easy/Away_in_a_Manger.mid delete mode 100644 music/Learning/1_-_Very_Easy/Beethoven_s_Fifth_Symphony.mid delete mode 100644 music/Learning/1_-_Very_Easy/Bingo.mid delete mode 100644 music/Learning/1_-_Very_Easy/Clementine.mid delete mode 100644 music/Learning/1_-_Very_Easy/Five_Fat_Turkeys_Are_We.mid delete mode 100644 music/Learning/1_-_Very_Easy/Go_Tell_It_on_the_Mountain.mid delete mode 100644 music/Learning/1_-_Very_Easy/I_Have_a_Little_Dreidle.mid delete mode 100644 music/Learning/1_-_Very_Easy/Jesu,_Joy_of_Man_s_Desiring.mid delete mode 100644 music/Learning/1_-_Very_Easy/Jingle_Bells.mid delete mode 100644 music/Learning/1_-_Very_Easy/Les_Cloches_(The_Bells).mid delete mode 100644 music/Learning/1_-_Very_Easy/London_Bridge.mid delete mode 100644 music/Learning/1_-_Very_Easy/My_Palm_Leaf_Hut.mid delete mode 100644 music/Learning/1_-_Very_Easy/Ode_to_Joy.mid delete mode 100644 music/Learning/1_-_Very_Easy/Oh,_When_the_Saints.mid delete mode 100644 music/Learning/1_-_Very_Easy/Old_MacDonald.mid delete mode 100644 music/Learning/1_-_Very_Easy/Persian_Market_Monkey.mid delete mode 100644 music/Learning/1_-_Very_Easy/Row,_Row_Row_your_Boat.mid delete mode 100644 music/Learning/1_-_Very_Easy/Surprise!.mid delete mode 100644 music/Learning/1_-_Very_Easy/The_Chimes.mid delete mode 100644 music/Learning/1_-_Very_Easy/The_First_Noel.mid delete mode 100644 music/Learning/1_-_Very_Easy/Turkey_in_the_Straw.mid delete mode 100644 music/Learning/1_-_Very_Easy/Twinkle,_Twinkle,_Little_Star.mid delete mode 100644 music/Learning/1_-_Very_Easy/We_Gather_Together.mid delete mode 100644 music/Learning/1_-_Very_Easy/We_Wish_You_a_Merry_Christmas.mid delete mode 100644 music/Learning/1_-_Very_Easy/Yankee_Doodle.mid delete mode 100644 music/Learning/2_-_Easy/America,_the_Beautiful.mid delete mode 100644 music/Learning/2_-_Easy/Angels_We_Have_Heard_on_High.mid delete mode 100644 music/Learning/2_-_Easy/Beethoven_s_Fifth_Symphony.mid delete mode 100644 music/Learning/2_-_Easy/Can_You_Plant_your_Cabbage_So.mid delete mode 100644 music/Learning/2_-_Easy/Chopsticks.mid delete mode 100644 music/Learning/2_-_Easy/Do_Your_Ears_Hang_Low.mid delete mode 100644 music/Learning/2_-_Easy/Fur_Elise.mid delete mode 100644 music/Learning/2_-_Easy/Going_Home_-_Dvorak.mid delete mode 100644 music/Learning/2_-_Easy/Have_You_Ever_Thought.mid delete mode 100644 music/Learning/2_-_Easy/How_They_Dance,_Dance.mid delete mode 100644 music/Learning/2_-_Easy/I_ve_Been_Working_on_the_Railroad.mid delete mode 100644 music/Learning/2_-_Easy/Jana-Gana-Mana.mid delete mode 100644 music/Learning/2_-_Easy/Jolly_Old_Saint_Nicholas.mid delete mode 100644 music/Learning/2_-_Easy/La_Cucaracha.mid delete mode 100644 music/Learning/2_-_Easy/Lightly_Row.mid delete mode 100644 music/Learning/2_-_Easy/O_Christmas_Tree.mid delete mode 100644 music/Learning/2_-_Easy/Ode_to_Joy.mid delete mode 100644 music/Learning/2_-_Easy/Oh,_When_the_Saints.mid delete mode 100644 music/Learning/2_-_Easy/Oh_There_Was_Once_a_Little_Ship.mid delete mode 100644 music/Learning/2_-_Easy/Skip_to_my_Lou.mid delete mode 100644 music/Learning/2_-_Easy/Sonatina_Piccolina.mid delete mode 100644 music/Learning/2_-_Easy/The_Muffin_Man.mid delete mode 100644 music/Learning/2_-_Easy/The_Wheels_on_the_Bus.mid delete mode 100644 music/Learning/3_-_Medium/A_Mighty_Fortress_is_Our_God.mid delete mode 100644 music/Learning/3_-_Medium/A_la_Claire_Fontaine.mid delete mode 100644 music/Learning/3_-_Medium/America.mid delete mode 100644 music/Learning/3_-_Medium/Au_Clair_de_la_Lune.mid delete mode 100644 music/Learning/3_-_Medium/Bahay_Kubo_My_Palm_Leaf_Hut.mid delete mode 100644 music/Learning/3_-_Medium/Bridal_March.mid delete mode 100644 music/Learning/3_-_Medium/Eine_kleine_Nachtmusik.mid delete mode 100644 music/Learning/3_-_Medium/God_Save_the_Queen.mid delete mode 100644 music/Learning/3_-_Medium/Hanukkah,_Hanukkah.mid delete mode 100644 music/Learning/3_-_Medium/In_My_Hot_Air_Balloon.mid delete mode 100644 music/Learning/3_-_Medium/Jesu,_Joy_of_Man_s_Desiring.mid delete mode 100644 music/Learning/3_-_Medium/Joy_to_the_World.mid delete mode 100644 music/Learning/3_-_Medium/Mexican_Hat_Dance.mid delete mode 100644 music/Learning/3_-_Medium/Morning_Song.mid delete mode 100644 music/Learning/3_-_Medium/My_Bonnie_Lies_Over_the_Ocean_Long.mid delete mode 100644 music/Learning/3_-_Medium/My_Bonnie_Lies_over_the_Ocean.mid delete mode 100644 music/Learning/3_-_Medium/Ode_to_Joy.mid delete mode 100644 music/Learning/3_-_Medium/Oh_When_the_Saints.mid delete mode 100644 music/Learning/3_-_Medium/Old_MacDonald.mid delete mode 100644 music/Learning/3_-_Medium/Silent_Night.mid delete mode 100644 music/Learning/3_-_Medium/Sur_le_Pont_d_Avignon.mid delete mode 100644 music/Learning/3_-_Medium/The_Ants_Go_Marching.mid delete mode 100644 music/Learning/3_-_Medium/The_Barn_Cat.mid delete mode 100644 music/Learning/3_-_Medium/The_Ghost_Of_Tom.mid delete mode 100644 music/Learning/3_-_Medium/The_Star-Spangled_Banner.mid delete mode 100644 music/Learning/3_-_Medium/This_Old_Man.mid delete mode 100644 music/Learning/3_-_Medium/Toccata_and_Fugue_in_D_minor_-_intro.mid delete mode 100644 music/Learning/3_-_Medium/We_Three_Kings.mid delete mode 100644 music/Learning/3_-_Medium/Ye_Knights_of_the_Round_Table.mid delete mode 100644 music/Learning/4_-_Hard/Aupres_de_ma_Blonde.mid delete mode 100644 music/Learning/4_-_Hard/Ave_Maria.mid delete mode 100644 music/Learning/4_-_Hard/Beethoven_s_Fifth_Symphony.mid delete mode 100644 music/Learning/4_-_Hard/Brahms__Lullaby.mid delete mode 100644 music/Learning/4_-_Hard/Canon_in_D.mid delete mode 100644 music/Learning/4_-_Hard/Chinese_Folk_Song.mid delete mode 100644 music/Learning/4_-_Hard/Cripple_Creek.mid delete mode 100644 music/Learning/4_-_Hard/God_Rest_Ye_Merry_Gentlemen.mid delete mode 100644 music/Learning/4_-_Hard/God_Save_the_Queen.mid delete mode 100644 music/Learning/4_-_Hard/Hark!_The_Herald_Angels_Sing.mid delete mode 100644 music/Learning/4_-_Hard/Head,_Shoulders,_Knees_and_Toes.mid delete mode 100644 music/Learning/4_-_Hard/In_a_Cabin_in_the_Woods.mid delete mode 100644 music/Learning/4_-_Hard/La_Marseillaise.mid delete mode 100644 music/Learning/4_-_Hard/Lupang_Hinirang.mid delete mode 100644 music/Learning/4_-_Hard/Moonlight_Sonata.mid delete mode 100644 music/Learning/4_-_Hard/My_Grandfather_s_Clock.mid delete mode 100644 music/Learning/4_-_Hard/O_Canada!.mid delete mode 100644 music/Learning/4_-_Hard/Oh_Hanukah.mid delete mode 100644 music/Learning/4_-_Hard/Over_the_River_and_Through_the_Woods.mid delete mode 100644 music/Learning/4_-_Hard/Sevivon,_Sov,_Sov,_Sov.mid delete mode 100644 music/Learning/4_-_Hard/Shuha_D-Maryam.mid delete mode 100644 music/Learning/4_-_Hard/Sonatina_in_G.mid delete mode 100644 music/Learning/4_-_Hard/Swing_Low,_Sweet_Chariot.mid delete mode 100644 music/Learning/4_-_Hard/The_Entertainer.mid delete mode 100644 music/Learning/4_-_Hard/The_First_Noel.mid delete mode 100644 music/Learning/4_-_Hard/The_Yellow_Rose_of_Texas.mid delete mode 100644 music/Learning/4_-_Hard/Waltzing_Matilda.mid delete mode 100644 music/Learning/5_-_Harder/Amazing_Grace.mid delete mode 100644 music/Learning/5_-_Harder/Big_Bad_Goblin_Blues.mid delete mode 100644 music/Learning/5_-_Harder/Carribean_Cruise.mid delete mode 100644 music/Learning/5_-_Harder/Danny_Boy.mid delete mode 100644 music/Learning/5_-_Harder/Evening_Falls.mid delete mode 100644 music/Learning/5_-_Harder/Greensleeves.mid delete mode 100644 music/Learning/5_-_Harder/Habanera_from_Carmen.mid delete mode 100644 music/Learning/5_-_Harder/Jana-Gana-Mana.mid delete mode 100644 music/Learning/5_-_Harder/March_on_Android_Moon.mid delete mode 100644 music/Learning/5_-_Harder/Moonlight_Sonata.mid delete mode 100644 music/Learning/5_-_Harder/Once_a_Canadian_Lad.mid delete mode 100644 music/Learning/5_-_Harder/Rock_Solid_Blues.mid delete mode 100644 music/Learning/5_-_Harder/See_How_the_Night_Arrives.mid delete mode 100644 music/Learning/5_-_Harder/The_Four_Seasons_-_Autumn.mid delete mode 100644 music/Learning/5_-_Harder/Toreador_from_Carmen.mid delete mode 100644 music/Learning/G_Major_Music.txt delete mode 100644 music/Popular/Gymnopedie.mid delete mode 100644 music/Popular/Jonh_Lennon_-_Imagine.mid delete mode 100644 scripts/Makefile.am delete mode 100755 scripts/delay_screensaver.sh delete mode 100644 src/CompatibleSystem.cpp delete mode 100644 src/CompatibleSystem.h delete mode 100644 src/DeviceTile.cpp delete mode 100644 src/DeviceTile.h delete mode 100644 src/DpmsThread.h delete mode 100644 src/FileSelector.cpp delete mode 100644 src/FileSelector.h delete mode 100644 src/FrameCounter.h delete mode 100644 src/GameState.cpp delete mode 100644 src/GameState.h delete mode 100644 src/KeyboardDisplay.cpp delete mode 100644 src/KeyboardDisplay.h delete mode 100644 src/LinthesiaError.cpp delete mode 100644 src/LinthesiaError.h delete mode 100644 src/Makefile.am delete mode 100644 src/MenuLayout.cpp delete mode 100644 src/MenuLayout.h delete mode 100644 src/MidiComm.cpp delete mode 100644 src/MidiComm.h delete mode 100644 src/OSGraphics.h delete mode 100644 src/PlayingState.cpp delete mode 100644 src/PlayingState.h delete mode 100644 src/Renderer.cpp delete mode 100644 src/Renderer.h delete mode 100644 src/SharedState.h delete mode 100644 src/StatsState.cpp delete mode 100644 src/StatsState.h delete mode 100644 src/StringTile.cpp delete mode 100644 src/StringTile.h delete mode 100644 src/StringUtil.h delete mode 100644 src/TextWriter.cpp delete mode 100644 src/TextWriter.h delete mode 100644 src/Textures.h delete mode 100644 src/Tga.cpp delete mode 100644 src/Tga.h delete mode 100644 src/TitleState.cpp delete mode 100644 src/TitleState.h delete mode 100644 src/TrackProperties.h delete mode 100644 src/TrackSelectionState.cpp delete mode 100644 src/TrackSelectionState.h delete mode 100644 src/TrackTile.cpp delete mode 100644 src/TrackTile.h delete mode 100644 src/UserSettings.cpp delete mode 100644 src/UserSettings.h delete mode 100644 src/Version.h create mode 100644 src/event_loop.rs delete mode 100644 src/libmidi/Midi.cpp delete mode 100644 src/libmidi/Midi.h delete mode 100644 src/libmidi/MidiEvent.cpp delete mode 100644 src/libmidi/MidiEvent.h delete mode 100644 src/libmidi/MidiTrack.cpp delete mode 100644 src/libmidi/MidiTrack.h delete mode 100644 src/libmidi/MidiTypes.h delete mode 100644 src/libmidi/MidiUtil.cpp delete mode 100644 src/libmidi/MidiUtil.h delete mode 100644 src/libmidi/Note.h delete mode 100644 src/main.cpp create mode 100644 src/main.rs create mode 100644 src/midi_device/devices_menager.rs create mode 100644 src/midi_device/mod.rs delete mode 100644 src/neolib/GLShader.cpp delete mode 100644 src/neolib/GLShader.h delete mode 100644 src/neolib/NeoFBO.cpp delete mode 100644 src/neolib/NeoFBO.h delete mode 100644 src/neolib/ParticleSystem.cpp delete mode 100644 src/neolib/ParticleSystem.h create mode 100644 src/rectangle_pipeline/instance_data.rs create mode 100644 src/rectangle_pipeline/mod.rs create mode 100644 src/rectangle_pipeline/rectangle_pipeline.rs create mode 100644 src/rectangle_pipeline/shader/quad.frag create mode 100644 src/rectangle_pipeline/shader/quad.frag.spv create mode 100644 src/rectangle_pipeline/shader/quad.vert create mode 100644 src/rectangle_pipeline/shader/quad.vert.spv create mode 100644 src/scene/menu_scene/bg_pipeline/bg_pipeline.rs create mode 100644 src/scene/menu_scene/bg_pipeline/mod.rs create mode 100644 src/scene/menu_scene/bg_pipeline/shader/quad.frag create mode 100644 src/scene/menu_scene/bg_pipeline/shader/quad.frag.spv create mode 100644 src/scene/menu_scene/bg_pipeline/shader/quad.vert create mode 100644 src/scene/menu_scene/bg_pipeline/shader/quad.vert.spv create mode 100644 src/scene/menu_scene/menu_scene.rs create mode 100644 src/scene/menu_scene/mod.rs create mode 100644 src/scene/mod.rs create mode 100644 src/scene/playing_scene/keyboard.rs create mode 100644 src/scene/playing_scene/keyboard_pipeline/instance_data.rs create mode 100644 src/scene/playing_scene/keyboard_pipeline/keyboard_pipeline.rs create mode 100644 src/scene/playing_scene/keyboard_pipeline/mod.rs create mode 100644 src/scene/playing_scene/keyboard_pipeline/shader/quad.frag create mode 100644 src/scene/playing_scene/keyboard_pipeline/shader/quad.frag.spv create mode 100644 src/scene/playing_scene/keyboard_pipeline/shader/quad.vert create mode 100644 src/scene/playing_scene/keyboard_pipeline/shader/quad.vert.spv create mode 100644 src/scene/playing_scene/mod.rs create mode 100644 src/scene/playing_scene/notes.rs create mode 100644 src/scene/playing_scene/notes_pipeline/instance_data.rs create mode 100644 src/scene/playing_scene/notes_pipeline/mod.rs create mode 100644 src/scene/playing_scene/notes_pipeline/notes_pipeline.rs create mode 100644 src/scene/playing_scene/notes_pipeline/shader/quad.frag create mode 100644 src/scene/playing_scene/notes_pipeline/shader/quad.frag.spv create mode 100644 src/scene/playing_scene/notes_pipeline/shader/quad.vert create mode 100644 src/scene/playing_scene/notes_pipeline/shader/quad.vert.spv create mode 100644 src/scene/playing_scene/playing_scene.rs create mode 100644 src/scene/scene.rs delete mode 100644 src/shaders/BlurParticleGLShader.h delete mode 100644 src/shaders/RenderTextureGLShader.h delete mode 100644 src/shaders/test.frag delete mode 100644 src/shaders/test.vert delete mode 100644 src/shaders/test2.frag delete mode 100644 src/shaders/test3.frag delete mode 100644 src/shaders/test3.vert create mode 100644 src/time_menager.rs create mode 100644 src/transform_uniform.rs create mode 100644 src/ui/Roboto-Regular.ttf create mode 100644 src/ui/button_pipeline/button_pipeline.rs create mode 100644 src/ui/button_pipeline/instance_data.rs create mode 100644 src/ui/button_pipeline/mod.rs create mode 100644 src/ui/button_pipeline/shader/quad.frag create mode 100644 src/ui/button_pipeline/shader/quad.frag.spv create mode 100644 src/ui/button_pipeline/shader/quad.vert create mode 100644 src/ui/button_pipeline/shader/quad.vert.spv create mode 100644 src/ui/mod.rs create mode 100644 src/ui/ui.rs create mode 100644 src/web_wrappers/mod.rs create mode 100644 src/web_wrappers/time.rs create mode 100644 src/wgpu_jumpstart/gpu.rs create mode 100644 src/wgpu_jumpstart/instances.rs create mode 100644 src/wgpu_jumpstart/mod.rs create mode 100644 src/wgpu_jumpstart/render_pipeline_builder.rs create mode 100644 src/wgpu_jumpstart/shader.rs create mode 100644 src/wgpu_jumpstart/simple_quad.rs create mode 100644 src/wgpu_jumpstart/surface.rs create mode 100644 src/wgpu_jumpstart/uniform.rs create mode 100644 src/wgpu_jumpstart/window.rs create mode 100644 test.mid diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml new file mode 100644 index 00000000..8829e64c --- /dev/null +++ b/.github/workflows/rust.yml @@ -0,0 +1,43 @@ +name: Rust + +on: [push, pull_request] + +jobs: + build_ubuntu: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install alsa + run: sudo apt-get install libasound2-dev + - name: Build + run: cargo build --release --verbose + - name: Run tests + run: cargo test --verbose + - uses: actions/upload-artifact@v2 + with: + name: ubuntu-artifact + path: target/release/neothesia + build_windows: + runs-on: windows-latest + steps: + - uses: actions/checkout@v2 + - name: Build + run: cargo build --release --verbose + - name: Run tests + run: cargo test --verbose + - uses: actions/upload-artifact@v2 + with: + name: windows-artifact + path: target/release/neothesia.exe + build_macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v2 + - name: Build + run: cargo build --release --verbose + - name: Run tests + run: cargo test --verbose + - uses: actions/upload-artifact@v2 + with: + name: macos-artifact + path: target/release/neothesia diff --git a/.gitignore b/.gitignore index 190e0790..53eaa219 100644 --- a/.gitignore +++ b/.gitignore @@ -1,33 +1,2 @@ -*.o -*.lo -Makefile -Makefile.in -aclocal.m4 -autom4te.cache/ -config.h -config.log -config.status -configure -libtool -src/.deps/ -src/.libs/ -src/Makefile -src/Makefile.in -src/libmidi.la -src/libmidi/.deps/ -src/libmidi/.dirstamp -src/linthesia -stamp-h1 - -build - -# generated with autoreconf -ivf -config.guess -config.sub -m4/ -missing -compile -config.h.in -depcomp -install-sh -ltmain.sh +/target +**/*.rs.bk diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c2ef12c3..00000000 --- a/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -language: c - -compiler: - - gcc - -sudo: required - -dist: trusty - -before_script: - - sudo apt-get update -qq - - sudo apt-get install -qq autoconf - - sudo apt-get install -qq libgtkmm-2.4-dev - - sudo apt-get install -qq libgconfmm-2.6-dev - - sudo apt-get install -qq libgtkglextmm-x11-1.2-dev - - sudo apt-get install -qq libasound2-dev - -script: - - autoconf --version - - mkdir m4 && ./autogen.sh && make && make check - - diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 58a7bd82..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "(gdb) Launch", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/src/neothesia", - "args": [], - "stopAtEntry": false, - "cwd": "${workspaceFolder}", - "environment": [], - "MIMode": "gdb", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ], - "preLaunchTask": "make" - } - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index d88ded53..00000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "files.associations": { - "cctype": "cpp", - "clocale": "cpp", - "cmath": "cpp", - "cstdarg": "cpp", - "cstddef": "cpp", - "cstdio": "cpp", - "cstdlib": "cpp", - "cstring": "cpp", - "ctime": "cpp", - "cwchar": "cpp", - "cwctype": "cpp", - "array": "cpp", - "atomic": "cpp", - "*.tcc": "cpp", - "chrono": "cpp", - "condition_variable": "cpp", - "cstdint": "cpp", - "deque": "cpp", - "list": "cpp", - "unordered_map": "cpp", - "vector": "cpp", - "exception": "cpp", - "fstream": "cpp", - "functional": "cpp", - "initializer_list": "cpp", - "iomanip": "cpp", - "iosfwd": "cpp", - "iostream": "cpp", - "istream": "cpp", - "limits": "cpp", - "memory": "cpp", - "mutex": "cpp", - "new": "cpp", - "numeric": "cpp", - "optional": "cpp", - "ostream": "cpp", - "ratio": "cpp", - "sstream": "cpp", - "stdexcept": "cpp", - "streambuf": "cpp", - "string_view": "cpp", - "system_error": "cpp", - "thread": "cpp", - "type_traits": "cpp", - "tuple": "cpp", - "typeinfo": "cpp", - "utility": "cpp", - "valarray": "cpp", - "__config": "cpp", - "__nullptr": "cpp", - "algorithm": "cpp", - "variant": "cpp" - }, - "editor.tabSize": 2 -} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 7a9e829e..516966d6 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,16 +1,13 @@ { - // See https://go.microsoft.com/fwlink/?LinkId=733558 - // for the documentation about the tasks.json format - "version": "2.0.0", - "tasks": [ - { - "label": "make", - "type": "shell", - "command": "cd ${workspaceFolder}/build/ && make", - "group": { - "kind": "build", - "isDefault": true - } - } - ] -} \ No newline at end of file + // See https://go.microsoft.com/fwlink/?LinkId=733558 + // for the documentation about the tasks.json format + "version": "2.0.0", + "tasks": [ + { + "type": "cargo", + "subcommand": "run", + "problemMatcher": ["$rustc"], + "group": "build" + } + ] +} diff --git a/BUILD-DEPENDS b/BUILD-DEPENDS deleted file mode 100644 index 15da6a18..00000000 --- a/BUILD-DEPENDS +++ /dev/null @@ -1,5 +0,0 @@ -libgtkmm-2.4-dev -libgconfmm-2.6-dev -libgtkglextmm-x11-1.2-dev -libasound2-dev - diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index e3c8bb90..00000000 --- a/CHANGELOG +++ /dev/null @@ -1,34 +0,0 @@ -linthesia (0.4-2) unstable; urgency=low - - * Fixed "Unable to load PangoFont" bug on all platforms - * Added autoconf build system - - -- Victor Lavaud Tue, 10 Sept 2013 13:16:00 +0100 - -linthesia (0.4-1) unstable; urgency=low - - * New upstream release. - * Non-maintainer commit. - * (Closes: #2920321). - - -- Oscar Aceña Tue, 29 Dec 2009 17:19:38 +0100 - -linthesia (0.3-2) unstable; urgency=low - - * New upstream release - * Non-maintainer commit. - * (Closes: #2920683). - - -- Oscar Aceña Sat, 26 Dec 2009 14:06:28 +0100 - -linthesia (0.3-1) unstable; urgency=low - - * New upstream release - - -- Cleto Martin Angelina Thu, 24 Dec 2009 14:38:10 +0100 - -linthesia (0.1-1) unstable; urgency=low - - * Initial release (Closes: #562487) - - -- Cleto Martin Angelina Fri, 18 Dec 2009 13:49:36 +0100 diff --git a/COPYING b/COPYING deleted file mode 100644 index d511905c..00000000 --- a/COPYING +++ /dev/null @@ -1,339 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Lesser General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License along - with this program; if not, write to the Free Software Foundation, Inc., - 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. diff --git a/Cargo.lock b/Cargo.lock new file mode 100644 index 00000000..762ae24d --- /dev/null +++ b/Cargo.lock @@ -0,0 +1,2063 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +[[package]] +name = "aho-corasick" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada" +dependencies = [ + "memchr", +] + +[[package]] +name = "alsa" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4a0d4ebc8b23041c5de9bc9aee13b4bad844a589479701f31a5934cfe4aeb32" +dependencies = [ + "alsa-sys", + "bitflags 0.9.1", + "libc", + "nix 0.9.0", +] + +[[package]] +name = "alsa-sys" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "andrew" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b7f09f89872c2b6b29e319377b1fbe91c6f5947df19a25596e121cf19a7b35e" +dependencies = [ + "bitflags 1.2.1", + "line_drawing", + "rusttype 0.7.9", + "walkdir", + "xdg", + "xml-rs", +] + +[[package]] +name = "android_glue" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "000444226fcff248f2bc4c7625be32c63caccfecc2723a2b9f78a7487a49c407" + +[[package]] +name = "approx" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" +dependencies = [ + "num-traits", +] + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8" + +[[package]] +name = "ash" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69daec0742947f33a85931fa3cb0ce5f07929159dcbd1f0cbb5b2912e2978509" +dependencies = [ + "libloading", +] + +[[package]] +name = "atom" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c86699c3f02778ec07158376991c8f783dd1f2f95c579ffaf0738dc984b2fe2" + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi", + "libc", + "winapi 0.3.8", +] + +[[package]] +name = "autocfg" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" + +[[package]] +name = "backtrace" +version = "0.3.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1e692897359247cc6bb902933361652380af0f1b7651ae5c5013407f30e109e" +dependencies = [ + "backtrace-sys", + "cfg-if", + "libc", + "rustc-demangle", +] + +[[package]] +name = "backtrace-sys" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78848718ee1255a2485d1309ad9cdecfc2e7d0362dd11c6829364c6b35ae1bc7" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "bitflags" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" + +[[package]] +name = "bitflags" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" + +[[package]] +name = "block" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" + +[[package]] +name = "block-buffer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a076c298b9ecdb530ed9d967e74a6027d6a7478924520acddcddc24c1c8ab3ab" +dependencies = [ + "arrayref", + "byte-tools", +] + +[[package]] +name = "bumpalo" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ae9db68ad7fac5fe51304d20f016c911539251075a214f8e663babefa35187" + +[[package]] +name = "byte-tools" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40" + +[[package]] +name = "byteorder" +version = "1.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" + +[[package]] +name = "calloop" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aa2097be53a00de9e8fc349fea6d76221f398f5c4fa550d420669906962d160" +dependencies = [ + "mio", + "mio-extras", + "nix 0.14.1", +] + +[[package]] +name = "cc" +version = "1.0.52" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d" + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cloudabi" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +dependencies = [ + "bitflags 1.2.1", +] + +[[package]] +name = "cmake" +version = "0.1.42" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fb25b677f8bf1eb325017cb6bb8452f87969db0fedb4f757b297bee78a7c62" +dependencies = [ + "cc", +] + +[[package]] +name = "cocoa" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29f7768b2d1be17b96158e3285951d366b40211320fb30826a76cb7a0da6400" +dependencies = [ + "bitflags 1.2.1", + "block", + "core-foundation 0.6.4", + "core-graphics 0.17.3", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "cocoa" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4736c86d51bd878b474400d9ec888156f4037015f5d09794fab9f26eab1ad4" +dependencies = [ + "bitflags 1.2.1", + "block", + "core-foundation 0.7.0", + "core-graphics 0.19.0", + "foreign-types", + "libc", + "objc", +] + +[[package]] +name = "copyless" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ff9c56c9fb2a49c05ef0e431485a22400af20d33226dc0764d891d09e724127" + +[[package]] +name = "core-foundation" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25bfd746d203017f7d5cbd31ee5d8e17f94b6521c7af77ece6c9e4b2d4b16c67" +dependencies = [ + "core-foundation-sys 0.2.3", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d" +dependencies = [ + "core-foundation-sys 0.6.2", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +dependencies = [ + "core-foundation-sys 0.7.0", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "065a5d7ffdcbc8fa145d6f0746f3555025b9097a9e9cda59f7467abae670c78d" +dependencies = [ + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b" + +[[package]] +name = "core-foundation-sys" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" + +[[package]] +name = "core-graphics" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56790968ab1c8a1202a102e6de05fc6e1ec87da99e4e93e9a7d13efbfc1e95a9" +dependencies = [ + "bitflags 1.2.1", + "core-foundation 0.6.4", + "foreign-types", + "libc", +] + +[[package]] +name = "core-graphics" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59e78b2e0aaf43f08e7ae0d6bc96895ef72ff0921c7d4ff4762201b2dba376dd" +dependencies = [ + "bitflags 1.2.1", + "core-foundation 0.7.0", + "foreign-types", + "libc", +] + +[[package]] +name = "core-video-sys" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc065219542086f72d1e9f7aadbbab0989e980263695d129d502082d063a9d0" +dependencies = [ + "cfg-if", + "core-foundation-sys 0.6.2", + "core-graphics 0.17.3", + "libc", + "objc", +] + +[[package]] +name = "coremidi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99f92de5534f182bad5f91cad85611ab222cb6e237a0555e06c65a24936c3173" +dependencies = [ + "core-foundation 0.2.3", + "core-foundation-sys 0.2.3", + "coremidi-sys", + "time", +] + +[[package]] +name = "coremidi-sys" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07f05827cebb30dcd539ff1ac9bf6764f574a15fa147f8572f99d7617142f95e" +dependencies = [ + "core-foundation-sys 0.2.3", +] + +[[package]] +name = "crossbeam-deque" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", + "maybe-uninit", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "lazy_static", + "maybe-uninit", + "memoffset", + "scopeguard", +] + +[[package]] +name = "crossbeam-queue" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +dependencies = [ + "autocfg", + "cfg-if", + "lazy_static", +] + +[[package]] +name = "d3d12" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7ed48e89905e5e146bcc1951cc3facb9e44aea9adf5dc01078cda1bd24b662" +dependencies = [ + "bitflags 1.2.1", + "libloading", + "winapi 0.3.8", +] + +[[package]] +name = "digest" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90" +dependencies = [ + "generic-array", +] + +[[package]] +name = "dispatch" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" + +[[package]] +name = "dlib" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e51249a9d823a4cb79e3eca6dcd756153e8ed0157b6c04775d04bf1b13b76a" +dependencies = [ + "libloading", +] + +[[package]] +name = "downcast-rs" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ba6eb47c2131e784a38b726eb54c1e1484904f013e576a25354d0124161af6" + +[[package]] +name = "either" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" + +[[package]] +name = "env_logger" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "failure" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8529c2421efa3066a5cbd8063d2244603824daccb6936b079010bb2aa89464b" +dependencies = [ + "backtrace", + "failure_derive", +] + +[[package]] +name = "failure_derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "030a733c8287d6213886dd487564ff5c8f6aae10278b3588ed177f9d18f8d231" +dependencies = [ + "proc-macro2 1.0.10", + "quote 1.0.3", + "syn", + "synstructure", +] + +[[package]] +name = "fake-simd" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "fuchsia-zircon" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +dependencies = [ + "bitflags 1.2.1", + "fuchsia-zircon-sys", +] + +[[package]] +name = "fuchsia-zircon-sys" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + +[[package]] +name = "futures" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" + +[[package]] +name = "futures-executor" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789" + +[[package]] +name = "futures-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" +dependencies = [ + "proc-macro-hack", + "proc-macro2 1.0.10", + "quote 1.0.3", + "syn", +] + +[[package]] +name = "futures-sink" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" + +[[package]] +name = "futures-task" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" +dependencies = [ + "once_cell", +] + +[[package]] +name = "futures-util" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project", + "pin-utils", + "proc-macro-hack", + "proc-macro-nested", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "generic-array" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d" +dependencies = [ + "typenum", +] + +[[package]] +name = "getrandom" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gfx-auxil" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b46e6f0031330a0be08d17820f2dcaaa91cb36710a97a9500cb4f1c36e785c8" +dependencies = [ + "fxhash", + "gfx-hal", + "spirv_cross", +] + +[[package]] +name = "gfx-backend-dx11" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b148219292624126f78245e50a9720d95ea149a415ce8ce73ab7014205301b88" +dependencies = [ + "bitflags 1.2.1", + "gfx-auxil", + "gfx-hal", + "libloading", + "log", + "parking_lot", + "range-alloc", + "raw-window-handle", + "smallvec", + "spirv_cross", + "winapi 0.3.8", + "wio", +] + +[[package]] +name = "gfx-backend-dx12" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0e526746379e974501551b08958947e67a81b5ea8cdc717a000cdd72577da05" +dependencies = [ + "bitflags 1.2.1", + "d3d12", + "gfx-auxil", + "gfx-hal", + "log", + "range-alloc", + "raw-window-handle", + "smallvec", + "spirv_cross", + "winapi 0.3.8", +] + +[[package]] +name = "gfx-backend-empty" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67bd2d7bc022b257ddbdabc5fa3b10c29c292372c3409f2b6a6e3f4e11cdb85" +dependencies = [ + "gfx-hal", + "raw-window-handle", +] + +[[package]] +name = "gfx-backend-metal" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe128c29675b5afc8acdda1dfe096d6abd5e3528059ab0b98bda8215d8beed9" +dependencies = [ + "arrayvec", + "bitflags 1.2.1", + "block", + "cocoa 0.20.0", + "copyless", + "core-graphics 0.19.0", + "foreign-types", + "gfx-auxil", + "gfx-hal", + "lazy_static", + "log", + "metal", + "objc", + "parking_lot", + "range-alloc", + "raw-window-handle", + "smallvec", + "spirv_cross", + "storage-map", +] + +[[package]] +name = "gfx-backend-vulkan" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e4da6ab11e9cb972e52ed5e179ddfa1f2a910c61560d91cff92b4dfc682c27c" +dependencies = [ + "arrayvec", + "ash", + "byteorder", + "core-graphics 0.19.0", + "gfx-hal", + "lazy_static", + "log", + "objc", + "raw-window-handle", + "smallvec", + "winapi 0.3.8", + "x11", +] + +[[package]] +name = "gfx-descriptor" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bf35f5d66d1bc56e63e68d7528441453f25992bd954b84309d23c659df2c5da" +dependencies = [ + "fxhash", + "gfx-hal", + "log", +] + +[[package]] +name = "gfx-hal" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc96180204064c9493e0fe4a9efeb721e0ac59fe8e1906d0c659142a93114fb1" +dependencies = [ + "bitflags 1.2.1", + "raw-window-handle", +] + +[[package]] +name = "gfx-memory" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2eed6cda674d9cd4d92229102dbd544292124533d236904f987e9afab456137" +dependencies = [ + "fxhash", + "gfx-hal", + "hibitset", + "log", + "slab", +] + +[[package]] +name = "glsl-to-spirv" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28caebc98746d507603a2d3df66dcbe04e41d4febad0320f3eec1ef72b6bbef1" +dependencies = [ + "cmake", + "sha2", + "tempfile", +] + +[[package]] +name = "glyph_brush" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fca6f9d679bff1322c76c9a1ad4b8553b30a94f3f75bea6936e19032c2f2ec3" +dependencies = [ + "glyph_brush_layout", + "log", + "ordered-float", + "rustc-hash", + "rusttype 0.8.3", + "twox-hash", +] + +[[package]] +name = "glyph_brush_layout" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b70adc570f1dc71b6b32e241cbcc2b42175f5aea71951fbf41e68b04aec24c7" +dependencies = [ + "approx", + "rusttype 0.8.3", + "xi-unicode", +] + +[[package]] +name = "hermit-abi" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4" +dependencies = [ + "libc", +] + +[[package]] +name = "hibitset" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93a1bb8316a44459a7d14253c4d28dd7395cbd23cc04a68c46e851b8e46d64b1" +dependencies = [ + "atom", +] + +[[package]] +name = "humantime" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +dependencies = [ + "quick-error", +] + +[[package]] +name = "instant" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7152d2aed88aa566e7a342250f21ba2222c1ae230ad577499dbfa3c18475b80" +dependencies = [ + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "iovec" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a27d435371a2fa5b6d2b028a74bbdb1234f308da363226a2854ca3ff8ba7055" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kernel32-sys" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" + +[[package]] +name = "lib_midi" +version = "0.1.0" +dependencies = [ + "midly", +] + +[[package]] +name = "libc" +version = "0.2.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005" + +[[package]] +name = "libloading" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" +dependencies = [ + "cc", + "winapi 0.3.8", +] + +[[package]] +name = "line_drawing" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cc7ad3d82c845bdb5dde34ffdcc7a5fb4d2996e1e1ee0f19c33bc80e15196b9" +dependencies = [ + "num-traits", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae91b68aebc4ddb91978b11a1b02ddd8602a05ec19002801c5666000e05e0f83" + +[[package]] +name = "lock_api" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "malloc_buf" +version = "0.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb" +dependencies = [ + "libc", +] + +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + +[[package]] +name = "memalloc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df39d232f5c40b0891c10216992c2f250c054105cb1e56f0fc9032db6203ecc1" + +[[package]] +name = "memchr" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" + +[[package]] +name = "memmap" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" +dependencies = [ + "libc", + "winapi 0.3.8", +] + +[[package]] +name = "memoffset" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8" +dependencies = [ + "autocfg", +] + +[[package]] +name = "metal" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e198a0ee42bdbe9ef2c09d0b9426f3b2b47d90d93a4a9b0395c4cea605e92dc0" +dependencies = [ + "bitflags 1.2.1", + "block", + "cocoa 0.20.0", + "core-graphics 0.19.0", + "foreign-types", + "log", + "objc", +] + +[[package]] +name = "midir" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76969e859af0b6dd93eb6bcbfd11029eec1b53035c015ce43b56e73bbbc02621" +dependencies = [ + "alsa", + "bitflags 1.2.1", + "coremidi", + "js-sys", + "libc", + "memalloc", + "nix 0.9.0", + "wasm-bindgen", + "web-sys", + "winapi 0.3.8", +] + +[[package]] +name = "midly" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8f2717d3da3d1b2e9a0df9fc66057e1c7c237b946e7a287223cc06f8a429e3" +dependencies = [ + "failure", + "rayon", +] + +[[package]] +name = "mio" +version = "0.6.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f" +dependencies = [ + "cfg-if", + "fuchsia-zircon", + "fuchsia-zircon-sys", + "iovec", + "kernel32-sys", + "libc", + "log", + "miow", + "net2", + "slab", + "winapi 0.2.8", +] + +[[package]] +name = "mio-extras" +version = "2.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19" +dependencies = [ + "lazycell", + "log", + "mio", + "slab", +] + +[[package]] +name = "miow" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" +dependencies = [ + "kernel32-sys", + "net2", + "winapi 0.2.8", + "ws2_32-sys", +] + +[[package]] +name = "neothesia" +version = "0.1.0" +dependencies = [ + "env_logger", + "futures", + "glsl-to-spirv", + "lib_midi", + "log", + "midir", + "tinyfiledialogs", + "wgpu", + "wgpu_glyph", + "winit", + "zerocopy", +] + +[[package]] +name = "net2" +version = "0.2.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88" +dependencies = [ + "cfg-if", + "libc", + "winapi 0.3.8", +] + +[[package]] +name = "nix" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32" +dependencies = [ + "bitflags 0.9.1", + "cfg-if", + "libc", + "void", +] + +[[package]] +name = "nix" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c722bee1037d430d0f8e687bbdbf222f27cc6e4e68d5caf630857bb2b6dbdce" +dependencies = [ + "bitflags 1.2.1", + "cc", + "cfg-if", + "libc", + "void", +] + +[[package]] +name = "num-traits" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "objc" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1" +dependencies = [ + "malloc_buf", + "objc_exception", +] + +[[package]] +name = "objc_exception" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4" +dependencies = [ + "cc", +] + +[[package]] +name = "once_cell" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" + +[[package]] +name = "ordered-float" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18869315e81473c951eb56ad5558bbc56978562d3ecfb87abb7a1e944cea4518" +dependencies = [ + "num-traits", +] + +[[package]] +name = "parking_lot" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" +dependencies = [ + "cfg-if", + "cloudabi", + "libc", + "redox_syscall", + "smallvec", + "winapi 0.3.8", +] + +[[package]] +name = "peek-poke" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d93fd6a575ebf1ac2668d08443c97a22872cfb463fd8b7ddd141e9f6be59af2f" +dependencies = [ + "peek-poke-derive", +] + +[[package]] +name = "peek-poke-derive" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fb44a25c5bba983be0fc8592dfaf3e6d0935ce8be0c6b15b2a39507af34a926" +dependencies = [ + "proc-macro2 1.0.10", + "quote 1.0.3", + "syn", + "synstructure", + "unicode-xid 0.2.0", +] + +[[package]] +name = "percent-encoding" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" + +[[package]] +name = "pin-project" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81d480cb4e89522ccda96d0eed9af94180b7a5f93fb28f66e1fd7d68431663d1" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "0.4.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a82996f11efccb19b685b14b5df818de31c1edcee3daa256ab5775dd98e72feb" +dependencies = [ + "proc-macro2 1.0.10", + "quote 1.0.3", + "syn", +] + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677" + +[[package]] +name = "ppv-lite86" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b" + +[[package]] +name = "proc-macro-hack" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63" + +[[package]] +name = "proc-macro-nested" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694" + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3" +dependencies = [ + "unicode-xid 0.2.0", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f" +dependencies = [ + "proc-macro2 1.0.10", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom", + "libc", + "rand_chacha", + "rand_core", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core", +] + +[[package]] +name = "range-alloc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5927936723a9e8b715d37d7e4b390455087c4bdf25b9f702309460577b14f9" + +[[package]] +name = "raw-window-handle" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a441a7a6c80ad6473bd4b74ec1c9a4c951794285bf941c2126f607c72e48211" +dependencies = [ + "libc", +] + +[[package]] +name = "rayon" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098" +dependencies = [ + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9" +dependencies = [ + "crossbeam-deque", + "crossbeam-queue", + "crossbeam-utils", + "lazy_static", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.1.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84" + +[[package]] +name = "regex" +version = "1.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", + "thread_local", +] + +[[package]] +name = "regex-syntax" +version = "0.6.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae" + +[[package]] +name = "remove_dir_all" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e" +dependencies = [ + "winapi 0.3.8", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rusttype" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "310942406a39981bed7e12b09182a221a29e0990f3e7e0c971f131922ed135d5" +dependencies = [ + "rusttype 0.8.3", +] + +[[package]] +name = "rusttype" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f61411055101f7b60ecf1041d87fb74205fb20b0c7a723f07ef39174cf6b4c0" +dependencies = [ + "approx", + "crossbeam-deque", + "crossbeam-utils", + "linked-hash-map", + "num_cpus", + "ordered-float", + "rustc-hash", + "stb_truetype", +] + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "sha2" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eb6be24e4c23a84d7184280d2722f7f2731fcdd4a9d886efbfe4413e4847ea0" +dependencies = [ + "block-buffer", + "byte-tools", + "digest", + "fake-simd", +] + +[[package]] +name = "slab" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" + +[[package]] +name = "smallvec" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4" + +[[package]] +name = "smithay-client-toolkit" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "421c8dc7acf5cb205b88160f8b4cc2c5cfabe210e43b2f80f009f4c1ef910f1d" +dependencies = [ + "andrew", + "bitflags 1.2.1", + "dlib", + "lazy_static", + "memmap", + "nix 0.14.1", + "wayland-client", + "wayland-protocols", +] + +[[package]] +name = "spirv_cross" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "946216f8793f7199e3ea5b995ee8dc20a0ace1fcf46293a0ef4c17e1d046dbde" +dependencies = [ + "cc", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "stb_truetype" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f77b6b07e862c66a9f3e62a07588fee67cd90a9135a2b942409f195507b4fb51" +dependencies = [ + "byteorder", +] + +[[package]] +name = "storage-map" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd0a4829a5c591dc24a944a736d6b1e4053e51339a79fd5d4702c4c999a9c45e" +dependencies = [ + "lock_api", +] + +[[package]] +name = "syn" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213" +dependencies = [ + "proc-macro2 1.0.10", + "quote 1.0.3", + "unicode-xid 0.2.0", +] + +[[package]] +name = "synstructure" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545" +dependencies = [ + "proc-macro2 1.0.10", + "quote 1.0.3", + "syn", + "unicode-xid 0.2.0", +] + +[[package]] +name = "tempfile" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +dependencies = [ + "cfg-if", + "libc", + "rand", + "redox_syscall", + "remove_dir_all", + "winapi 0.3.8", +] + +[[package]] +name = "termcolor" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thread_local" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "time" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +dependencies = [ + "libc", + "winapi 0.3.8", +] + +[[package]] +name = "tinyfiledialogs" +version = "3.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "848eb50d6d21430349d82418c2244f611b1ad3e1c52c675320338b3102d06554" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "twox-hash" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bfd5b7557925ce778ff9b9ef90e3ade34c524b5ff10e239c69a42d546d2af56" +dependencies = [ + "rand", +] + +[[package]] +name = "typenum" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c" + +[[package]] +name = "vec_map" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a" + +[[package]] +name = "void" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + +[[package]] +name = "walkdir" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d" +dependencies = [ + "same-file", + "winapi 0.3.8", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasm-bindgen" +version = "0.2.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cc57ce05287f8376e998cbddfb4c8cb43b84a7ec55cf4551d7c00eef317a47f" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d967d37bf6c16cca2973ca3af071d0a2523392e4a594548155d89a678f4237cd" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2 1.0.10", + "quote 1.0.3", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bd151b63e1ea881bb742cd20e1d6127cef28399558f3b5d415289bc41eee3a4" +dependencies = [ + "quote 1.0.3", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d68a5b36eef1be7868f668632863292e37739656a80fc4b9acec7b0bd35a4931" +dependencies = [ + "proc-macro2 1.0.10", + "quote 1.0.3", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf76fe7d25ac79748a37538b7daeed1c7a6867c92d3245c12c6222e4a20d639" + +[[package]] +name = "wayland-client" +version = "0.23.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1080ebe0efabcf12aef2132152f616038f2d7dcbbccf7b2d8c5270fe14bcda" +dependencies = [ + "bitflags 1.2.1", + "calloop", + "downcast-rs", + "libc", + "mio", + "nix 0.14.1", + "wayland-commons", + "wayland-scanner", + "wayland-sys", +] + +[[package]] +name = "wayland-commons" +version = "0.23.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb66b0d1a27c39bbce712b6372131c6e25149f03ffb0cd017cf8f7de8d66dbdb" +dependencies = [ + "nix 0.14.1", + "wayland-sys", +] + +[[package]] +name = "wayland-protocols" +version = "0.23.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cc286643656742777d55dc8e70d144fa4699e426ca8e9d4ef454f4bf15ffcf9" +dependencies = [ + "bitflags 1.2.1", + "wayland-client", + "wayland-commons", + "wayland-scanner", +] + +[[package]] +name = "wayland-scanner" +version = "0.23.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93b02247366f395b9258054f964fe293ddd019c3237afba9be2ccbe9e1651c3d" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "xml-rs", +] + +[[package]] +name = "wayland-sys" +version = "0.23.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d94e89a86e6d6d7c7c9b19ebf48a03afaac4af6bc22ae570e9a24124b75358f4" +dependencies = [ + "dlib", + "lazy_static", +] + +[[package]] +name = "web-sys" +version = "0.3.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d6f51648d8c56c366144378a33290049eafdd784071077f6fe37dae64c1c4cb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wgpu" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf715eb8571da470b856ecc67b057221360d9fce16f3e38001b2fb158d04012" +dependencies = [ + "arrayvec", + "parking_lot", + "raw-window-handle", + "smallvec", + "wgpu-core", + "wgpu-native", + "wgpu-types", +] + +[[package]] +name = "wgpu-core" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50212a35d2c20de1c421d9a0d831f494a85f9afab240e19aae499cff9d0526f2" +dependencies = [ + "arrayvec", + "bitflags 1.2.1", + "copyless", + "fxhash", + "gfx-backend-dx11", + "gfx-backend-dx12", + "gfx-backend-empty", + "gfx-backend-metal", + "gfx-backend-vulkan", + "gfx-descriptor", + "gfx-hal", + "gfx-memory", + "log", + "parking_lot", + "peek-poke", + "smallvec", + "vec_map", + "wgpu-types", +] + +[[package]] +name = "wgpu-native" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a5051a357d071fd69c24671e0ea6d644a83c7418e47eac3511427379007403" +dependencies = [ + "arrayvec", + "lazy_static", + "libc", + "objc", + "parking_lot", + "raw-window-handle", + "wgpu-core", + "wgpu-types", +] + +[[package]] +name = "wgpu-types" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b69dfe001a8a6b78810c7e479717cd1898b9177dbf646611fa1f258f5a2512" +dependencies = [ + "bitflags 1.2.1", + "peek-poke", +] + +[[package]] +name = "wgpu_glyph" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fabe70968bf2cadd4055d2f36c38233936c3344db4597c542ec185df05dd97a" +dependencies = [ + "glyph_brush", + "log", + "wgpu", + "zerocopy", +] + +[[package]] +name = "winapi" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + +[[package]] +name = "winapi" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-build" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi 0.3.8", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "winit" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc53342d3d1a3d57f3949e0692d93d5a8adb7814d8683cef4a09c2b550e94246" +dependencies = [ + "android_glue", + "bitflags 1.2.1", + "cocoa 0.19.1", + "core-foundation 0.6.4", + "core-graphics 0.17.3", + "core-video-sys", + "dispatch", + "instant", + "lazy_static", + "libc", + "log", + "mio", + "mio-extras", + "objc", + "parking_lot", + "percent-encoding", + "raw-window-handle", + "smithay-client-toolkit", + "wasm-bindgen", + "wayland-client", + "web-sys", + "winapi 0.3.8", + "x11-dl", +] + +[[package]] +name = "wio" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d129932f4644ac2396cb456385cbf9e63b5b30c6e8dc4820bdca4eb082037a5" +dependencies = [ + "winapi 0.3.8", +] + +[[package]] +name = "ws2_32-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +dependencies = [ + "winapi 0.2.8", + "winapi-build", +] + +[[package]] +name = "x11" +version = "2.18.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ecd092546cb16f25783a5451538e73afc8d32e242648d54f4ae5459ba1e773" +dependencies = [ + "libc", + "pkg-config", +] + +[[package]] +name = "x11-dl" +version = "2.18.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bf981e3a5b3301209754218f962052d4d9ee97e478f4d26d4a6eced34c1fef8" +dependencies = [ + "lazy_static", + "libc", + "maybe-uninit", + "pkg-config", +] + +[[package]] +name = "xdg" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57" + +[[package]] +name = "xi-unicode" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7395cdb9d0a6219fa0ea77d08c946adf9c1984c72fcd443ace30365f3daadef7" + +[[package]] +name = "xml-rs" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bb76e5c421bbbeb8924c60c030331b345555024d56261dae8f3e786ed817c23" + +[[package]] +name = "zerocopy" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6580539ad917b7c026220c4b3f2c08d52ce54d6ce0dc491e66002e35388fab46" +dependencies = [ + "byteorder", + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d498dbd1fd7beb83c86709ae1c33ca50942889473473d287d56ce4770a18edfb" +dependencies = [ + "proc-macro2 1.0.10", + "syn", + "synstructure", +] diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 00000000..d2f924c4 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,45 @@ +[package] +name = "neothesia" +version = "0.1.0" +authors = ["Poly "] +edition = "2018" + +[features] +default = ["compile_shader"] +compile_shader = [] + +[dependencies] +zerocopy = "0.3.0" +futures = "0.3.5" + +winit = { version="0.22.1", features = ["web-sys"]} + +wgpu = "0.5.0" +wgpu_glyph = "0.8.0" + + +log = "0.4" +env_logger = "0.7.1" + +tinyfiledialogs = "3.3.9" + +lib_midi = {path="./lib_midi"} +midir = "0.6.0" + +# js-sys = { git = "https://github.com/rustwasm/wasm-bindgen" } +# web-sys = { git = "https://github.com/rustwasm/wasm-bindgen" } +# wasm-bindgen = { git = "https://github.com/rustwasm/wasm-bindgen" } +# wasm-bindgen-futures = { git = "https://github.com/rustwasm/wasm-bindgen" } +# console_error_panic_hook = "0.1.6" +# console_log = "0.2.0" + +[build-dependencies] +glsl-to-spirv = "0.1" + + +# [patch.crates-io] +# wgpu = {git ="https://github.com/gfx-rs/wgpu-rs.git"} +# wasm-bindgen = { git = "https://github.com/rustwasm/wasm-bindgen" } +# wasm-bindgen-futures = { git = "https://github.com/rustwasm/wasm-bindgen" } +# web-sys = { git = "https://github.com/rustwasm/wasm-bindgen" } +# js-sys = { git = "https://github.com/rustwasm/wasm-bindgen" } \ No newline at end of file diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 5f9f49f1..00000000 --- a/Makefile.am +++ /dev/null @@ -1,39 +0,0 @@ -EXTRA_DIST = BUILD-DEPENDS CHANGELOG graphics extra music -nobase_pkgdata_DATA = graphics/app_icon.ico \ - graphics/InterfaceButtons.tga \ - graphics/neothesia.xpm \ - graphics/play_KeyHits.tga \ - graphics/play_KeyRail.tga \ - graphics/play_KeysBlack.tga \ - graphics/play_KeysWhite.tga \ - graphics/play_KeyShadow.tga \ - graphics/play_Keys.tga \ - graphics/play_NotesBlackColor.tga \ - graphics/play_NotesBlackShadow.tga \ - graphics/play_NotesWhiteColor.tga \ - graphics/play_NotesWhiteShadow.tga \ - graphics/play_Status2.tga \ - graphics/play_Status.tga \ - graphics/score_RetrySong.tga \ - graphics/stats_text.tga \ - graphics/title_ChooseTracks.tga \ - graphics/title_Exit.tga \ - graphics/title_GameMusicThemes.tga \ - graphics/title_InputBox.tga \ - graphics/title_Logo.tga \ - graphics/title_OutputBox.tga \ - graphics/title_SongBox.tga \ - graphics/trackbox.tga \ - graphics/tracks_BackToTitle.tga \ - graphics/tracks_PlaySong.tga \ - extra/neothesia.desktop \ - music/Popular/Jonh_Lennon_-_Imagine.mid - -SUBDIRS = src scripts -ACLOCAL_AMFLAGS = -I m4 - -ctags-dependencies: - @$(MAKE) -C src ctags-dependencies - -.PHONY:ctags-dependencies - diff --git a/README b/README deleted file mode 100644 index 2891afe4..00000000 --- a/README +++ /dev/null @@ -1,36 +0,0 @@ - -Linthesia is a fork of the Windows/Mac game called Synthesia. It is a game -of playing music using a MIDI keyboard (or your PC keyboard), following -a .mid file. - -Synthesia up to version 0.6.1a is Open Source. This project uses the -latest source from sourceforge. - -Compile -------- - -To compile, you need a basic c++ toolchain, and satisfy all dependences -which are on BUILD-DEPENDS file. Then, just: - - $ autoreconf -ivf - -Here you must choose: - - a) For developers - - $ mkdir build - $ cd build # Isolate compilation to speed future compilations - $ ../configure - - b) For general public - - $ ../configure --prefix=/usr - -Then: - - $ make - $ sudo make install - -Visit https://sourceforge.net/projects/linthesia/ for more info. - -Join the chat at https://gitter.im/linthesia/linthesia diff --git a/README.md b/README.md index 083c4b45..0c1bd5c2 100644 --- a/README.md +++ b/README.md @@ -1,70 +1,9 @@ -![Neothesia Baner](https://i.imgur.com/3uiwId8.png) +![Neothesia Baner](https://i.imgur.com/QfdMwMI.png) # Neothesia -Neothesia is a fork of [Legacy Synthesia](https://github.com/johndpope/pianogame) Opensource Synthesia was abandoned in favour of [closed source commercial project](https://www.synthesiagame.com/) -Goal of this project is to bring back Legacy Synthesia to live, and make it look and work as good (or even better) than commercial Synthesia. - -Linux build is based on [Linthesia](https://github.com/linthesia/linthesia) - -![Prev](https://i.imgur.com/ljz6kjF.png) - -## Goals -* Make it look like modern software -* Treat Linux users as first class citizens -* Give Linux users good or even better alternative to windows Synthesia -* Make it flashy, particles and other cool effects -* Make it as friendly as possible for youtube piano tutorials creators (like myself) -* (Maybe) Support Windows in future - -## Windows Build? -For now I will not support windows build 😰, it is really annoying to open VM every time I want to test something, if you are windows user and you have bare minimum c++ knowledge, you can easily port it yourself. -I would really appreciate any help in maintaining windows branch. - -If you want to become full time windows maintainer you are welcome to do so, -You will have special place in my heart if you do so 😉 - -##### Noob Friendly Way To Port (not recomended) -* clone [Legacy Synthesia](https://github.com/johndpope/pianogame) -* add Neothesia commits -* build -##### Or you can try to crosscompile neothesia master branch -I didn't try it yet, but probably you can cross compile neothesia using mingw. -Remember that master branch of Neothesia uses AlsaLib, there is no way to crosscompile it, you'll have to replace some of the functions in Neothesia [libmidi](https://github.com/PolyMagic/Neothesia/tree/master/src/libmidi) -I recommend using original Windows version of [libmidi](https://github.com/johndpope/pianogame/tree/master/src/libmidi) for this - -## Todo -* Make it cross platform so ports are no longer needed -* Replace unnecessary sprites with shaders -* Create proper shader loading system instead of current placeholder one -* Modernise main screen and track selection screen -* Consider adding song select screen, instead of native dialogue - -## Compile - -To compile, you need a basic c++ toolchain, and satisfy all dependences which are on BUILD-DEPENDS file. -You also need [Roboto font](https://www.archlinux.org/packages/community/any/ttf-roboto/) and [glew](https://www.archlinux.org/packages/extra/x86_64/glew/) installed on your system -Then, just: - - - $ autoreconf -ivf - $ mkdir build - $ cd build # Isolate compilation to speed future compilations - -Here you must choose: - - a) For developers - - $ ../configure - b) For general public - - $ ../configure --prefix=/usr - -Then: (still in build directory) - - $ make - $ sudo make install - -## Credits -* Linux Build is based on master branch of [Linthesia](https://github.com/linthesia/linthesia) -* Windows Build is based on master branch of [Legacy Synthesia](https://github.com/johndpope/pianogame) +Goal of this project is to bring back Opensource Synthesia to live, and make it look and work as good (or even better) than commercial Synthesia. +## First Working Prototype +[![IMG](https://i.snag.gy/F8SCbv.jpg)](https://youtu.be/1fsii7kQDw0) +[Video](https://youtu.be/1fsii7kQDw0) +[![Video](https://i.imgur.com/t0IaVA1.png)](https://youtu.be/1fsii7kQDw0) diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index c0f7e543..00000000 --- a/autogen.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -autoreconf -ivf -./configure diff --git a/build.rs b/build.rs new file mode 100644 index 00000000..f0e39705 --- /dev/null +++ b/build.rs @@ -0,0 +1,51 @@ +use std::fs::{self, File}; +use std::io::prelude::*; +use std::path::Path; + +pub fn generate_spirv(path: &Path, name: String, shader_type: glsl_to_spirv::ShaderType) { + let glsl = fs::read_to_string(&path).unwrap(); + let mut spirv = glsl_to_spirv::compile(&glsl, shader_type).unwrap(); + + let mut buffer = Vec::new(); + spirv.read_to_end(&mut buffer).unwrap(); + + let spirv_path = path.parent().unwrap().join(name + ".spv"); + let mut file = File::create(spirv_path).unwrap(); + file.write_all(&buffer).unwrap(); +} + +fn compile(path: &Path) { + for entry in fs::read_dir(path).unwrap() { + let entry = entry.unwrap(); + + let path = entry.path(); + + if path.is_dir() { + compile(&path); + } else { + let name = entry.file_name().into_string().unwrap(); + + if name.ends_with(".vert") { + println!( + "cargo:rerun-if-changed={}", + path.clone().into_os_string().into_string().unwrap() + ); + generate_spirv(&path, name, glsl_to_spirv::ShaderType::Vertex); + } else if name.ends_with(".frag") { + println!( + "cargo:rerun-if-changed={}", + path.clone().into_os_string().into_string().unwrap() + ); + generate_spirv(&path, name, glsl_to_spirv::ShaderType::Fragment); + } + } + } +} + +fn main() { + if cfg!(feature = "compile_shader") { + println!("cargo:warning=COMPILING_SHADERS"); + let path = Path::new("./src"); + compile(&path); + } +} diff --git a/config.h.in~ b/config.h.in~ deleted file mode 100644 index 8ee71a51..00000000 --- a/config.h.in~ +++ /dev/null @@ -1,124 +0,0 @@ -/* config.h.in. Generated from configure.ac by autoheader. */ - -/* Define to 1 if you have the header file. */ -#undef HAVE_ALGORITHM - -/* Define to 1 if you have the header file. */ -#undef HAVE_DLFCN_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_EXCEPTION - -/* Define to 1 if you have the header file. */ -#undef HAVE_FUNCTIONAL - -/* Define to 1 if you have the `gettimeofday' function. */ -#undef HAVE_GETTIMEOFDAY - -/* Define to 1 if you have the header file. */ -#undef HAVE_INTTYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_IOMANIP - -/* Define to 1 if you have the header file. */ -#undef HAVE_IOSTREAM - -/* Define to 1 if you have the header file. */ -#undef HAVE_LOCALE - -/* Define to 1 if you have the header file. */ -#undef HAVE_MAP - -/* Define to 1 if you have the header file. */ -#undef HAVE_MEMORY_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_QUEUE - -/* Define to 1 if you have the header file. */ -#undef HAVE_SET - -/* Define to 1 if you have the header file. */ -#undef HAVE_SSTREAM - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDINT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STDLIB_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRINGS_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_STRING_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_STAT_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TIME_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_SYS_TYPES_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_UNISTD_H - -/* Define to 1 if you have the header file. */ -#undef HAVE_VECTOR - -/* Define to 1 if the system has the type `_Bool'. */ -#undef HAVE__BOOL - -/* Define to the sub-directory where libtool stores uninstalled libraries. */ -#undef LT_OBJDIR - -/* Name of package */ -#undef PACKAGE - -/* Define to the address where bug reports for this package should be sent. */ -#undef PACKAGE_BUGREPORT - -/* Define to the full name of this package. */ -#undef PACKAGE_NAME - -/* Define to the full name and version of this package. */ -#undef PACKAGE_STRING - -/* Define to the one symbol short name of this package. */ -#undef PACKAGE_TARNAME - -/* Define to the home page for this package. */ -#undef PACKAGE_URL - -/* Define to the version of this package. */ -#undef PACKAGE_VERSION - -/* Define to 1 if you have the ANSI C header files. */ -#undef STDC_HEADERS - -/* Version number of package */ -#undef VERSION - -/* Define for Solaris 2.5.1 so the uint32_t typedef from , - , or is not used. If the typedef were allowed, the - #define below would cause a syntax error. */ -#undef _UINT32_T - -/* Define to `__inline__' or `__inline' if that's what the C compiler - calls it, or to nothing if 'inline' is not supported under any name. */ -#ifndef __cplusplus -#undef inline -#endif - -/* Define to `unsigned int' if does not define. */ -#undef size_t - -/* Define to the type of an unsigned integer type of width exactly 32 bits if - such a type exists and the standard includes do not define it. */ -#undef uint32_t diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 30af146f..00000000 --- a/configure.ac +++ /dev/null @@ -1,53 +0,0 @@ -# -*- Autoconf -*- -# Process this file with autoconf to produce a configure script. - -AC_PREREQ([2.69]) -AC_INIT([neothesia], [0.4.2], [victor.lavaud@gmail.com]) -AM_INIT_AUTOMAKE([foreign subdir-objects]) -AC_CONFIG_SRCDIR([src/main.cpp]) -AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIR([m4]) - -LT_PREREQ([2.2]) -LT_INIT() - -AC_ARG_WITH( - [scriptdir], - [AS_HELP_STRING([--with-scriptdir=],[load scripts from this directory, default: $(bindir)])], - [scriptdir="${with_scriptdir}"], - [scriptdir="\$(bindir)"] -) -AC_SUBST([scriptdir]) - -AC_ARG_WITH( - [graphdir], - [AS_HELP_STRING([--with-graphdir=],[load graphic resources from this directory, default: $(pkgdatadir)/graphics])], - [graphdir="${with_graphdir}"], - [graphdir="\$(pkgdatadir)/graphics"] -) -AC_SUBST([graphdir]) - -# Checks for programs. -AC_PROG_CXX -AC_PROG_INSTALL -AC_PROG_MKDIR_P - -# Checks for header files. -AC_CHECK_HEADERS([string string.h iostream algorithm locale vector sstream queue functional map iomanip set exception sys/time.h]) - -PKG_CHECK_MODULES([GTKGLEXTMM],[gtkglextmm-1.2]) -PKG_CHECK_MODULES([GTKMM],[gtkmm-2.4]) -PKG_CHECK_MODULES([GCONFMM],[gconfmm-2.6]) -PKG_CHECK_MODULES([ALSA],[alsa]) - -# Checks for typedefs, structures, and compiler characteristics. -AC_CHECK_HEADER_STDBOOL -AC_C_INLINE -AC_TYPE_SIZE_T -AC_TYPE_UINT32_T - -# Checks for library functions. -AC_CHECK_FUNCS([gettimeofday]) - -AC_CONFIG_FILES([Makefile src/Makefile scripts/Makefile]) -AC_OUTPUT diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index 802632d6..00000000 --- a/debian/changelog +++ /dev/null @@ -1,27 +0,0 @@ -linthesia (0.4-1) unstable; urgency=low - - * New upstream release. - * Non-maintainer commit. - * (Closes: #2920321). - - -- Oscar Aceña Tue, 29 Dec 2009 17:19:38 +0100 - -linthesia (0.3-2) unstable; urgency=low - - * New upstream release - * Non-maintainer commit. - * (Closes: #2920683). - - -- Oscar Aceña Sat, 26 Dec 2009 14:06:28 +0100 - -linthesia (0.3-1) unstable; urgency=low - - * New upstream release - - -- Cleto Martin Angelina Thu, 24 Dec 2009 14:38:10 +0100 - -linthesia (0.1-1) unstable; urgency=low - - * Initial release (Closes: #562487) - - -- Cleto Martin Angelina Fri, 18 Dec 2009 13:49:36 +0100 diff --git a/debian/compat b/debian/compat deleted file mode 100644 index 7f8f011e..00000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -7 diff --git a/debian/control b/debian/control deleted file mode 100644 index 8be1fcbe..00000000 --- a/debian/control +++ /dev/null @@ -1,16 +0,0 @@ -Source: neothesia -Section: games -Priority: extra -Maintainer: Cleto Martin Angelina -Build-Depends: debhelper (>= 7), libgtkmm-2.4-dev, libgconfmm-2.6-dev, - libgtkglextmm-x11-1.2-dev, libasound2-dev -Standards-Version: 3.8.3 -Homepage: http://sourceforge.net/projects/linthesia/ - -Package: neothesia -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Fork of Synthesia to GNU/Linux - Synthesia is a software which teaches you to play piano using - piano-roll-style falling notes with any MIDI file, available under - Windows and Mac. diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index a646222e..00000000 --- a/debian/copyright +++ /dev/null @@ -1,31 +0,0 @@ -This work was packaged for Debian by: - - Cleto Martin Angelina on Fri, 18 Dec 2009 13:49:36 +0100 - -It was downloaded http://sourceforge.net/projects/linthesia/ - -Upstream Author: - - Óscar Aceña - -Linthesia copyright: - - Copyright (C) 2009 Óscar Aceña - -Synthesia copyright: - - Copyright (C) 2007 Nicholas Piegdon - -License: - - Linthesia is a fork of Synthesia (v0.6.1a), whose author is Nicholas - Piegdon and is licensed under MIT License. - - Linthesia is distributed under GPL version 2. - -The Debian packaging is: - - Copyright (C) 2009 Cleto Martin Angelina - -and is licensed under the GPL version 3, -see `/usr/share/common-licenses/GPL-3'. diff --git a/debian/docs b/debian/docs deleted file mode 100644 index e845566c..00000000 --- a/debian/docs +++ /dev/null @@ -1 +0,0 @@ -README diff --git a/debian/linthesia.dirs b/debian/linthesia.dirs deleted file mode 100644 index 294259b4..00000000 --- a/debian/linthesia.dirs +++ /dev/null @@ -1,2 +0,0 @@ -usr/share/applications -usr/share/pixmaps diff --git a/debian/linthesia.manpages b/debian/linthesia.manpages deleted file mode 100644 index 76951b44..00000000 --- a/debian/linthesia.manpages +++ /dev/null @@ -1 +0,0 @@ -debian/linthesia.6 \ No newline at end of file diff --git a/debian/linthesia.xml b/debian/linthesia.xml deleted file mode 100644 index fe8ff5ea..00000000 --- a/debian/linthesia.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - ]> - - - - &dhtitle; - &dhpackage; - - - &dhfirstname; - &dhsurname; - Wrote this manpage for the Debian system. -
- &dhemail; -
-
-
- - 2009 - &dhusername; - - - This manual page was written for the Debian system - (and may be used by others). - Permission is granted to copy, distribute and/or modify this - document under the terms of the GNU General Public License, - Version 3 or (at your option) any later version published by - the Free Software Foundation. - On Debian systems, the complete text of the GNU General Public - License can be found in - /usr/share/common-licenses/GPL-3. - -
- - &dhucpackage; - &dhsection; - - - &dhpackage; - Fork of Synthesia to GNU/Linux. - - - - &dhpackage; - - - - DESCRIPTION - Synthesia is a software which teaches you to play piano using - piano-roll-style falling notes with any MIDI file, available under - Windows and Mac. - This manual page was written for the Debian distribution - because the original program does not have a manual page. - Instead, it has documentation in the GNU - info - 1 - format; see below. - -
- diff --git a/debian/rules b/debian/rules deleted file mode 100755 index 780bfd20..00000000 --- a/debian/rules +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/make -f -# -*- makefile -*- - -export DH_OPTIONS - -DB2MAN = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl -SRC = src -VERSION = $(shell grep NeothesiaVersionString $(SRC)/Version.h | cut -f 6 -d " " | tr -d \"\;) - -%: - dh $@ - -override_dh_auto_build: - xsltproc -o debian/neothesia.6 --param man.charmap.use.subset "0" --novalid --nonet $(DB2MAN) debian/neothesia.xml - $(MAKE) GRAPHDIR=/usr/share/neothesia/graphics SCRIPTDIR=/usr/bin - -override_dh_install: - $(MAKE) install DESTDIR=debian/neothesia - cp extra/neothesia.desktop debian/neothesia/usr/share/applications - cp extra/neothesia.xpm debian/neothesia/usr/share/pixmaps - -override_dh_auto_clean: - $(RM) debian/neothesia.6 - $(MAKE) clean - -build-orig-source: - mkdir -p neothesia-$(VERSION) - tar --exclude=debian --exclude=\*~ --exclude=.svn --exclude=\*.pyc \ - --exclude=neothesia-$(VERSION) -cf - . \ - | ( cd neothesia-$(VERSION) && tar xf - ) - tar -czf ../tarballs/linthesia_$(VERSION).orig.tar.gz neothesia-$(VERSION) - $(RM) -r neothesia-$(VERSION) diff --git a/extra/neothesia.desktop b/extra/neothesia.desktop deleted file mode 100644 index 5c383d34..00000000 --- a/extra/neothesia.desktop +++ /dev/null @@ -1,8 +0,0 @@ -[Desktop Entry] -Type=Application -Version=0.3 -Name=Neothesia -GenericName=Piano game -Icon=neothesia.xpm -Exec=linthesia -Categories=Game;Music;Education diff --git a/extra/neothesia.xpm b/extra/neothesia.xpm deleted file mode 100644 index 36438f98..00000000 --- a/extra/neothesia.xpm +++ /dev/null @@ -1,531 +0,0 @@ -/* XPM */ -static char * linthesia_xpm[] = { -"32 32 496 2", -" c None", -". c #3B373B", -"+ c #5B585C", -"@ c #606064", -"# c #616061", -"$ c #605D5F", -"% c #575759", -"& c #535456", -"* c #515154", -"= c #777777", -"- c #ADACAA", -"; c #9C9999", -"> c #888788", -", c #8C8C8C", -"' c #7D7D7E", -") c #5A5C5C", -"! c #585A5C", -"~ c #343434", -"{ c #5F5E5C", -"] c #D9D8D8", -"^ c #FFFFFF", -"/ c #FDFDFD", -"( c #F9F8F9", -"_ c #A09E9F", -": c #454546", -"< c #505051", -"[ c #232325", -"} c #504F52", -"| c #5A595C", -"1 c #525152", -"2 c #484548", -"3 c #38393A", -"4 c #3D4040", -"5 c #4E4D4F", -"6 c #716F72", -"7 c #7D7C7C", -"8 c #505050", -"9 c #464745", -"0 c #E1E1E0", -"a c #FAF9F9", -"b c #757374", -"c c #444546", -"d c #535356", -"e c #18171A", -"f c #131313", -"g c #858485", -"h c #F8F7F7", -"i c #FCFDFC", -"j c #C2C0C1", -"k c #3D3B3E", -"l c #202123", -"m c #4B4C4C", -"n c #38383A", -"o c #252627", -"p c #404342", -"q c #7D7D7C", -"r c #8C8788", -"s c #898787", -"t c #29292A", -"u c #121316", -"v c #0E1113", -"w c #151516", -"x c #ACA9A9", -"y c #9B9899", -"z c #393939", -"A c #444548", -"B c #2C2C31", -"C c #000000", -"D c #2C2B2B", -"E c #C9C9C8", -"F c #F3F3F4", -"G c #EAE9E9", -"H c #555456", -"I c #403F41", -"J c #312F32", -"K c #545453", -"L c #8F8C8C", -"M c #9C9799", -"N c #908D8B", -"O c #434241", -"P c #1D1D20", -"Q c #313133", -"R c #4A4C4C", -"S c #101113", -"T c #5F5F60", -"U c #F9F9F9", -"V c #D2D1D1", -"W c #4B4B4D", -"X c #343634", -"Y c #444648", -"Z c #818180", -"` c #F4F4F4", -" . c #F3F3F3", -".. c #D6D6D6", -"+. c #4C4D4F", -"@. c #37393C", -"#. c #615E5D", -"$. c #9B9796", -"%. c #969393", -"&. c #7E7B7C", -"*. c #484645", -"=. c #9A9999", -"-. c #EEEEEE", -";. c #CBC8C9", -">. c #484545", -",. c #484A4B", -"'. c #3E4043", -"). c #1E1D1E", -"!. c #BFBEBE", -"~. c #666464", -"{. c #262827", -"]. c #4B4F51", -"^. c #212124", -"/. c #373837", -"(. c #D7D7D6", -"_. c #F2F2F2", -":. c #424244", -"<. c #2E3031", -"[. c #3D3E40", -"}. c #908D8E", -"|. c #888685", -"1. c #454443", -"2. c #A5A4A4", -"3. c #E5E3E4", -"4. c #5A595B", -"5. c #3B3F40", -"6. c #545458", -"7. c #787676", -"8. c #9E9C9D", -"9. c #2B2A2B", -"0. c #434649", -"a. c #4A4D4F", -"b. c #939391", -"c. c #434344", -"d. c #3F3F41", -"e. c #202225", -"f. c #2D2E2E", -"g. c #4A4747", -"h. c #CAC9C9", -"i. c #F8F8F7", -"j. c #787878", -"k. c #353534", -"l. c #555858", -"m. c #232426", -"n. c #353635", -"o. c #DBDBDA", -"p. c #DAD7D9", -"q. c #424142", -"r. c #313233", -"s. c #5C5C5E", -"t. c #121617", -"u. c #4B4A4B", -"v. c #C5C5C4", -"w. c #8D8C8D", -"x. c #666667", -"y. c #131215", -"z. c #0D0E12", -"A. c #0F1013", -"B. c #353434", -"C. c #C9C7C7", -"D. c #FFFEFE", -"E. c #F7F3F5", -"F. c #A7A6A7", -"G. c #313033", -"H. c #4C4D50", -"I. c #4A484D", -"J. c #969696", -"K. c #6F6D6F", -"L. c #58575A", -"M. c #3E3E41", -"N. c #1E1F1E", -"O. c #ACA8A7", -"P. c #575353", -"Q. c #050408", -"R. c #252628", -"S. c #424547", -"T. c #979394", -"U. c #F5F4F4", -"V. c #F7F6F7", -"W. c #FBFCFB", -"X. c #D8D6D7", -"Y. c #424144", -"Z. c #3A3A3A", -"`. c #606160", -" + c #08090B", -".+ c #565656", -"++ c #FCFCFC", -"@+ c #A3A2A3", -"#+ c #2D2B2C", -"$+ c #464646", -"%+ c #515455", -"&+ c #161619", -"*+ c #747171", -"=+ c #A9A9A8", -"-+ c #D7D9DA", -";+ c #484647", -">+ c #535455", -",+ c #101418", -"'+ c #585758", -")+ c #F2F1F2", -"!+ c #F8F6F7", -"~+ c #FDFBFC", -"{+ c #666365", -"]+ c #2F2E2F", -"^+ c #656565", -"/+ c #313336", -"(+ c #C7C5C5", -"_+ c #444344", -":+ c #232326", -"<+ c #454849", -"[+ c #464647", -"}+ c #CAC9CA", -"|+ c #B2AFB3", -"1+ c #504C4E", -"2+ c #585855", -"3+ c #313738", -"4+ c #1E1F21", -"5+ c #C5C2C4", -"6+ c #FFFDFE", -"7+ c #F9F8F8", -"8+ c #969395", -"9+ c #28262A", -"0+ c #565658", -"a+ c #575558", -"b+ c #868484", -"c+ c #6F6E70", -"d+ c #191A1B", -"e+ c #1C1C1C", -"f+ c #0C0C0C", -"g+ c #868487", -"h+ c #D7D7D7", -"i+ c #525053", -"j+ c #525051", -"k+ c #4E5153", -"l+ c #8D8B8E", -"m+ c #F7F7F6", -"n+ c #CDCBCC", -"o+ c #343435", -"p+ c #3E3D3D", -"q+ c #68686A", -"r+ c #18191C", -"s+ c #6A6D6D", -"t+ c #A6A4A5", -"u+ c #605F63", -"v+ c #15191C", -"w+ c #5C5B5C", -"x+ c #636062", -"y+ c #4A4749", -"z+ c #626163", -"A+ c #070D0E", -"B+ c #555356", -"C+ c #F9F7F8", -"D+ c #F7F7F7", -"E+ c #FCFBFB", -"F+ c #F1F0F0", -"G+ c #595758", -"H+ c #2C2A2D", -"I+ c #6A686B", -"J+ c #2F2E32", -"K+ c #2D2E2D", -"L+ c #EAEAE9", -"M+ c #726E71", -"N+ c #5A5D5A", -"O+ c #262A2D", -"P+ c #2D2C2E", -"Q+ c #D3D0D2", -"R+ c #7E7E7E", -"S+ c #3D3B3D", -"T+ c #646566", -"U+ c #2D2F33", -"V+ c #CBCBCC", -"W+ c #FEFEFD", -"X+ c #FBFAFA", -"Y+ c #838384", -"Z+ c #222224", -"`+ c #4C4C4E", -" @ c #545553", -".@ c #B5B5B2", -"+@ c #D3D3D3", -"@@ c #D8D6D8", -"#@ c #595856", -"$@ c #505152", -"%@ c #414346", -"&@ c #050507", -"*@ c #9E9EA0", -"=@ c #605F61", -"-@ c #484B4C", -";@ c #929193", -">@ c #F7F5F6", -",@ c #FAFAFA", -"'@ c #C1C1C1", -")@ c #1D1C1E", -"!@ c #3D3D3E", -"~@ c #E6E5E4", -"{@ c #F3F3F2", -"]@ c #D5D6D6", -"^@ c #EBEAEB", -"/@ c #575957", -"(@ c #000001", -"_@ c #737174", -":@ c #CECDCD", -"<@ c #3B3A3B", -"[@ c #606363", -"}@ c #010507", -"|@ c #5A595A", -"1@ c #F9F9FA", -"2@ c #F7F6F6", -"3@ c #FBFBFA", -"4@ c #E9E9E9", -"5@ c #D5D5D5", -"6@ c #FDFCFD", -"7@ c #696869", -"8@ c #444340", -"9@ c #676769", -"0@ c #13191B", -"a@ c #434145", -"b@ c #EEEDEE", -"c@ c #525153", -"d@ c #404040", -"e@ c #6D6F6F", -"f@ c #1D2122", -"g@ c #2E2F31", -"h@ c #DEDFE0", -"i@ c #F6F5F6", -"j@ c #F6F6F6", -"k@ c #ECECEC", -"l@ c #646366", -"m@ c #F6F5F5", -"n@ c #828183", -"o@ c #3D393A", -"p@ c #2C3032", -"q@ c #1D1E1F", -"r@ c #C5C3C5", -"s@ c #706F70", -"t@ c #302F31", -"u@ c #747273", -"v@ c #424546", -"w@ c #0F1113", -"x@ c #E2E1E2", -"y@ c #FEFEFE", -"z@ c #F6F6F5", -"A@ c #FAFAF9", -"B@ c #EEEFEE", -"C@ c #323137", -"D@ c #A19FA0", -"E@ c #353234", -"F@ c #44494B", -"G@ c #969496", -"H@ c #9B979A", -"I@ c #2B292C", -"J@ c #686A69", -"K@ c #58595D", -"L@ c #141315", -"M@ c #989796", -"N@ c #F8F8F8", -"O@ c #EEEDED", -"P@ c #474C4D", -"Q@ c #101218", -"R@ c #B9B6B8", -"S@ c #C5C4C4", -"T@ c #353637", -"U@ c #5F5F63", -"V@ c #5D5D5E", -"W@ c #656467", -"X@ c #C4C3C3", -"Y@ c #2F2F30", -"Z@ c #414143", -"`@ c #646467", -" # c #636261", -".# c #EEEEEC", -"+# c #FCFCFB", -"@# c #F5F5F5", -"## c #FDFDFC", -"$# c #F2F1F1", -"%# c #7E7D7D", -"&# c #525455", -"*# c #00010A", -"=# c #939296", -"-# c #DFDFDE", -";# c #3D3A3B", -"># c #514F50", -",# c #717373", -"'# c #111315", -")# c #3D3D40", -"!# c #E8E8E8", -"~# c #4F4D4F", -"{# c #0C0E0F", -"]# c #888986", -"^# c #F9F8F7", -"/# c #F4F4F3", -"(# c #F0F0EF", -"_# c #7C7779", -":# c #666564", -"<# c #616363", -"[# c #000107", -"}# c #6C6A6D", -"|# c #FCFAFA", -"1# c #5A5959", -"2# c #434243", -"3# c #827F81", -"4# c #292E2F", -"5# c #1F1F22", -"6# c #E5E6E6", -"7# c #949392", -"8# c #E7E6E7", -"9# c #FCFCFD", -"0# c #FAFAF8", -"a# c #6C6B6D", -"b# c #595559", -"c# c #6A6C6C", -"d# c #070C10", -"e# c #434245", -"f# c #F0F0F0", -"g# c #727272", -"h# c #28282B", -"i# c #7E7A7C", -"j# c #424345", -"k# c #929293", -"l# c #F2F0F1", -"m# c #747473", -"n# c #4E4B4F", -"o# c #727277", -"p# c #1C1E22", -"q# c #272B2F", -"r# c #D3D3D4", -"s# c #919090", -"t# c #2B282B", -"u# c #565659", -"v# c #606365", -"w# c #595557", -"x# c #D9D7D8", -"y# c #EDEDED", -"z# c #898687", -"A# c #413D3F", -"B# c #7C7A7B", -"C# c #36393C", -"D# c #101318", -"E# c #AFB0B2", -"F# c #BCBBBB", -"G# c #2A292B", -"H# c #242428", -"I# c #595A5A", -"J# c #EFEFEF", -"K# c #F3F0F1", -"L# c #F5F3F4", -"M# c #EBEBEB", -"N# c #D4D4D4", -"O# c #F3F1F2", -"P# c #A6A3A2", -"Q# c #3A3A3C", -"R# c #7F7C7F", -"S# c #494C4D", -"T# c #98989B", -"U# c #E0DDDD", -"V# c #4D4B4A", -"W# c #D2D2D1", -"X# c #FEFBFB", -"Y# c #F7F8F7", -"Z# c #F2F0F0", -"`# c #E6E6E6", -" $ c #CACBCB", -".$ c #EFEDEE", -"+$ c #DCD9DA", -"@$ c #E5E4E4", -"#$ c #B3B2B2", -"$$ c #383536", -"%$ c #6C6A6A", -"&$ c #4D4D4E", -"*$ c #06070B", -"=$ c #0A0C0F", -"-$ c #C8C8C9", -";$ c #DFDDDE", -">$ c #E3E2E2", -",$ c #E5E5E5", -"'$ c #E1E1E1", -")$ c #E2E2E2", -"!$ c #DEDDDE", -"~$ c #D6D5D4", -"{$ c #CCCBCC", -"]$ c #B7B7B7", -"^$ c #BFBDBE", -"/$ c #ABA9AA", -"($ c #B3B3B3", -"_$ c #A1A09F", -":$ c #353333", -"<$ c #535053", -"[$ c #404041", -"}$ c #252727", -"|$ c #AEADAF", -"1$ c #B3B1B2", -"2$ c #ADABAB", -"3$ c #B2B2B2", -"4$ c #B2B3B3", -"5$ c #AEAEAE", -"6$ c #A4A1A2", -"7$ c #757575", -" ", -" ", -" . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ ^ / ^ ( _ : < [ ", -" } | 1 2 3 4 5 6 7 8 9 0 ^ a b c d e f g ^ ^ h i ^ j k l ", -" & m n o p q r s t u v w x ^ ^ y z A B C D E ^ ^ F ^ G H ", -" } I J K L M N O P Q R S C T U ^ V W X Y C C Z ^ ^ ` ... ", -" +.@.#.$.%.&.*.=.-.;.>.,.'.C ).!.^ ^ ~.{.].^.C /.(.^ _... ", -" :.<.[.}.|.1.2.^ ^ ^ 3.4.5.6.C C 7.^ ^ 8.9.0.a.C C b. ... ", -" c.d.e.f.g.h.^ / i.a ^ ^ j.k.l.m.C n.o.^ p.q.r.s.t.C u.v. ", -" w.x.y.z.A.B.C.^ D.E.h ^ ^ F.G.H.I.C C J.^ ^ K.o L.M.C N. ", -" O.P.Q.R.S.C C T.^ ^ U.V.W.^ X.Y.Z.`. +C .+++^ @+#+$+%+&+ ", -" *+=+-+_ ;+>+,+C '+)+^ h !+U ^ ~+{+]+^+/+C ).(+^ 0 _+:+<+ ", -" [+}+^ ^ |+1+2+3+C 4+5+^ 6+!+7+^ ^ 8+9+0+a+C C b+^ ^ c+d+ ", -" e+f+g+^ ^ h+i+j+k+C C l+^ ^ m+7+D.^ n+o+p+q+r+C s+^ .t+ ", -" u+v+C w+( ^ )+x+y+z+A+C B+_.^ C+D+E+^ F+G+H+I+J+K+L+ ... ", -" M+N+O+C P+Q+^ ^ R+S+T+U+C [ V+^ W+h X+^ ^ Y+Z+`+ @.@ .+@ ", -" @@#@$@%@C &@*@^ ^ 2.n =@-@C C ;@^ ^ >@,@D.^ '@)@!@~@{@]@ ", -" ^ ^@B+u./@(@C _@^ ^ :@<@< [@}@C |@1@^ 2@X+3@^ ] !.^ 4@5@ ", -" ^ ^ 6@7@8@9@0@C a@^@^ b@c@d@e@f@C g@h@^ i@X+a ^ ^ j@k@+@ ", -" l@m@^ ^ n@o@6 p@C q@r@^ ^ s@t@u@v@C w@x@y@z@A@++h D+B@.. ", -" e+C@] ^ ^ D@E@K.F@C C G@^ ^ H@I@J@K@L@M@^ W+m+N@/ ,@O@.. ", -" P@f+Q@R@^ ^ S@T@U@V@C C W@^ ^ X@Y@Z@`@ #.#^ +#2@@###$#5@ ", -" %#&#C *#=#^ ^ -#;#>#,#'#C )#b@^ !#~#{#]#W+++3@E+^#/#(#.. ", -" _#:#<#[#C }#^ ^ |#1#2#3#4#C 5#6#^ ^ 7#8#9###a a X+N@4@+@ ", -" 0#a#b#c#d#C e#f#^ ^ g#h#i#j#C k#^ ^ ^ ^ l#X+++D+N@N@-.+@ ", -" ^ ^ m#n#o#p#C q#r#^ ^ s#t#u#v#w#x#^ 3@+#a $#!+++D+j@y#.. ", -" ^ ^ ^ z#A#B#C#C D#E#^ ^ F#G#H#I#J#^ a a ,@U K#L#+#N@M#N# ", -" O#^ y@^ P#Q#R#S#C C T#^ ^ U#V#W#X#++++7+N@Y#U K#Z#N@`# $ ", -" .$+$@$`#`##$$$%$&$*$=$-$`#`#`#`#;$] >$,$'$'$'$)$!$~${$]$ ", -" , ^$/$($($($_$:$<$[$}$1#|$($($($($1$2$#$($3$3$3$4$5$6$7$ ", -" ", -" "}; diff --git a/graphics/InterfaceButtons.tga b/graphics/InterfaceButtons.tga deleted file mode 100644 index ffcd7f77eaf788f1c1714dd8ed416f2777dd1f7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 351129 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
uX+vvVB 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 W%BH_*ddbCSUH$W>zdHYWdH)-Js!$>T diff --git a/graphics/InterfaceButtons/.directory b/graphics/InterfaceButtons/.directory deleted file mode 100644 index 3908352a..00000000 --- a/graphics/InterfaceButtons/.directory +++ /dev/null @@ -1,4 +0,0 @@ -[Dolphin] -PreviewsShown=true -Timestamp=2015,5,2,0,11,40 -Version=3 diff --git a/graphics/InterfaceButtons/InterfaceButtons.xcf.rcm b/graphics/InterfaceButtons/InterfaceButtons.xcf.rcm deleted file mode 100644 index 501b42fd..00000000 --- a/graphics/InterfaceButtons/InterfaceButtons.xcf.rcm +++ /dev/null @@ -1,194 +0,0 @@ -"ATGrcm" -972 -252 -27 -7 -"blue-left-hover.xcf" -"blue-right-hover.xcf" -"blue-color-hover.xcf" -"blue-preview-on-hover.xcf" -"blue-preview-off-hover.xcf" -"blue-computer-hover.xcf" -"blue-human-hover.xcf" -"blue-retry-on-hover.xcf" -"blue-retry-off-hover.xcf" -"blue-left.xcf" -"blue-right.xcf" -"blue-color.xcf" -"blue-preview-on.xcf" -"blue-preview-off.xcf" -"blue-computer.xcf" -"blue-human.xcf" -"blue-retry-on.xcf" -"blue-retry-off.xcf" -"blue-left.xcf" -"blue-right.xcf" -"blue-color.xcf" -"blue-preview-on.xcf" -"blue-preview-off.xcf" -"blue-computer.xcf" -"blue-human.xcf" -"blue-retry-on.xcf" -"blue-retry-off.xcf" -"green-left-hover.xcf" -"green-right-hover.xcf" -"green-color-hover.xcf" -"green-preview-on-hover.xcf" -"green-preview-off-hover.xcf" -"green-computer-hover.xcf" -"green-human-hover.xcf" -"green-retry-on-hover.xcf" -"green-retry-off-hover.xcf" -"green-left.xcf" -"green-right.xcf" -"green-color.xcf" -"green-preview-on.xcf" -"green-preview-off.xcf" -"green-computer.xcf" -"green-human.xcf" -"green-retry-on.xcf" -"green-retry-off.xcf" -"green-left.xcf" -"green-right.xcf" -"green-color.xcf" -"green-preview-on.xcf" -"green-preview-off.xcf" -"green-computer.xcf" -"green-human.xcf" -"green-retry-on.xcf" -"green-retry-off.xcf" -"orange-left-hover.xcf" -"orange-right-hover.xcf" -"orange-color-hover.xcf" -"orange-preview-on-hover.xcf" -"orange-preview-off-hover.xcf" -"orange-computer-hover.xcf" -"orange-human-hover.xcf" -"orange-retry-on-hover.xcf" -"orange-retry-off-hover.xcf" -"orange-left.xcf" -"orange-right.xcf" -"orange-color.xcf" -"orange-preview-on.xcf" -"orange-preview-off.xcf" -"orange-computer.xcf" -"orange-human.xcf" -"orange-retry-on.xcf" -"orange-retry-off.xcf" -"orange-left.xcf" -"orange-right.xcf" -"orange-color.xcf" -"orange-preview-on.xcf" -"orange-preview-off.xcf" -"orange-computer.xcf" -"orange-human.xcf" -"orange-retry-on.xcf" -"orange-retry-off.xcf" -"yellow-left-hover.xcf" -"yellow-right-hover.xcf" -"yellow-color-hover.xcf" -"yellow-preview-on-hover.xcf" -"yellow-preview-off-hover.xcf" -"yellow-computer-hover.xcf" -"yellow-human-hover.xcf" -"yellow-retry-on-hover.xcf" -"yellow-retry-off-hover.xcf" -"yellow-left.xcf" -"yellow-right.xcf" -"yellow-color.xcf" -"yellow-preview-on.xcf" -"yellow-preview-off.xcf" -"yellow-computer.xcf" -"yellow-human.xcf" -"yellow-retry-on.xcf" -"yellow-retry-off.xcf" -"yellow-left.xcf" -"yellow-right.xcf" -"yellow-color.xcf" -"yellow-preview-on.xcf" -"yellow-preview-off.xcf" -"yellow-computer.xcf" -"yellow-human.xcf" -"yellow-retry-on.xcf" -"yellow-retry-off.xcf" -"violet-left-hover.xcf" -"violet-right-hover.xcf" -"violet-color-hover.xcf" -"violet-preview-on-hover.xcf" -"violet-preview-off-hover.xcf" -"violet-computer-hover.xcf" -"violet-human-hover.xcf" -"violet-retry-on-hover.xcf" -"violet-retry-off-hover.xcf" -"violet-left.xcf" -"violet-right.xcf" -"violet-color.xcf" -"violet-preview-on.xcf" -"violet-preview-off.xcf" -"violet-computer.xcf" -"violet-human.xcf" -"violet-retry-on.xcf" -"violet-retry-off.xcf" -"violet-left.xcf" -"violet-right.xcf" -"violet-color.xcf" -"violet-preview-on.xcf" -"violet-preview-off.xcf" -"violet-computer.xcf" -"violet-human.xcf" -"violet-retry-on.xcf" -"violet-retry-off.xcf" -"red-left-hover.xcf" -"red-right-hover.xcf" -"red-color-hover.xcf" -"red-preview-on-hover.xcf" -"red-preview-off-hover.xcf" -"red-computer-hover.xcf" -"red-human-hover.xcf" -"red-retry-on-hover.xcf" -"red-retry-off-hover.xcf" -"red-left.xcf" -"red-right.xcf" -"red-color.xcf" -"red-preview-on.xcf" -"red-preview-off.xcf" -"red-computer.xcf" -"red-human.xcf" -"red-retry-on.xcf" -"red-retry-off.xcf" -"red-left.xcf" -"red-right.xcf" -"red-color.xcf" -"red-preview-on.xcf" -"red-preview-off.xcf" -"red-computer.xcf" -"red-human.xcf" -"red-retry-on.xcf" -"red-retry-off.xcf" -"gray-left-hover.xcf" -"gray-right-hover.xcf" -"gray-color-hover.xcf" -"gray-preview-on-hover.xcf" -"gray-preview-off-hover.xcf" -"gray-computer-hover.xcf" -"gray-human-hover.xcf" -"gray-retry-on-hover.xcf" -"gray-retry-off-hover.xcf" -"gray-left.xcf" -"gray-right.xcf" -"gray-color.xcf" -"gray-preview-on.xcf" -"gray-preview-off.xcf" -"gray-computer.xcf" -"gray-human.xcf" -"gray-retry-on.xcf" -"gray-retry-off.xcf" -"gray-left.xcf" -"gray-right.xcf" -"gray-color.xcf" -"gray-preview-on.xcf" -"gray-preview-off.xcf" -"gray-computer.xcf" -"gray-human.xcf" -"gray-retry-on.xcf" -"gray-retry-off.xcf" diff --git a/graphics/InterfaceButtons/OpenSansEmoji.ttf b/graphics/InterfaceButtons/OpenSansEmoji.ttf deleted file mode 100644 index 57d86a62bbc96352c570c8e8769b50e557d17263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 561512 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

J7Ee!X-|DF@eOeqO1x4g%GG$_` z0lssqH;o!flTD>U7ERkYv({YCUT=^eMTyNB#+r_M6@Cfgi^@=VuCT#H`?C6=Vi;U$ zIuBo=xVYE=B!ovE@gen-3`r*s=={n@*ZB6B5H8=Kf6!~yXcO|C4{1XJ?h_w+{m!Xh zYH8Q9^~BlKmSRod(?P6B2=sw}4jL0qI?O3dFxG+jeZ;?r@gwUClH6rcmE(aSKno(UKMmTyE)BT|ze~_BgZe?cNYtSLaa( zGxtj8+K<-K*-qDkRIo#(e2fSsSYLM9C){JgF-zAMs@iSlkjTy_+jWA*3-`q}*gefS zmOf0-Fuj47zm{9ou`w)0#16Jn`3R6F7~62c<1P<{j_=G1 z8#E;1joRVOgWsIdf##zi;jom*xx$9U&kp8C1LqRI;G;RhZcOf@VNe?U54S}u6A!kg zNXXTKhHYMYr&;}akqtv4TTV+2Pwh8>qGB2Up~9EG%fRkUDq%am5+ntL3o~k zIf}^L%WC{a_|;r0;U6n`q_upaEi)_kh5yU?y@MQ&FkNrcjUyD)zJ4#e_kPoMf&U2n z9!jmg4h++zXQJa8gsssA| zfYf7Hc?Ao&*-V;b%K`q&7(@;}$iIh43QFf`CAK@EVS$!kA9GW@kCo?fD{lNdnb{YyL~{qqg!A3_^bjs&1e+n z6^#1svyvn8FP~xEm;)ke!`zR|_d1IUShqLxNAN8#d78Y~zMi)@&3NfFovb*Qg}ly1Kkw|NYT47M{lJA|@rfw&#ujpp$P*w|-k0)V%kBm%wQv-1np<*R zfyWpG%_;a;`>L2c8zch!z~voOB>JKl-Fw_;mLtuZlmvP@GAA4`C zK4R45K{Th|q_lqh)BBS1MRZ;DdY&~yXzx-Xq04)dUiBD~m$_=w@E7|$+HYvkwCRVR zNI|AkwfnYgEhbfbx^NWR^K_n;#TYDcE3Q<0rD3wKk$hH2&LVvCBcny4^GF(gj_D2j z()#>YF-5L>B-UOH4PLF$dhBDQw6dKXYu&bGqyWUgLc8g7!4E=_Dc5-ByN?P!{p0MV zHT?_8rM0H=8JVl*!LDKPkN+>kCu?FZd+;$~2P4YpMObli9=C}kV8zr+%jHSlm)B3p z6(8o(jdG9o&-#&PK>C}xS3(Uqcqypf`L zdz1J96lY zV^_;^iG~D`=!1gEv-Y0M4~}NNo*MJcxc63O(tAr+56yY**6HO%yib1CFb3R6Ak?rs zUu3?`v2r>}*q6#VWoHSurTtkF9oiBG*qxy(HZ5DvOm(MD_?k$!ARl6$%G@H1g>X=r zRg)kLWT!!3Q&rxUF5xrG0>P$05R1=QbPx5}Pg+d-iXdd0VkPw4s1+7``{ zLdj*s`Dlt&9N!QYu*v43+Cyj}6{g1tY{yDPMg}xu=UcVQ* z)avZ5_y333DZ88YVs7m2rZDAhl6q|^uwG3OL&`*l%szb?#DOGACHefKn=>s&lRK=9PoeBt41TKdAgLYq8GmZqU^jd*;M}a z0(zUZLo^+5)-rI`U^V))cdiEDE4`r6vkN4eKX#im4r|mQb<2mBNv$9`S~%lLZ`1n= zzRUiB^e5x{^r4@Bdq+ECSx-uDWzpa1&G^*`WEGitB`zjOWRZ>wmqUMvq20 z&`ac|sgktBy{lv@8CIRVfIOa7!eE*WYcSy6?O*Qv{_D?og+f|Dm+@Ss zp=24|P0Kid=PKiPqUYoSz%=0P#{A$6MRR$3yzUmbqiVAV53<78!<+jB zkk%zx($dY*Xm}pQ)9%Y^J+71%4&%l%b?Ma2%T1k5V%?=6>bWTFu(9Pv7s+> z12pvYky1l1(HlR0L$tsAN_00*jyu}XyC$jo?r6HRe#dv0lR$0eitvtY=w!N@0=Go; zg#1EuL;De9=LQu`ggP2FK`=!Ay-fo8pZ@+y9?$8_6YkT zl88xDXV5V;l>Bh<=DYG@lJL&VIqT@pr1^#g@P3~WlB)T?K8E;L?A^A0avE8j{M?Jr zWcD8TDW(*A4}FQr=u3;e$856LLIb(WxOv5rrECo&>3nGn{=Ej%9Nc#Eu(REw#Z&SH zam|AMn*}^ok5J9H6*V4Yiu>rVG;pu{fXt@z1+Qh~^Xq7f`Puy7C-&#unC?q~NPcch zM}W=i8mUQ-(}%R2USu?0Wrxz&?a1e2K}MGL8n|GYFPs5V>}1n6GJ8&vLapc>*OtfqUx&P_l;r+9^ZOCKL;wu(e_P zWSGtyYs0eh?B7Vyw(XE2JFAZV$F^OaxB3<;AMDtLvOgqm$j0qDt|^)AO!^xPyqyIU~>t2_#fSD@6Sjs8DUDn$JqF^EwP?>v4*pXS8U^P^?|uzQzUwZHi@J+POU^Yo%TIDL%pNkxg6@$_OjRVZH9&NKt-+}wVyad$E-C2NPh&kGI0D1$*> zkIhg0APdrn+0XxPV`XgpQZYxsv9SR$VZ_b(rZEO_uL=JhXK*iRLR~PO-K*#H*S9O=kMQLpXnK#ZV=XfuyXU3r90Lw*+QC;8h9v28rMAf zf*k2j9)^Fh@5&b^e*&_G#~pZGcV>&L@h_(8R6jr94&ne8CA`Enu4{G?O(gURi%T(# zp5l;;jU+=2WQ3Hulm+@&{E6qU<7e>F)mnFm9qgghb#l7SMKU_L1reJ`LHwUZ(Ai4| zF`3vHO$1h0(xAX~FhWp>*u=yUU&+@;Y_6#!b?D8C90W&hl7=EjF4i}@ByY;cV-1F}hL)`&0f_WlZ<*!dYZ?ocbAdbl7K= z&+X3NXuu~^Ox;BsKAJ9gil4Br*&TxQt&je^d884$LAl7n^dZV!772&^5OVp-wQsM{ z<0N{++puAd^L>(U$X-W|$pw9f>{ISV?JTszxVEuR{dqh5V#M&xO%;;kXD-lD^n#dX zsJKc3mcNC&;%9c6wr?Y`nW6}PD1jD z+sogY+2pop8~RuHR{hktqQWxD-#I*x#IkVs1>Q(kg*2ptV{n2Da4VKmsL?dSosoi? zABb5eLq|bps2qxB)R61SAB_FDAiDR$MQXtkmh_DRAoGHUZjoBbv4dDtv`#cm8raa8iMSrR* zC?F5WX0rSA#Y&CQa3^an{q3HRM#@lv0Y(<-wIK^ibSH24e_9KN+sWSi3^4s>j(ybP z_9VZq2`M!n1XzJKhONzsurqMYwl~vpSU(#LXJ>Z{cg>NHR<;(mRgYCfIGNm7ONG~m z+4W3&+S&E)>Y=x=Gw|oTv6?KF{);Z`CuWDFODR}e*fHiip55=l1v14T1JE*urjuFL z8=jxz`S2|)*Ou`-1a{vkmMOEjpxqV3ICmPdmouWD3_Gsgk5bmtV~4EF`*MHgNaM)G z`_F7!Ie2VJTGo%1q%P5%TIczE!FX6`b!p{~tF^OMqyirPfS#pAJ@Jf-?}7o<@Y>o1)p*`(nr*rz|OqN%eMEz2;sovn?4rNYi0uMov7DQ*EFOP)@KlZX>hM(gnFm&O(Usx4vd@X#QV+%6Nb#_ zye+?)P)Gj7CqH-O!ZvShyH4-d=Elz5hx9?h%COpdN|)@|8oeap;cardLU})-LoLgX z;}!4qc)lW;3Il_o4hTmOhBHB4mm_EGCi>Oct4ITRP|u{0dhL)_g>a`)?$3UUNe6Pq z3|`CZbzoMo#>@__&g`W`;?EoNkH(JD`!RHD1L9S1dg|IKX9{S`(|75g!y8l!52@aU z+@`_oH`FWM9oZAxnnyny>mT6bN$TT4D2%c*0(#Z=-Q-zh#k7KS+MkJQ1WEr#>OX#{2uxD$l5gY`JM8)l|HJFLZmed(c%8jcuP z$5?k@o9M1#89V2*aR9+ zj&13l(oIMHn7@uDKn`!n!N%E`SzBBV!KEBP+v0zU9BasP8+!&n6&yIvm>yBDUf*Y` zuk-5BEUKM;e!;prA&q-(B7IHOzZQDZOX4-UxmMqh9kn|nepkW>Pf#6lMR_Y7* zeo;b9)91a((6Ni@VapmH!<;l>uc2z@71l9%Itp%QMc7TU<1AGuR{z4#gxr6g+Fz>edh6FNuqZz$6XBBpqiuA&K^qVs&RV-SJH< zj5FpFK!yUgB1^%D;Gxzg;J8vjSF8$pSRgREcxkc!$eu#x;44drgVO>Rk`&TyL(0s_ zV+Z!{`t$-J_T>H@2S59$<)r4#g4?v}GH>AAA+uZ0iv9G1{^R$LHwR{mPyPHI88`UX zwp(Z~Lj(h5C)KMb`H}3*k869@*}HgIX>iK(UQ=qmG&#L}-I%vK)SvQta$6;8dw*$$ zXSKO+Q_9}yA#}DlN83yDv^pL|U@k8NV?INmz#+9(%~VPvZ5WzN9X30HER{Hddm8z$ z#R1Kuliz<~;j^4 z;rWcTmZMrcC7qdEYrwelxVl4U)QV3}$t_s&^3a2lm^N+FOszI5GXj6Kj*9a3CSv}o zlilE-9J{z)=bqTN|NA_>|1F-@HkX*^RoG;s`Xj9Z_KKQU;h2wFU~2APe&hOmQ%CVa zjelb^&*~14TA{Sx3H-lu=P9T2{ks8 zn62`g!dkDbn>Obr8hT_GV=r+KB11Zv`8b7(B(-hR zh{P5N&o+B$;!{!Wa=V4dV{p zw;VIBy;-tDb=*us+Qa(oT7);K-{SceEm9i~eLl!DVEB!lWR0kQrH|(vuR3+#nn_R5 z`_sn|Phlj#e?>)J;Di`&2eco~HqI?>03>EAUx@BT5n<2h(a-ImfF`oz`T(ZL%`oAg zz%Qu--UIICaWi^SWG_#mo5^rw9)X$fc6uOB8V#tHi})PNcW(ya6b=UdCxd@0Cbb(6 zskR?20hho9T1vXYjTR<{U%&kAm8;)f()Q@k)7ZIf&mI}2$>c)euVGPMp8n50C?szQ zpOH*Di>^bFmg(e#&=*M(XJK6=4 z+3jmLG^0e#kaOPbKvq95Zo`KKa+il7x-M4MuzBPBdsC-L`$DWM01t8knzZZ>{= zGx`?dp{MBd$Vro$ktOXAzH1)Qe?SCguQojs*}s1zWSLsIQaU3Q;S6CV2_X9|aNcn; z0qpgI)x*N=aek<46R&&?N3<3Ku>v^KnVTo8b!?Z|-t(*LKYmdyF|l38YNxN6de2Gs zZWkZh9!V0E)*c;~=$$@C2){uZH;Hc^72lX%zx^Y<)HuFbi`a0|=$DVrG>FpcBRhg} zV?$z(u*e2qvHb=6evW4%?E5yFA&?5Om=>Psv_6UE2eS|XPtFlqdPdf0(&?3p&I4505O2Qq z9>?1eU$Lg>C2ECfhSYPW7@DdN^7)X6`ctf8_)6&L8MNi!N zmXCb@E@r~Vx0dMZ;jNX@69&!Q|K+2bnS)+gdGnvsrE>=*ywvRmJ>O+g(v&ypnTbP>RL{hHZ)h@X4R!NI7ZNyMmwqZ#Qr{|!`gRd087xsip!p6)CO zt9NgG%hJ~R)+KEk_BI_8;#0;BUb*f3ffabkFF$yWzvSnv{t1hUgwn6pSIhbutJ($R&G4-Giy##^T7jDSYl}V zT>OXIjk`x@wr;)c*$P-BTDdlwUQx&Q)TJw5Mw_E_z=ojB*D6iYbgd5hQbWT1wejKp z5n{N9mj4d+*NP+P%`Zr3GQGC%x7%rhy=v%2`G$_1*e+2+$TjJra9S73Y#G=au`wMz;yZ!`0%sg#N2g~HN%D}q zByXXXug{>iU8RdXB4Z^_53LT`MoT=Zhxqn<&egyD>yJs3p7WSIux+Bp1d`7yhHboi+J*>kMn(ORV+>CB)}pS5Z76x}mu z^r*qn;ZLw z(~iv{CkpgHgd)NtC^$TrB^`P&I}@b8NDm2SEO{dS1(EFtE&d5VfXpX6?Bc~Ki~M3< z4ejAa-yhZ^t!qjjvG1^%A3eQmwQ0btTSeKDVb-lKCsL*l8!^0V(92Csh3p?c*hmg7 zsullg-$-ft{7d*}`s=WvWhwg?EE+aoVshsf<^9UPo@IZrrW*}guqCC#XUQ4EUYd~H zabPFbGV~d+aXL?qac2k?k0vSR{LZD z&7pP4tvO`CVlFe)NXQIf9&f!bOf3x~+fZ~=Ijm3)PT47 zP+EUslj##-o;Q^rP@#2JYx1)22I=c1Nb6L7uR`i2mO~zfo?^HzSag;qqgiLnqlCPY z-Xm6g^&=`r-b?ID?#rVLJ-Zfvl>Yu~dU84GiNT6?1J4!eiLji87&aFy>0NRzm=%jTLbyR6297D^ zt)TOWh|{+Ls#7N%Egro1_5l+SptHqD04)}`hQUA>g}WUhQ~+&eL;uV)?oAaf7jv&pmz z$KbU#%cXNCR}7O2Xa)9~icl6$SdupV{K0gKOa~|IEy-L(%d%#WcvG*pM<(W5>A_|D^Za@IH$pa4fSn3Ts*m-&pzJ*xXw=;etoy z7El}vIZC(y4bWi$7)RMk!j|ATpAJ|%M4;8!qj}vFJYBy{yXjmzL>&YCkbDJIr<~v0 z=pW~Z0J6+B69~RMc$6mISC~MGPRKbz&r@_{8nVjL!2i`+&Jz=b*|gnxx^_ zKnD4nMGIJ4OcyY@(3U?&6t9Tp8yy?Q^?aFeolxsbE}1;;>Q&=2bQ)r)CE~Pf=tE zLV4NJ<%)2!{x#VoOeg12e%7~7?f934+H*=u=J56Nf!}N%M-%~^gQxF1w)3*R4g?m^JsA_4%i(b zP}O7ew1?Hb1D$Hd&@v2_g$pq^*EV{iAmUlSEH3*H{bJv#m__z64%=e5#WjXCX5^xB z0W0W5zF%~c%;UB8sgISW${M3l)D#eKE?VP73ZW$58(IYqWbTjab`>Q_UXd$Qprly3 z*wPo(c-BW>EP};Ur=L|%o3$#YT<rR5Kj zdYP6R1bu#L*8;=6@mybrgKZ*&MAjsi7`)PyN-hST{hq#p_L(24KzjpzxTXxbu4V9~ z2r!~DDhuwt!S{Im>%k9VEs+e3D1z~U!wTC3X>YWDZeW+`8He{29vjrZS=&36a@On(^Vg@YI>46C<1 z3@kni0KcEvc!Y3&ePx#ywL(%b(8Cu&Hm| z8MmoL>=sNT_G=pM5|%pz3y0V4Wc~xZ;{stgDL1OQo@hi9Wbz}l37^TC)DO1(NpAx} zwEjreHNW|0ojv~%{l~az^Tk`*87q3xPm%XOFR>W)5^)1a^VY3X z_i-dm7nfrnJN|sAVGS8($|8y#-Fz{k^?W|@$G_l*M0^1L2m$RgJr`!FeFe!Rq2P9k z-qZj2-wMc118|TVK3+WZ8vOJ{v^M$0t}p0HUlNEM19rBcd0DC?`5AQ^n-`EMcuarU zi=s71R5i_t&Z605L{_3WM-CS*v-LOkkNW^<1givUYvLF{#R{yF6wu#DkbxjlYmsN~ zT)LW!V{Lh2ZZD{MlbKH(U(3u*+_{cilS6WIDR?w(*(UkjI|l7U0Am}EIe`vk7+ux? zZw-HPobJep=Fq8w%5#EG{r)1Mo}6N-2v?DHZ^26s`}*Z$!@581&2h87}g- z*sinB;o7nVGvScMWxi6-UN+|A2_VuMa~8DLChs zYLhT}UROevp*f6|y?a=0D(ogb*ol~34;h(?)Ivxyb!EwfC3BJb29718aH@6Kv^V85 zLdr*<4iX08rJ&eK?A^jY&o!%JbFroZ0ng!1>hZ z!*nXs*~stGCE;Faz~U4BVGLUv&62RpTo4NBw&=ks9%wrajrYTtm zo_OkMGI!W7WbOv88zWE$kx&p?j*myrU=MVY! z)0lkEsarX;T*ps`;VsPb9e4m;ir~S(Nhbo2m-%x5u{xC=;31fx7a!Wv6$2U$J2%du zDkml&IBp74&>0EI1UaAM|3u)ejF2G2MUOsePDAV;__)uCYJqoq_-7;tsMe`;0@(uR zqSm_nGknE^Ov+m>yQtPx>_E~@T01L~{zxxf}PT3WzgCnaN`#VF<8Oq+A{w8IRM?p}%(fxSS{Dx6!L# zzt-y5+tNZ!oWFDm{`j#hI3n_6w8V@6p7{&zbL|qpM*x>M0XAZ5w~xX5CS6b+-v8!S zz*&d=(k|XOSisN8%Ua%M;@z5LC@$BFV5XDR^fClVfuJDs09nh)Gq19iV5v*K^g$x+ zJIh*}N2*o;{A4^LYe~M2yR7Ah=`3p>Yk91*tbKwcP=a)GleOS87RAE2+d_?#D)L&PF|BJ6?lv<=p{leegUk9)neIesJQ|2b~qj4=su?y zjqL;gHOY61aXa_BJEn(hW8l2Ndle$Sk1C%v<2}=$3pVC<%{mD8z=vn$@5>%|;riXt zSDkqdiO})RM<-Xl#%&K6is=dzit&vkk0gn^HQghN;(Gydya6nX_6jg={r{L;?`{9u zJ6X6l`{QUr*Z?+T40y80X%Yz@zM{WHp-Ta6?2m1-?t&y58MA~$sVwxCi&L7lSLkR1ru-3j!{(P#V36Cpx zi{u{g8e6B4!LI;lI$m z@j3q4O=X2EU2%yo`YyHLfzh@h-PK+oIJJW;A-W#;r#xzRMVS$Ow{0PH9IGBdufKEY zGbq_bAqdpKpMtj%vnO|B<0ky;)?HAn>$_{`Z$L|TPUj1OxE=7Yag{Fkah<1$+&m#K z-9l0y=oxL7sV1Dg@a=zGJowhB^*{ax#pLIIy90syeKV%!9zOKMxvD)SNcFFElP1j- zAq-v=&B2bznr0biptT7X0faDf6$rlWPVTj?%g-1_xis_c=mjsjB{&-IRkyc|Tv z>XgAopLDc7-#K?}{d&)=HQHHYjNi8;3e)RagALiaa@p@5E30(}+oK4m%%k!c;TilK zZh${kODe;7e>Nz_Zk08VhvMWo?>^ zs%@38ipT$djK^oY(1FD_w%sV9bM`^cwBV7C&;v<$CMd8ZmmBuFYoBzN8Q&?wyHn-@ zs_>wT$2!r4M=nFpX z2PX~_eabZOesG#(kz|fDLP;K{)BaeQ{_rzXtbQpA+x12mA)+Zf#IYmQH zbX_fk-0LEGvWho4yZyLAi5xBO1sD>XGy|dBK6H|flQ)+q5cTg0g5!o;K_3q?!7ZK@ ze&BH=wv>y{lenEp!%^3P10*hwxB%g7k_&_5eSZ*_R{}KEael2tC2$)3lVc|5#*2I8 z-f5T?REYz>gHYP8^F(!H-I8voUMeh79s;DT&3n;B4{ZM_^HztECHfz`(245^&;ZH4 z@UHE6tr&#vdZ0YhYY`zY$oEoJ2;!k|BZqt9nIY9G!CwqfDO}J4)bLkAm>PTvl@=jN za_iR_IhOpIXZGx&^Vu*=?Z8U>8Ey-FL_Ki_1Wr;rcf1IESiR9 zz643vYxi_O2>l$XHtIBY;@;mu`omga>@=`@z@G9sb{ao+CBBN^J_`kHR=tW0DDn)P z-@o|9myfF(f=qzsU`LeBBQbc2qQ1t$^Lak398!57h^FGICW z=tQ|5U!~4MCNzQd>@I4&;|x{o*w4WVV+*^}V1p2wSy>=tTp;ebI0@eK#$hCQ>5GML_b4FB=Nmp{z0J~990>xUOi`u6aq z<@mEV{!W+t>*H%593DCJ>I>+596V#mPfXvoJNWdh1xU7IBmX>@lW;A}iMNrQ?T%n- z8a?0NkIc>4Ruart$h6|zsl*mxKbzjTaC(bWmj6WkweP;a{_v^3;$C|nK6k0@r{;s( zA3@v$eCmox* za`%U?pQnyIy7S8QD;LpCY+bWx`3{t1C3)hl7b?miGkp2FDy^JJiw62VBXygjntZpvbsl1z%O2S8}%V`1^)j&%oQ>V2>&s4B+$3(q=08<|3W2`bnwW9Q-{vt zPu4hUE8o1n_7IdP|M-h)LFAVBCcL|s0zHv34NY)nS1m}_pI8W!O z6`li;XPxE*XRIX6JyNTr>s$8CUGmO{=iWY;``Dg^tMFTmJCKctm%VlCqWm&XuH93< zwq)?&Bb(kLq3AF+>FHnqIwk%DUQ)WK6CyyM#1RDv&mBrvy4udjE?<20-PT!i=go8| zb0TAc!nAxphY72Cm5z*HBid@-eD~_>WSLekUbK!$!AbAqdvjKEEgdG+pP(-MN}j6# zI*A2&NKWA0Dk(wcCX`a*1q&b)SbDULzUJ7{`Or1{^10W}w0t-p!g$=zT^$#$T)KD# z^?}amf2`#81;}W~$0Kz=c)kuplJnR0@%de#WcoWSP<{8~%NNdFZh@IWArse$C%$^= z9rxJ~*rBcp7b6Mhc;wuZKgS?wg4*EuzP@ph*e>Lb75k>!nWbcL-L7jVB|nA=*eg$?oTSrK@HU5|EMk;_VfIIW9X(e z6BR-HN~+^sY6Ol&IaChHN{rqflY9dI?Hfo?odx*{W2yjV!t;*8z946s25#C4*bN-X~-(fjuzxWQf)aP*9LmMbN7ymm8 z#ux#(j0RZj(FP+|37PBt$2bFl$N>^`2IPeWaCiD{&25Tk5Ic?609vs*B0oNH=ZgNBP~m@Ic*N)o zTGgRmuo1sv^|gN9lC0klUxx9JQvUr&8~GoV)rhdwaoxNt2h(%umnEDX3%5c0F}%D;hh$@nYkGowIXu zXXnCmYoL4zdFAE|{7=-M>vKaSH_0XB%2z;kCsd#T+8{5`2-FHy zEFd!!UYS^D-8bsiw>GsQ8UK6&-%StJCw+GUt!_o(NpO)4Sz6KBjxIQjZHupNy10j4 z*|zq@7x$f^*WN9sukKl^x!9*I0rnNaJ?PXz6NeMRMLOUx5kbfmGHVa^b@f@b(yN`I z(6S?M`YBnlD(m8jD=A@OvHjrlDDL%Zp}oYJ@+)t4)TG<$@JlU?nfW5s=-Al2wckfn zBcNsF$d|r|b2#f&b;d{g+W5u?o!P!3V|zr1lP)&@ReW^7(H%ahL+zj}?*SpMYM4FX z1AHpW`f=LHsXpQC7JG~bs0X{n zq8F37J9N?zL-%Am?@Ob%t}ko%p@`$Vm|Pb z?YtJ&>_IrKd+pEeSnO375ZyD^yPeV3#X)jBH)L&CPr1mQQNa1f-0 zY2kOBUep;ibY1O&p-0mDR_rP`nmNr@Git&3IqN+U^h@nb?d(yX1U)lmXk$)LPW`BU zvpliH#YHg%!sQ$cd|Z@Q7}O6SscD@jU~hI47`4{}!h4n;kme0%T#+RRY3UAU=wP|+ z$dEf+6&Hfm>SrJfl4_u$aF zjlv3HUX($)>Rh+P$J3r(c!z__E-35~t_MLV-3-8{2L~s11@>$=Sl#6d>IcQ`c zEn1zHl$_E~XH7~@o{MvPpjj?1RHWeG%n^VYKu$1vg7ZNT{%6myU+|53q1D$UdO|(n zpG1~|-pb1q?zD*TODo`-U>lT1X#eOgRopcfWN#RO@;$i`JI167BIoafiGW z#@SXsoUY%Pm7fsZCwJqTuB^1JL;3<;6WI%TEH8I@6I^$J>p>)syEy*5Vdy${SgD_V zqqJQ-Gaq+?`JSR%=Gx{iuU$Mt4RS#PG0Vg*;N=1&&=BvPGk96u8NXC{?ZV0<)`80> z2O!P5owBKt5o7BHIy~?yN*X&`J7uySx2<1Xm~Y27yP}iGZ;n3z9?x?yBnTkF$}0>H zf=hJA8(>sF-&kaCbpjEZ0snOFg_`A+iykTxD)CEup6xejFBLLj_u;W48)k@jc;SCm zA$G@^Q!d0IH=K3VbWVc=s9dpzaB??YgD72Kc=Z&I3}&-toro_1z#C z^&1t?%VMe?Ve2H8>N}%a=t-%o(h`%C8zvLMH0NwLm~P+WBGLiR2vyrk9t_S0KsXXS z0Px*WvoOWWEPBGcOD6S&8W=jDo>-WVdxW{gBi+Nz;6tbDBzqs(@Qk!hI&NZ>sV|aw zpteIGiTbWuzj;|vzJCzD-j#cH2qUK~V!r`+ETEm_dBXDmxOA69Xi{e&sWHB(w_Osk z-?)IiyP#V>>Mn#x{ir9MeQ>$cR&Z&%qW;~n*3c32j~SO~+MWrq3(xOlhc@6R+k3Qe zUMAlW|85WIreho4#y>MY(^v1dd*8G};L2+tb}-2V>S~d?r#4XAdCM~*pP0a>I%e6~ z_Px8gBfSCaesb2J;%we1E>5896S_%ppdN95Ao`Eb42RB^u4ACjGzZ?F3V9q!0`6>- z*Ezw5*r6RKiaGsQ?UvK=)A#^uiZ&xMx-MtTT>lA*lq8{CrtniswBkT|a`7nW+gal{ zNUd&rpH33Sx}0^33Nk24NJ`!@aw>cMpSRtxLi`~dUf5dzM;fUP=^K)65cE+` zfYAxQarUuyK-*6E!XDq>dX|Xy4-hZCSIZm@!P@r)UF2zj<6Jjvc{&AvqXq9kH+SAG z-^J-%1W%)#{s2CL((6;zzB6U$6i*<0(-Q0H1?Z;v5iJ-4i+RTlCr<6Av-R(e6SU6L z!p3%YoOqhloshzCc?qgcIPv<_Zg7GcJ%RYaC#|r1Jwft~6rN5po%TJP{dd)(B03wN z?#Q7}_^_67Z#NA2H0rzHiO^1%)1FV|a_qYIGjxM6dY2Et?)k==Pb)TB47PmxxbM|>C zR~@0N73|LRJDKM4F6Qo}4g_N461QDU^1D^-jI2ZCL!JPU_na+GS(!Uf zjxO#3TI&;Ac%uu(E+)7`=bhQRX$a&T436a~hVzw^ll?9d96aSpE2?xC)$0x)?yM73 z^0hD*!`-k+P!$S=Sz6!kKjO)>WQ$8<;=#U{?m5(kI zqW6IedWidCQy=XP~ z1;S__i1Vgg_4kE6Z@BZS=lH-KRp_bXpv%5-=c(iLfILn=9S1tb_)hrq3ZqZ_p+~$x zY4nLdPaqvW5y-*E(VtTnixt><)W&=ulbPe=%muyY6Qe%Wv8El zd?J{B)fePGsnoaP_8_?Cb+<&mPPR86S7+_b2g1=8J?lrlIe~Ar?tyXd)b&yXIS;6X z`jR*(;Q?k6<%8n8QS^FP3nGs>U605lE15%=GY?;gch@DZc2%x z8}JV{h>P7aaGrdyR-AcTJZz+_1~guQBS$ESNuU#u7+7Zk>Ob0n)12@Ru3i7}FZgy| z-q+iHLGsec3nSWu`~P<2;FCxG)*jSG%}Smex(QnP{LhhxR&F5uP)==(eqnFhe01dR zAAWfACa_{J_;QOV>j_`JisywTssaH4lhh$0#=& z4`dS?#QX{|jYcltzGtrBE|OSjw}>lt!N&aB1FG=Oc99XEEGYiFByw#R(QGhv>>#hkuCp4lOhyG$?$fjG8s z1ZJa}T%s7=Ie+TStB0WtwI8ft#LmM8`AY#2bJ}%-&2438&v&e&4pCG?(CHJpnHe(` zm)hsd?%;F+a?^l3U|;72t@& z#w{^j8HVchJ6HKFbiBbW^_v{NJI}pcx^`V$_qo&4onjTu@iBFmIBoo^b9aA!H*>%0 z1OOL%pStV$+a6@@M2@>+D%>J%_1&VtPjZX;#5>}A$lqVOMIpyK*d3hA&E@xz zHPsu;v>Oxg*jGr@6VS80;?{?V#kaddGvPh>N#SCUue^t{J8ZhiRc4k~yg6pN7(0<3 zzPU~pIl}H>euGnXs7~Oj08ZGe2WC3S6K^;;;Ceb!;&ak>FS|q-%pLwPJl|EpdUfo5 zu7VmVYuw`8=Z?$hyCcq0^X{243mxxMc2~W5XI&DGk4CzW=cC>P)!-bxudgZ-E;i!5 zPzk^fG8pR2Lq{?=H&8mErrg%418NlJLJldF-vM^VQUE@<`XV6HIZwThKCkY|13K#+ za_Xk*VM5Qk7UESF!h5c9!h-3O%RVF+ak`AjZgdG=s=B(YJfr{x{vG?vqcsBf(WKhs0EH z=W4|F=8Z4;=%Cx&6GSM?2ZDU?q`R%&P$gjSXQ1zWz?~HZ^V&2}g~4@NWaDbHr$WIx zh#Iz~>7DL)cjpQFL1!=2y_%o<*vF(qi`YX07Y% z2P`%LsryGi-*$)|4fzkw??i6jiJrf6NYwLp)crP`LJz!u1IC1aSCJN)X21_a4{3Xz z9+I$eBmQ9{N&JSs@br091pGrtC=)`3DUtb9biv}KR{DI~pZNC=x?F=yLK-eZwv!R1 ziyCv-lON%)?tTN~;1N(53TSQ_zjX@71?`#ov$rq)u>if#*ACERIQtXbne8@WbJ)5%?SYVMJ>f zUX2!qwMHNkY%e&3Zc{b%R|KX`LUiu5`i6%3>2s)`=0CKuY0=VUKry@Sf5kp8_zkYr zlW20gn>1m4yx-M3J*%J~D>Ii;wZBul-qjZumJ}40loWP(1;P|ey#JFV8*fNp+5c<+yC{S@7unD zGWh+EwBYCQk!SFPPk)9_fBEhk@_Oq(-+lAkQ}`%8(t=Pm_lDa~tLYY$53~z=Sq&BT zpPw3Ynr@*K99_Y8)KTs`vIF2-NO<6`Kzr(9xyu~Ca+kt-4G}a_5%g=^ezHrTJf{}5 zHsQ~Zp$Q*uECpY1O);Jd$)03wE8yBN{#vz20$IPdHycp|{-P0$pkFJ-2l0VYw3EA* zA!|#QJ7G`}-#`ceLH@c4b+<)6Y@KTT4SpOo1@_F|`B@9ldFLDUQCwKs zyRc*(|H8q97XqW)!sEdJ3y2qPq1Te%3IDWEnbdyvEy&v@u@0_PjD$sYI+>%X{ZH(} zZ|>iRaEXl2jILy;&!F-yMDe@fXze$w?uQ&_zqlU4d>ZsNL z9a^k5b3SB1Ll12OW#5SFQ1jNMczbZTNg~8|>GhP=@#>_v-){UPCc&oZx8?%iFq^Vd z>)FF3(o;>EJvf^RitG@vNAo4NIjc9j*T%kwj=a#EldFM7Z%RYZ&u&^Pc(0M`snr@7dH%eqyjoTRE-!uyt1l@ zeQWuo;xP%sn&+)pKWBe=|A(eD&B)Cdmu@IY&cqj_VS{t>N=x%{hY@_30EWHn6~G7h zbkthFgo=x7c0ysdQU;^iMG8=fqCR!V&6_XmUia*-hx;@brCR*csFz1iX{a1FyoNeE zF92%b`ki{GW$i=TY^nG(b$sr)ykTR8R`EEQK^v$GFkhnGD@hh>r#yWqFM_xBlgex7 zjh-{4KW#uq?oJxvn1V(xt}7dgNe{2_pqrWir+h_PE`GDUTd0k0bDX87wf*NP)GbNF z?^1JiQu>|uK3oaCwWTY+<<_JK?k|J6a-JlTT^5Gme$povPz)j&%C_esc;WsME=GTn zv;WF#pI?SQ?=ei7Cq!TIYGG$MKd*atlGQj)OE7!ua zXu%%Po!$pn$zC9_g;r>Cn-&dapP)+wht4>J_!cuZz9AyXTIDDa<@W~Hkp=^C-F&a8Nn@Jj!^88_Z`~T7w{PFF*)ys9e}8rJ26VtPZE8Ny?8sco`VXo=udKXruDAlH ztlbFDZ@_OdH$Z*`!I=a+-{9=J2$Trj-+We%;uI76-n}ijH+tRATL~#g1ihd6WaX(- zD_56Pd8s7T)_c_|n64ln{C4Y|bxjPA#Y3vLKz|>=wMeUn|5c>(n~iuTp~aBFVzV3Q zjhGsQ@>e`ldg$#R@joqxc2U%>mPBOy>F~DQdt0xX(K(z#QIw26h_+R290!%B{#;oR z-)klGPrqHTqwtNFS0?m^EN(`y>HZy|lsylaCo+@lEb?%kqPb_<(qL^lQP%!>x*0yx zYJeSVGgMDLa^_^qyaCnYKmC00S43c;<%c(IYdySi`?FYk{OHl+tbK~<#4`tunI{>3 z{N*lm`M9@h@9CGHAU{9;_zT%rO_1xl7v@j8QG=J9Ow^_%T?4r%LK`e?x}7h=16u(| zO{<{yj#WKBY}gC$t!-Shb5Tic?UOq;?ZNrEMaxmqhfUK_NI6P=Wy68}8?ih_Jx6Ey z{n?j}QDx|*`Vnt%b&(iSgHLn;XfA;B9*}vHQd%VLO_>JMg|IdL=^Ve~#58}77)>-? zCP^-KRK2lNA*N28q1v9>u%ncZ$$cg zHu&J>eP>>J>d7;wo|-pn*1X1s2E2vr0ZK5My2T!bbuf`Ea*nqUj>g*yFlCM;$g1c` z$t{9=WF^6MCO-~j3rNDzs(QjYCOcV>3pLplO z*(Ra*N*!H4-7s_9pphw2@?e`K$vnX_wQ9hqID=dnW0;7pug9aQ_rc0eawMVWS32GY z@BltD^$oik@Fn6Z3;~xW9bDM1Fi=H~FWz5FZ{r?!@eKDkwts!SV>dM=%gew-2N1Bg z!ES;&Q3hKybeD%ZW-91i#PJxQ0p5zzsG#^OwdbWHfBxs!KM$Xz%JE}6_e0~NH=!xy z{sTMk_SLJ=fX~|yg>l377McJV zNcnI`P!>XCO774Y8lLlgtb!0=TnCM-D(LJ!eQxjCv2e+{K7IbX_wk$K$|_E-9{fzo z!smxSWu;V4KeTdlN$GvTv-=);xOv&`*cJ7~>F6}lHx{Jh9|_)AK`HRI-vMuaKxt8+ zC1%6wLg#dl@uYv6iR>)(Uyx;`eO4I5)xy3tW&R6`g|uWI_x|Qf^%PowG$8=m>-gVM)SlON4P z!MJSfWNYf7$%9t}>a%lO=tI>5t1Bw-)x+oBZk&hSK|&}asWAmTVTixidu7wgB}*Tk zId<3bRa-cCKm}%?OdRY48R1NXD(s+{>-313fsN;lBV&gpGe+a^wfTjAb1Y7-Mn>w$LRUbrW=EuTJ5 z>o<_^%=dp|&I)&dZxw2M(!i=oIVGzD|A;?3f%MC%0m5B(`%p*Lw*4k-A^KMn+Qud@ zGVVN-NJ1j{pzo_o3*f8@)}`m`5)mJh`g%nTL-q?Y+BZd28F! zit!T$l+LiG&!FT3Cr<2NGBeFSgSxiy`J0~{U%Tn~j~k}FoIbU(s($qNiKEcM`qpWq zCrlVc;Fe(xbqDk?VqJl?5edaJUFD!{N>DkdJG}DbX^)SixzESjmuJKc9bP%FaQ7tZ zO8d}RAPQCZ;b>PpBR^a(3Z%`uJn^LcPfpK68h?&>j`;z&kQ~ z2S!AP&e)k*7-TS$#5+NqpoNKLDPrN7)v&tc$8LcIF_0e-+5(j!aqLRy-uc6frE48O zqZ`Zd5u}~gf;<5G3D7>N zXvCv}XVlk@P=|r~0$Ozc?D&b$r36*nuMy7^J_Nmw!r&yX zP%sFxsiq5-2-X8ah~;RZqm3dOg8R*Coi!DVU9jEE79ce<3+hb-(t)o_Z3hZup*EQu zviQi~JkSe>Dunc@>A8eFS)oSHn$!7P!-xw2nPH?PL?{1iimno?_VJ~4lQaZk0Ceq5p+r=vUt4yY1ZsT7R;$}akT)2!@${bs2j};g7 zr`UCCuh$%1H?XMp?AeYGKbcY~!=I?t>{lp6t;XN@`ze(E_X@zF3j@j3qGeP#)3!{i z@bhaHE09X&uW$FUQ>x-L^qBNK2A>33bOaQwMUsF4Ez3jB*a zv=>sruskqIKYN4}f2&rbU_U>gMp)xd1e3%+uxG&DnE@*Ud<|B^4nM%+oCZE%JOHBJ zcvb+Re|$qPIOfoUCQL5ZL4X^m>cA)9TX;v3EV)nM4fJ8^iMvakfeB){}Q((`xr5KFXq6sM} z#X&K8OTJ%VQSso)qDV_z#JFXX4<|;9l*z}fUp_V=j}^}!n2-`4Xpb7WXi$DZctAFq zjh2>{)%V}Iz`vz&e#`tJqeSe~<(tgIhbKBHwSqqa5Q4`jsCd*UIL#%0O z`rtv+$Miw##*bPnq_Y!-)am63wQ&ihCQ^P}FcFuC#msC$EhtFJG&?^ZKm=%W@Ls3a zgo~`;n*B_nU!Fe4nHaeoDUpiI_=S_50bal@gQDXp&TJJ^TBr zG)625fG<@{Mbq`jUP_fJF*sB?^ujyko8V63FDFExtc;6)YmoQ#%QShGNBf*b? zKM(@zTaCiN&6fzVp!uj24MM}AN&9@X46Q@|OVN}c6+{`Scq)w|-ch?LfU<}z`IO!c zFQR;8wOj0#0F-XA2OwPl4WH_X^6~Bl!Wpr7=~PL7m+XE!U&Yah$5%}q|b-0HTrxi0>LBoc5)-(HTnPqzvctS5m~gv zQwGe31B+X?!dXaZX9BA+kp>`B%{mcpI+L;VPU{i& z62Jr(+2BJ_ngwpNrdqV*6N~FIZuu>Q63Bg=*tMpza0$8A4j*v$ba`b(1UvxBVu$}= z+kvqN1CsZ8_y(p0h(c**4owyqo8_;Ac@z5)b~6VSOeoz>q#r>u%uz4W0usqc3_P1) zi5tfS3=E!+2oAZQd`fF~t`GNOhn)aZ0A$8!$E4PoY&vgTj|zmdmR8r42>BM?En(Je-M*7&R&=IHuQ( z5vdPnt~8bfCvRMsYGoo0d}A20JI_Bmdo9zZ(#gQp?H3%Vkn8+WUR6P`HA7oCY)E2A z#1NEq>RBd4tq7Nkg5)W|Qb|OjL>oZ)i$w~lQu0w)W@3z1&Wimgr9^zYHXwdZutK4l z8W?aiKoqD61`(rC2ZekfiO?$x164XrVR(dpGK$klRmRO~lQg3&AVy*fP7x}gsA{}e zjg_i&X@rO#7Hn*o*DE_OqF`9%lf?u3<9`L^P!)}Hq9PcS5LhPGg){z2R8t-~osvpq zAu_QkOyn1+(L|{NRgr#be;uO~>4L=~Q6xnRjU%d}v|-Xfi^S0sLdEAxV~Q^hw#P&$ zlXo(PD8C@FB%~}{q7ROG%FjQlSfkb_u89gUg)*`My~KeUd3v;gUN^8pT$-#6h#ehj zl*?pMp{gMY`jGz{X~}D&DC2s&a&biUXkGtt%D$6xm+$Kv78Mng5F8gL3CgLA1nJC% z=E-HjdCJ~HsuDFerN4bh`6lh$!t`~~`eG_q9?TRLCa|nTAC)BOU)aR#>^HHOJZfr~ zD9}$yMFq-3lf_XZwL$)2L4BhtHdV}c;pL^`AV$vU#lDa8%!<;QQ)N+kK>^e{k+|nXk36^B`3eYR$>VRmeQm)R{AF7KoYsA&(1B_u}Yc$o{ zzpr?xs8BpelEb72|k5;QIbk-C`a?UVd zlvJ*Zi&fgs8^WYv@r_c|7XR6iQO0?h{(eD9p&zJ=P+k>kj)#NGej)g-V?YPAf@R$g zc)yWl1cW#1h`GQY> zub+X|;DCN<$z^59*8ZA;UY6XPn7H2b!h~Yn_WYhh<9EWC=%<&;3WE>gS4OW4nweSI z%doM!=HgR(=EUU=OvG1ipzXWNui@V}qXUlrTFc5)lFLd`Eg2b>m@IIqf}Rj_|2p`z z1{3WW%r8WP5rz!3`~}Aq^v(W@!QL1+-c9p!c}=xH5y ztIe$1YzRRH)?=J8_%^;h1^)8Ls8z}Qll!Y&mutk8c;{H8)6kE@o zJXwTr@>W&fB+ zyAt*loB|J^vYZc~1j75@fgj@w$oU~PhM-64*9m@7}AHW;_gSw;e0dD*Vzx&Zmlzx*= zTvdN`>ahXZwl?j6V^fdTuiD=AgYrEeeYEFsk^w>sGVXsVDqw}+w@o6xJs?|4G!+%e zkb>Pn>rmw!KFOmZA!x<<0RYxc&8*vdQ9omlCC&3l`}EWJ$LBSd9@=*G>b6bqigy3r z-2D4)(Yv7PUfovT3|GSse{Zu_xFgBl)XS+zsLjmvaNs}CshG$p6=?Ck;l7Ih$wP|2 z<{`!Ze6Mw-b}z*AmLTz7?TXfWmHhMTo0&3ze)~3<0o~#aQZg6(r1Ty7DDW0Au_eTO1QmgpeL@9?Y>`IDv5Hh3bpr__Eb0h+XJjKh39vV5+x2bD zA2d^g;S03|z9=A&U){EPb=~&ubyJ%OUJ~&4LJ=1eZy=s138;su>56EA3%%Q8K=*S# zrsEy86BTlgfLT+l#Z z9Px#Sb!;}*Rk=bi0j#wKh|_pTutCr)*ef_BI3hSDcwKNAG;#shyiSFSu-HV}5*5kH zX%WY7dF4+;!!)c0uu))R65R@P#z+>lQZU|lAGke_wWpiO?_|PYtx?1zOovH2HCDbo7C>}r^69RtU4!Ylp@kP; z2^d-=*)CiA&ddyHP}b;y_)ObLd}iS2tRQK|%y-txwo8hJ2D~CGWPU5elQqU$@_^}(;P(yC#L%Ejtx)OhATv3p(3jJ%raW6E|P6r%%mm;(~c2W@aI>qqQI;8 zN>R~rKds3he(uRkI-Ny1)%h#>(9fcjz|Y^Z%Cqbh_O}g2qrvfCqrqTAzZ9oX3V$kP zunea=uNv;WZAVej>*xo|*g<_l4gO=I{YTeTrRZyF^eI(!qy3}D_!~m|3>s^}`pATa zh6H+AkyRqG7KMH&VZs%x&~6q{L?CJd)P9O^Mj}(k%PBEywhQr#TimygME`jH( zRR*QXU{yp$QQ26zg-68tK-g9Hd9`(L9mAfrTRb`7=$p(yYL z07Zr)wuAPN8nk?q!3bu8nwVW=vw;x<Fz`9TOXjoX^A^^pcfN!1I%5KRw9W}OhM zkMvYg*WcUstzKh-8^F+Vz3QODLUa;J%L5X2-R>Gr&kg>UNKHTUR3{mUOMS@h3S zx`jt`Qv-%BK^b%z%2+bgG2e}DQRpiY#XY$~@`|D~UmmE5JQV@|G=cK`(zdJzBR(_C*>jQgb6_^6i4{`m9aucM|gxsQjkM>OeK>Lrt z9zeT+aI2i8EGNVt+3fzCp@on?*#*=sR3I7K@Dj$JnMS-|* zp@m6BrZlBKnifIx_M{*s{@$ue7FMd%QmMaK>!+9c$LV+7UX_w6l?a6y%DzVQ*!e7t zI)Rod12vL^dE)k|(QRm9QGi}5iWezjE%;=EK|@@RkFXZH?G0IeO6f|2Srt- z)<~7ZgQ$7klA_=wz1!D&<=ubZ^?uj&OhM=S z+D`vpcD=UU;~yX_NgZM}rHh#q!vnl|^8v2$9H*PR?!Nqg(*?}#cfkjIaw7hR=!h@? zqCsMz3foN3N%sl<1{9l?C?ZNIiErS1haw0T^7=u?1#rY*0melBLfSsuY)_9zsWK45 z-~l9rrPatqz^9ylQ7Y;EB+`+u^t3sT0mh`$Dn#jUvk+_*ix#3qU`G?mgwqG`&5~^| z64J{MOUZ?LzbI++h@ye8I-VXDAhV*;YGku;+8M?CH3bvgasd%yqs z2VT1P$db~?#T97yPE?L(;*)r0zX|IMMdD!li|?WTU7eI!7&$1*Jdq8eUkEfsX(Huj zMXKDETees`bZkY%-~o>fC>k_&a797UT$QbUXm0+{hl;W+)2c`I*`88URMxk==;5-Q zdjoCyI8|tn@;ExlMu!HZg~a5AgyhA9r1^!%Y@KH5ot9uU=)<*&fM|_cSE!G((N7x& zM+6(f#^?4~oplk4Q*}hzhA0 z{J#SxJ*-l)!mH!gMr|?aHZ*K*h#NH`F+4jrbkgkA0ml_va_3Y=e?{#u59%MQk5AB7 zj;&i-5jHhQGXTGrQJO%NHLly4F?(p=6|-v+hL4Do#~9U@`{_sM%U|BLX#OsxDnNdy zY20qi6 zg_;x4M5`d)dvJIVlbxIgzyNR`(sC~SaKt>qChu>UHDpzJBulCLMI`nfu8Xh_k7zWr zgoCi$`2~3gKlv25u4X-4m4rluK*F{p+y1fREdDtbPkAgk;|Ek1m0ImLo7!PA7uW(4 z>QSLRFT)=cuq|`vu9#bH4~mx1y5QV8nh}R*4hjrck5$O2MhT_Ru*tLZ+nY8th6Jx! z1V^G|jXJ|d4w!*QnJs4UI1z}z=|tdxV;_x8V3?prFj+7McrXbkB_~w?AZK!cJ_mb*uvGG6 zF_Zt(?Pj}Kr*@$l&fSQ)1;;ujp#|J%&VOVB@f?_&7Hb8s8_^0NpT!FMOsFTcX}1y@ z<*<=YMO$c~MUhEkXW#dnYZTr^aDjHmBK6tJYa>i2|EO{7i_aKVHF2bp(g%cBWt5P$ z3R;@1lIiE6**t3Q{`{4n|2*7$fjU~9o~lYox2LWg(p3LibpJSIbHMoOH%vo<4h6=p z88?QW)=;|>w6GC;5T1IBF5EVnIXM}5OLX)y=BBqGS?ZEMJv7%nWX4|cy zNE#a7H?a>rpy0JYRRKj+rc3dE2SfyA4}j1cF}32pnBB;}0`!{%_HzxyY0TzyI02~^ zOVABkHZY`g=MR{0sNnG%PFalX@(ROfj zl7FzpO-8+z&_8@?GDc89*;<`e1YCf%ao^Z!I~hPvmY+`Zq$7895K{YHq^y@PId(jd zprFA!eiD(QGX|dK(1KSEpaB!{K$VNu1QXx})FWlS8uXD9;N#$Str7$X?eA$-WSZ?5V&EY-w?vLB;a}6MRfQB(Kb6w3{#|ysI;F zn$I&Yq{h!FM^3C7mKnFtQS--1Q^eZpd3u>Dd18JOj?Y&E_fJu!2G=(YS(y~qKYCmB_<-iRA*RiiG2_<62GY;?W_8P*-0(bNGe=q; z)rC%|8B;yFp@cunGa!hdbwe5e$iqxvL97JN-n z1!`TQH2pd?AUi0+Z7)cHmk)!upDBX5f<+upA|gp-AtD(N4VWj`CqLkjbl?-5S@n*y-F3SoW1vPI#mMEXry;gk2y^hx3SR zsGZXfI8wdfF~N(1|03{KfNRVScuYi*P9H2Fn?yYTe(ZS+1Y@zh8qOV?01|}({60|w z+ab7hd2z`RKDd5GoQ#Hh;eHFa(a4h8Gp`7@XEXf+L`gAAuH(Dcm&7Ldi4iM#Mivx1-k1~^sS=COGyXX2I73NN zVtzoAe=u3K&*_u1`&t5W8k*+KM-6iq&To9j9HQ{k`GqLVrHX)nfU-1*mk1JStjVAG z=Lh@K{!Cy_ZdQ7{zb?W*C{-;|h00=(e?ZFcSvG%7qC_O4;u&bB&Wc&3e}sR`us(+H za-~0$r3uf~A{a2imuPF!#;XtBWiBY@<{2=d{k7k(WQv6tvNv zUKzMy->RqL)Pd&YoHf>&_Ta#b6Z>C&LLD2L-cY$%A({FCzPqJQWNc=DA#vI6>+5eW zN>V8N>_*M_VcVbhZ_NkPchfS)4IRJa%-FGKmTVg^yeypwU@FoT!BRFrCl946gx0EH zW!|jnIfu@jJ2bTaj9o+X)haU@uwdnyE$}lUIL;g#5MT+63n>(diXn_GfE_sCa%!AT z6fTYrrGvHRG`&)uqmPP^g`ogV+Hk4Dtng2eCL_5?u9o=8WO~06voSx$hN{#dG@2l8 zyFMp$dR(P0cSx^3Hr<##BXTDt@0%EyQW{y2t{c*OutcT{Nr)KD4BoqJRN2}Y!4Z7} z2bwg+&D)39Z+)l&CB#RlXf&{Cd01AMqF@MQ1JTCAX^5X8bZ1MWECw##h6rjMnn{=E<+YvMnM-F5 zZ64cpxj3+psqiTfI?_do-rJ4u;hlIc{M_5U8)^bhMVsM= zwQcwTs`c%`XMfnR;Rk3sJsB1K&~_Q0dF>Xp0ga|M+x8bcW+<@_sU0iQ^b$)#)5pXTY4t+@BN{vv+p1+#+DWVwS~yGRwptd;1`tB3Icfm zTU-rnN~cc;4GfVnV5Q(42nCQ0dN|W03V|GsC@eZ_q+Mr#kSCKd5u#1)7NL>;7hO^C zVj%Ox;(dK;pPoL*Ob`AzJ8#_a)KdD#($wSQ^0Gf3Oq&Nyf4a8MzQs>4fiD(R(8Ffc z->DDlRerd<7j9^l#9ErB$f$XiSV=P_owC5;C^Qx?*jwFq!0J6HarSJKxM%f%zSVmd z6dMbT6RB4!MA3CEp~g$k4Z^pVG)xp0H*9|-4~d5djxR9>$i^%%my8b_j_>3>vb~{L zII&>~k_~$9k}7ciTfv&m&Zmz-j~a#eO2%klwz_$cyBQpfT|%`cOpblHbNZ58nh8T ziXKN#qNmYO^b+K_yauacAS{%~1^$q&T1+2O1oBn^zuiwXXf zH^K;i7sA5`Rls1drf?bgh5VXMgh3KX@zIBaX`OBZm5&(9@Bz#RF6ErWIy1-;&XyzF zoy5|S2g4ikLgqmp>!M0{p9rFpc*)7+VE}TrL#ECv{J0PzgACnbj5K2YJ9Hr?S zI5E(kn3ZUU*S?x4vzj$TWyOrIm$w}lVphgl4ZZy+I)Gtn=F7y$o-ratlo-oMDdB3f zkTy)|mu07g<8+}_aaa2e9XBzja^&!o(mbhOVpdF6qF;uhG-de6%AASghW5Q0R~4!o zC!{kn`cE;?Li1`NC1qk0MJXdP>_{w|U&DZyL4Lgr)>x%^$h|g8!0!2@vSUY@0t!{y z>^drD;o>O^`{_sP`;|Uix}fR3IR~as>%CZQX3(mK{6j($BW?2X1^-%*tyL8Um`28C zkHYcBV6z^nf{l7J{#>f}(;>B9s`K-&jFy%67e&hkoynb)JF9wlh;BlyCZT+8dD0Lz zv`@Y~I{QG<@TA&-2BT9$@DR@_(Z$eSeTiS-8VNr zt2HgVDkr&U5EG9ELdJ8_5R?nUh0$6IoO-YUh}KAC!h}#m+L{vs3QhvGB|IvA<`zSI)apd5 zJ;u*Jt-LHr7Q5ACHci_aZ8E=8kVY%w;u4HPb+l|wWJu`nIl-YJ%VMHp4gQAIM5{D% za!|0QbaI3y_^{F9PnmUbL9z(HT!ly*pR3f0#?vB1d@~>$nH^wvt4SOPGH}_VBuIlK z3UWC&2pooxPpF7wcHpEnPhP{#*PdL16VR`#(SPu#kI$X^I2DXuS%e0(ocZXZGcEYV zMXMb})L9xmicgOni%K3velW0L9R8GfjQtSul1T0p{56rR3-VWK7O^A;(r$+AYU&M? zgx}wUZ=eJmkN%Fo?SsZ_Lg9Vz6X*tg{PU)F-);JQJHS&aRz>*)GO1nA>W2)2@=X`gLEF&%)LNjh8Ey4v*ZP$ z=xj=0#&HO;OXkJIj6gB?QJh?+>-A)E%+%(^kD^n!7PYRx>w4o;_-F-Qu>w7bYgeEZ zWeEQEMhmdGqW6=%%g`z6*WT)|(9p5}MdI2hjU!_PU6xTlYJFk<{(~H)kW-maTYKkD zZ7sfxFW1)o`fF|NiZO7+tJN7g+QIp@MBHyMaH_=t( z|E4bAz_36wM?k5nV=u$FW)9OPBSZ8F6$y1FLV*Z=Rg@JpbAw)F*IVrW4{h%O7*(;w zjqlvHz4w|e+1>P>-Sk2d(ntttgg`=ogoIv$v_L2#MIuE(P{4vnvmsV2Sg@jEuZZ>8 zeb26toqT8RCV*Jp^Z$K+mh8QI%gmW}=A1L<{01B`xnrky;;*0XK7s0=fB#W#XkDcnIE_RydC~S z{*0gy_X;275~0T?!7g+VXNJ;lx?uHkd{s zv%#4xpkbGZmXu~}5zTgn+oAB4~MLOk4i?%OjzrbHN znN_(Fj_r$*N3%`xBnB%#?(v$ylBho)^R-E?flz3%xt z_pfvKPoMTX*6rUp-+k|jV{l{ILtl0FW}<}Q3#BRWnp^YQn98Y@rvt}cb)ZAX0*+Vv zka_(~bF3#h*%L699M1d+5Vgk~y$vO{R^WFw%sjNT(LKE-=A9*5&N%9l=gdj2bDY_- zF&m*hh}a-zKT}-@@+@)t@y2j{eTjuMY!s&HYd8Lch*yexgWTll=z__e)z<-n8`ZU5im&| zzTvHQcU0h;RIfSK-`xYWvx0_!cep9+zrnwdM2Yiw5GalEMP9@!A_Ji8Ld$6)gIcwL z;Y+0U`9Z}Ja#I$c!XMnQ2cLOq$tg7XwLQprYDxc-I2jxoop-d~ftwHH#mP)mQG-uZNf%KN+8x{zL&vh(zDe?lL@of}H! z(&Ha$?n25J*B(!+7S@Y*3JmPXrE+n@<4>#H6`(G+#A?q5>3;%xGTWU{w(17d}MsX8BbUc#hb^2=yL4 z1lD?iF5uu^LU@?`fbejF)wb3qk;$)N#k!2l7>6+;Au38I5gvMvHbkaG8tC^92_@Ar zCh$`*jms9Z*T`iOc*B}-(Tm2kEb?M}w9oM0Uxa-m-Uf%Uw;`nArt7Q$tC*F(_&R*hb?26Q6(1jXXYDi zCYB!A+}qsT>j+i{gVi`&s4&DtnL0bkw?bG%)AVxqDiSJ8Q89+jPV%h~;=ZO=f0vd9 zQl}RGAy<6N%t*vd5;0>2T0@)6#hO@px4PG%E-ES^!sv*} z%+QJ1ZE}V1LOlr;@@=emT(-$!beXDS#G-?z2dnq=L7~Lpi;gERW~CYb%Zm~rc@Zg~ z0^b5r;U*L{wwR`ie_!MPSFDq@?JJm}R5Z0*TFBVM#8`LI@5&h$Jw;e|W@U5p%H}6( zg5Y?1%}|?=GV@Iot^!qaGydpzuc{%jrGLm`_V4Q&C^Xu}It|9ARD-b0rrDs8rpG!7 ze-zZ>Z-o@Qo5%Pe*hcAaRRwdo6U2U%#sF5+09a4q0KecO@CbhVL=GOcsXiE}!c>h@ zNUi-8KY{n+Cq7-f_EWHrjYGMgMm`T0CgZ)}l{yaXMB_p;T2{BTtfpr1ht6UX{srQV zelZn~q@F_8@~^2{Gl}jgPaRw6`q4>Q#qj8|5q*0 z|I}a9cn$UBpHWJu4OK6^hhurNKEQjRS5Sf_123}c*t0y^jleskPq|W{i-2*DCLENo z+kBKl1U>}?<^={=Xdn`9L%cU|cE*9wT|X$ORNM1Nx)=Fh>lwM_@$XjR_Z+E|;_PlD zyRK!|J5>Jz`1qsoar=-04Cde8nwZ=t7KVv zfd8{+(K~xusF9E2C+_8pPon7k2T=6mCT{uz13>nrbPp~}_`yGp*K8d$nIMSnr$p{Z z&~Ec6EinEBG^pqrIfmDNnYu9D_@}-2?Mvv!KN7kPKq%1p04gBFFT9d#C z8a{8vN!O?#^h6bKQhT38@?EPRu;o>RmR021?q9tN$)CfYA#)Eh7kq;ce)A1#j7Jh9 zN;tU#35w<-F$m6u_?Njw1A-kd;8%?JmmY|cQ}obJg&+Qw)L#vr%+BL7Kqm*>c$b=Q zPd;XWub2yDXrax)KmavJ0ElVlex$mt>&_ppSo7nZo!24Ne!?+(P}J@9eNVk}qOZQb z@5GEPKlLG#<{lKW|B4^(>>>~E#~Lom$HE|fP%#J`z=*X1hylT#x_LkT&vl)5{8 z-S~6OJ@~^52pa!ajeQg=Oc^gy;{(i7>{(TQ>!HrZw z|2h0#m=aPikg;Gm*vQ`F=>U{A7xZU=ld+@J!BuL`6YeVPc+B2~zsDo+4?Rzy>L=gc zjIUv??_pm%*LKsVA0X?%8+rLR-uueo?f>b)E4b?+-4y&Z(+BDLAd_?uhltR|o9~6B zs=?9+frU^)KqL!`Xogg#u+3ndHS3Apr$0dB@r^x?J=XKd+n>yub=esFbdN+9IrEc` z)?Ii1hv?;=x8LqL`yh2ca=kI=kggWaJF{T20-ufBS6{Tc)HOb^o{(Ey&pdPZ%WKOet44pp7JksY08BGyoU~wZ^9LU^ zFAh=q(c53#wt)Ot2Fr%mMSj#XAQXl@lOX6ig2gaUBHU@HfW`z98K~{{S`*Hd)t@^E(Lq!UeCz z1gXl(p5E>Kdv7_nY4wVVkql+F#=b6-%J$BiyBBF|YP;vu*XroEZ%@CyYR_^&B|+@{ z_p@lkh-GW~#*7%9cDu?S89Voey>rk0%u43e)sCv26;UmqC}sc&k8|BH1@e6bjCZ`@ zPD3;TK*i#f0ucYxT{;2aMItxwQKAkIdVzY5j>B*5+HiUO$m53&JpbgugD0vgH*FqK ziQmBk_ue-kK=;8{?~;e+cTUdAMQl$m*L^#Fu5;q1_UcXNV)|HzxeEm-YZr= zzHs`~{6a)cYg@YxAD}(!Cr&IWZDaN#(Zg*MZoK~FeODG#louB4AG`3Ge6PnB!fmA` z$;rtn#U&H*RQ&71tu6a*eCFYGD_NA6KV{}(@)T7$as5PiEL`uy@C%}q+^c}kHyq|s zf0*E)20Uv9doI5;2;p}+QW4NQ2D>n?wDC1W6gcq78Vat5{w!L#*Pl>cSKrA}qefnN z)gAlS_tn=q7o1$&{nC;L5Ibwc!>hNBZqjL!6YTb$Wlyg=`|teb=KQ?o=FfjHT{iX2 zH<0+FJNvF2ITBGdwO94s(y@5KOW(h+2(b@7^~B|UD<5rW+%~##)QW{$xAlCmc{4SY ze>E?^845(98ax2lQSSi)W&x24+FQ6e-#TN;_WfTXpEDvp*5w2{t}70Xl9O+Z{po~$oxC6ceg#s02479o zO2yxETDkM(apS%`(0_<-NN`3(I1?^9D_vePs}z4RYP#_{>UwHKLRN$`{{FtT;WoKx zV4}#)9pY_=0>q=(Kw}W`5d;dO2dE}%%>d{sAk0JUG6O=K$o=iQiEW4Pc=+i9w?4V{ zTk6Q_o4~4lH$r?(*kzCr07sRt!Sj^|UH^9s3{Z5lky?y|@iUXkez*7Wcy=)Qr$pW*Ghk%0;1s0i9?YHw&b+Ot31eVORr~d|MW7SLZsNk0|Mz! zs0coVsOTqQKYlp0^iMA0N7>fXr|-besSloke+MO~;PB~C^qD*H^XmPl;op98<;)pq zgB1gHq9Se$&yiikM&zOZQJQuUBMvkK8T}AJNB%?o`CXzSe5X1yy9z(N!;bCt9r)3a z8JQ{~K&vx?HK=fh9er%yfr`otG6*bc@AEIdavffY7oxRj+4Zl!@fd#lrRQGULr|aa zLcH?Ie?9*!#J1JoeZmO#JK)Pzfb&`hxN@rnn*;|1#~@n$XQW1EiQ09B(#)CyiE z>!Hu`@)sE}3dUe3@+MgvfH-tcX9q_`@&o={PT*yPYr|g<=0Wl}?d8QZVA)1JxQUWQ zF1SoMAb4621|D(Oa$}wdUV)%z-gg81L*N&L7{jClCvb${ zU{B+HUTBXK(je0%q$SkBf-avlyh$W%$ec`7;eci6>w_^b=fjuD^N>HR12bg)B~OFh zA94nt7BV%!D?%5~=t&~{{KxbbC)@M}+wcsZ4t5N>rRTs4<9u?VM8pBMnBUC7#g z%tF6m`|8OnCWy_(r<1Qd5W03oZQZ=3r6cF%A*E2x0v-xO3q=Z*EH1v@0tjdLutXSJ z(e6(T44+oMY+@umCNH``B2$$)ij&2n2zhN^MQF@Jdkuzkt5(BMfZQfzyjciRVHlPJ z4{NPb>ZZ0?Zab!uh^0oSj8TZWC~*=re5nb}J<7HPAyOdeZSVRZlHx#@XnOagr6heC5YFitdz zlgvTnoqOuWqRUKD2`w^v&&lu?4O^$hjJoo!xudo)Pd=8Ag8*Ji?bT(<=jVNR=YiuR zRbs#ml8a;v$94u{hu68?@vol@xNXgO(evZ8l9247gP#g@;)pL4sHq7l(yy?^Kw#karYT(XLi>OU(gK* zh#sLqq-3S6SjcLO=0=HKqk+kF_-g6IJ@q3NK2WswhMO8tq|p{XT$~?qEcC6&Ta}Wq z(Uc_NWNMXkiJfVPQ#%-)Oe0r0!kr@Uz}mJI8$P^de4H9h4teD^@R`Q#)6-dt)MN} zGTP^%Xrrh27q`b86l)Tkc93EPfE-zaHwzcBzkzLko8U&lVL+Jkpa5(kTn(}7Dy98vgdgPxdx%mI{5Ezrtc8$pRF!A>MHj8wsEClMe4VX5d!|NOEM15}Ub# z6%v7foC=6QG9-ioHDNY0xGX^4B<}&6A*=;HAo~-C_8@FTLkLbkt}93>;Mrj?RLkeH#H;J6{}SVe(C6u6Oor*L&`w}!(u}sOe#XI91lv!j{8fEyWI1>aoYV=5me~T@Tx7(L5 zH8|XWG8X9#rnzN$y(oUaEmpetwN#``t-aM9$-)xbH5yGR{vl~mG+1TSq2+0cpghTz zIt9XHjwh&bnlOD_BqI~k8tEE3MIXFz$>KS|F15EP-k0p0E1e(Ru&ryA*4wezljgC- zMVOUxE^}06YtyKT@lQnC&C-Mvb-as$h(HfO;|pN@xCS5OYT1|g9Si&*=_Z0@pGbx2 zesvJcDIQoKhCgtf0%S;#IZ-MsHS&LIm(lMM5_AXf@No&@Irs+q3wz%KFXMM!!m#Dj zyQd!9$x&yYxEYPwghuT>cg3>{>DL#A+|*m4D4Kfzx^rLKn96l$_iEVQv%RyYzJfmA zh;Dxx{^8n<*!1eu+W zB*9oEi~+7(04IVoAuKoYV;PJ#@C@q>Te$dbXS8}BjC5go5I6|&kXHQwXKExI zz#kykjYNnbT+$N&zju-qKyi`W$>m&>N-_B`|59rbV( z?8K{bM-`8i$vrvFB$Tw^?zsy$nq+%Zx`wy54)02F&(vM%DJ%5_?_PjUIb7--k6bpk zcvNn*#ME4Cl}fF(%_d1S_fupb5a~@%4+(0obfl*{uB`27@J-3SMxMPOF|I1HFlXFV zSCwqqR1!Lr>-FXq`jgVqlKi&Z+``{XKA&l^BQp7R8ymCFGQ0`D5yRSUPmXjn4Yxp_ z(L$eDAZ&y z*$*=V^eAX40<}k4ke`IY9%1AHaCb80z{5nqBvUGh6C!gB%z0s58jc(z2gGy;YJ@vP z`h`Py(&Rm>;R=r$YUFzee+kaW+%tF~n@8Ume1?NqFdz#$dH9>G8S}k4Nct5aM9AMI z!OgI7FYzzuSKHw#EJ2eW2AJabjwb|C$<#+aFl9o-60Dv>w(v)O`XQ#3jD^7uOm^Tq z9$v!d2MbKCLGm1*7(eCm-f{30gvmxizEDi~zPQvrr~~48PAJR=`GJ&)JQIGB_el?5 zBryj>eSwT%1d|wTFi~(k4l7K=d;y8@!om$B=OsmlqsQ&_L*``V9|{WJ9-q+Yfg13* zAr=~%i#!*>`%aNFco_;SguB7ia6&*%Hqyh>=kLH3o*9s*gdBQVV;9<_L0T=+D2?*A z5<`+r7h$h;*d>fzW>Fi&*4Sv1%yO9_)|Z&T+2tvE+kufsrWQucf#{n;s=IHF>$)OV zyGkh3>O8r)55IvoEN8CCD5Xl$Sh_ry3XGsqgS3Tmpo}EM1R4PQHzrE#@~JbJOr6_K zJJT!{qg*IU&Q%m;ip4gAu2NVH2$({ZM(mOVD&-?GbopiK@)C38*hXawcpDhwOqwD_ z7vtVskssOIyD3AV$QV_eC=xrT&uVi@o2@2`&1RD2DXccVD#E7IAxTt6$+XOyd_d>QiwKBqhx6QWyyAVOaj0xXD3kJY=+K`rJMy+N>VVE&W@6$6w>18fGE$W zViPl{tRy9;b4)de<5J4a)7q*gD|set4utd>aoV_vI_DiCs-3F735~? z&PC{o7R%>Rmx+8vRRrx+Ir?9ujiwY-Ytt|ercPae9Izc470D@-66&1f_H?^PWd@8@ z#hjv;BstM#Ul68w4UnP6`6-3p73bGcBSr|zv*fZIJW?{It8gMSF}JOh_STJz@gy+u z&ZN=?yuc{kT(rrzNEEB}nqA7Nqnu`~QpJc=v_Ya43hg$%tVj{*a+{rzCQXFR(&ET+ z`y3Szm2Mta?JzhxPAF3G>9Yn;q+!^?-t4C7GcL0`1o zB_tJ^%ucl;89AajvC?Q9RvL+7Em5i@gNO!L2#prDiLg@^M^ThV8)XzTR=bzZ;Dowd zu`|XPm4TwTNSLIYVjm-t*(6e7lF%tv)JByzdLp^V=&p@PNsNlh?O17=9%w6BpB5P> zOG=)pR9JN~7U14#2a+jlVjAc-u`X3udL@D81A*bf) zMG*MLDe;F6nKzZON1K(kBP%A4EeMRMRn#?R~o?Y!&ZHrJi6j#}4tr{v+1ukhc z%oXd|PdEysqFl0P3yAK1pO+#NvlQG)oH>L6;L1qdwTIR0k5C{|JNfI ziD(H5=v0b$A%k2If!I&PevIGnh>&5gDvl|?;gcK6#;!#W+jmonC?=+B0h18QU}vwI zxbX18NzeKu$bI&Q$J-#(M1T%ZA4W_3((dU}3a_6nPklcXm3*7c)o09Y6ltltnREB- znLDe_xu~e1EA~13?>eDU;=OH72Xiu~I-_e&L!Wtu(D3~UgFSuN=S+E=IPDcRK?s>t7f-eL=2+jfA zg#>Ak1-W_6vH>gtynFWvkcg*hEC330mBYI?~nA+yfbsB$9x@(8XUT zdL_{Apt$^Wi$X$I0KAtvR&AYk>b5lx;FiOi552aSwnz;!g$N~&phTd<*-hTwllScy zd-OmThGi)DSDsg1o?jNKw?*d#U$iA>zL?tyF!9D8`oDf@G7>#Q!+(h{>`#+Xd?p`u2o#$m?P+Nid&a_8N#Xe0rr}?1F(8>NF6P9)k9G$-Ys({j`3bR7 zlU+J0+9Xy>ooO1!mHUqU*o-RiJ{+G6@m1Ol009n*}=sHvwYGb6|IVMeqjfkPGYEykK^o-H|at#x^ekf*T`IcgV-(Bs`PY zU&vtOc>)MiaD*4a!;?H}2zzLfVFSOy?h$;n<6y5RA%vh+Y545;fq-D3l9$+_Bl$r_ zFCTLZM*wLhnevyyq=t>fz=a2MBVIm2hK1F6vhRTxoI+Wi4?seG@K=W+7Pepq1MG{a zF>cfq)`pplrOC0nDOUIw@LODBZ6)4=%Qhy~NWtT(IL~ZiMM~Wid1PAo*p%Q1%{9ew zO)FP#^qNcRt+p7wxU8upyS|LlSoCIzXT2k4WNuz{=vZ`mEE=DX9@n2|am1zK-_jFO zxYz{PoPv!{I47`08iVB}{>87Jx+^VLF7a{kGateKlBI*=&WfwIZ4HfVY;0sc9o;xO zwCUDo7Ue44l1%){PW;B+xI{+kFI>b_p|cw%yd9AgY-k7unk4r==5j|`y=IHa+G>pm zdJ@x}y@{%_EQ!o0s*8>2g6$Zb+Bl=z_UwIq zj0uKjcoZ>7`Dwb`jftsjj7&13u21OcyAE6pK5T1+eQn3L`YIBf3Pr=jt$wpd8f8u- zG29ny6?Rw?^z(S=e{HGogGoXOGc{}u1ZOVT#nm|U{RbPxIejg&sCIcMiaH~NueU

zj&Yo?f>0Oc7D>g(o`aaE8mf=lS10+_$O!VC@&*v`~pDonD<)AKk#A(eGI=%zRJ)Nel`X3LEH-(Nkjz`uIM!s%okA>O~HKV->G1Z%Na|Ut7!K1QRD?hW5F)tn2gf|bYK&1WC(*J?bAWX~%pdnpK z{!9$1qAd_wBaVm^3K+No{Yo


UBDrX7SY1tYxv%gKJ-POsL^!xuV|E;oe|32Hft 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

rlge%~+w8uI(LROC6 zPuUs(PXiU>$^+P;3&!;n z?x>9UbI;gz3*)l?4_4&e9hHSUD>*xOUK85^@NgwX{@>YAnLD_)M0q&43i642P(HDO zd}5{Tx`!Wm^pZ!Le=y30zPt)DuFtFY9_lIg?1PXBZ6_g(G+e$2&>{d`D&VpPWE2Fi2q zbR~&nAOYWF8JG1+!Lc9Zo_aNRm^*nB=M%@C7=C$Q%w~A*j6ddn&*e@L$C5S?-;*N; z^~DLt=W1oScevcCn>n92_SC3Bm*5zNd?|ORaZELi4Zb8TDJ%CaK4g;MvmLuTcSlj~ z9d37W?6H(b9zFA7?vSWs4NqkazNE($kG%Eox%Z=kbDND(9Q@iN6-BwXJ09%U`_aeF zKaWA9IWIh&HMrkZkIwnG-0!&6s8RW`Z#-JDIrmnlW9gSY@p!}Yxr6DL?GhWG&Pu=W zi3PvO{g&J1aOgWv?Aerii^HMp%x9jie=c_*28^JkGhb}6XiZONfBBh3zj=fPj6L*& zXZCG)ga*W+6#W)0!R>2$WK3RO{VyK53UcvF1C!lDFieN52U!)zzNz zlz1RSpX_TMnp(T@(VM{Ka<$vKWH;S+&GXMSKKsZ3tfR^sW%qDslzqc5-l%@;UUbrK zR&f~#`(*#<=_ei)Ew$^>jyh4F>;}D0_H`3RV_N8}O^vd98-29h*G@}$h4u8@z*6;! zfost-+N=lYTFdB&nUOCeYM|k0z%Qya?f4l+^E$Kpt_?CHw&$n;4`74KaPB%Pk(!zD z=$YfxA=*5<9WWz>HKS0(p-psL`j%9*Bi5o@M4RLiutlaP$(PV7>kut^jv7~C z0VwFD*Z>o~tVe1uCOSmNHXSt>W3e|H2M@ZWSD&~&qMc?-FdX%O;TSUb(%yaI_K7w* ztp?LltJA)h482IVXp7CL-5WCG@_zkT7y3n0u^Kfy1y|=gMGK}TV){#(M7P~g^1?7> zSOYp#U)qncu6K!6G8zP&2f9S}1CYvJ&?g#0h$6s@AwvcL`@56fqAds#qbRVI2IvRP z9j{-s#X`&0nvt14=u(zxb&Ni5_LJ7D0g>GdnoDFFsjD>goK`Zay*kE-0qLNg(`cnG zj>bZBq{8(>(`f<4abdxn83syw3Np%ZKmczv=sDlKRyGxV?^4H|AA5bykaQ9Ggomwq zvRGQig~93R9Lf*S4Wn5P8B}95vo*KtIZWX&8dtGYGuc{2n@^5lG$|wfbzr)fxV2c!8s+w(L+IMNAaIoov?J7VhXI$GI6E(N!DvV$eoQigIYqZxwsA2$lDIMR%>Q|@)rc5@n`6Q*0j&haspTc`TRTi0NS zK?lRl)X;0sXfw<ObGPY~BTI@9%GOBZ?S}cEJ zOU*&NTF z&6`KUdQjkODmC@kTr#lLMK;$}Of@pJE=ZVHqnS#XPqgbP16=wdKGj;OJz3Kuv= zzDQ(N_LQ^HCX-qc%Q^U_?D)($yII2ntdh89TU>f)yUjKg1GwCCvEbVux#1@56dOB~ znLIDu9(?;S#&UCF{F*iefq{#dZcel9ob9IU_?>MTd2quJe*>I@Zy)t|er4=bE%6t} zdi!`{L163rSjIT!+aKm@OBmv!#ou5o9#dz6Z_?hsv0-eA!cH1+jze_9g8PHy48~qU zj0txnp+6WqfFU0pY`BkmKX_-nWix|s%8pOXdmqn=Q+AxuX)Hu7*^E=Ro#B>=jG`r5 zaY|`NEOwS|#jQBAd>QZ(^WUHMrrnBD-s+h3rt;=_GyTUj<6Pt2f3GN1A*uMK+Lg8yS@D6uY z@>&3dF&5sR?IPC_mxhVwBr3_ma}<$=g{NS9)k>eZhV}ToMWjivt68tlBa{&#K2i1q zJ|S@dnGWIu(i+4EX2NLUabkewhtAQeG;K;D7)fFy%|gb%sKe7-z_=7Vc3xQfpe zpT2%&#sK`5_IY#j#=EW_mEI3uQYSY3_@?Wx&d#`ut~K@ArfaUcVpPV!OM0?tDMf6W zQqS7&8OpxInl=Z}dpzWw$8KbeWm;hAlhcdP$^45fvPcVk2`_ltNNqK~A|_3p;M@Hx zkhF3R4d+?UIa__>7ncRR3-J4?k%hjXf9u>ibH2&g!ZP%pzaO?InEd$jNuN1e%g0g2 zdA86W)_j37zZQN9V}I)LhgUsbfZpeUcUVDq^KA5=pMddOmuuSQEQEv`SAsH7=F@%* z>PDaT3V;d=wRJSD)o5vq9fuMP&F<%GE9ocdLyur^DaKoI7r2#B>o*y-pT{w;1~^96 z_KvoR{uE(%8O&?6WsH@FC{W$@2)e)KyHg7~v%QLw;doi`NQCs; zHfn3|t>bIBDeZwE9hjwU0ps})W*N{h8Mjxvi_SU=D~smYP7rp{E&HWT>^KnERHPG%a1=44OUn^R_dgZdEAuP`g zcum4I+4Y(~hrX4R(;TOSwQ0DX&b>T%AbNYX0^EaBb4ml9eRX=W$QsQ*2Ip=r(8^|a z;l1g>B2&ZK3~)9r&`OiL^xCAcNDrS@h`BcTv{$?M&S1+ah|V~y@#|U`n5CV6Wm5Te z7iEdGJ&T7KkKo1M8axj^tptw;UU$yYiB|^OECpKVKHS0jd_U_O(!R!+oh|Mw6L~qT zEycB++5pkFNn759SEkOd`M!7GS0;>`PzK&xe4$@<`jtsy9beK?wGKbMAmg`$z46|c zL9G4iXQSSc8|-h#7v=Y2WVhbv)*Ib=qg!uC_Exvv&<(U0Q>$BV81_`R-stu>y8VrA ze?#`uyY)u5-XNd+BK`(7zEIY(wj0+@La?fJJz$I1(ucW)0k~7QQTplo^ruvtM}La7 zx6vCY;tv!*0=KJWad{w6d_R3!QXZsFDr zK3|Kk2wQB_UIJN5fi^o=E1jfFx-dB}?Medl2P!47|?)k?C z;N+1$k3W^prX@ef+5%-WFy)q|xR+(KFwmKvbBcZA^UDL}Q`k#Ies4aylSCHy5VBI) zAGd1dbKj@WY%yYv{y-TbOGQD162mWm>`bPgA{F^sSu$h%v%=2u;6(;_P_MEX3o(o} zEk*Q*`Lvhm;`8wt_t>jlM}IcpQNy3t5bpuq!&)fmD_XcW=o;xW!ipkdxJG-E$eu&A zau{p=f~Jjp0>K=FJFeBVQH+&o*yN&M<_!9ihZq{D?$N@%9?$|rg^%c`nX#k|M%)+*w*Q6l;<+W`y_9&Ig?&Mwl(F6917f&81XuGPt zRaHQs+_R%{_jbalX$Q)UYo`nO;OaJ))}Q^EK=7!uAtCAj4MYc_Aw&~O8t>Q!gVGgN zL#|*yT+M|s%Z}^BHA;}Wu?S-31ckzh zshNw@;FL43>^&nc)tEbGqimDseo73#mnM(7fO=1*QrQsiQuY2HwZQM)TLXGN8D+P! zOWE1NA!F?;^KaJV#j=}MDu8dCs1McQQfVRSTCG**Nni5J#n@u6dxKEv0NFa@)G2ve0 zff4rjsIA&XJ%Q;xI72TEx)J%j-f{qk136qRR*ICZYN2aO zKeT8f7;#_G=1rRlHg4RoVZE}xb=}%EYgVsPSGBC9zNE{Rs!Nq6YQAf+pw7PIjg|TD zFIe#IyYuJIQ|7hLoikgRt-PbY&GRqSH8M4=Q6)neHfkt}%F)nD$rv>Z9pmw92X&fi&+=sSMG8*~M=g^& zMRNRz(IYZ4d!Z34ZyNa_khKX}6gd2NX>8r2T$!n!{%F^VK2aYYtwno9jwDPyoPoUs zIawifha3Vy4cU8?ULy2R1opZbY%`ib%Ei-zG2oa*#}7fY5Ewk6v{U~lD#ldo7!=fL z`^=bS$Li4NLg2=W21hQR;}R2mai{HJ_glax1TLQed^IJ7R`IepM*%GxSwc8O8-o=XxX zrD5_hIpFn?+6n@?!iok%lq=%*;-bt^Ok@zdj$(%EAv<%UtxM5$|6^q}3O30I(G-QsTzH}4gZ#%U{5?=4#W zzMT{@lG=Fj7d4D~CGZ{U(L0cEERE+6V?sK{YZLhTEkkw6q-dj$q|QH0eKs#S&pkC| zifeKj>Sn0nGTD3|eR$%76UvFU4~`!{rXFiOdV~x=^-#ybI;Bpjbstb+`1OZm;=Sn( z)g7$cSBL)q>zEEGd)1nD7#hl6GQ!j<6^37b_D9|5L+5rttdap$QN3s99%?MGYqy(> zkqULEdq;m5qul0GaFX-7e&9-+@C1oQ-O&!1d$JG}jRbHrS$$+7DEqn1NhiIam-dh` zr+|Z~$vz|c2yl(bjw9n$#Z*6oY9k{-@3c-ji0myv4uKAlbr9ArhHuAoRE%Cv44j_K zIeBz}eosA)(5i?;wQl;6<=YlJnFe!o*f+Fr9VFY$$-`Pyxt(iFzFE-k!|Xc*15L)9 zKQ7iz|EZvdr479S3rfsJ+0)ETA`EX|n+rO*Sj^ML{H@h-B0q$SrNvSC-InL>L@jIt zW&cG7Kf~vOrcX3FH~y5G2J=c|R>q0kzLLUYFji8mygq!K>5zxfP0w$xg2#g*(F$z}M zUU#jVeTN~q2>lexP3Xy3?5IL)vgJO5(RYx%NivbB85!LYw;j2{u=(nAIx%3-?+yU*_J9u#xDvP^75WT9SU^~Z0;5%*CCpAv+F%y&aQo~NXId8qb)>AT zjvCdXH1)W!`RaC2b9A%~*|r@IWGEDXF>MTLlJe7|4IBm~O)eHRgv*adNqGC#($k9S z73tAK>h15$A>$E>PBQ%D#yyH2QEu8|pJg|tWxXX@B?JD!@(G;VbJY8b*DRFGJd7E) z=~g|OZq1b}JiXhk(V?zbxP7? zb<(A*S(th!Pb8mEK2VRljwwf#Bg$d-A@!hIr`Gmo=OI>VP98r5Fzo#Y4K?Vy1zRu)cAjqAeE(4p1nD7MB9XRIr!NXb>dQ@`TX`0Onza2z z2R_f&4x~iO?L_(3*oSqXwM|&QHnGV1xDFTBO)H+Y=yh0vIFf#sV;%^Z)-=$_w8wKp z0rHNjJtBxt?;Tn9D(qu!aAi-fL&I!xo!kh~sai)Ex|{SiZxZcQ%hfWqlt=P-Y>rU3 z)JIz}N37hP__ZGMpDDSHCUGtQ=${aUrvZS}ww`6N9 zo=-w!!?;)7#Hm7|{>=JuHIPN)HzWsRL7YwRQJM8MA_-)T>^ zTHT=gm=#8U+aVBwvr(@J&MgT(H~ z5u!Dwz`f*f5T;=e0Q5`0J%WcBFa@q9kJRlIJvjKNv^#d|2oSbG^(N zm}VC@I?AkbbF!H<-#Uc>g3Gsw>oIZIulmGoi{&41Y> zKP8Q>qb-2Cv0U?R-r^4zjK&vZB`i`CU;#&)%eBqR@@I|3$M%UE&2gK|ajELRV<-+| z#_v(;=e%&qMabT#^vWKg&}aub6FR{dlM^F*Kgp4}S%)pfQbl_Ekdlj$lLOisXJP?W zIuwsV#}@39w};=rQ`I&*s5y`ua0r-3U)DZwvIB{J>HW+lv~InQXF$ND*5O8fiSf28 zneL2^A@VU_k>QXLKml;Bz~@aaPxE3|%G+47(Ria%GW)Zn&B>e6HY-~iHg8&+Z@j+z zz@p@ZX^YM-UbN`Fxibt97s3w#&l}0Fr@f&}Kl{dOFF*gi8-{X>WDg_QGBL=!#&fK0W5Ow z-1%Q&x3Kn&0b23^74z2*^lHI1KmB38Un?8Qu4j>Q4dv9hg@ekF1D#}=|{pTp0z@x8ING9rrhUpRGp zUGQIvaS#K5ts3qX>IjCC?f8s16b`AO zUcrt)FxegnjMgbpgbDOY6lDV4B2(I79HaG%OsT^qk|v7QF-^LTkuJ)@#&gm#O}dtm z7@`3jvG*_OnI>J&NDNW%jfSQ797wj+!R|&Ev>m(>-kiCp!|E+DBeg>#?wDAeqDl zjHqiN+i@#2Xlf!L*sFnF{thx*6knqi5G1A3QM6Uv+N-c*OQE~4L5=|OgG-mFOM2yZ zEY5f3D~szTgjk`LI%dvLXAGErP6mkWR!ZGU>F=zRdQ9qV*GNeR-22`8QW0OW=_3_+ z1MWTU%2dRQtxYUopd;R!wj&jBrwd`(y`fl?dz)KJMSiCZG8hdGKPelI@}_%c>Ws6~9TZg3_yOI1Q@7tlnYMouzlmaR)6@#qQ0Dg+KgQS> zR+b0IDV;UxbWiEDe_6 zW0PJ_d=K*O;DSDYpV|Xq@}XA&-U}U4{Gk-IM=NA(5w9n1TZzh3kQTu`Hc6Lo=(ze| z7;fhMz(*7H#Js$BAZtm>TOnZT+WmwD*S44s)QWa2OE|P0l@+Tc9HS1@038+}TROEU zX+D*{A*==7bF;^JZE@an0Hp)*w+t*gop=H2fFZblurZ8S&%eO?A5O4aysDRzT)(!S&xuM>x@4+L!UU*@x=k0)aAjFP-tWNeEQXrT>0|R{H8M z7M1<~_O1jmHb4Q83`fGTqG3-9ga*cg27Uvc>o(8jt=-jPV2$7k*=8jeCNK zfUII9z_7`_4$Rg)y}X%W76wF6LD6W8=Hz%{qR0+23_UaF|86bs)$8sVdUA}%#PJ+5 z>F#^0>eZ`v@2&gp_Z2~SZ^6EwO(M3w(WU0bhi)KRxr^B+X311++&3|HYmi{Xi%kq@ zaKsFjMAmjf3r#;NK#Gpj$N^k@I|I15^RFi%iOSA)`1wr4f8r zA1o>|v*&LQVFdB#Xz3X2#PeH&4>RA2Sa|W0wj2aMpwVO;s*TKkS74m*ya}( zzGBWUXTI37riwiC!wnBdY zS72cQ>0V6qd^aIcgLJ~f9CUmdcxNm&;GL&oGN8i%V;4GkoMW)Q$i%uIf@y@#F9igh zP|;Xa%W?5SXPnX@06h9B1j`}2Ug(U04$>*NnXzv4mqVdJ9avn5PfZ~{I$CdB>wd#Qv5t( zal=JT#q4Ct;bC!p4|k(+fkP`KW`e-jfPAkYr7g%ZK`B^-4|N;O!YPv%(IN#uT#@-} z#(JCP{NZDAkoh@$lWFFC{{ash9Ev_mER{tx#Q4x~$cK(Tz0F><69I#dZXx8o87mou zb$Jxorx>zHY;-=MtT%X}*t`h|yk-J$$2*VvO&?mDeXj37;~R8qM@nA(*He>#ur=;z zH)8EZtlfyU8!@t%-1M~@vGz!;JrZk=#1ew4_DJksABoYHvh!}%yahGsP2rVz5!+A_ zHN&$Dq6-k-;uG;Yoegf8j!pHpoh=J$ zJ5^H3Bc(MZ>{--NApCt1^%n*^z5*ohENDK%h;W_4{3e|0iQsn?$|t(9Q)bZ3vP%EJ zp2RyadIvkY+@JozTn(M0qhjHq zU`)oA5jsCcBmgdYNsc7Q)U~~DcXo8UxvdoYqDeF?(4=39VB5*PE=NSWknSu#$HYbe zmpEBmyx>SDx-7}&L`3fxf6%;xq@+^ch%Gyh|Zd|{1^{Q8KnAg(0C5w&4?nNhFnLlI7y@B4oL3^$W^h4QJ z2I_h~x^7LeE(&G;jnkGddU^i5xpQW{ICIAI=`R>BxTl?*%In4Y_=YVA_`I3W{M3Kr z^ST_W9J6x=4jwgfL}nK>i=i%|n;sx!SOeEyXq{QbO%G6tZK18y&S|GjsBsRTBffImBH z-L+?^u$+o(QG4Zmzn_2DtA4*1lI9=Z<&vCygK?I2s_@B#Xl$Vl{9&M8&!}yp9SD_yenM4&-=<@c;t`o=PxYM0k_30n|gNr$G=HQ%Gz2D0@!U=QYJ1Z~wrg|D*A1`hvzp>DTV4tb#r+ z$=Scu_Xl1biaQ|m_YkcLdNaZ9q4WX$OyI^i%*W3GgPxqgt$g@~=g$N4=oVTHl&S_e z%+oP|BU%H#z~c`E`r~9cp)ZL@h+RbK@7l>3M|hz&$Jvx>`rg2RwL@TYY<&RQ#EP@^ zt1$rp6IyrhsNH`~;CmQ9@Wp5N@ORY^l}y<`Xts2Hx~D1ieSzPO#qix~_%-VOC#l=> zuXP_7uz4^>FV*>CGx@G~q4}n0M%r zNmKs>MxOV>e!ac^dsboK?l!9zu3HQ^Y_5O7!+f=f-VeM%h$?N?TOdt20n(I(cl7Jy zyR7nBK6r8(^t>eKx6Gt6?>4W;_tVuFI%@8`A9^l(>8-uHHO>`|;An|l<@xLT*R3hhWuXmp;flqtEO=?&yg74b&w3Ft*No||=_f_02?DO)%Yf_e2+VXr z8E}mrHPRT_VMJDP#MM9%m;CuZBjCEm8E~aytBC(nMOnsNfRedm;mx} z1E4^#3Vnb$>h1l2a|=p20y!Is$AUtx1O5EBtQ8>_f-^45883Lq^#Ku}y#YvNEz#(} zbyrpa_q3yIri{1_TMgBW-K732}uyZfQ}T5Y8yw1|QF!d+Hx6%e|; z2Yi9Gw}^P_pp@lcKptwk5i2Xe6G7+L5&Z)y*JLFkMO)~9@;Di7p*OgkojX7*QC`NQEuFzZ z>7NeU08Qxo0~--9lI2GCuMs_w0H$$|CG|xFCHvnQwo#jiwMMT{u@+3HfTI!;Q&WdE zCXx?LUBb60)OzyQD%6tdVy2b)?y4H#FfFDEcjRsKZmIhNn{H5%mY8bvMRTRpK_GC- zNlRfD3VIM}{m)7oyy5wPEWgd4Va8MgSO+!LdjCg6{~Rmk3p|5Bmpq@YPLv)>9li+N zTR1;=L{mqcwQZ!22XxdXxCDl%qPn39An4LEK8y7 z3q1d*aGO$F-FIv1l4wV?z5@e_DN>Pr(-KWJatCS2F>B;Gfji0JXNZ9dWg(h4a4Z_J zM;I;$HcJO+z^_pzJ#sc3YIKV%L6wyUEvgXhX-AZf;->O}5a*{>7f! z76)zV`Uh0fRJ%OyiRdalb*j}A!PQUKW7O`pY8S01^0{39E06F+BKkh?rreCG`A$t# zasox3;G;umwevbYa&l+1NE6gsWiJ6woyT`Cjh&*a_bIyCN5+lzQnW01bk#DU3CQbm zd`lmd@zrjCY4_IX>?hy6IN&RdutM85BgEn{7J@7hWziw^BEov>YAg$p(faVZH9=ig zL|7{qFMN3c#aMF@WFg8jUOYZ?#%RMp^EL##EX(zQ*h~*yX z9`TwY#5x_+~4>;-Z|zf(KZCdJnXf6lof>B;?Dv*ZTTjL9C87^Y1ccnBuPEEClvEJmo z3Nt}JEEQ#v^8(2V#dtwM zR<$qiB!!5S(n5FGAn&S%zpdQCgDj0yVTaa$9%UW(2euK~jXeaNV3p;0k!U_J3eitd) zr2caPw{Ni0T37_TiP5HdKV7XFzYIsJ9IHU-`vNm3aAzvJr`&PU9aLW>4?i%#q}avn zsg<6TRsf&t#NJa)e@@`8O+4n(v_=c1l8}vow^|Q@9 z@@liX480bM_*|$Tpu-91kyEqY3gw81yZ>4Asz4)?mc1Z-)GG@(WLny8}}1^C;|=rmMoHEoNcZbuiT z^tkjq9{%3a@HSo89YXPWF&rtL0XRvbij|SaZ6kIKP;Xpy??>5BH zj=V@}AS)8>k8iByX^+{+u9F~7w15@5(JcJ|Etn#$g;#LRSD4|9)Ga8?XJa;6aI>QT zc`X}(x;Rwlv5O-y!h4-u0)$OQ$jrNP?E2)3ps8-m?$Zkc|Lc4dj)CYcTEJFBP*FCQ zZ38)4=z`w>jZ*lmQnlBvM2Z^OO;87U$>{0xXFkx8ozEK1yYFUu!s_6ES>FYTKAeKYV$% z(P0cbOPZZQtP7{v8N|+mN4=bN!^;Sim*XfABZ*;wY;|0|R!F8;_-c%G^LWnwLfLs` zvFUUnB9GRf_Jdd)TafCi3=L*Kh|%87$qaoNiz8u^LX2tyh*>`_YEeCmCw6 zU>Lv-6TaLc5=?2SrJxf?pW0MwZCab3mTa|@wV}~)n3PX$%~(qvE5nzrwQk_n+P+}v z9a0+W!%45&g!dj^MR&BK$tF4xvv6gC1jD5@2`V6eKTnmXREgI`OZmg5ETD8^3 zG+UiQvrVR2txtQvZM4+M4WwbHk7yT58&>wnZ~t$IY~qccA-~l~$Kg z=Y;l4BOOPT1bGDqv|rlkxTK&?K=+fSPHh^=RDYSKu`RZGw;z8eG>6DrRXR%cNw=*__nGE zn>rV)w$2=jBZhYzMiN3xrIBUBUcjh0tdc`2Lx$*BS#9lCJN=a$Umuc9J5pS!L+sCW zQE87ckkqEz(e62o_h$)B^DNUj&G$c2X{8lzf65Jb3iXsGd~cEo=g0rqX*oXJbOP=_ zCo86B#*ZW`wjOpLf+0^%y$PKbE%|5Mk|(RRYRW&+OnEBRHraBc;+R^~iV3%k#ymv} zX;|}5G;5xG5t=#Q*Qz;BR&CLq|AX6eO~GcjR0iFsI4UP2T&VL~N{eok9p&yITxwI+ zN`r0`H4{bcNe4x(2)&Jz_LB_ymux@VVACmG0%Gy*D~p09TVMJXo8o?-#lJJ>#jAn1 zYFq~Zlwmf7ma=QvsS-1~{?P|khRy9+M15IohDXv??D8PkYp=xl@x(xhz5LH(=Cksi+p#ornTldjG`8xIO{N(R&joU4%e=KwbPNsJkauLKmxD`)v2`KyUTop&LKp-guh!uM zPKPHB3Ggfc(L`t>e6<2fV6V8u1YISRXPD-#Y@S(Qj;9}k=GF9PE)YfdvmFTrXs;pm zjFKoP1bG;MGicvw;tYFeKVzB?0P7_-(gu}nfWzHmmTmzLgi{4zxo1POAI-$q zaX`5Kn{{RJm(AEn+{#mfqvlN3EowTorecgBbto>#g-oLWaW#Jrw=!NR*glV-GeEUA zm|-H)08Z-`>XUFE5~HLJfz6TrD6KQkp3o3t`y#)3xh z;~%rfqv2(9w;-e%xU|&V{sLpOiz2IsvwSoEB?M8U0r+m-3O9Ksf*|F)2*cnIL5+oP z>Ome&0%tx_r&;528La-1t>J=&#E^xCe~W>1 zDt(f%@n*?WPy9x5tTo<(7Qv~uFjkC+Am4nD8qF$=dZq;teLRR>FJjGiAzo`7j{lD+ z04&Pb>C-hnfRAU_nDg=%<8%C?SZpx6kTq@1q^~=$QG$zWFa?&j_%F=j$W;)4`g(NR zd>dxsQ?uZO2VX!de$#wq^cYWvQghXJ#&I4tObbpRpz+-qHaGw3=Eo7}bYp+Zk0FrV z2*~?Z6FgPJ*i^(r#m|9^jX>;;%gv_|Q#Jjvh(|a1V{upG-yZuDqEK(ly}1L4Trl># z;7yB+LH?67;pNoc5K|Zgaj8o5OPkt)jM7*#(l67jt}fYY=UjEv6&2 z>Qf=IMb?;pwvg5q1e+IU&=Fq*lFF|QinSK^Hg53M7r>%%M&Y{oGnOe0;*aZb~@GB|sOSbMCP6z__UMWb}Fe%tQ$T<>|O8428mq6ij$Xn$= z5*qAoy?IMqf`QW&x8T3cUfkkV#-9ZEJ-0#v#Me?tAJofdG(8Zn%gcpP+?Wn(S4yV| z({+os)1m9=2+(*xF9s9&iT&Rolhe zlM$k}tM?-IZSPgAE2>t8!JM`ZqE&B4x%##z&yG^6u?*1x>8fjC04Az9N#X|K z@qinI_~%4^rGSEvgVQ4@3RNxXI6?S4-~=Imi2FPn>4$@yVTz10!#t&qy{6r>;f3EL zWFXA6;r$$&KEeV5m{r5UePq38V_D|}1H$zY7*Ogg14$N#T3w1snB~E$B#RD3E-PZg!EorJLfo8jMW(Lyp}e|HjYQR)=9jh46}TIcw@_ zNJruIQt8mS+)C$&c7nFV=;@wI+#AQpbPb8hOQAu|R9%a%A%S?L@h+b+f|1eU<$dtY zzoSM=Lhs0diActRopCgkQT{pI7G4P_W=o>&NWt#F!hXpyY4Q?ZNAkewpA*+65q0GB z(h-*!x^%@Y)EswWe{6j`4xC&X3QlC4rI0=rj{C86v2Wz|VA9hDyV-8CC2!$?zmuCh zx5top_XI!b@EKnRKS^)$a#@yl2zHE9*h|dFFfyAv^ET4K#B~a>K53#cv2nuq@#BnfI+(0C`y!cYQREsO@UmX)GexSnkM=56 z3HNEr!IUB{jS$(Q4nwz65NM1RTVpEKPA(B zls1B>ja-wWlnR9_fw@W)wE=7-dIShuh;mOwgXQTi$}Kq|Yye0pQ8H_)S-})2P;oMQ zn1Or&$#R}TF6&?=w1Gf02dFs4Gm9jIQb1BnOB~WTtR$2KMHn8v{pyNJKF8Lu!;tc6*P5w2CE9|r(jmMT(6|=TH7EzMCjoYH?O*MAG3x|ZE z%8^pjsYI9V-%F`QPUEB99b43@i4{%ryU9ZWE7|F6+Q@DY_%k`|1Xe=Ib|xtZxS6Hk zpz}*sP-U)aK<5y*rzL?XP_=9?8Ck^ItZotbsVJ6AyhRS|SVp#*^VG6VBv}tiS0?iI zCBe!%Vhutrk)kgdWhMnZ2`s&-5V`c+piOKS9JIVG;m~@BW6hHpd(XLF5U-9Du`Z

;CxF4swvYCb~nxg2YR(CSO)ylp=-U^-?`nV+}Ey}3ezm3+(?Wd5Mb(c zo*7G7?nUn$c;hwVW~DHZ0yrb;iX3gRoLC4m+<}-&s{%tq(cj_*l!#Tk3cnR{Mr?71k>}zdK5*s{IscyI^ial(Bn3MardrEl+1M~!QdnR(4#!m6 zk`4~GE=o{FB7M6N6Suf zF?pR1#F?<|G}jIyF(vB6pY@=~ERi$}@ea8e2N;cvHcy5*3Bpog(@2z9W)oOJH3m_Y z4)S=(z>6f9g9fxkU~doc*2d-lO(10uc3hIJJ4*omolX2{%fu@_ssu1wZ}yQg@hxVS zD3Q~P{e_43ME3dCzJ0HQ-l+zruhz~fsp$R)xALGuN2pa*QGpErk_m_L)Y5jK++v-g zFq{%EF!OKj!MhWf7(B7%uJR+aUB{vm1XI$J%Gdc|D_7|jC5bRj!^x3hK1z$7wjebW zxsf3TBl2NjwLCye^)7p zG+;^v-RKK>aObESliY#B>VGWk%br%`m6an=!Hh%pIpx@uXg#K!{AMjkqdpV2GU+-U zmj7dMk0|Zq$g647=#1^9f=$hoe4S9xY(FVDIE|7ObmO0fxVl)P<~&EsPV@f}o(Km) zkv0??peF49N0{`~vQD^K5B4E<01oORNy4jR*T|^zEYDsCOHol#GL+4>{|?SVjo;8| z|3!9ZTJrmVRA6C;190Sbz9um~FViWD3dR~0drI%cCVfXH+*EX_@&KcdOoL|qT r{PRB|d&HZUe+SdyC{w!aVhmNt_-`2f5B_@&|GfA|{|&=Gh%@&80p~^u diff --git a/graphics/play_KeysBlack.tga b/graphics/play_KeysBlack.tga deleted file mode 100755 index 4909c6da68a6e6c9a73840a7dfd6602842de365e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46840 zcmeHQdr(x@8DCVcvc^fPgT9f-iK12&hC1K6ncPqNw$efGC%0GIe}J ztEHO6_(*5cb~3h;b}}YaYwb)&6I+w`$kfI*U}w_I6#xD8`!4J*D|_$Wy>-km^D%Sw zoW1vaXD{dXec$T77A|^yp@2V zW;liV*pB)Ru4!N$q2T=jx- zl+RlSwQ^A@l(M;NQJS^Jgj{UwJxrbYDb&QoKS7C!xq&HDZkUkE%*;eaMh4V*^X5U} zQhIv2z8nv?8b%I>1N*|l!oa?_4-y_w`7~3xu+tSuI9-*7_UgH4ZLgspJ5`yEBQHUe|H@Ne|<&2A@{{^ z%BjWXrFGc6q8_b{^r39duS4bh5)-ls2^~mDd4SB!n`q6-x(OvM?JiGo9%Jk_YAI=ro5fjX!TlG_To(J(W$^yS^EFs`T^Lie^+Vt~AkVN=hfPvmavF zvO8F@;x3jizpI<)<^2os@t>P$b;*(?C@LyKX=y3S%ga$#R;HVml$3xykFE}|9c!93 zapFXb8#fMWL_`D>)=gGTUveI`bPJzZpNg~V)6jCfBo+1(rK#Y8D}SqECXRMHqGD>W zuOhnJdEsOc!cG;TCH(LT*d2!p!39_T{E3$^;=qeOFG^ErcRL}wx?m^uYZ=yfANFUr z+y@t2dC2x}5L9oVY@T*5--iA29ct&oHEM@GxZuh|F8&Qc?_V=CmzroNIk}VkRR>yb0}9HoLU4f6)``I9R#^5=z6habp+GU8Z1 zh9A&ICO;QDWM>zGX>?L;b@!pz8oz<9&J5^72=w4fw@L1O8tQEy{uMS;Aa7n;k4?F? zP%Gw@K-rL8iApN?|NoMbI+2*z0d?xsTTtTSz9OPw21Fiw7(aFP?AcJVva-Mh|G)QS zKs-hUZ3)DKxz<3ee_#zn^8Z#qtR#c90%A8GS#hTvvIPj@`0?YR zGO1Taj~*QmadM4`?Q1N8_(q;J5I6tZ8i>FD#1e=#3o9&w_;)KHw()QnY&afr0I4zG z$jC?v=BFSbApxz4iHRKE$AE$KHJ18fzdazfF{cR*jMTI-p9v0((6lj^2@Z_Rv@wqf z4vfgOF^35bjKs7te+dqZz?cBb9jZ>6G>Q0bibi~x05Nyf%UK85G6RHBJw-5Dai}AX z()O;-hAdO>B@YQBhH_M@L74 z3$C20D~G0mBKlTof;B`>EVG8_w*Oi~^kX8A77(ppTx|)_Y14?0SwK{q%zWAr$JZ#>RkX$c&B5 z*wE%Tai`)=1Kq(W6W~4wihCQXOuNanTcCT1W!kN;MY%VGkC2u9-WDZsq7kcg@9Gy~ zBg96Cjc2cnxKrQpp14zSrxtIAlxa7ac2k9&dM#mzI~8{-?o?aRdu$0y_ShI$hOkp% zr?eU&bEmy$dSs)NfyWScYS202PQ{&yJAI6Ri90p$7~)P1I!D~8xKnYb;!dCHJ^OM) zO`lD`vd6~fgu4(MgRxtPjX~!Ku@Pb;#72mX5F4*WOu3=Pw_B7OY7E9wxuM3l(g-^> zP#R&U2Aw19)VD>+9vcItkvoN5N@MU0TU8#s;6?a^*ce%qOuNano7^cZ?lkasoyeWS zG#EcNy(Dp>i=cSF07&9QgE3g*M1#(eIMKI7Nt|e)G!iGeltze+5S!lH&c&U&EW?|i zh&vT`Dz~=Dt!*-QDs!ju&{}zDt=pVPKBLn?~@mH>T-+TGd;pi4aQPorv{xP?9{hK z2|G1V8eyj{rSWE`A#^xQ_vsmhban>Upu{yjs~DP`t|j`B(;XB2$?3f-%8#6`JM|-{ zdy}ajIbBQiBd0qi_L1`jaR?zZN*6>YosH!hl(?n`L`_Z?L_c!6Ao`Qj1JRG1E{J~Q zbV2kZrwgJVIb9I@$a#aP5Hg|XYG&bV^(?4os#2kxE}MZ9tEYp`q*0o{H7IdS4~Uwa z zGJsy)X8Yi}3AwEW4cMCB0JU*xJ(P{k8dNVRHzAjn)``^APN>ProlxTAI}jUtPhT#m zrKE(!hdE(sBM8f^ZBcD%F|>h{7$DBG580%K<4@@CI|2sI<)Aryv=0W%>~P*4Ch zFE0;DZf-6ZFcU&?adA*%Vq%~~M@NGJ^Cjc~E0|6Xpu{;N!WPA@F>Eh=IM|wawBsXu zhHJPax^Z)T6ZwAEf8I*K2FQxQCdsh#Xc)puVCQd4aQFz9xdzu{36Bzpe822JO$lf} KJZ#_T$NvC*6hP4c diff --git a/graphics/play_KeysWhite.png b/graphics/play_KeysWhite.png deleted file mode 100755 index 73ec511ba4ba72ee2a1ef5534b32a9ffd789ac6a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1936 zcmeHITWB0r7@iiZu@ZccVky#{PG7X`?p*ekIqYPOyRp02NkY1s2wF2cb9Q&g%$(`W zBzuu!tSCqy^hL_H)qo;`LM_D-q>A86R5q4UAA&2b(y$U?yAQ#Znl|;!-e@ISEcoUy zGyG@HcfSAr&zmDddwVx;+e{EdZ!!@dC5R1JBxZW<$M2;xbMD52X5x99ARc*4RRn4*C^DiM zgE=)(vf%#GP)aUM%Dh5F`^iWFU;-UF5?RnS!v+O`YVrasyPs)_Y(kt#ff{fXlH=kC z8ABE%gT9bgW&<1<=6!64;km#bl4IB~&4g*z?`2rPgn*wX+ZTnkSxN?s#-DEM!YhHw zIgSZvI-k$`@_rw(vNX%{Jk4-4$9XZrYZnbiDtHZhXNMsUZP`*yM@0tdGD>MQ

nE zwB>?sc4-Z}9VQ$wx*(Y}>tkG(nm|SF;>;;aYbsY{8fs97hGSza+r^qW8_B*BcYWEGRk1N+G0m z5;f8>nT*BA$H!DdL3#U$+u$%RIZ&W*&Ul!X7xZ5pZ0_CGuN^oZ04%Z6Z=8=V_bfhqcyLDcBqlb^OkR8SgCkF#^6aXW$sd3FczH{M z-*x54x5tlbD@#^?f2DG?TnzhB4Q$WU8kHMA4OeegDhD4MJGSw_>4nM*-_KtwU;pE~ zYV_)bt0FP+Zhd*-*30MD=Ifa&kLt0D{cp{$J^P#yyEx5zZq-VcZqUU=qgH=k|EB8u z^^E72>cZt$dVc=B{s|(+_Y&m3|L^}M0@`eO5HZ4QO^IsAuY1S P{bwczhvFxnnmGI?!#G%o diff --git a/graphics/play_KeysWhite.tga b/graphics/play_KeysWhite.tga deleted file mode 100755 index 078ba290d176f836974134f8041284103d258e39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2132 zcmZQz;9`IS#s&rjjYbfc>HnX9K0tgJh`&z-68}LW-=QKtU^V~#|NqbM07Ni?v;gJW zXMlsn1w2F7%p)bRpL8b;yXfOKFE|&E;QsvLt`{Cz_a0KVi-*f zqlp1hB@KhT0IDi~!>hpGh&m4>fwR&Kf$IoC=zvww{qPF9AGLypSNb6!vq2WaEB)V4 fkr1>>A7lUsgan1UhIs~i`upidxOw`x>M;NS1#P8C diff --git a/graphics/play_NotesBlackColor.tga b/graphics/play_NotesBlackColor.tga deleted file mode 100755 index 07b00545e8f8522e9aa5660d33a64bcf6e1ede47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9390 zcmeI2F_P3U5JlyTBI5>JVXFuy-~g6Gg3ZZD2np?)DVJ+QVlvL5WNtAxAhm|r{MVA@ zWj$;J39GH@UsAU{qc62A@BDV|wJU$kd-wL$qCfXfVC0h@zJGk@zFO?g$So%f? zHiAwTdcl=mkoiH7zY+3{pp%7OaHSVyeh}oVn3zV;$wDu<(hD*_2p&xu)8w4scoHnu zGM^2K>2XeQJP8(SnJ-0|2q!q61dFwpsx%0uL(%g^(ep)7wal096?^9d$CF^O7E_b& zg|HJGPlCl-Oi7MH)CrC!!D20@B1a+U1jmzLu@+PCh%{*dQ$NC)p2uSYBN^c7M;O!d zcv8#=D+NaQk`TVoW#QqdnApxsZ&%lO$E$B(Uw7W`@;slfX7*_CaA1*j8M9TAv9bBxm+9?;s`kbuK$$ECz z7mRu=+P^XNSgdd6{DM=D#d<8(W3e8K^;oROV*SCYXd3lctjA(K7VEKCkH!DsSX>pk zO{|)q5vykQeUke44PCa0RWqI((@&~Wb~dqUE; eB<+nN64JtoNa9*V(mp97`P=0@di{N-`sf!w1ZPYD diff --git a/graphics/play_NotesBlackShadow.tga b/graphics/play_NotesBlackShadow.tga deleted file mode 100644 index 8428dcf23e76c61273831024088177e935188f8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40152 zcmeI5S#uLd6oscpqs@wB1KuDpi%k_zhR3{w3Q#O%2q7duf3x{$Fs;m0Dvhk-TVJQgT#vTRr2MF8TB~x6icf=^z*gYA<&oIGOv*&4%Iy_dPg!tVJx+R&(5k2)X6nps<%t=%z~64^Js<8bQg~7nGgb z8AOf%<*kNFwz@aMyLArU-QOs5K9xZ9p?=o?PuPj2 z>jb@msall+T~{E6mY@<^4%vCUz8fDOpPQPRT0$%%R?8^X@{^O3pN5Br9|GrdIFi^h z!}5dC7_b#$UqM!FO3yB^WRN}vRRM=5KU8N*rP56>xqw(i7^Gwru})Ywa;$Mr6h+_S z%;N~=SKbt{C88eMJcrtq4hi$n0%GS}0eF5ud_;Ug5Ml!u?;C`8lMrtp)|qty>`BBp z!kdH^5Ubrvl8_GF)**(tb|Y5J!rLKU0j`92;}MD&VD3$&QqzFk{G~SZane8W|b+4fuIT>1o?E49ju@P}0|OUZFLlYEyc0)ZQaYEg&5m8+)*G zNCyT6Zg+-MZSM4t8Kz_vun2aWw>WYxgbm5=YM_L=(|jPz!3CkN+=?wSrnu3u<}lctWvyXQ4X``wpOY z)KI2YrdFm_rdFnIJ&mVK-SmAsHqmSVw)WjAETj{_@%BtB7UX{a?qKet~ti!UfjD zmnh5&s?Ev;FFp6nQZuA~0=;(#it00|2X%#zt`btNp~@AjmjLNC;K((p{nwi*)Lk8< zYEyddgQa>%-RS7(??8``a=0g`e0(=ED!uCxAzdb<#Fl#&v8?a+fU<~S7EL2UL=36g zl%D%!DTXvlw1$R;ZUen}#CA}56?~jUv6x{Eu@FVkDV*UwD6?ny3PqrH{&)I3VZU1u zgkhLxCYyIC3?XiP;JwU()zZj=4{*58Xyy&E?OwAHo!__m#Sm~wTV|5G?Dcu}`ny>a z@6)X1a=B^zoP(L=3?BOz3cK0XSqH4fQ!4+=2&(2iORyg)sax4lS=mA9-k>y dL&05q-TC?Mm3uS4%-s5M`q!&7KU_H*d;x0Sxk~^5 diff --git a/graphics/play_NotesWhiteColor.tga b/graphics/play_NotesWhiteColor.tga deleted file mode 100755 index 8b545c6fdeaa633c1d96f61b492cef4b8a18f125..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14498 zcmeHOJC4*q6l_m~I0c6wTycVKr$`%Y%n=B&v4q*cvMkO(hDeBgm`#xg+8rV_Rj+&A z?5?eikdW9n(ks0wf5z4BcH5p;&b@T{X+F4DFET#PptiwBw#JvcukYQhWUudTYxd^* z@0z{+dCq>k`&PM|n_up;Y;k>kUAe2PEBA? z7O^7I2*_koWrD0z*5<*T04-ugq!EzGq{@UINjb2d0#1Myu_Dq4$YfGwf~-^aO_3)+ zi&zn91Y|O)GNDIO_sxbl0b0b0NFyMVNtFpblG0c`8|wsU5i25%fJ`P;CdfMFNZ6n! zK#N!rX#`|4sWPEQa<9=lw5)T0VFF~ygp(b1Xi4V)!vx5Z30Ib~!5m zL(vUIBf?D0{1(W_<_#qy!c4{d7RZ!k6o&{i^)}4Nlx38Q2s70-%*d2w6ov>hwKmMi zlx38P2s4#7%*cq)hC&fxrcQnfWXg7wga|WLHq6LehSOQ(svc*6WSXCrPP+dkz zh*d>$ywqisgjiK1M@L;oNr+WNaxBzkl!RDSBzyitk*kViKd;+S5@J=6?9~S%ql(;i zBBP4jb|RyS+;$?PirjW0ql(;iBBP4jb|RyS+;$?PirgNGWLI?yK!#^&8J<120Ax^B zjuIAt48_Xv&=-IVz{>HE7k~`A%JEPafDE>BX4v)I0+1nA*W;lr02x^K&V(Ig?d$C4 z){^I|39ls9Cvl6z%a{$E^JKw^!Y)DQ>DVsj^i8Asj& z*tBTVqD_l7E!wmw&yDi_(_XXKt3P``X>WS%ts4K3u^0RH7l}=a_Kz5gDeP&{o)+zC z(ViCVY0;h*F&kK+h*hMw>+wrSC(MVl6FTC{0VD^u-h@t-^`o~yGjh0F1Y!sYlx z;c|SUa5?I$K^C2J++PZpBbic4&dz|i6fQ^Y9_JGDOW|^SqHsBKf_E1>_ya={PdW`2n;MenL?Gi23`y(;v|MazNTN4^ zj6X0Wv18DLv8f@6ZUr*_z>vhQLR-eBh9vqI$oK<85<3r#8k-uD=x8A04-84{PPA@p YYDl8TfsB7-Nc!8>GQ1J}&)j=|07b=DX8-^I diff --git a/graphics/play_NotesWhiteShadow.tga b/graphics/play_NotesWhiteShadow.tga deleted file mode 100644 index 8811b8f160e7cd068925c2112377b47c3b88bbd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61985 zcmeI5U2_v<6vuZr?}-fs`l?n->kL=ur8hE;GXfSwM8)w-IHNbpjWhPWGU}CAevU#* zOKF<&z3~5k(oI@YD$q1-+FxhR$&)2{x;^`Q&i>EY4T++1)clEmkH(A7{q$71MgK)J zviN~q5=MWYplu7@mw7w?#M5$#M;VW@OLDm|ioH#i_*wW{^vD}J8>KmiG`PHDEAz2% z*mE*(E6Pg#rR7<WvY-BIW zhGfGAdDQKss(K zOB{}vhX8SKyX8o}TCLs|udA{(SrcM2yd+mIdL*l5v)PXYtc8#>ybD#&{Y#wCP$N_ z$ZD zPYO>8PYO>8PYO>8PYO>8PYO>8PYO>8PYO@IS?<}XFAnLh&;bGRLwunEEkqX3sb4@q z4&*>ipPW89eRBHb^vUUy(zC# z5tbsuSy%4&be)eUf1c6xj&fNu-fA=x>ZmqH6* z=8PgkOFR$7Qh;I};O%?ohE8=6Gmm=qJ%>m@P95v@f+fldn5xZ_LU)4I{5aLvAg-Rw|V~ z)genWcMuwT4k0t|UfV?DNTcxr)cyVacLnLPY&Y1>)Q_E^*PNl(!zk}jww9Wf_GJYYcgp*TTtyXW1jg9>?t7E;qkS97`CXb8St{Fj5z%MTx!5cd#GABOl}$Mw*o jKRwIyQ{wz*_~*NC?p^zS>f5P1UtRg(`qY=#K8*eYlPYfx diff --git a/graphics/play_Status.tga b/graphics/play_Status.tga deleted file mode 100644 index f06f9cccc484789a7a34685e21c6fe7dcdbadeae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3609 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 F{{;}y?w9}o diff --git a/graphics/title_ChooseTracks.tga b/graphics/title_ChooseTracks.tga deleted file mode 100644 index de709db1632e43080472b623954fe15c10c5884f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6027 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 Fl;7#_61D&U diff --git a/graphics/title_GameMusicThemes.tga b/graphics/title_GameMusicThemes.tga deleted file mode 100644 index 38f63422cb4c390d7d6f675a5da9b8b4bbf3cc65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35859 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 IhmGv_|I!fYwEzGB diff --git a/graphics/title_InputBox.tga b/graphics/title_InputBox.tga deleted file mode 100644 index e9659d6fe9eedccebcef88d1df0d3ff8bce87f51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22095 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 diff --git a/graphics/title_Logo.tga b/graphics/title_Logo.tga deleted file mode 100755 index 6cadb0bb2b10410018f418dca8fc34c71af7bb24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271916 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 diff --git a/graphics/title_OutputBox.tga b/graphics/title_OutputBox.tga deleted file mode 100644 index b0c8e86b58f60ef3193a185c7b252c2eb4bac87e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23035 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 YS1nqx_{znXEj?l71&c3P^o`R016X0s00000 diff --git a/graphics/title_SongBox.tga b/graphics/title_SongBox.tga deleted file mode 100644 index f6de75350e60c3f8fba88a12c57bc430782c200f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18395 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 E0Wi)lasU7T diff --git a/graphics/trackbox.tga b/graphics/trackbox.tga deleted file mode 100644 index 14e8772d039201efaf5b9266c6be21d8649c9c79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9864 zcmeHMZBLVD6mEIjOWX&)Eq?M3Z2!U~Cd-!WE&B=n08Mnpp>BXupaMe0*%if?%%B3I z5GM#avjuQgQ&AXID0K*wwv-p8w7quDd3aumPg^=o7U$E1C-=+gxvz8G=RWsU9-Hlb zoAxQN*|)w6?phCv11k@#V_=m6s}fq3(5i%1CA2Ex|DX~c=96r%sj1mTe*>Tg=+1t`>y=<$Dv5DA~bBo7z=|1nPcFOuKY@yj1 z*4FF>WL@1(cjaSO*6iBmT5Qk_E*ZfOiw%nnE-i0(-Po~X2fz=XwAMxRDznx}dDC+v z>khW^tQ}~@nRpxrxmVEERtmsRV^BtlZr`rJ!oowuldHHNi=phsjWyf8zEZ5LJjSW# z&vAgiy~*RLKp=1ltE(Z*lF!!haU62HrQ{wvRtdlV6yot|L}>2n)2AqJX;Hpuk3^bK zH$AOrkd(kqPvms4vRt9lS%bN`27<~#Kyg)a?b=>y&*JaZRZNr1MB*97X{5BhU9s34 ziyg;v8gYli0?p~HMmX$3lEy~o=Mf4`AeEZO-iHrmeqy3b?8oNj5Q&VC)hg;kp*84U zuM<@R1NlL}d2vby0%s@pcCttiU zLuwlu+KC^@0wtd1W#P)}-H#L&;G=W!>w^cVqJ7et{2^1?YD_jaH&Z&^!p%ei9*>9c z8JH;vh3XKb<@Q~YF*VhVp928{;_Q2WnNI2W_#N5v-CnQeQ#)!~u3u*aGlru!O$QIy+tVY~!C(tz z%OsxCSPN}66I5GUjcD{IL}@HQNSBuWl5?=TuTSRr3~-kD=^!pFj8Y3IQ!~Ww_12TysBm%xkq`^zyu@56Fp1rI14%lrEkqHUb|2Y6+h7Hkn0 zw_uQqTNqC$xhn{Uq-}9?a|I?R+i5%JFhj|7((gxQQ`6d}g~P{CH#L<5a-mWOfO%SV zj|#-D057fBAZrwv zDHkPDwHm!f77C3lXez2uRZ%L_uQmE&_S%_9z~OS?=+P=9lb1#5$|}VirI{8==UjSn z)AiD6ICSE~+D&JUSUi7dT(`cS*X_U`R97oV>v7SD$IsysNfB1;xfGkxmobKPlzC@{ za6^zVO0p#y9ivtXb?Oh8Vzoe;Dz3uy8cw3t)Wrn-_G=+=qwHlao*2W3h9OB@B{4?w zEF9(^XmPkmgz@>vr4e}@{+PyNjySh+G&xd2+~oxl{JuWYeN(tY?E@r$l%&e4`^+?? z&~}Rg4g~JvLNb<{w)Z&HEA(??c(|7kJi~qZcGK0X7#VR=e+G9MQAda3DT_vBKN%x2 z!)ni|Thj>>C92ibGTuhpkt5YO!!2z*pWIFNsQd#!tycN?(QSX1;+y`D1%3AI(5J5w z@4ELn8Q;Hb;C+s~Pg>{C?EO%_@162}uO;f@KX`Bw^5?5BzTWoD_Aj@8{@F+0ezN`3 IZ6DkI0r?T8mjD0& diff --git a/graphics/trackbox.xcf b/graphics/trackbox.xcf deleted file mode 100644 index fb9ef5d06892dac746546dcdf4a2060df5a06b58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35525 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 E05D2c#sB~S diff --git a/graphics/tracks_BackToTitle.tga b/graphics/tracks_BackToTitle.tga deleted file mode 100644 index c969eee802c6da1f0636d9240b826ef2c949b012..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5259 zcmdT|Yg3a)6waGO#D47`=pSf5_zU{QRzQ*%R2-~RN3=y-uj3V~m79VhSc?|Lq9Vpv z#2Bp#6rtjUf`Wsn6pSDW1PFp9BnAjMJ?Cull1PHFqaT`?-N}3QoZYj}p4+ZM@sUFQ zNuMh|i3Ixm-*%a#y;7&sX|SEfW&!LVpE@F2un}3)LX3N;lkjskwrb`q#D74fY9c=( zh72DU&FNyUlRhpN{?R-nhIAhn%_X>s{JCZ~%UlYii`9yWgFksRjacYY!>bs4qnZaq zmq$+rj-C!26+4z?Et8`xW~50!9PKFU3~(OO0Do#XcK?ix!Gpd&NUyF2&9Y^XMm&)v zCCkBPYk=|bVQ3#2ft`2mKwaG~k^&pHImeDc3UNjxBxs?kDj5a`AHl?g6MCFZFg$(? zu{(A^Dsd=jJ^E!?twKf}7pH^X-fX5iu%CbJ8e}rB)tbdrlE@&+Oub$QX7eiKuSad{ zU>_fc`rcmn&TIyqUJv`G$nBZ3D(j&pP4C{_4GzZ(a80=3*wB#BCqP5qe?(#7Qt0TY z1edEHc_-lM@GzWcY=qb?Ti_R(fAWwfLETHLO9eI?Xc7~})KYo*LL`nr292pJv5QSg z;MUvdOaUP70{=r<0c+SyjX^=$&N`FgCC(0~?VJ`B$ zV%}Q29nO@ML0Q=uu-pG)8jZ}wjZKvgWsw~nKd>ZuRAF5mq+B)!fttaeRa8W)6DNQb zH9gzV0O!x2ml3>$1{9N$GCla@f^6Wbj0}S8Ay2onqrXfLRLw32@rqdMi6^sm{rf7 zi7@jR`Jys2#cZnVY})=4YydxYc7_kK%6E_#P?EeRL{L&af4-Y%CzH`$zAX5pq@-BT zW&VT?fleLQ|-U;wm>7l#5-o+lq=_`sDTBf_6fp`C_g3Eh_MnP+FR#0T3=LL(4 ze7<{VdF42Exo9(#g&CNcn>WY8ty}rf+1UgG13fS_Gzf0@5OH%(6=B(jKiP~h?(N&Z zf>cZ zmv-q=u|-vB>2?nDd(oY=OO}XjDhCEcv?5h`%H$#D?YHt?-ybby0?%ywFQXM!zvC6_T97IQbuQsK6@?XtF%P?5d`*o2IMU}7E*v}A(gG#u z*>!a%@JmFX49v3vVv~tdiO9+(EKM$6ya=tW6vsxf0c^8a1gD%5D0XbYO3LA=V2&Q_ z=NpZoqFF%hqs)62GjDnM8I%{5gB#`b*RO{KH0wOWVAzJ!^WdBPI8Q! zRZu`j+Jz0E=G7}Gx_TAO?<{n8o0#?j`!DnIriY!TV+U0wCTg(kxX7Z1aXO|-`T6tE zz5n)BQ>|#R(T5LvRibLKy`3_n$6MD?wH2M7?mYyb_0k$-vn+$kAT@c5T0*;9DL;rP!}L_DDsnv6Za|6UAM>lMVBOb%c@-WsPW#d%6W{+dco zs`U5TG_EwrZ&~%XatZIgcW)i^xSX({wA5<@{u>N$JCkW!y6$j5OmcEa)d`s_+8=v{ zP&AMx)EXZ*5ErDN?+Md1n>RoW2INd^@1RyH&7vku9cU$OSdiz}*F)_3^}tuv0MiiY z2C5TU#ryZyL+{vYScq09g2^<;&SB^SKWK!z20hz^etMzN>7Q+aKKbyY62A|z8gD!o sh4Phs!&ycX;gksh+>w?Mye&Z4NeD6Qtx#a~3toAa6CU()UV(EtDd diff --git a/graphics/tracks_PlaySong.tga b/graphics/tracks_PlaySong.tga deleted file mode 100644 index a2a3572f893b9ac689fae66892028a3e6c6c08ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4825 zcmdT|?N^l75#N`J=t=*F{sZlY`~~^o3lP}dLJ@+^Ihur4V@u)(!U>6~ibg4rDp4d7 z4f48(K=9ZIzAK=xq8mgpQJ|o}0?V81g3AIs{mtBGmn<&Ll78svp7Y$ZckayGnctn6 zJI|xjt=9#9`ZsjHi6ox>-wub_dV|GcG2to2(@hwtkOwAr<6*MtF*AP7gC5h@@mv?q z)A&bBy3XWB%y7`p#X3F0RqW^T;E(AcGaT@9u`b0`@>8zYI|E!g(A92b%pp@*&0-dw znq-#>|ElQ$(*vue!KWth*??b60M1+Mwjawa?Q`v#pll{_V8hW2v%SJ}3c{B7c+IX)K6#VkcI=@2!gKocX7D(K?}JB=mMaoO z4eTQSvK# z3h3{waqY2VNz~PKo~Eat1NWCS<@M72;bF>bY$S6^3S|jbe7uF~>vz)dunjx8W=-#v26`cCk*1v*hO5;B|G(_gN-&Tg|J3Dt{%}ZGr zN$M6nhrYbWP){zE8%fYjZ&lS2EMrst&I`1RKc9^=SJ zj&R;ZkjCuYtK^NG#YFA0@>yS>a@E+^rxLCU^k|ec0pFOL%Wypv-oK%g2{jy8i~|D_ zb<_*lsG~FLiYkpPDM=`ju>5Gd=y4aE?z+k!GeLRVR#GeEsn3d-hCo+2c7QS_-G96`#TFR#AM$;|U)YgI~{A zh&`!GL12c861gP=OQRRg4kN@GySr&?QBep5DrJrwi6O7IL)8Qw$BEF_=I3w5|L5Y! zM@YP(Aq8U9+#H#=ZlzqQKm`RUD90DH;N8;Pthwj&Rf%NY=%}`{)A@x^ICaC041>>i zR;0c_*<1w#pRhJHMv9TeVoSdMAg-O|P35fRg?LryA zxH&(cu3xvvd>Z41(o$7gjTsqcx_R?Bbl5>()GAO7A|USl_ce!SXHSb{QQ$mXE){PT z3kyFB$`WvMb0wnZ6slNwpacS^esYrbRiI|Asj4cWmX>myeUB*X!x;4??hHQH06*uQ zP>eM-A5$HY=MWw~f1$oMHm2$eJHUbo2^N}}DHe?-=u<2S36zt=b)j2myB|N+l8LkX z{{3uR!ego)8TigALEVT=PuHqXZ||of^#o&7PL5_tUfz`nr-5hR7+B zd~;Re=4xy#$I;k?#`j$O)vIccNPpio18NB@JcnD+Zs%B4-Z7+NO~i!@T<^HaB(mdp z%dT9({bgP4{iOg*P38K2Nt9)wIbH!kePLlN(((t@;YR$(_tWv?0$E4L4v}VPH&j(= zkUe;?Q>fe^Y_M7tWNWTo<+N2DNgE*fsHR2$mC~-icP|aAv#NVB`0zg)<(wNrbqs!p z+(CV6GUIy4(K;ZG=0(`bzp!pE1hCB)yjEdi`)^Aezpc zd5cCyT5yDJ>IZz8cB$t;;_CkWnyW=coHE>I;tdMvXJg)_ce&t>HMor0Y-KnDC29j6F?;r` zwE6nFI<6WD{kymw$`C%BZ_UjW!1D*$-hpv5-eW?UAUC|a-iC0jTWV{S{XrF5{4{Va ze)upQ%Dmd!AveFNxXbT`@a-q9!%MUdgGdpsDe-xEA?}z{tRSMSY&-SzTtihECGX-q zjo@?}5K(WT-DnTqLSk~+OX>fL#vcJzev#+Z|NIdk"] +edition = "2018" + +[dependencies] +midly = "0.4.0" \ No newline at end of file diff --git a/lib_midi/src/lib.rs b/lib_midi/src/lib.rs new file mode 100644 index 00000000..13c710dc --- /dev/null +++ b/lib_midi/src/lib.rs @@ -0,0 +1,9 @@ +mod track; +mod tracks_parser; +mod midi; + +pub use { + track::*, + tracks_parser::*, + midi::*, +}; diff --git a/lib_midi/src/midi.rs b/lib_midi/src/midi.rs new file mode 100644 index 00000000..d712e306 --- /dev/null +++ b/lib_midi/src/midi.rs @@ -0,0 +1,86 @@ +use { + crate::{MidiTrack, TracksParser}, + midly::{Format, Smf, Timing}, + std::fs, +}; + +#[derive(Debug)] +pub struct Midi { + // pub tracks_count: u16, + pub format: Format, + pub tracks: Vec, + pub merged_track: MidiTrack, +} + +impl Midi { + pub fn new(path: &str) -> Result { + let data = match fs::read(path) { + Ok(buff) => buff, + Err(_) => return Err(String::from("Could Not Open File")), + }; + + let smf = match Smf::parse(&data) { + Ok(smf) => smf, + Err(_) => return Err(String::from("Midi Parsing Error (midly lib)")), + }; + + let u_per_quarter_note: u16; + + match smf.header.timing { + Timing::Metrical(t) => u_per_quarter_note = t.as_int(), + Timing::Timecode(_fps, _u) => { + return Err(String::from("Midi With Timecode Timing, Not Supported!")); + } + }; + + if smf.tracks.is_empty() { + return Err(String::from("Midi File Has No Tracks")); + } + + let mut tracks: Vec = Vec::new(); + for (i, trk) in smf.tracks.iter().enumerate() { + tracks.push(MidiTrack::new(trk, i)); + } + + let tp = &mut TracksParser::new(u_per_quarter_note); + + match smf.header.format { + Format::SingleTrack => { + tp.parse(&mut tracks, &smf.tracks); + } + Format::Parallel => { + tp.parse(&mut tracks, &smf.tracks); + } + Format::Sequential => { + return Err(String::from("MultiSong Midi Not Supported")); + } + } + + let mut merged_track: MidiTrack = tracks[0].clone(); + + for (i, trk) in tracks.iter().enumerate() { + if i > 0 { + for n in trk.notes.iter() { + let n = n.clone(); + merged_track.notes.push(n); + } + } + } + + merged_track + .notes + .sort_by(|a, b| a.start.partial_cmp(&b.start).unwrap()); + + // Asign Unique Id + for (i, note) in merged_track.notes.iter_mut().enumerate() { + note.id = i; + } + + Ok(Self { + // tracks_count: tracks.len() as u16, + format: smf.header.format, + tracks, + merged_track, + }) + } +} diff --git a/lib_midi/src/track.rs b/lib_midi/src/track.rs new file mode 100644 index 00000000..15dd6022 --- /dev/null +++ b/lib_midi/src/track.rs @@ -0,0 +1,151 @@ +use { + crate::TracksParser, + midly::{Event, EventKind, MetaMessage, MidiMessage}, + std::collections::HashMap, +}; + +#[derive(Debug, Clone)] +pub struct TempoEvent { + pub time_in_units: f32, + pub tempo: u32, +} + +#[derive(Debug, Clone)] +pub struct MidiNote { + pub start: f32, + pub duration: f32, + pub note: u8, + pub vel: u8, + pub ch: u8, + pub track_id: usize, + pub id: usize, +} + +#[derive(Debug, Clone)] +pub struct MidiTrack { + pub tempo: u32, + pub tempo_events: Vec, + pub has_tempo: bool, + pub notes: Vec, + pub track_id: usize, +} + +impl MidiTrack { + pub fn new(track: &[Event], track_id: usize) -> Self { + let mut tempo = 500_000; // 120 bpm + + let mut has_tempo = false; + let mut tempo_events = Vec::new(); + + let mut time_in_units: f32 = 0.0; + for event in track.iter() { + time_in_units += event.delta.as_int() as f32; + + if let EventKind::Meta(meta) = &event.kind { + if let MetaMessage::Tempo(t) = &meta { + if !has_tempo { + tempo = t.as_int(); + has_tempo = true; + } + tempo_events.push(TempoEvent { + time_in_units, + tempo: t.as_int(), + }); + } + }; + } + + Self { + tempo, + tempo_events, + has_tempo, + track_id, + notes: Vec::new(), + } + } + + pub fn extract_notes(&mut self, events: &[Event], parent_parser: &mut TracksParser) { + self.notes.clear(); + + let mut time_in_units = 0.0; + + struct Note { + time_in_units: f32, + vel: u8, + channel: u8, + }; + let mut current_notes: HashMap = HashMap::new(); + + macro_rules! end_note { + (k => $e:expr) => { + let k = $e; + if current_notes.contains_key(&k) { + let n = current_notes.get(&k).unwrap(); + + let start = parent_parser.pulses_to_ms(n.time_in_units) / 1000.0; + let duration = parent_parser.pulses_to_ms(time_in_units) / 1000.0 - start; + + let mn = MidiNote { + start: start as f32, + duration: duration as f32, + note: k, + vel: n.vel, + ch: n.channel, + track_id: self.track_id, + id: 0, // Placeholder + }; + self.notes.push(mn); + current_notes.remove(&k); + } + }; + } + + for event in events.iter() { + time_in_units += event.delta.as_int() as f32; + + if let EventKind::Midi { channel, message } = &event.kind { + match &message { + MidiMessage::NoteOn { key, vel } => { + let key = key.as_int(); + let vel = vel.as_int(); + + match vel.cmp(&0) { + std::cmp::Ordering::Greater => { + let k = key; + + match current_notes.entry(k) { + std::collections::hash_map::Entry::Occupied(_e) => { + end_note!(k=>k); + } + std::collections::hash_map::Entry::Vacant(_e) => { + current_notes.insert( + k, + Note { + time_in_units, + vel, + channel: channel.as_int(), + }, + ); + } + } + } + std::cmp::Ordering::Equal => { + end_note!(k=>key); + } + _ => {} + } + } + MidiMessage::NoteOff { key, .. } => { + let key = key.as_int(); + + end_note!(k=>key); + } + _ => {} + } + } + } + + self.notes + .sort_by(|a, b| a.start.partial_cmp(&b.start).unwrap()); + } +} diff --git a/lib_midi/src/tracks_parser.rs b/lib_midi/src/tracks_parser.rs new file mode 100644 index 00000000..1ceb1fa1 --- /dev/null +++ b/lib_midi/src/tracks_parser.rs @@ -0,0 +1,84 @@ +use { + crate::{TempoEvent, MidiTrack}, + midly::Event +}; + +pub struct TracksParser { + tempo_events: Vec, + u_per_quarter_note: f32, +} + +impl TracksParser { + pub fn new(u_per_quarter_note: u16) -> Self { + let u_per_quarter_note = f32::from(u_per_quarter_note); + + Self { + tempo_events: Vec::new(), + u_per_quarter_note, + } + } + pub fn parse(&mut self, tracks: &mut Vec, midly_tracks: &[Vec]) { + let mut tempo_track = 0; + for (i, trk) in tracks.iter().enumerate() { + if trk.has_tempo { + tempo_track = i; + break; + } + } + + // TODO: Merge tempo events if there is more than one tempo track + if tracks[tempo_track].has_tempo { + self.tempo_events = tracks[tempo_track].tempo_events.clone(); + } else { + // TODO: Return to caller to inform user that fallback bpm is used + println!("There is no tempo track! Useing 120 bpm as fallback"); + + //panic!("There is no track with tempo info"); // ! For Debug Only + } + + for trk in tracks.iter_mut() { + trk.extract_notes(&midly_tracks[trk.track_id], self); + } + + } + fn p_to_ms(&self, time_in_units: f32, tempo: u32) -> f32 { + let u_time = tempo as f32 / self.u_per_quarter_note; + u_time * time_in_units / 1000.0 + } + pub fn pulses_to_ms(&self, event_pulses: f32) -> f32 { + let mut res: f32 = 0.0; + + let mut hit = false; + let mut last_tempo_event_pulses: f32 = 0.0; + let mut running_tempo = 500_000; + + let event_pulses = event_pulses; + + for tempo_event in self.tempo_events.iter() { + let tempo_event_pulses = tempo_event.time_in_units; + + let delta_pulses = if event_pulses > tempo_event_pulses { + tempo_event_pulses - last_tempo_event_pulses + } else { + hit = true; + event_pulses - last_tempo_event_pulses + }; + + res += self.p_to_ms(delta_pulses, running_tempo); + + if hit { + break; + } + + running_tempo = tempo_event.tempo; + last_tempo_event_pulses = tempo_event_pulses; + } + + if !hit { + let remaining_pulses = event_pulses - last_tempo_event_pulses; + res += self.p_to_ms(remaining_pulses, running_tempo); + } + + res + } +} diff --git a/music/Game_Themes/Bubble_Bobble_-_Main_Theme.mid b/music/Game_Themes/Bubble_Bobble_-_Main_Theme.mid deleted file mode 100644 index f5f0e20ac41ddf417194de0361e9555a777c9fee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2519 zcmd^9T~8B16g{*Aj3LGc6OBpRZPOGL`a!#u2sdShWlK|Rprk>qPo>?^21}Dtq&^w? z3*g-spM8OUAb-UlVx8F$8ITfdBq8x-=Iog>_nx_PcM7F?4Zs*i;6=AkYHy3LZ|Hj; zFYaw_zH^MlmODj_LZz`|l59) zo}Z&)4zsrB*a1ZO#wHK}G(2~h1#Ct(VDYjAaOUTNv0R3cWH1 z>-FjcO^!yHaNN>Oz<2T`}hD15IXvT5HFl0etT!!M#P`B&^m+M{2j^wuiihk6 DI7zI4 diff --git a/music/Game_Themes/Dragon_Warrior_-_Town_Theme.mid b/music/Game_Themes/Dragon_Warrior_-_Town_Theme.mid deleted file mode 100644 index bff2dc7adf003553d0aded17c32ca7d2a8b60835..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2243 zcmaJ@$#UXW6uoVn@duKsRJq8iSMBx!jIm$SfGnXF62>+j8HA9;UK-n{1Os zJ|k7hA9TKqynCLARq1p#&yTA+oO90+*lCReBKne^QHEltwVcXNztJl5!{O2!MT_i( zw_Hx5W%fn36+JAnt#LRH<>T#oH1Wri?CJez^61UI?8|Irx%3vJFvt!bvnTg=cj0W7 z)uP*Q<}CtRZG89e@UT7d=HdMQZsNb=K6l%GG^f?&=H|xtU(@PpV@0$&&V2LyDw)OBq|fNcb+c4=xw1B88^ZpGH1dh zau&iNvVCC_Sv_INcrTW5E8x3+jr{P#SQcnqp~=t)p&7TZmnid4=5sqU;L{lJQ?0}K z#+dKAAM@ZKmUr`p2N*YG-EbjCBC;cH#e>J>j2RO@y4aFWjR5D6`&d&hab~ehF#BZp zlPV)5D@?lSE}1UFkQ4R(7M~-W14eF6LHjK_bbvMh!hjK0u0%!VFE~@{#uC5t6KC2X z4{~Mz=JFtWgwcI)NliDWWKY*zCge=kT&}>Ptr&sJTX2bh#3S2VbLo=RU32M>36RX< zI>p5W7bW5CCtN&egw5B+qQ+b0hH5Q_55666^r7jLxoaKfTXAFFz%4pVInx|rV{;g# z#~>9v(}z*8cKs6hfijAVro$%?_B)ipQ_3QVQTjYUL%uNwEXZJlFvUOBVE#-Sh#OgSAn*SZ;`O%*fZYvD_Yv;sT)yqx4~v zDQ9XvjIvA_WdPL&jKLlPa2s5PWDOH(%^BIVHJ7yM&%naR2?-O^PyW{^X)c2l7rd_K zLP>}YcsGn|a8X7X@jWrh0!G1F48^wxj(zp=!zg$$lu`cqBFg;yuP>s%i2nS{7g79c z{!rwJik2u6iKY2pj+YvuL{vBw1)}|9u`eUX9MR4g&~BOYOD;$9 zZ@6dalJB{y$jQzZ+(A`|BfjsH#E$HC%-wQ2=M;|kp0~JGTysvr;E1X%+Ki;qme}6s z@{KK-l$GmAbAcltyoZeP>v5IL`UY+!6Dy810;_aw0I+P zsC33p%NKE(M{22&b#Axc#7Itx6`TBNDo2e}`)lyXe3h#T4s+V8i9I>EA$TzM@#<8( zk|UcuzI-g???t7~@4wI)O3{dmvcqf8I0B7RhFdxNM5`0ffHG=-`xbDvxO1YF2Cc3+ zqVzA}o@mwP4ysCEN}?5z=S*nTNNLsK`~o5>zgSOer50x>HLy6P)ddz;g;t45DXkic zB($nRt5axYLn|93K}ndr|PD-o8lsyuYV6V-mk$IgX%8`5Z&uDc5 Ttxlko4XvusswTDK{|o*Gj=jUx diff --git a/music/Game_Themes/Sonic_the_Hedgehog_-_Green_Hill_Zone.mid b/music/Game_Themes/Sonic_the_Hedgehog_-_Green_Hill_Zone.mid deleted file mode 100644 index cca3b2d345258b2fd5f8b7d4b8b61b8b4b770ad3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4202 zcmeHJ&u<%55dP|vP@#$w5+EUK(;@^&`61`6)|*VC_gL1u#4(O*D>87YiC0e4CPq%8 zm=p4yL-{W_h8suV$`v6_oH_76n3;Xv*lA)^S4H%Y%j|ga&CHwm=FLl`vEK$Tk6V~S zztZSE;$MGbIQMS7dvvhpoa`q~oU}X1ez)T+I#Dl4j-2@5@nh%n?oqOIbPc9 z9%9(MeLMHo9SlFqar$9x?v)?^7<^^FAIRsI*FTicuY2j|x8KvxpPlsc*V`Kw`E74j z4-A)KYo0&HaN!o`o_oXWbx)5^xb}$4XgfOxt)nh}0?uFk2Cr#+v5mXAk+ha4H9vQr z0Nlv=yLb$JX2@MN)*B%) zzOIR*)eLd`swR%v2&UL?@Gr7I{n*Dgw^~WJ8=lB*AZ9K!;v%+7eP*Pg$M$-Nt#Y5q zY8WwY33rH!*eZ#!s%0K(TIS>e5Q&AEO>;$5Q^Io7qh^+CH_OEn@>H&9_DUpN%!<3$YPtIo;O8m+L`@l1%kLJ&;itD4vC?>GMr0 zK{j87O*|xgD`PFb?6PIZ`Z6dC5r+fCBNZ`_1E)y_ia%RyV1#(8k!Q^yc2iwRZceom zqRjp~GGYTI`AokI;*4efUFLW}pJSE93f|6k9bc?wSrdUA(++Xd@HLY~&<=@TkG2+> z7?KAh)jI)oGQDl&uMagn?Mbwlec zwMcsgvw`rsGmI*dbv5-2>0Z3lD|_<)BIfh;YLds5k7)&1(O2Y0V@ttM0Z^J$HZ9tR z8h3Crm;09w0_uO^K;@M@>hYBU24ZF$xccIMK!d!SBR3H|6JdeFx zOdf{4ZccKwC*0dYD3lenNbZuK_03v@3lD{0jA2HuVmu#{?&Cun=bM6T7Au%VxJN3`?CL)lEp%9O{+d>0fcB(ben@Ag|3N=M!O*E!x;#K1r zKZQ3v=+STCH>va9Y~d-

V#7q}hF)eQ)MB|L29(U9f!b*K*eXX(h$edgoS!}MLb1Rh^ICTu2+XF^wWia*j>#MLc zl)4^{=8(L%p6eo?5b_@qLXZ%Gt!F@c8)wvzI1oI8`|bE3N^#=FX)`{ z1lQn+++uTm?NMXVpAr3PJ~tLtoA?C0&NIqPWgsuVoi+WiE-{sM?Fkq&jEE@$W`F?g zbiia@S%#j-A|{5Vf)HmIS*9$IvGgKS5kjXa!-<5)6zCdbnrRxiCZ8DFdn_Lg%zj}g zs3R-f6YK#ZIUB(%F)BK-)4VJonkU8*{l!>wOhTLii9yv^Vo)(efvEt9|HN487%`SOL!BLf9EXXg zw}ZenZrl%s(BMavscQU<5VVUTiu|x=bGRRo`=xfFYt{l{C)PB+B+^OZT5>Flm#6;* zxcy+*<$*)uB~t^lcyUf#sSz*9;H>EOB z_9{&4qzZd+rw>NGqjvhoQC~UieI<6W2Tm6zXRUM=Eky|n$c#R-Y(}4w9erluIbB$1EU74F(z1=^p!7KM(C>Tb zK+AI64ND+rPF1m%YahS%xP0aqbz%bC<`yglrvXWnlcld)L6Oo$nZ`ROcTH))1=&Q zjTpJ^n&+REqWD#oBC*KjvTCjr4uy25;<5Yn>*liklYHJYBf7$L1@Tp;t4Iv1dMl$| z*(G+`UtDSgb;NhzhM9&Dk28%UwtA@RlVCW{bRM){d;Zsu)HKrAa>Gy)%L&gU)vTQ~ z5ffk8WJ;3K;iF;e`ZMlTmPWY-TZTCUOmH;G-UOmac#2jf+N5cxHFtUy^H;01U-7*c OK6}f7LuX{uyS@RjR%7n~ diff --git a/music/Game_Themes/Super_Mario_Bros_-_Underwater.mid b/music/Game_Themes/Super_Mario_Bros_-_Underwater.mid deleted file mode 100644 index a512cccbd94da3dd7c3840046eaab8577dbe49d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2498 zcmeHJO>YuW6g@4CacxX=IVRmzp>1eM%cZ%1l#epOrfs521X8epAwwIUOIW$o_=ogw z_-Dp5^O!mfmKfJ;9{0X`?mcJjyKe^fvfl;p1RF@fxR?G7y)Ot-+ZT7^p6|GAf8aSK z-pCAlJEi7T<)Zu+!RCwU zbeg_y4|~JA$)Ix^W=_%_Z;0UiR%-L*Qv@G2NgJG}whGUFEq)PXVD)Ux5WL!8JoUWT z@$M$KgN{=rPuF=jXpcPnfcdIw6ey`F0cAC1prWP%oT@nmsw&k7tEetE6;cfC*_eo8 zoLp8kb>45%53Ayg&Ka#R{wE@3m552mWI1XoHK3u=cnGycW@B5VqHxu?6!{P}e{CyL zQG<-EK}D2Wr&FgzKM{G9zOF)a5{kT1`D{$J`LH#s>6?lc8Cw7w(71Ofr+)8{prwY8 zbCq+LmI`fRT_*CuEOy}#Tf2|2J@(n76yvH8&hVn&3{$v0yy!UCSi_^C@@g!bF72iY z<^9c`Wo>|k?5Wr;)+mkT6=ppx(S@+Xx}KKR(~@`*eP8_|`U!kHQF8(m)D!?wBfM~G zc;~Eb_fJ%aNvx7n$${&_HAy4k5=X$B<>rGS|OgmNoCF?8NNL&!sASgD1J7wn|zh9cL9(3J|N=cGYHC zJx3}>;Wt2vF($cV^(1$aTsCW4Wjp4wm6Mt+NS#8*`ATM-PVdl8gCt#ObYU$MXiO<-i;OGN z7&orq5qJZ51N9Ynp!(gp1B@apBynXjx%bTXbME=h%&j-JHvvpw3~7Y*M(;f^_6DQ$ zoklR|wfkC5YitLdK(je^&+he_J6pk~_U@x5y1lkmX%2!OMydPz`}+%9%}&tS>$h72 z+0kEUbvqcn93M|TxP{TH6dyC%NKYPV!(Fw{%I)Oq6S@5`liO(_dOIzYROOfajXI9B zi0+E*k>Wo12dXeygz`A8Vf1*69ZBD{Tiw0>pxx30o4cvKXg7Dd_y!zLe!^`FuYF9V z;#EZsLmwU8Svehj#R6i#w_Cj7OKsrU$CpekbiWQ}l9c8SGU7BN-XmYC&v z7F}(be5zw*_|-m}m=8|Y|2FY8 z-=yk5IFa9$bcJW|ZFsg6U5+BsS{JSxc^~=5Dd~ihbVA{fO0a6fT~N zRnDw30*WR~&Pc?`5{NUZ%-}Fr7dgPGU+VsvJ5-c&K;ED{Fq5YlP-2a>%|4}BV0xLR<9bqE)4Ghz=`;t5 zRxBEl)6|K7617I2kW#LuRxYWjWBfeKA-pmhd2+c+d7|RVlNhf^e=f)W^Iz`|-;tk< ClYqVe diff --git a/music/Game_Themes/The_Sims_-_Buying_Theme_1.mid b/music/Game_Themes/The_Sims_-_Buying_Theme_1.mid deleted file mode 100644 index 182508ca26f40d6cdf15e8a29f4b15f6c08dbf82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4975 zcmeHKL2p|{5dM<14Iso3h=c|sAtaEg<0y^o_}SU@WBsfoRub$(a22&7wNeW?shn1E zk0DfCIKZFa3^$Izl@kadPMrHM%*<}qe#RIl5{ESH? z47$~N=QCjHTl8k;>i3(8TC07O_%Km=^tg4fpJ1fjOr-hc>$=m~J=kyFOMLn`5gm3~ ziSq8lW(U3LH;#{wZ|?85o9#zOt-XihaddOZbuUv=Dg4#$FHK3TXL9_XduR_oe3Ue`JS!|O=Wo68~&hl_I=I%1k2<@yZhNn!cidI2YO;ymAqAf;3iztg|LF$U? zpqil?XhYG4=R4nx&?1(L@_yoluV*A=a^mljSC>^UWs(&o3B7#rUx~B^1?U1y0hLJp)Bw(AB}E%gm_<~IU6W z9+8Rj&!JNu;&Xmf0UVE6lbw(AqwLDR{E&>D@Yffu#$EY`+owTvQ{aPz&`;h{o= zAu7ewyS&G_Kc|1OoBiz{7rUQ;?8fOxZ%UoZ)sbao?VQ;>pAP2d#M&}rcm zd6V-xMKoeI6}`@XaDp^cn$EU_BvjJb5|6hf9+jHJ`Tum>yq>@O#B(0EiPuQ``**Bz zAkBci==1TyxPhx8i`$E`$6ZCC-!Ketshm-MOlL@+Y}KLPR1A(;tJ7~PJnpIyBe<(f z^cxS)ca?1Uw(;Ag?}8=7C&z@*szk#d#IX1B+pIkzZ-PP9n#I9FSo`h6xu^$mu{_)faDx z>#7P?foj;T0(BkKff{SqfGyVEI?u;1q%i#Pc-%SN<*@Rm%hSu~ZpLS1L3cSj^Bkc+ diff --git a/music/Game_Themes/Zelda_A_Link_to_the_Past_-_Overworld_Theme.mid b/music/Game_Themes/Zelda_A_Link_to_the_Past_-_Overworld_Theme.mid deleted file mode 100644 index 53a6c5ff8ae48e5e2d2e507aa1569a2c23e109f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4085 zcmd^BTTdHD7(Ia~%`Zr+CSDc;$`FVFg**hU2?m>(i;by>)bc`T?7}qhn6OZm2Wty? z?L+d9nm<7aC6t&W7b!O&#-+cGo%GQ1zz%AUsAfn3F;VZ8GKxgpL)_%iZ zZ|pTx-EaNkZ#Q1ocjx?qzb@4)|ET33@wm1d9{CUbjo%uFC#}QRb&6%yTE9wvt)=QM zf66Z$9`35WM&1AU)IWI?9-uSu?a9eWZg02QXdZ|1CABmgVeVzCiO!EVZw`ES8=ap9 z{sKCigSWo_9i1syn{JPxGkk;lgTSA_yX6@3isDTA*c7j1ee7 zT;x*YGv6Etz1YzQB$z<&1tI*72TK`fcMkueNmtn47kzfhFryxn()VQ{_Dc%D}4D z=~3G%uoh!Uc}oO9B}P$gS17JL9U}8CD^H6kPm`5L8pB#q0cnOG=%vHL;%ZD;K@C-) z7Ne{LHPnC~Vyvj`6#`&Ud5g)rs63sj)O9OLXj&}DOx~0=oB!1L$z3a|MnT@i{i4$L z(1xO-sT$jzMJ0GOJvBS}YTAFnNlu+FjL)J9$fx55YqL$PJW5sLz&et+5LvI&kx6S< z(UA`rc^YZ3&I0jTtOHw#1DlsbXJl>D8rseVE!B1!n9~InESQ`c>{+}T>twCR!Gh8| zR_Brmm}Q&mlJZI<02?|}0c|d;fH~SQc`UU9p3*y0=Xj#LCoD5lQN4G9J~-Wa{w=AG zdM@dg9TW~szwDTPF=J(ZNB4_vs8o-n@mJF?=li-7fafvR6?-7!l9_uBY{hIyW-emp zSUp?7rrSYDogFZTo92MWtj7|^hKlI1%`N-mnPO?5@3WqtnKm))$$HQ=Z11GLvZ7=} z8ET=rMA6y7g{EZdOX%jLD($%GM;q+CGIn#Co$qs;(Q#T&ALtOHVa_7GOpa*Ya^gB2 zV_CC>%#QKF`f95tuObe6T@-Y;tG5^c+gNO=etL^{Y{dV`-ol)E`(n<7iNRtYUHmM3 z<9+;D_yD}mNn|BHAbOt#a(wh!^noMCsUll-cv8Zbkq=Dr(OC3>6Mhwb)!_#co{T); z0UwP;A2{Jx;Z+?TuOd^8GQc<=iHy7iPe=^OU z|H5MZ!F$Ym6*4NZ?J8{NL-fV%36TjCd#=LHo~aNcVbW_FyWTYW4(CE-Ll?Jx_+7He z>`LiL>zoYXhi;ym{m<~zveO|(!=%>~Mpe?ASK({$$8`*o+1>+Bgcu5wIUiy;baOr% Q;!gPX#T|g(Gkzui2LGJLyK z{6C66Y`rtPOBcp&D?}pLm*mcwJ9ExGb7zu9v)==73v(zSY&6GjW%LbE;eNC4E6+dn zM?Dq1RxkZ`z0L!5*zJr5qmD+JgQ2fhl^0A-)UzPyO=OYc;LSijM!i6-tIBxX86EpQ z_3DFq=sm3-xsMRdFP)v8tsQrU{_u1%=$`cbp+8yc217*87Z&E7+lXGwi-zb)VR5qb zvmAdTT1PBy@iU@(b24AJTj>U;laoPL)r6;~9uGRB0N;Tx6{ZSMWvT)-4r{w1+&4ww$o*ky8oGM~RMgZ7#B^?=Gib|Sor$JUa^94m^oxWep$(t#F}s?d_c zbf6_wIF$NhVObZl^~9CPvcwxxPg;!LLi`KGKeJKdhj3Ooam84hx}~j3{1e0Kj0RIf z0&OY|MfssbQ_)B)wmVWIp=dPfGZu|y7VVBcArxJ{&}(uWlT*xUH#v@+v5R7jMKbAA zPwI1|h$@QNnoN#ka*EmdOpYUcb71!Icv)i8I^uyN9tbYHbzYXWv1cBCYMZ2weXoV1 zmUE=dX-~IxvVC&Xv^P!rcbfL%S-x|g|1AFizHTvX0lN%hA_*>!XPa4KDgoQ6&h5+N z{LBre4In=!%aWfN?>1X!uFsxd%b!*~t=-~%HkmeoEtXa!X+r5q8(Cpm(YUk$Ndri} zjil$B^t1GgjjS@Q>K;hAB*#WDnD2H+DqZ4%(#_$}RoxriAwO z@7ioLr*${e-k9dwJ6mV2&;DO0fq?D A+W-In diff --git a/music/Game_Themes/Zelda_Ocarina_of_Time_-_Zelda_s_Lullaby.mid b/music/Game_Themes/Zelda_Ocarina_of_Time_-_Zelda_s_Lullaby.mid deleted file mode 100644 index d7f05b3582297e2038611ab355e0752af8029782..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2239 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 M{d4^dVEPI9KNqH%(*OVf diff --git a/music/Hannon/Lesson_3.mid b/music/Hannon/Lesson_3.mid deleted file mode 100644 index 986d7580f74e56303bda1e10a3ca6e0f18e0344d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3699 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 diff --git a/music/Hannon/Lesson_6.mid b/music/Hannon/Lesson_6.mid deleted file mode 100644 index e328423bb3a1757272882aeb7cf7f640e92d6c49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3699 zcmZXX&2HO96otn|5ENN-U3ArjVMq`J5d;Z>nhDDZ!;n!#D?d(R$Ih;c0^Ri$`U29M z*l*B2nfqywlbO0JfjXCS&bdD`!|C$(-;6O&&51cZG1KLrfAI9PdANG=%)|95 z&pe&-bn>wJ7V)DscQ?-5J=>ale(#^<=8m|#UyS+Nn0+>ydmit3{KuHX*|^?k$6xbw zU*DR;@@BoSd0z5djpncbuXtV@@pt^ci+I_a!~FGnUxLq%_y_P05ih(s%)0fy0G}Q4 zkKpeko`awJ^*#qb2e&uou==vzTb@_Pc=(rZV!XZJ|F;pZUZHD<`s^h*{CdB9fvz^{ zv+%DzM!W!@y^Q+Yl{sYB>%D_NJL=gG55LxP_|M=MUV|?;QJ>p^lON#~>n~nJeGdK% ze&Hql=j2EEYw(|w{|5dXe#iP5`B!`cf6n^CE%{mDU-};7b%#FIS3Mi*lf$p~tC#2_ zKdNtgZ4L$bZ{aWCZ&*L4zKU<(^FQ?y?x=qTE`2Tjipz*w)?bld>1(M^ir4sGk{{{w z@R#s=_)GZP*Tl2F_&om0i-@U-!ivs;l+B zgTI2`TitpgBsK4+QJk=L)_=PvrKc~N?ulvON@C$eN&&a>@_3+o!zlXnuzr$aJ zf5rFoR}H^#PyWkSQD2X~n*0lIS-sI+);n&+tS}H z>kA*quZ3Uww&-v1FTAHeYWh$5Cip%5Kf&+e-@YLpe#KAld;AOE;J?AY^iA}ihhO+e z{T=+$H&GwY{v-Ucz8&-5k^de19sCpgp86_&NB?)MFFfc2m%bhR9r+Qyq5cj0(iiH< zJV?)udUv-met1s4p2vKR@VP0*5A?%->P^1WdJfdvQjhQX#&1i%OW%MV3%~FQeh)5x zeM>!Dtj9pVTlf_p=8^SPuh7rrLwem7P>AVLVf5J!l%_Z~J(Qg&}!Z%;ZAN;D1C;uh>HIE(q75)_;_G8XF z;XVCY<4^iL`by?W_`rUf?l+$Nru)%Izoq+43x9!s?MI$|FSl{Ma2~-gyu*KmKj{nm z8T+B|9{yBc%RChL7asOo{Hwl=&(lFPJyQH`F&hk3IWI$vnw#Lx1MUe%^ss zqBP(3Q$hQ4!`0v&f7E2Tj2%%XRI%M8S{09f8izg Zocc>&$PefF_jvT4^?zM_d*S#A`7etfnlS(X diff --git a/music/Hannon/Lesson_7.mid b/music/Hannon/Lesson_7.mid deleted file mode 100644 index e9ed435a44315bf2d5fd75c62c0a098605867209..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3699 zcmZ{n&5GPc5XXBLV}cJk2cLWh%MOE(5E7zCLP(ailE*W<{#YBETyqHImRHCN%)H6& z8zfJ*`KfW$RFBDNX!_s(kE&`(v%ml2cjw%5ci}EC-2VQrKUuwWPhX!syZq%R_w?J7hQRk>w-Hf1Nx2db2rX%ddNW zDDK_y`hIgLSYNZwXLr1MyE){nuUMCN?zsB2Ih3qd3w{r7cfwci-EsYXbEw!~FZc=E zZ18WvvsQlguUISp2k;;MA79}w;)idwKjA&+6a0Df6Z9+g*YK;K5&WAIzS!aC-N{ez z&w0h)fS*oykA6aZl%M?T?FnCha>o?^HTo&~ehZ%ZDjvS|c*2*9f6M>*jDNu!|26s2 zkA@%r3H2BLhWcmdH|S^R*YKzGPyJBu$PfLE{C@;be#Nt&a9;Vzm(gG4CtrGd!ngR# z(Qnbu(QnYt$ftPpQ}Qc6`w8_|{&W8ezwsaV$sh64f8p=&U(lZp{Q~`#^Eu}g{{}zk z3;w)5E%|ctDIUKW{S$mge~Qm%{PbV&J^4%W_vn}CcjPPRpZcMnIedZ-_2InoGhY!u z=X1^rz9(PAe+!=e3;%$AMgIo$EA)Hvm(*YVkf%Uj@Ga|{edQ;AN&X0L{15C`>?{8} z@aPMEq&}YfBl;fwf%&Q6S3LKxL|^b7=L_!3GdEuYPUo#&Q z`Zf9^=RNw0N53ME;Ct#@G9TjS2Y%{Pu`l?Ed^Pi>{M>&}e&L_#PecA0{RaIB{ThFY zN8giQ@S#4&&qV(t|ICZ$yx?c*6Y+EZYxISGOMP1MZ_#hjpYh+2Kk~y`@FVl#(N})z z*U;YxPkzB~@z+v+<){7)`hwq4pAP*U`W^aP^jq>Op8O5>Pw*4xBmcZ#+B<_MzxBVP zz7aqETkgN`@2O8u{rBki=FJnU`^yZ*$+meZ;@wm-(f?%Fnz+ z{+Ih==5yxx)^J|%<8mL&{R#Z&3;)1=#lGCvk-VPsGT#$xd%tG#H{@4->gSnH#V^kj z{3`!z_{p#QgPr@)``)6bIn34creocWaZNrzs6 zzT)v)!YB9vefz%Z7JmAtcdNVxxa$1sZUCO z<@@RUd(X3TQ%fA?Y`WN}9{+aRbnXibS{3-J({1x@L-?!m= z96j|zzwGyG!#blL;>T0Jg!(If;YVNj@wcYG@_ioo(HDHlzWu(h$h$^g@#rN6Uw?t0 z{1HF%uXywm>aYCdThSl+{}cH69uRy%{jc#a|8Gjp+y5s4PhP=$`fvYF1pmxe#Ls*S zzM%fs=qo?ZGy8umXa9=*ocG!Cf32YZ*W^_^^;l64;peX)|Ns8J{r(4V`3w0Us_L2~ diff --git a/music/Hannon/Lesson_8.mid b/music/Hannon/Lesson_8.mid deleted file mode 100644 index 7653ede988e26c8f5312edfa9b4d089b8cf2f343..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3699 zcmaKv&2HO96otn|5ENN-9dy-&VMq`J5d;Z>8e%|(VaO`re z-ynT5_v0XEI8=eGgu&cA*sXdpMMx*o|_AEd0`H>fB(hm7xQ%Y?AhhZpUl&5 zm#kS`vbuQMe2@6qnup&j^YCJC9{GKIk(vkM9)30En=z+kFpn%BS^jIx{neZ8DH(sw z^HcW8+%G*AxiU)^p`1?v^-lKu6k?WttFW}Wxue%WtNIqT&Ze<1E=iq8h> zbW^>Y{pDebPv4sR>$lreO8)g&58e{K>Yei}{0;k-_|3@c;88#5JEDvFL0?Nf_EoQV zf2MDTzG2c=d|>}L)w8#7K2N-g`pNt4se+%tFX?ZMe(@~%8}frb`2W*~e#Pf+&=>hv zlE21p?N_W5{1(r#PT@QFDSV568}y4;;cr6!iZ5SN@AXvA(*I1~=pXZ!fA%x`AE$Z_ zzf<&xSF_IG*YGp=74uKvi|6nsW&Vn{__M+Ppl?q+{wThr|26rcU-TvTqx~BHGyE5? zp?=PO13!oFsGpKAUd{Q**jIc-{|Wu8o}>QEzfm9lOP?b@C13R#_&I)v*OFh*e+$2W zU(GtqWBw`rs$R|hkNorcqkdcT6wF_|4*yH|9sCl0gZ>#eg(h7|B`(1dit~Yqxkj}Jo*=}gFo{R{W<&c z!~08rsyEPog`eW>SUc+P;5+y|&ky@<;tlv;?Wgz-|4ZhhdR`y;gTB!}&Y$%4)VK7n z{T=gg^e^6?{Tlurehq)1|BC#ekNZE<$G+wKtDe_KzT!LlFFC)`H{ef2|JvW}>v z_$~ZB{F?cTcYxneU-3Km4u4c{&wOJ4jy&&L`U~}#N6mRqy@B&v;h*&P>|5%|Pd^{# zrTPQ=ald=!S95<0Ja6(H z{z#wSr@r+2``b*shW>Nr5$@|3c+vCe{CRYKpS-@CuhEj@91x)5C04LS9}jY_OFFkz|(%sI%6%KqyH3scwSRKN56PA_aWmx zD!%1>#P5TK{ha<4-+e{j-83)%ypH;H^b_+c)(L#QPiypNoImj#^=I!Bo>%ev+Utwn zmtG(93;j|*W4@~A-`^3>e@}29!uuM23SWLy_><6I(1$-6{-~bg{LS=@{xLuK;rpe& z>RJ5XphrCay+{4{O{+)lXl=!ixfAI?L z*9!k;-)r#2^ZM9Ve8v0|_~KdSv*COw-ktep@h|=!D(HXpYU1VSnSHO4AAheF_`9ON zppW~p!GG~e_Sdn0>HT;zKkN>|y{Uzr|ybOOA^so4W{#Wo-FX#Tx{2TQ# zf9do6a{g2=#s6#ch?k)Mius2BYxuWd{^F(hdriLLbNpGtS3UoKjC{o>^mEn!bMw96 H_!sg&9|W2` diff --git a/music/Keyboard_Classics/Aria-Notebook_AM_Bach.mid b/music/Keyboard_Classics/Aria-Notebook_AM_Bach.mid deleted file mode 100644 index cc213faddf8a2ea7ea80af2a025473c0dd11fccd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2023 zcmds1Jx|+E6urSQ6r{?iQ-=;25LJdGwwovoACWCL5F{cMDFYoN5f#)bNLiRHH>d+c z2WRWgfURTM`mfw`9Osg#uEYvRNXO@$cfZcN>GjXgL}XP8VicvFt`>Y$)8RP*>g)Vs<^O89M z?aDW>%_B~2pR?QtXhpc*N*Mq$8t^fXMZKMSg2-8%Hd8QHUh&Yd!hqgBi7p=Y_fNLJ z;$>T@3z@UF^Pd94T3qzw%PaXUa*NHq#pcE?X7q$&;V!> zGyz%!@Gh;cpuGX;-fk*Fo!i zciHMLT2)5H4Lsccn9;!kXjq+q7PRERK_7gjo#7<)nA${n-Nzd6G?@rth5@{`z_;hk-?wxzj+>dcL_TC;Vr5>muH8S*hW3O_GU%RR` z^7yEHepxA>B`zz6N2jVa^ysK^a(G#;yhz~3v(o0v#QM9lkK5(*<3xJ;d3rjXi2hXT z)#&K((}$|HGcxw$muk(Z(Dai}Fg^DE;^L&DuE*b~#)_v}uZNYYsp^WW8tY!wt*!&C z5KvMiD7sbGLMvVm+qbxB3l=tLVZ%1QO3A8yN{NzEcS#qmWvVYjz3BPd@V1t^9$#h< zwSK}{=XM6aMRRohHXUH$wn#O^uXqsRmn<1NRYR7Rc-T_lJ3tXYmPAW#L(UR6HmSZD zI<4Wf1NE8;$k^f14zI2g>eqP4h_R#^yIxgScX6DMyvO7Acw8qWo(s9K;KG7x>=Wz* z7`?!FxFpAkmc%Oz#Fu)}5_NG*NET+gEXf@ey{iOnt$tw2sn$=%33uX+I1$y|ppZJ1 z#GsHQ@Bh0(LhCNEk(b;QyQ{{ma3BFF0YsG%At|Ia_L4R9lJ13sD&<64^#C}C)(Ap1 z0M0#W0%AzIfhS=qCHaQCmv{0~(=PAkCr(`L~c9(R~ zTA=y@)HBSv3?2^%pcaN?+_pk8K_Vm@VS8KPLWLy8O+p5W=2-<51PMtV#0HTfE<_7S z4wAqKXoP7YvYR(bN0n8H20;CDj0Ff>BTR-R4Q_Xpzd6xzNG5}^*3VM*FAxRP>0nBl5 zYaTrWYEBcWr~NztUJcq`uqD0hF{i>}Tp#JJ;bhk{;(M}mHcRSEkZpvSm>@Gj1tfx> zDeyBxqGoKygw=@X!3D{c$I0*I694uE6}<1t$5X1g=zVkjMfB)q)~hSzghEOH;B|;> zze*t6>j%vO^QB-HK%SDkEm@>w(UzFpvdYGUg?x(gPHM`ePrqdv6|6yRxg6!>6cd*j zJV`JKpb0cUk{}5%!5AjmTZ&2VFD@!OumBXDiE_{=2Zy~ygDi)gM57~El3w;i7UTNp zRvO*Pve?U>S;jKUSmuc4*Z?DBSPv>2t3i95;5idG2gGO)<1k{4H3tC$qyP*<&>N)C OAcZ&#@0voK?Y{vMKBN}_ diff --git a/music/Keyboard_Classics/Fur_Elise-Beethoven.mid b/music/Keyboard_Classics/Fur_Elise-Beethoven.mid deleted file mode 100644 index 7f4c26dd3ff8f180fcf5f4d87dc2a701304749dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2927 zcmeHJ%Sz*582xIi9T($5Tua;uqN7FdR?06LQffNPpaXSTQc_^9KwLQ0K zw7t4>B2i}C@eb;3*IPI6GHreSX4uEg%P(%LVH6gY3JV3}?;}wymmQh>Ako)sepe*= zB>knw?y>af`RVC_C%?ewChCrRe%3yAj6<*9YRHd#NxHT#(f){JI;vwU>F)RdI{-F8 zGGozX!KXq{0Vorc0Zji|I;QHVZjn?Glp;_)8-NL5(aEBdwr$gCyJrL7+GRSG2b@xl zG<@tQIHbO%Ufc9t(ep;LuU zo3w2X+Q9VF6i$OVrFYT$CS>PB;$6q$T;nb^1?u1UCQ!ppNsN|Y_)KrEtPrR7wCMNW zH-#|ESIxpOt+p!Hg1qkKXVH3CZv7 diff --git a/music/Keyboard_Classics/Minuet_in_F-Leopold_Mozart.mid b/music/Keyboard_Classics/Minuet_in_F-Leopold_Mozart.mid deleted file mode 100644 index 8b44f5bf865effda7aeb2b19c7c7ef0b1d3a9cc5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2258 zcmeHJ&r1Sf5PkkwsUS8wg>>-X#fxo)kP`Aq?Y4@`7I-M=B4{OrftQZCFZmDv6J02vc@)v zB~4!i)Gbs5{&74OU0Z;E67>Q9D3(Ze;cpD}@l%Ftn!c!P0$tM+2hDb~Q@=_%<^A$U zact$FQ*Sp?hpl@1I%T)cFYwHqsYnC^N8Q77fPt;0%1a3 zMRXO>jUwtQjIu;$5mW>S6Y5MQH9d!E`4beLNHH6WPdJGs2e9M-rXW+$o}fKJCG`le zG+Ow-H|oknU3Tn>=K`t%s(}XtGVE|1;iEA4GkaXI(-k|zuu$ko@)>ge+C`ZA^W}^3 zzGK#gI|k}IJ4PSfG1coEJmDVwoI*d(x4fIeJ8EEE)gx0LM7$pq!m11cR_J+&GY-i!0)NUpyNGItgL#$ zO=su_$0|14PV-W2-1nZ({C-!}_71f@P0c=vuS&(j<_g8<#nqiRiuWnC234eNUkI^Z z8Vv?F0lkASt#>?s^fjAl(1HNl*+)#)ErsR689*0Y23l&Nw#VdcPTfkysa zmFrfsy1)Ie6gy!=NeAq3qM|45uRKU5MY$Zv`rrCxbH8l#>u29(2dex?RXkEHoDO(~ zP1ql`0{ zGnmsE>5M9TwIcW`fC->8&;jI;7LIo#O>DswzydHCm;eR?BVmxq%x954Kb`a8(y9xr mb*`Z&#ZbdQjU$eDlw?gh(azFad}Mu34@S$2%d9CU5AX?LyN(_J diff --git a/music/Keyboard_Classics/Rondino-Rameau.mid b/music/Keyboard_Classics/Rondino-Rameau.mid deleted file mode 100644 index 65f5a1737b8b7424746fb678e58919b706b9c002..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2717 zcmeHIQESss6h2++>K+vFDNmAzu?5Q37}}M&F~Uk|8Lh22Me#vPT6C;5C3eW3vNoXa z?LS%nfave>H^lGUBsVGR`k-Snun*$)Yh-j5klu2DQj-6ASUXq`F zVA=hlWB1gd)3#2@Ppw%_w>`9-XDSX)s?T4k^^@Lt%kFnnWBaMGZK&~&{5P5O%H#Xw zzeulbekVUqAvK^h#pl&uINv)P47v{e0G@f+w(PUd!xKyW=(PJCy3D?(Nz*0&?F!Mz z95+pxG+Y=B7{k$i<3&8WO$HWB2^Br zg1N#*1xDE&x5i~t=b|pNm225$kunXc{fm;2D?V;CBPDV9 zE8#Me0O9bG3#0_3$Vd@Lfsq0b$zw2L0FgY2@Q^vj;W>osu18>|X%5>3WMod)*;@cz;1cOn4ArXUJ1`w&P43}C;3G=LO9)cA(ig~se*#aVY65$?A zH~8WPE<)k~@_b<7g|;PD8r_^_Tij6`ih>xxI~>r}S+>i(BMos%JO+2C7rZXN0YAEx AX#fBK diff --git a/music/Keyboard_Classics/Russian_Folksong-Beethoven.mid b/music/Keyboard_Classics/Russian_Folksong-Beethoven.mid deleted file mode 100644 index 39de61203adc5745c61b81de5d8dd67b9bbec435..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1830 zcmeH{O;5r=5Qc}38Zj|7o{aIp2@eEl(TFEQM6yr|mBd56N#X}ag9#UpSS7@x{3HEk zb>3}v(I_p-SXQ$h2s^&TqmlJsh;AuRm0q> zTGoEqw#wEHg?=`j-dLvaES(|>dzsw!8-1dvw-`*rToRYV%TfO>-)SGU zDa@>iQGa-mKe_1-@AIvj>jAy9$~bG7Yy8ZoIAbInr zg__H1EkKK*31}uG`jgfa{!3JYuvIa(E@lpW^EVf2vKW9Y27qD?0f#70MH+wxM;bO4 z1JLFDcji-PJj~1E7J2?Og0BBWL6;+4j2obDg6ltT@)Rale6RSMll-P5`c7!j-4{47 zaNfgYWLjILwN+Y7Po@Q6=B_>6WeD7vgAmd>2P*$@{8JZzW4#e8_82@EiL9w)KQpVd z{?aU;7pVGA%<4Up9>jZw>T~x@v_s@t;fn+jANT%&-iTgn+`z{g!yaHS8L1#r z;fMvW7^;9OLlIC+Mru6%NCzNwRHOosIsmBykUI8jq_ZGpXv^B5_FjVJQquC*j_Lkr f%SAXvqb%jU1duwa358>h6l7Q9ZY)L_eBV9*d>!?p diff --git a/music/Keyboard_Classics/Sonatina_in_C-Latour.mid b/music/Keyboard_Classics/Sonatina_in_C-Latour.mid deleted file mode 100644 index f0bb7550d42ea66e5b83ceea3265cdaed02def59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 963 zcmaKqy-vbl6oyZMqL`Q(6MteHy18Mklsb^61W8MfL?Q!@BoHAQNLU=fxGUlrt5k;B$^gX}tm(ytVyF`>FjnWxvw8qc;*Q9u|uN&vKW!>bjth{y2!k%s%68RJI zHHzDrOzL!(;>Q%H$IY~UeDuBmWY4A%zB>;z!#8)q^5v>=%Hck`Zsf>kFmxju^oG50 z=f!N)Zfg{$4}x)L*fsA5o#Ds~2Ty(ay0V!g<&rFl%o0V0N}tWpmMRH(UbM9H8zT1H=B1TqfbtAbo&m};KzRlz z&j95apgbo^bt9(&1?6FqEQ${WvqULF!BFY58QM}MArF0EM;d;I>Z?$x&hNtB<#@D{ z)$#b@-^XLDAJ5(Bl@>&i<$ci9VkiI#3@$(T)Mao0&U(m3j?IcxxqLP%xd0C^DPFB^~*HVmMk0RWC|Re}Hj diff --git a/music/Learning/0_-_First_Steps/Au_Clair_de_la_Lune.mid b/music/Learning/0_-_First_Steps/Au_Clair_de_la_Lune.mid deleted file mode 100644 index 8b8b8bfc884c92850e2c9ade8a066630a59a182d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277 zcmeYb$w*;fU|?flWME=p@C_--2J)mC{ztH|FiCJQ{EuV;^8W`ivrK-_)WGy#AEx9E z!+&OO_oBqS6or7y#Jqfl0}KokY#cfm8f>sK>_Ad>Kq&`@2@DMmK!zQN0TO}hasa7; YNI@0Db=f#9z-2OAJ6thER)G8n07!*LwEzGB diff --git a/music/Learning/0_-_First_Steps/Aura_Lee_(Love_Me_Tender).mid b/music/Learning/0_-_First_Steps/Aura_Lee_(Love_Me_Tender).mid deleted file mode 100644 index 573798f6734f34b6dff2c3c3d0a06979f21d3206..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 295 zcmeYb$w*;fU|?flWME=p@C_--2J)mC{ztH|FiCJQ{EuV;^8W`ibE+R`YGC}Y4^#4v z;XgCCdr@Luib6nUVqQMO0S1N%HVz#O4K_fABZ%P$WH^8r4#*Vm65GG_tAWct|!@-+Z8;Y?Nl diff --git a/music/Learning/0_-_First_Steps/Away_in_the_Deep_Forest.mid b/music/Learning/0_-_First_Steps/Away_in_the_Deep_Forest.mid deleted file mode 100644 index 9f69440f5b97d8171303f05babdea3fc5bcfed80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1131 zcmchX&2AE56o${hw4bpoy40OI|BO+=Q(l8`N#e5ZlcQ*jHn9eVUY++ql8 z_jA}hyz+*#{}K14chi0$Zg?ftskCZOvOASlTP{VklopMIM9ptYkzBXL(&dPy&*WmF z=1pW8-T&MD6P2ZDwEyohCKh)F^GVm6#Caz^yE9$AJ@DXG{7JLC;!5S#+sVQ>w*55GZK@RZlCy)k={{Y@QBfo)rZmD>(uBL<%*1-lS zg9_LLHL&H>)NFI&ZSdd+_zoDvKG`#Srw2K&mn5xE!uoih-fdIpC(i3&2ke3d4gG~l zlPWDv05^Ebn^dg=DzZG5I&&5(aeSeGO6xSMrp>H-xVXU90oJh1Rn@@0`gtT_o&)uy8}uOk$M37fMu{ScG&=ahrXxfp!D3k z;n`a?BW4_*rqvuEatua*nfD{1txF5IXh*X%Jgr`80%P@Kf_M^HJrTCIVJyJpMAS0Z9jqs{jB1 diff --git a/music/Learning/0_-_First_Steps/Bridal_March.mid b/music/Learning/0_-_First_Steps/Bridal_March.mid deleted file mode 100644 index 2581beb32d8b44ca34002bc6aef0a84eb47087b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 551 zcmaJ;!Ab)$6r6N7MFoj?^59{=ppANHOP3`}g|^^=LJxXeXt71v!d^VK!XA2D(SzRn z6#WzbB)-@*Z9#gQ%)FUNUXsCh2%riE&qp%IAL!JCo*i;=dM;(Nb|!1`f`|hyjsZ1; zV$ip~Upd)>zN^roSTo07?UwpizQHoQN&oEv5^!m18hxX zk|LAtk~YAqWoNVN>6rKq6*|U7t?$02{iUz>h7Y?p)%$;MVsmd-(}$g0vzvTcbxj`IJl#bmQd0vaYJ&NQro07BaKJf)y*Nr`r5Qc7)ykHQF z+D~S)aowOqJM>2FLC3u9w+BPh?{|Cjj>}9TDBcMuE=w&&$T%Pom-a<`O8V06&y5$C z#L^AI@k(^VXNc6Q{Hf*j=am-^vpk-a3ZCU*mcsIx@8LoGjh-#d?rCjrc%L_1f{SXrW{ZXQ>kFe0j02Prfg6)Q>kFe29;a+ hg>oGO@3k$w!cv4+Sc>opD+?b^7Bvpd8_$lo>mRAsNFe|K diff --git a/music/Learning/0_-_First_Steps/Fais_Dodo.mid b/music/Learning/0_-_First_Steps/Fais_Dodo.mid deleted file mode 100644 index 01b81002289b21f03253d5520ded7839ba33ed7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 565 zcmeYb$w*;fU|?flWME=p@C_--2J)mC{ztGdGf8kT{EuV;^8W`iv+lUja)9x_K2!%P$4VVEG0WpxI&_&?d zZ9v*Vis2$ix^Nok0Mdosc4v^3GtfXd!x1Fn2(|*Q3urRP&2Tkv27MLJfH;FBzr#Ze a9#C-Ya4EP5Tn(Ps!4{Z6huJWI(f|O7^^t68pEWvfnu4C8q~gb*6!)G!i-6yz*H zb~)D5r3kX}-9M9^F`kAX;EX4og}(^At?3SW14upR1fD-PM{CdDnf>*0g(sz$n)blW z78jgs#6ed{U6OlK3JM1RS_M#o diff --git a/music/Learning/0_-_First_Steps/Hot_Cross_Buns.mid b/music/Learning/0_-_First_Steps/Hot_Cross_Buns.mid deleted file mode 100644 index a0a4131fb7dd09b1bf5be129660e0c7f1703b9c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 232 zcmeYb$w*;fU|?flWME=p@C_--2J)mC{ztH|FiCJQ{EuV;^8W`ivrK-_)WGy#AEsnI z!+&OO_oBqS6or7y#Jqfl0}Kok92_PvG&lemb|8iwkYVGnfT6(#zm$zb2Sg1Xh8;)^ N$Ur;{oVJ6U4FI$LJQM%` diff --git a/music/Learning/0_-_First_Steps/I_Saw_Three_Ships.mid b/music/Learning/0_-_First_Steps/I_Saw_Three_Ships.mid deleted file mode 100644 index dd78c133e818487c40e7e28a12489e59928b6b6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 592 zcmeYb$w*;fU|?flWME=p@C_--2J((D{10IT(m?P(f`ySuf`j3IBol}i$jq9w7D8R` z07)_fC9gmQ8qGlR=?V}!>j#9+_k+;Ih7h`Z8icNHhS5!IU~{iGZlRJv519VzL;b>- z$MBz1EI2o@sKmFlI5SxxI6tiYKQp&`QDR<-LO^C>UOvMC28IpnsSF#q z9DsBl^M+I)KZSvD0~-(H1~mrO2{sPxr42S<#spph5b9*jW#LfXIVh0p)0EsvN z)i{GhoRLM~Y8*jo9D!;aKx!P2&9MQAfJ}y)1J{KRaqSQV+SOi(upX|B`VInF26B*{ YV|zKO5A7VLR|7>r;R1Gadm%8?0gf!T#sB~S diff --git a/music/Learning/0_-_First_Steps/Jolly_Old_Saint_Nicholas.mid b/music/Learning/0_-_First_Steps/Jolly_Old_Saint_Nicholas.mid deleted file mode 100644 index de05bc13bf3c31a21ce85cea1379295f828fcc99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 646 zcmeYb$w*;fU|?flWMF1t@C_--2J$Qz{@3%e^2-<*7+B~T8t54q0|mHP`Gpu59O@Yy z7#aRYu&^*ma4`IjWCAMxAIQum)xhvyAF7|R38#RiZfpf-?dxIu7ja1pqJ>_FN;w!%g5FyPve7_@hy4akW=|G;B{ zVHq?g7#y(21V3_2_~e%}9AIc{V3=SD48{ga2D}V&kQ#HK8YrXj0$$~CBhmGNTnhj` C>Zrv4 diff --git a/music/Learning/0_-_First_Steps/Mary_Had_a_Little_Lamb.mid b/music/Learning/0_-_First_Steps/Mary_Had_a_Little_Lamb.mid deleted file mode 100644 index c7632c04e5773caf62b3f9ad7516211f43555a23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 313 zcmeYb$w*;fU|?flWME=p@C_--2J)mC{ztH|FiCJQ{EuV;^8W`ivrK-_)WGy#AF6~A zD9Ft1UX+-Zq7aaon3vCRfPrCxgF^>Hg9DIZ2V&R(88#q>4YCMa4H9Dlnl89@I|rZ? m$Q&faP%9ijQXsqFQgB_wSqe7?%7AN!Gq9Pw0OTD|H~;`T=}<}l diff --git a/music/Learning/0_-_First_Steps/Mexican_Hat_Dance.mid b/music/Learning/0_-_First_Steps/Mexican_Hat_Dance.mid deleted file mode 100644 index 31e62e5143089c8922f198050d089ac493322320..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 463 zcmeYb$w*;fU|?flWMF1t@C_--2J$Qz{@3%e^2-<*7+B~T8t54q0|mHP`Gpu59O@Yy z7#aRYurM=8a4`IjWCAMxAIQuy`2oX!eVG1EpmJ7Leoh7lAcLQkpUpirFSRH!N5R+A z#gpMbvw(Y1VqS_uKxSfIzJf<)dIrNmpeYKBj58P}+Bh^zHQF#tNkd_+U;v7BfMh#B zEQX18Ach@~0Tr15XMyB^%7JnS2fctg$iV}vgX&pW`2~Q!V&+G7m`{E=!vTf~3=_{#-i7a9R^e;#a(7ynG;C;LR diff --git a/music/Learning/0_-_First_Steps/Ode_to_Joy.mid b/music/Learning/0_-_First_Steps/Ode_to_Joy.mid deleted file mode 100644 index 75680667ebd928fa28d74937f5e8856082234541..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 349 zcmeYb$w*;fU|?flWME=p@C_--2J)mC{ztH|FiCJQ{EuV;^8W`ivrK-_)WGy#AF6~= zh2cLlw|h}yUW!6MW@27G!vO|{2@Vb&3=Iy*3`dZNBT&Q{#BfGtz@^~2>_BSlfNE?& o3>#zyTnerj&VWnVIZS|PhfBd3aJ#7P47lw`ZU#ETh5-~-0A}l1!TG$K4JX_qpEv1+Obm)E9{TJAMB5e81DDm`k9TOJHX{u%{duNDKJu zilUC_aU`mux?{Ogu9Ddaq!Nn>uw`GYk||{a%Y{s-9EcaT@^Fn}2oM6+MiMNq1lCXu zERWuOCKhVW%As*2mfH(x#0sJ>2&5HRI-96R7>SyDoEQ$#qGq+Ofr4+EKD=t|_W3%> zaz`<@&T{KWG?rWAo+^5jRZg!A2=0VF~ z+cUsC#D8cXVUdo6pzTNq^xhIuKT0TB-iIpyisGRt9*W|jD4wn}p(q-P;&G5r6b~Aq YC>}KGZ_XKw;_)2NF~RB`+F`8CH&~;*WB>pF diff --git a/music/Learning/0_-_First_Steps/Rain,_Rain,_Go_Away.mid b/music/Learning/0_-_First_Steps/Rain,_Rain,_Go_Away.mid deleted file mode 100644 index 5495d79d452e4a9b2af4b154f91020f8624273cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 187 zcmeYb$w*;fU|?flWME=p@C_--2J)mC{ztH|FiCJQ{EuV;^8W`ivrK-_*ueZ>AEu;< z;XgCCdr@Luib6nUVqQMO0S1N%jt&zT8XSQPI}pPTEYblHaddz(@Ja#IfOI*76g%V7 H4sr5QWb*x!P9Bg|51AkteXxZd?QzNx`@XC}hztLlrER6!HSbU6+<_e2hMV zeUrY)?TiVc!QD6KocUqmWH|@Wgo5KDPVyC31K9PgHl4oj54t_S>p!w^qs<*aYmkC{ zcAduk73@oc<96n_-+!m8ktk;e1+t#ok1xTrdI?3BU(!nQ^mXO+@ylJFQky-#B0gdh;R5j7f0?dwLI3~& diff --git a/music/Learning/0_-_First_Steps/The_Monkey_and_the_Mirror.mid b/music/Learning/0_-_First_Steps/The_Monkey_and_the_Mirror.mid deleted file mode 100644 index 90c34f00870b80f21cfbc64f38ae9acf39f81805..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 756 zcmc(cF;Bu!5Xb+I_8}5YjfshaLnlV8l?De=U!w#_BoV`)BMC%^3JD8?19XCsPWUOz z>o>qpR`0YB2X~rW-rfB!_g;Q&w)70ELJP)GJ^$jVjf} zNmzl1{9rx_eM;2L{4G@Ykde>qr^QSW3z!AaG76XlJicK*GaoXlsMR~IGRV-8%>}|;u_H8QIkha9@A53@<<^xd8Clba&=+N$`DJBbj&p@<2Pbb(nO-lk%6ur;!`B_X9LWPTgz@@1z{2Uo6GZ#X}ENWGvW0^IDQb8?rBD9t1s+|UI zTE(ntTYs$S>Wp9zA#JJ$k8|I7=iKvnHzOVt0KftS7&BzVN*REhf>xWRtUKWIg}i>B z*SCU%gR-*#LJb50nn=-vOWQV^P4hO;c1(j)ma%O;8K4??J;Y)}$IGS9*edJi5%yjB zx$n9${G)z4|MNcYfAn3TEsy^F8NZoQ)-G&d!BWqBwZZQM~5Dtma}2&46Wf3l84 z7lz7>2)bVK|LnnI)2kWN1L4c*F;=mX%a^$Tyx|NvLL8l7vU#D^7|J@_N)SjVoM@ga zVJxDnSVXZ1CYn{eqPpq<&~m#lk@j)16C1RPjkm*qDh3$szLj)>LhlNboO<*yd2XWQ J-+1L<3?J?xZ)X4i diff --git a/music/Learning/0_-_First_Steps/We_Three_Kings_(Short_Version).mid b/music/Learning/0_-_First_Steps/We_Three_Kings_(Short_Version).mid deleted file mode 100644 index 253a0b8af3451ac3d8eff9c8bbdd2b2f312ab32b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 366 zcmeYb$w*;fU|?flWMF1t@C_--2J$Qz{?~J{@(VFAIMg#ZFamkJto$-Y1_l;-h6Z{D z#ti=>SeTh4I2is%G69wU4`gPU{D9%VK1_clPzNh3KPQ6&kipN&&*q+*ms*sVqu}f5 z;)&2)&%(+t0MyRR?Ov3am!c4mnV6T)aDahff`h{Zh6V>9!_J|Dp}`KwumOqKFzmo1 zhvb0iPzN}802v@#Kz_h<2s3*~QDSnof)T?(pfeO08CNh&v;^ANXvx4Z(Hg|C1~P0w S3>#z-ONSXCHKeHqIS&Bl$z3`C diff --git a/music/Learning/1_-_Very_Easy/Alouette.mid b/music/Learning/1_-_Very_Easy/Alouette.mid deleted file mode 100644 index 26bfac924b937d2468a5a8ff9d462024fda3b542..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 807 zcmd6lze>YU6vn^&t5%RJPJ#~E-0HQq)FFghBD4hq6*}k`Xt6~}p^IY;bSUDGyg_{e zSI7D$eUo^OhM0oU;PUY#9Q9fSsvGrm{tL(nuv-EU`^d!^Ob&|0xQC4jNVTn>} z5Dq56z3q1{I!KMZ)+7k~c6StnW4k@N9patTZB0YssAohDkhp4w$R$u}jz|?DPdQxk zqnILG>~NQZ`Clr=U&A&`ZSq1*8t*Z9>p%;6SZv6}ocpXo(qv$z{P`|N_(T5x7v)aC zYvu%~-<=?ePPiODV2L-x4SMQh11qK(6XH5UouI~0Bd9V|2_%DD2kMuI3;nrJrp>7Z KOMj1J1AhQCHq@X1 diff --git a/music/Learning/1_-_Very_Easy/Amazing_Grace.mid b/music/Learning/1_-_Very_Easy/Amazing_Grace.mid deleted file mode 100644 index a685101cba49f9b5eae1c108f7a8192a1dbfecf4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 656 zcma)3ziYx!7`zxGwNRdP>d+xuJK3~VtQh1$3My1+!J!=mrAmu}OUEd5aC~l#9Xs|< zuzy*4UlM#(&z z)&i~t`a1zy7;y|j8YLr!3D}8`GmK0-ogE1-qafvJh8#+iK3l$Wg;8u;N-sIC3RDt7K2$%W4^TNPD?g`$2av(f%FpJWnwMIXn4{q9 z>Eg-opIN}YC^0WZAs{m`FJHkUGd+XhAkY*AMn;B-HVz#OjW!Gn6YW3@J0QaW#BcyI z;8Jh~9yM@Xjv(!hK<&;B6BrtukqyL@a&~BesBr}`T*11aB90&tkU4OZ;m#mW7gT!( y$YVg4f&7dq1P@aNZ)lh@IA9M`e&jIq$uDO(z|eStVS+i(`wiv{GvF*xGywpR`hv#* diff --git a/music/Learning/1_-_Very_Easy/Away_in_a_Manger.mid b/music/Learning/1_-_Very_Easy/Away_in_a_Manger.mid deleted file mode 100644 index 10dfffb7f706df4f2e37da1cc5a94b2413878c96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 645 zcmeYb$w*;fU|?flWMF1t@C_--2J$Qz{?~J{@(VFAIMg#ZFamkJto$-Y1_l;-h6Z{D z#ti=>SeTh4I2is%G69wU4`k+4Kfv%`AEy5gPzNh3KPQ6&kio*rF91|i&(F%w=AN3D zT9lZh;Opt)i7h6Sr2y*Hf^ZxSOM48f#h1aJ}ZYAV6Op# F3;@%7rojLJ diff --git a/music/Learning/1_-_Very_Easy/Beethoven_s_Fifth_Symphony.mid b/music/Learning/1_-_Very_Easy/Beethoven_s_Fifth_Symphony.mid deleted file mode 100644 index 338a32cdec5f56e8c70927efc9aa1086c73671a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 744 zcmbV}u}T9$6h-f5cY_KtVr5~mUl7M#LbeFWga}E%1%(t^E+m+sY+xJ9Bwfk`5mKh~ z6D(urXZRD=<9lIUg$ycocZPHCyKg4y4tfBJuwXlgy6G*QLg?|nD~^3B!_uiN$$&2Q zTyY4fF_Z;;K z&pZW-jfF;%ZOJyip-I$~ZoZbc9<$}4%*%`K%b$<#vBnJZ3Kg1EU=jh1nFI`#87dRB zEqsRjUz5lmkU!+0&?vGZYg3cFq|bie=+C2n3d;Kj92C$$7#`qX&=T{k94X0uROms`LkcOTC}}Ab_a?Q7h?n{y zf}XtU-4F5NH^fa|QX`7c%glSTGjB7g)*Tx_8VP9NYQ1|Vw@-Ll=ECi@dgo0W-eD@0 zT*$yXO3KVT&?e^R`W?mVJ}sVX__Xp8(B@h|+m8Vi_IH%?ZuWQLXK<8XQqI42{GS+( z{Z;U`5SIRcx15lE+RSdZ;o5qw)o|PTUhCAs8}K}Ng(<>u1=(bXN@)V}1JhZo0iT`yTb3j`yv!FYyXIjam2F8Rm)eQQdfTr5nTspin6R-cp_hmgEc}F%*Of{wo8^ U#K6i4=X{k#j6bB5u)cKq0-e#TV*mgE diff --git a/music/Learning/1_-_Very_Easy/Clementine.mid b/music/Learning/1_-_Very_Easy/Clementine.mid deleted file mode 100644 index df42f4dc83a3f6cf29e8a1c2377202d8ab2339ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcmah_O-sW-5PjQZixy;yCl4NS7O7DWEi{A;722W!#UAt+Xt6~}As3G^;33EKANW)1 zFI#7%tm{Qj`)1z9>`Xda&H=O`;Q2^r#WPg{n6e|)A)rfWLDhj&#}{EZ=$(hX@Dk?1 z_gY7LFpn*gn>(*_dIEE{^NVY8NU8Rrf0U(?sy$xhiz0go(&^O{#_NuYET0Frt1Mp! zlhxA_pOjYmQg!JKglMpd^gF5uzd+5M8XL`=Ce8uGaVOH>BFAPmBc?{Au^{1`#LbCy zgDR#@%oGD_PuR|43oPY`|NlnJIWcIBAC>#YKC0S6j{X8cuYw~0 diff --git a/music/Learning/1_-_Very_Easy/Five_Fat_Turkeys_Are_We.mid b/music/Learning/1_-_Very_Easy/Five_Fat_Turkeys_Are_We.mid deleted file mode 100644 index 6e3c2a0b738459467e56b73d9001ed07c1b7e41a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 508 zcma)&u}Z^G6o&saxvd5z;^g3vC#X?}S{lL)721LUg$z0dZm>m3A&X;L=ukJ^9DRg# zbJWcza*gMNddVPSrtcoU|J<8DipL5-69!BRQJmk=DMVT93g_^|^Um7GUfVmRfi0YU zKo*b&%2<#_UwLg=je{+eHw`{rnXRuKlt-II25}*Tvkgh$2&Xwnvoufc-Dq?^LTT;| z@+4F4L0N`^7{Ue?+9tNhCWaF^iw~b;BnK59RA*kQ}5(r`ha&}MQyBX`G%(s?VEK_ c(SnIb6?|%{L6`L|Nj-)hfv;XMqdw_D-_aR|!~g&Q diff --git a/music/Learning/1_-_Very_Easy/Go_Tell_It_on_the_Mountain.mid b/music/Learning/1_-_Very_Easy/Go_Tell_It_on_the_Mountain.mid deleted file mode 100644 index b2a8b666711bb1db309d71ed86edcdc78e2e86fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 500 zcmaiwu}Z^G6o&saxm5!aadL3T6V#|fEL_SB2yMZDLIxcJ4YnvLWN~cW91|Q}`UvUf z7~jB0=ri~N*K=x$8H(QNyZ<@oKli_3G#&wH!+>cajIsy11<v-oR z*upsk)C|gijs&&Q(YKb>I@*Q4Yw_*Iv|d-xCmW+LniIm=Qv(7=IPHFtCRzOGhQrGt zw0Y3a;&kL*PvUgy4kq_we2|N47+CHkSlSAOQVTpQFueRgkD-T86g4sAENxRHm*je$ zfQ@Qp@rQSXBH+28Ij2}*gT^*ec&${`ddY9{w>ml0_T)}8`PK9Z6;M*<(pDvMNfGDt h=)B9&CGhDR=01UBkXUgo-_)qd$NN8X)J>N3#Bb$5gwX&1 diff --git a/music/Learning/1_-_Very_Easy/I_Have_a_Little_Dreidle.mid b/music/Learning/1_-_Very_Easy/I_Have_a_Little_Dreidle.mid deleted file mode 100644 index ee092eb21b245a364c5f0ecf2526c53cf15e453a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 829 zcmbVK%}&B#5S;!IH8E9B9z663uxcAPG|fja0TM|x;h;wnh!9OldhrO}IDW(nM;--V zz-RDH>MpGt6ye})zS)`C-FDlZK@UI)1}q!xPWnWzDzfo`<@ZypdJDI|@DHfMZD4NYpMI)Q;Wd64)eO}sB z4g(*>VW{TchvBXt#?9yjODv!RwZtRlZy^DBosM(O(|$8nuaLdp{0~W2+E_rc-O;5dCE7VH4ENpAc zbj^EU@45`Y-ZsZCYVDHXY#*-g72NJ9=mzHc$)}=R9u9qbi2!+ybD?9XM+tXDJTtaq!BDObE3g@ZgkfR~9JCJ8y9_e}Q` zmZ0Ao=}wF|21JRYgOi8}ki47;;sg*UjstR6`9@k~Lega_f5}q#mv__B#4VCQ>;1C; zV|lQEX?+2km1DdE&wsw3uR_EjAWR$vBE%82R~2BW(6pqWaUD{SIEY_@A+fXIQ4X5t f$o}vX`*C`tdq^K2v2V~{pG7gx@*)sw@7sI>zkIg( diff --git a/music/Learning/1_-_Very_Easy/Jingle_Bells.mid b/music/Learning/1_-_Very_Easy/Jingle_Bells.mid deleted file mode 100644 index 112175f5a6c656e33e7f97b14a26097ff1d6bb5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 809 zcmeYb$w*;fU|?flWMF1t@C_--2J$Qz{@3%e^2-<*7+B~T8t54q0|mHP`Gpu59O@Yy z7#aRYu&^*ma4`IjWCAMxAIQuy`2oX!eW-rMuR!Ijto)n~9zX^^D?giiYF=tlVvd5Z zr;8`Ue`W#qqQtxug@DY&ynF?Z%=8R~gFsUh7#SHRIyiJNG&(S#FeYG#z}28jIfJx2 z1GU?L7&btL9f)BEHgEyN97m9dBT$4G1~&HqwWGKYZUvkH*JbAbbRo!gXAlGAFt`*F z1Kk&Rr0D5ExLt4tJjCEWwQ&H3DlnYkkGsnPcjJu(-h#Xr2kOfC<=l04$! diff --git a/music/Learning/1_-_Very_Easy/Les_Cloches_(The_Bells).mid b/music/Learning/1_-_Very_Easy/Les_Cloches_(The_Bells).mid deleted file mode 100644 index 8de93928bb4ac409c313a84dc458c5db324889f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 587 zcma)&K}!N*5Qg8`buGnM>ktJU_GCBP>XHcZiG>O-6nH2)30hjAVW8bMyV%X$TR)=1 z_x%I=2mPaM7Iz^`sKfBiygRe=&Eqt?Z2(CS^aPyd@SdwN0(ZkO_l|7)B!6hW+k*=|wLg#KE7I4Sh5e^$@%TZso;2QO7-mY;I57<~S?%;Y z!`6f4)KBXO^lWw5>bI@)UaLQ_YQ5VoKKT(A5!7`9Dx*QIxln1bT$AEkRfl7tq>>qM zkjk-_11UbwFP**ZPD&tOl&7PK!0hoq7Ww50x0e@lPdsP*8k;_c|BSzRS>Ce3LJ*U{ zM??Z*H3{=4iN;`zIUt#VWCoHMNM^89ljPeaGl-NVGvFY}3^+&%*W2`pmD$}(5#Dy3 V$uOIa*n3ZVg)l3GS=1N4`5W|Ys*nHx diff --git a/music/Learning/1_-_Very_Easy/London_Bridge.mid b/music/Learning/1_-_Very_Easy/London_Bridge.mid deleted file mode 100644 index c32d0cfc59221b053fe94685f1547aff35184ad0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 435 zcmeYb$w*;fU|?flWMF1t@C_--2J$Qz{@3%e^2-<*7+B~T8t54q0|mHP`Gpu59O@Yy z7#aRYu&^*ma4`IjWCAMxAIQuy`2oX!eVG1>K;^8g{G1LRKn6c6Kbw1MUTRTdj)JeJ zizmZ>W&!u2#Jm)RfXu|ad zp@U%}lm(KT08%{xBm`t(l|(XuL^GkLBYCU^>M;ff>>lGs_Lxt8Il}>l1q>6cfevr5 pW|+Y+!4kx>WPl4zfU|bMSzu)oK*|uZ3=_;9W-v6E14Bul0RYivbZP(q diff --git a/music/Learning/1_-_Very_Easy/My_Palm_Leaf_Hut.mid b/music/Learning/1_-_Very_Easy/My_Palm_Leaf_Hut.mid deleted file mode 100644 index 1ba14a0e254e9fd4dc7a7eea14cf2a87e4a61269..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 643 zcmZutu}%U}5S-&UP!jWqm4%7-1$Zh1$z8}ROaLQB6ACR!AVM^d&{zVA1?AD%+EKzE zXyJeO8FuIF<#<5it7d0sXLnw+)$0Jrz=EAdvo(5Vb&Y78bJQWA$Iuq514kX7d){T? z%qw^oh*}P1e9=SNN*(PXdQ3@mZ)ZPFX2RMrd%AY~rbpUQd1}UvqxN+jk)5xN+JlaJ z*KZGoZoU81!dzQSZ*Z$(-~E0)%3)OZ`Z55wD5XVXWIEjC_oQf&TaE^(WYBJLk>t6`#P8F_t-v zu*^#*WxONwnP=j|PzWo+RLBG(VpOWhlnIJFbW$WJ2`I&_*hr=bWGb;14W~roi&$1j rVj3<)L?n(0*c>twD>lW-0AI|-VQWirl38cYHX0Lc%ZJYN;jjJyoK2-2 diff --git a/music/Learning/1_-_Very_Easy/Ode_to_Joy.mid b/music/Learning/1_-_Very_Easy/Ode_to_Joy.mid deleted file mode 100644 index 0749b49c61f5aa43bd8bfbdad34949d999febf64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 937 zcmc(d!AiqG5QhIW*`k7M@#Mino}jJ@Z4V`EsL&P+DDMFd6glrJ;?{4+aDGMbJ7)ZxJokc{$6`s=_Hn?mmFE7fW4sir!hz=n`p zfG(gtnA0GrZLh(c)ktnm{NUjkW_MLzyCAs`a$OGyq>%OgB%9>vRhSG9hcJGlpQqV4 zJf5Z5JRHox-M{v#SEN^ zbXk>iih+Cm`54^YnVH70!*hy(=V7svx~*0hYXZBm--+4qbBoe(Wb6Of3tt>wRu>2T x^~Fi|;*RFmcmztNmslu*wuSc3BjtM)!3Q5UWN6VvEn08Axaynktf`#op|3w8^L79L diff --git a/music/Learning/1_-_Very_Easy/Oh,_When_the_Saints.mid b/music/Learning/1_-_Very_Easy/Oh,_When_the_Saints.mid deleted file mode 100644 index f298e38cd8038ca0f68cd331fcebae5c23311599..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmb`DF-yZx6opTkq^M9LP7V(F1vM%m9YS~^LR&DP&_TyQi!DkDSsZJ(jIX$K%-GSN zp#Q{w67RJkK5WV4_Puw{JLkL`kEUY)ZD`O9#G~wqPCb;1j%l4;I!>>9;dGrVx;Qee z6F@8=G?e#-(KY{JvFZjR) z(xHm44jQ0nnAM{-Q^8K;>9MCrp8G)ZNY?UqNSEa<$rT`#%PNmew^l!p*NII)OZf)t CtGufK diff --git a/music/Learning/1_-_Very_Easy/Old_MacDonald.mid b/music/Learning/1_-_Very_Easy/Old_MacDonald.mid deleted file mode 100644 index df24618f664cadba975f8c96c12d232ea8bcfe62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 674 zcmeYb$w*;fU|?flWMF1t@C_--2J$Qz{@3%e^2-<*7+B~T8t54q0|mHP`Gpu59O@Yy z7#aRYu&^*ma4`IjWCAMxAIQuy`2oX!eW-rM9-wkoR(?(f2Oxu=m7mQ$H7~U&F-O7I z)5VkFKeK>)QDR<-LO^C>UcQ1yW_kw0L7*x1EUf$jKw5#3kzt~ZLkB~n4Fe`)1;a!K zkemZh4$iOxiP!-};0zmw86f=~mFn}A(85ky5f*6*_40B*00Ht=o6%nPp N@djKy9z#KC3IHo;u?7GD diff --git a/music/Learning/1_-_Very_Easy/Persian_Market_Monkey.mid b/music/Learning/1_-_Very_Easy/Persian_Market_Monkey.mid deleted file mode 100644 index b7aadba78971348302725673078e55722a166843..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 998 zcmcgr%SyvQ6upyX>H{Ukg(wJizGmXcRVM(= zK^Dw|W0y`3U>-|sH}|&l@dI;_&0FVecU^TzAp_;Aa%VUh&iXH2)V=A#*p<$#KN)y; z7QJE7Vu{2<8^Dr)oRl$bF}GO?XoW?9r68t) z4OIjrQo6ASe38-*6+u88CJVP=B+S1L`4Z3L+mi5|l?2*b(%f-XWmkx?Rlc;_=_}Si zQX?b{t|4v!agDFr!)Vbpn{z;X%+`2H%T&nM#UXo&;A^)(sprG$Y);cxf9Z1EFG`)5 A>;M1& diff --git a/music/Learning/1_-_Very_Easy/Surprise!.mid b/music/Learning/1_-_Very_Easy/Surprise!.mid deleted file mode 100644 index 413a608c95ed14a7edd70cc3b4d1934235cda46e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 518 zcmZvYu}Z^G7==%oq}qU7aT0aN5O8aw4iy^8EfLy+0fi1a7Mj|kq>#n2k#=x!NZ!E* zXy2f|fsf#uT>syMw1b(xd;Xhq?tg;8WCWlJ4Z49~5I@tY12sP|#o49nUe_<&x_d=} zWr`y}&LK6Zfl1fsQxAqwIo^kQtnlexubpq88ikQ|O8=RrsL39IFh#W+MqxaBv4j3i zA4)&$#=~f2-%W?n%tZJjjnO;gG*rX}%;iHDDI>d<=SeTh4I2is%G69wU4`gPU{D9%VK1}~ppbl16eoh7lgvxq;R(>}3)V$Q9#2f`* zPZv*y|I7mJMTvPS3IUmkdHD(+ndun}2Z5$3FfuYsba3ckXmns;m}moH*Z>)JAch^o z0yqmr(F}+pxHhP2xPJWFY#czQLd*c#0n&w4U<23|kP3un8=#(b@WAg`eq_)3Pp=NtV$ZaW&K#%HI(1skIT20M zIsn81LW8=g8T#Qa)U8f(b#3f4KcG(Xdc8q%)3h35K)^DsdVdm6lIXz>hZjRAW51t7 z@z}naMe*Do%mu*8CLl)F6WPUgM{qSHp?C$y9~Mn+Tt0@c9|(OE^Az*D@d0HBFF|ZGbmL5!D+Ld Hi9-4W820K= diff --git a/music/Learning/1_-_Very_Easy/Turkey_in_the_Straw.mid b/music/Learning/1_-_Very_Easy/Turkey_in_the_Straw.mid deleted file mode 100644 index 49db09753efa9b39840138a3d2e3f0d448ce7094..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 547 zcmb7Bv1$TA5Pf>0lE##R7FyT|Y3{HY>T3Yv?kuQ(PIWux=zQPgMtHkU6)@Ib0YJd%j w*JJ|@lLJj4Mbj8n diff --git a/music/Learning/1_-_Very_Easy/Twinkle,_Twinkle,_Little_Star.mid b/music/Learning/1_-_Very_Easy/Twinkle,_Twinkle,_Little_Star.mid deleted file mode 100644 index 261f5c7a12c100b6a5b766f3cfeb59fb1e46f138..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 610 zcmeYb$w*;fU|?flWMF1t@C_--2J$Qz{@3%e^2-<*7+B~T8t54q0|mHP`Gpu59O@Yy z7#aRYu&^*ma4`IjWCAMxAIQuy`2oX!eVG1NK;^8g{G1F9Kn6c6Kbw1MUTRTdj)JeJ ziziTsg_U0bsEt{`y(lp+MIj(FF)v@iBQrgN;UG|0fst_n!$doW4u(cM1|)_9NW=js z0%zDcOaQ4lfTRen%?6~}2B;d!SU`-T4cHXHt%Eb5_9A@DCjGfXfCI<>(Z!Pvks0p#cgpz9F~YmkUFPz27f1c_JzMc@o`V0ZuxT7aYoNi|T; M60aQfT>=Ur00dW`qW}N^ diff --git a/music/Learning/1_-_Very_Easy/We_Gather_Together.mid b/music/Learning/1_-_Very_Easy/We_Gather_Together.mid deleted file mode 100644 index 7fadac72a1ab1a55c46d7d08543299f051d36af4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 663 zcmaJ-Jxjw-6g_F0Vg-pfIXGlIkc}0UmO+Nv| z3PM48Usr3V2S^`kL{IP3=6QnjqPSPuMAtOEDMkczO>Ycm!7TKj4R3rsMyehULqC`r zw+la58l%PI9G|3OC{j4at|vB#dSI~4fh%4Sx!ELJCI6BH-wR^*8T1JZ7z_x=mCKWg zB6gKYT-p<7e-5c5Eh?e^xO(T%^bb}nKlEK3HJTL%vA4Lgbycqxc(Z&#f)B(FeP`_e zahE}t0Owhg6-~DJ#3A#HWAn=WX diff --git a/music/Learning/1_-_Very_Easy/We_Wish_You_a_Merry_Christmas.mid b/music/Learning/1_-_Very_Easy/We_Wish_You_a_Merry_Christmas.mid deleted file mode 100644 index db8360a165065473f259219026ea58345a7e4481..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 511 zcmZvYF-yZx6opTkyr6=-;w0jbUr?hCX=wp18`x%b`a09M|$<4^Ftv|FMPk>JNJA3B@GUQJOWe> zWkKILcIS8x`o2SUeQUcX1@zhP{wLXmko#&vAcb_ti*%7CPhLE|nnK&%ah9ZW?`D;x zYj3i8SmJ|HJgW)bq6*apFCiFSe;{Ir@P;a4Eh5c~P$||_dt%loNwJ%?#x!F0s6F|g z{nzHpw1L{$CU=DFHkVU7*=~2ee#SdWlmT5)1WbHcLCwk`!;oOW+F%E4*+d$fOh5yq a@gLPmO+dhrLG3nRq)jU+RAs$J6~6)1cZ9V7 diff --git a/music/Learning/1_-_Very_Easy/Yankee_Doodle.mid b/music/Learning/1_-_Very_Easy/Yankee_Doodle.mid deleted file mode 100644 index 3b9c32f53ed96c4c7fa5dd5e1d6152ac6cbb2fdd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 482 zcmeYb$w*;fU|?flWMF1t@C_--2J$Qz{@3%e^2-<*7+B~T8t54q0|mHP`Gpu59O@Yy z7#aRYu&^*ma4`IjWCAMxAIQuy`2oX!eW-p$UZ8STR(?(f2Oxu=m7mQ$H7~U&F-O7I z)5Q}g#KOui0My1T;9iuNm!c4mnV6Ta;E|c0!Eg{LtiZ^~Fww@LgQ3xe0f}J;60rk{ zIDi-q$Wm|-sG1HWZE%CI>7M|yV*+ui9YNMQBHIr)5o*T*kU?N05e#^sFqA_B#lZu2 zpa4UbnIAb&eDcc~4lwLsm|zaHy}_Je1H%MspcM_)Kv5tIC}zz7mt>e=2@?+=EPfh{3j|#F`R~N~~d^#Xd9s z+BIYUeAV$EWs4shy~$`_5a3#$%QpIXHDWwWc&0=iA1hCzL*)5-wIx`tttfqxO5&gS E8|ui>HUIzs diff --git a/music/Learning/2_-_Easy/Angels_We_Have_Heard_on_High.mid b/music/Learning/2_-_Easy/Angels_We_Have_Heard_on_High.mid deleted file mode 100644 index ac06510cd03806cbe00a1a321cdcaf962efafe64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1381 zcmcIi&2H0R5S;wDg-XbXQx8bw(raTvs*i(ZeU^#ZN<;!F2RKIhB3gk`DHo1Sr5jjND??TNe;l7V$-#&NC)Nf6 zG6FIwfo3J3{gh%dztJQV>l!HbRjYj}O-ykt4HG9DN^m8cak?2&cl#vpjRbf@W$T19 zI4m;)XnMd6YYYN1wO=NT_Muo~{904}DNC`hl5(BSDl(NOCZjR z1BYFI;9>p1U!Q!&SKvlY`$kSXj|_5St}!>jJOc8r61gY3LU=_SRdm#)7#!>fmLh~tcu~Zm$?%f-?6pdlzniT92>`AabfrQF? l1U&&Y@xAbMFZIK50qzOU%MmRFwFfZCSe+8qc@(7)8V6)^e_4->qotG zI2&14)8TAx#nbx<-pIw$v>Zh@%8_-U5@EDK7J{G-Lmh&uB48-MJBpB@kf5sY8S)vb z8pw%odPU*0lTS`k1Uw0Tyf>;>q|=U@BqKtuIg&V@4x}b%64E68J|0<2RmrAbMAL}W zO`E@)zMMZ{iyW&qrC+w85-vTnbQx+f)FP-V9EO}fooL^seUFVir4T{3sw6U`!~2eM eUs~@nlKEXWaGB zOM;;q=GNq#Z7)pE+SB$tgXgeVOa-yM9sn_W6z0Q8=UD&B_#-v0SxK z-ixmv7Rr_Q%HctY9`Qmq!mXG@i(AoLv0SVcPU8913T?5t5RWKhuO zQZOif)+~V8K@p*l1<@fwuwV+@6nQLkO>T`-M`T+QbwR8nGR=!_l3qfRR*VCNcT!m| zR!@Ohl&wW1sZ7%W!#imym&0i(mq|*_$YC%J7~VSpm2BOf_Naee&B%=z924@Ye8%Th z{n0(w=~a73;#Yr7>+2s`t6b6pkq@7J`0T@HA3p!Ay=0d8@Ysjf8krBT5zL3zh}P&; zl9-oVYL<|2ZMc;$9+)B!MI;6HK7x#n9?%E|eHv>eipC1pX5C$Opdz2($(% diff --git a/music/Learning/2_-_Easy/Chopsticks.mid b/music/Learning/2_-_Easy/Chopsticks.mid deleted file mode 100644 index d376108d85b595a0fe6ed2d53fbf04573ddea95b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1718 zcmdT^Jx>Bb5FJ>KD2Z8PWnpox4V>Cg5V8cx9Rw0hD6}Mj2+=@7V|hnMxyC;v|HOZ? z&X9Fj^dz}LjKwAI=H~0YnYmtnJOqFux(&w9VI`aRr5P__(FE8B2&q$!_sl} zOu*7vI?``UUEe%F)v@TZMt+`ctw+doZ9^@OrS23FDqRA)tuh6tY2_A{2g-P&- vpqpgD1K3QAmivckuna6rot)E$;P}`<)ySE&|C;BoTI4}9uv?KLqkA?VVc6>A diff --git a/music/Learning/2_-_Easy/Do_Your_Ears_Hang_Low.mid b/music/Learning/2_-_Easy/Do_Your_Ears_Hang_Low.mid deleted file mode 100644 index 5559e0da971ed767219b18a4331a2719a4221607..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 855 zcmb7Du};EJ6g{PVL`lpePR2O&3uqM@AQ18f6CkmPCJZ`~075h+VR3|}3>Y2CVjLJ8 z{0K+=3;(9xho!Bim^i$=^X@(Oo^x+gyEE(o$U=dt!R}0M=v6^5%`v_Yh$)0ZuRX?( zPE4~>I5rDr5y7RVWe#=_TxEzJT&V2r6M+%dD-HrR-<))vo_;>+I%B;xx*p<#m{X1M zyu3N%*=FDAPrA3d-9Bwoh%vq^S_pJS!BU7hTmdW_5;SCq%J>16b+Le3r^IjYB16QL zxlK{rChC_4sH2qnqdaODfdrY#$zZIN#`zv1mZ(XqwOI5uUEVt+XR84XM5rNAUEJF= z<5O|HkX&Nx58)0WQunL!VRFjd29QIjYTjyu^2I*OJB28*OGeDUwZXOfbk4;wJMZZyf zq&~np*Te*u)I;>po__b7d(Z#ebN_3$uR8#c0tQ&-q1h%qToH(Z49D*(vV0)sWl=6* zV3Xss0D1sA0}-3CJl7|lBlyI$dJr*bi`b^`kwXC&d-anu;kfJEw>-BaC}Lg_72)%P z=sd|LvKtVcvgx;Hh$Q$>PVAr%$MI?1K;St(RkvN6n2ykF95qmu8}$1&ffs-%xn)}3 z;KuJ-!WA*y4oqqRL>CEw;r^(m=O)zvp^8wW5FgQKO2a)B3KfJhg))K~JoQJaKHQ#Y zlr&1^;8DQj<+_rqvfmWJ(i)atG_W|PQdRYrRR8*F;T>Mhz-i;y)#drmUv0@8?%W)p ze_;;CyG3)n#+hSgj4@1Q)CpxhH!V;oAe1PSVk5Mv5SyAx6eNTqh2rw5)d+pJ5Iwa{ pYhHQ0cGGH$KWu2!!i&kVeauqh_#C$XKj#t3Qv?6C&_IJp@D5{ft)Tz_ diff --git a/music/Learning/2_-_Easy/Going_Home_-_Dvorak.mid b/music/Learning/2_-_Easy/Going_Home_-_Dvorak.mid deleted file mode 100644 index 0e69f372513188e376d672c4e43282c74f0226b8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2130 zcmd^A&1w@-6#ix=lh{8-T)A*DE0@i*CM2~X48$-g7_g9q(p9h#r4k`8a5K_{f{Wx0 z+BX>AKz#rybX&wX8NW04W=b_FMJfbbg!|odzVH0poWpc`uMYtfVZkY&+Z!DLc7#-I zxZZ>9AgFI{1)ISm8dhEJ9uO*o7SiX1f_?uE(ib+x>Aq7s_02Ic=lfS;{`^s&-yUB* z&nx)!-MuG!G!; zOMpCFTV6-VZLw$-!6GtKX!5^Ku{3|ce=#%pj@v6{$HUIz9p`t$DfLGEmq-3KzH;Mz z%fd8JnASLhsVchOMop2Gp+H$Dh-*L`0MqgURyk*t$(qH=Wn!o^cw9Ge#IVEJjdzTp uCKqPOv=yONjHgPfEJw`ch^u7e)T(I2qA9%0q5LMk-DtB$m+jFw5WfJ&4tJjb diff --git a/music/Learning/2_-_Easy/Have_You_Ever_Thought.mid b/music/Learning/2_-_Easy/Have_You_Ever_Thought.mid deleted file mode 100644 index 14e7ef942bf506fc2e6d166b6253f5cc0fc905f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1484 zcmeHGJ!=9%6db);$v%5CuiI2&fPt0gI$OP@*I#*rdEGEw}V12=mW|PP^-8N2Lcb{FC7^xi9IY;dysj(Ns@mAxO#)Y1p-Ba1`&xmXk;8I`>SWY>#(og zz|?(%piYfl-V=?bkpvnzv~BCOt?wnG_o-dCxa5$6=%8b;#TF%nERIRHju%`U{TYt- zpZHJWcQuWngM)+9z3+YBd*AWy!pVFJpaBNcLO4ktsp_IgkGMDiWD3csI_9Ev;W*v) zxzlzoQQTUFae9E_&R{@sV_GktD9%bfyC((b;!yeo1Q!i&7SEFC$qq+XqaU%^^pYr^ z+SiLHUfTZRVU7*Cr4|=WI&H>~yK;?{3*?>#9syS(AD8TEjP*AY?3iH3?9Y@wmElk; zhGgh#;MZ4Ft=iIkd9C$-_i?4#rcp(W_cCh8U!&e;N)Ks@dgQ_K86QwkJ&GXfQF5xU cQD38ydxaXvH)I1qb)=@19!1vqyHJ0XFCxgL!vFvP diff --git a/music/Learning/2_-_Easy/I_ve_Been_Working_on_the_Railroad.mid b/music/Learning/2_-_Easy/I_ve_Been_Working_on_the_Railroad.mid deleted file mode 100644 index 05f64d2a95091dac46f39bbc4862d8dbacaf7524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1702 zcmc&!%Wl&^6rDVHO0Zy+74o8sN|u|!vQ?GU?C64`RxJ|j961$KjpE9rqFtFLYEY|4 zNb#oZEAavR0sIL+V$K~VH&gpj2Z9D$jGk?u@raw`+)q1prhCj>`k{cS8s>;musg6vXZ*QF{~G}{6a z3Uo6DSPE=KOPZI^!&hetZQ;m=Bg?fBT3Q)3;2%mMn(!bDI0ptS#K6q>Rbg8659~w& zlAiG|DG{kYQzAOZVFbHCz8X=u;Ljzfa|dfNU#nsEMcHwP2JjFT(EUbqQuFMa6>A&F zbUo(%Ui`CANLhpm^RAPlbu=jfd~|#*j3aGCC&$4dUOo;6w;X9!iS9nU(UrG=zC=S= zW|t>fDSqBbrt0v?eiesB+aHRezW2c$J2fF{%E2IAvU)Z3>)ZX1eOAjxNiyY@QmO@ zf(+19Bl({VT#xMFE2x5%B6>wg<2vk|^L<*t;2)P9Hh)qpZaN1IZ z@>VkJgsP*y93V|A5zB!ckeNSzcPLeDM^H^cC(`Z}%Qk`*&Zu@U)o&lF4wRi#ee-rOkUK!f5}F39ACnywBw+S7@RaoQ9-tN^57v)P*-i57DCvA&=w3R^q|K;iz!M9xp-{6iKmD!;3N15 z`X;_f{Jt30^su`wxI|JS9B-KY?&vwUOYRU5#_j|M>e}R z$&+m1ov)H??M+wLDc*_pEDKLcJ>XuU6-2CwNMnHViwU_DQmF+f^}-`wSwuEg>qgq9 z8NE=%HlC`P7NG40`1=(@UXkwkP9$v-QPbZOp;&EUCUUmE!y8aag)*R)MF14CA$%r$ ygBUO|Fo++PF$GeL$=d<~*3b+ZR)Z4dked!`iU8OCaT#A3|3IhLyO?Lwe}4i6!`Qe0 diff --git a/music/Learning/2_-_Easy/La_Cucaracha.mid b/music/Learning/2_-_Easy/La_Cucaracha.mid deleted file mode 100644 index 743638dca4ce13df8593929b58927233fc563345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624 zcmah`!Ab&A6usk2QHxsi0r9>-Um^@PgIp15lVM~~JBLw96h~eo(Q3lMKna2w{D4;d zLhJgG{$#pWZ4487t8>o1_nmX!t2J(00I&@j7}{g4p}NE_Akp_+ukS0bCw%3&T}ZTD zSG67AQ^$hH;mO&hIPLTv>R!Jk^4X(&HZN8Ok}Jc=9PB`Ht{d?eBso}KO_C13_&f2f z;b72K@Ikt<@3`LZ&hNP5MmhZ!B-a^$2}E`%@nAe8B8LnzEs6)(15Pa}XNR^p^`vYy&SgVhfH<(l5s{ja zGN`<@tlIG&m3KAB%Nx@<$*DYB`;7(Uwk`Ha0SH?--BCKql1Df0U-m&+wy48q*1K7f z4&CcXl1|;;11C2iL(-MIo_ z=esncT}u7pQti@xG*If5!!N(gqX*jxDxv>9V#pEkcAsmE)@xL~?Q6teFhzBZSJNkq zNrhBY_-L8?M7adf1Q9S1fN1`t*i`@I_3#C95AAmWK8q0$;R+75+&wq+o5=z;W2$et G@s#g1Puw#A diff --git a/music/Learning/2_-_Easy/O_Christmas_Tree.mid b/music/Learning/2_-_Easy/O_Christmas_Tree.mid deleted file mode 100644 index 59518568d7723bea100bc74f5e485ffe1f0e5f71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1098 zcmc&z%Syvg5S=8w#RqbWt1evR3u>$>6&lJ7wX}s66uQuzffieo6uZ$~T5yqNy7LoU z`U$%8GyIb{bDLZeMK>z$&dfP8XKpwd3@0N1D1rt?0S3eQ6;^i;2V0Eq0*C;FhSd(^ zdsWLisvKAq>k#6zf}xi;AU@Yo9-kW9H&1WW)v+59&=7>F?)7VG`IvGL?`pHy@PZSjrr`yF!FU-~ zj<|=V133_`J57P0iIgCX$OEL-odh&VlM}l%?&4H~Km&nV=upRjFz2f7kX%OnSN5=K z(H$+ktVP!oP+o1K+LHRHaY;-MQ!mVbgi@bFS$x(gFF{`7-#>@SnbuEoCb~(^DC*zj zjAwJ!pWVVUKvc(9E$Wm|nY73j5iD#ZYDCne;z25~L-KVY8Cy0`kMnXSUG|eLAw(AL bwaEzYSXg*Mm5M5Y)E*^hOVn>z(!cu-cs&;0 diff --git a/music/Learning/2_-_Easy/Ode_to_Joy.mid b/music/Learning/2_-_Easy/Ode_to_Joy.mid deleted file mode 100644 index d09a79ed437dfa0ee78d651578d656c1a345ce9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1009 zcmc&yyGjF55Iy?}D##6178cvu#8pF*A}kXkBmox`QfRr5V4|{tZ7j2bg@wh6Kj5e6 zpZF*1+T-b2L z7C=jof$Yq-&FwX0=O)v$Q_FsOL$+7y%}b^`j##H51L26;U>Z&1@Y)SVMN9Iwp{yc^+V-%S=Mv<9gNT4z+pn|CnYAu!*Q5ndMtwvUcpGTyc zqq6>wy{L;bcFT(c{d{qJwwBN@?s##77a;WrX`7yrw1LFqLiNZyP1$LF*Qsc~YSP@g bbmPYtx60{ba*Ho8Y2{fob;VnCA}{P6wqycF diff --git a/music/Learning/2_-_Easy/Oh,_When_the_Saints.mid b/music/Learning/2_-_Easy/Oh,_When_the_Saints.mid deleted file mode 100644 index 5c47d560156a02054748ef219d7987d8957e2531..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 989 zcmb_aO-lk%6g}h2NCokvRg0kc1vZ(Yi(z=f1S&L8;G%X3N=l(Ho0jU%<&!op=cm*^ z>7PvZ;xs&Tf(m!%-LG@*xi9LC1^~)1U|NWJ@iVZN`snZ!hjqpKJ9K*oMlS?c-U?mwy0-;Q>2(c{61zZ&TzDV&To=t#fdki*gS;S{H zpV@K&Iq;dy*V}gcL#|pB!*~yOe_nQ l`SW)F;8g_{ZQGOCtiElgo+cfVP0v!_$f?kx-Bc4IY#b(}OS^OzYVDya9u~TEOLYr->A^!b zn?i#v?B?Xj|B&20=)sfV$v-0gfcR!ITNefOFuZTxeD8bj&DY-V9RffF2qOwExrBw1AIlitE%g5tM@qpg2V zfFaOTy|UHqcL$wUM!UJ$oGu2rvamJi^bd{Q<4*t7*gih$!6*C%gAmAGv>?+;kj({< zRoNf+ggGR`AJ4jYib%4G26#xeg1HrlUWW`;6J|x81m_C~;<cAwVI@g(wO!F2uW0E<{m?av}cYdSNqk zVPx?pdxCV$mTj?rBVH11nSaqMKqDFmvd^NYp^wry?9Oyp*^G1eL@wvJ2vE}Ig!h^M%l)`Q37 zKhi%ezS(??R9QZhnR)Z_`(+M~KTL?|4z;M;`f_+2pCNihMdw}^&E|15HRka+ zJfos@H;hll^C*65Ab2!<@!EKPI{kbU%_fGm^TgV*41K70+wHa=Y*O*Ev*A3W;xSdy zpgN>+=ON;ai}Ul7n7)JW-XDk2#mD(+XuOZdvk7IKQ1Px!bY(1=gUn3;TmVj%M_^2V z#Wui}f`QZwP~!>k02~3%ib0o$E>F5VbTyzaHT{(`z%6D~%8j4CjOdrf7=jCyVT`Fj z&3Cv$xqQjlP|#44iUz_Bgi|z30+a=)s^4|rL6Xw)fK$qR>GP#e(Y|o|!YT5h;X_N` zb>B#|Mxv!|6sa3U>SvuVoRW|8htxK{Vk;X77y+obT5fK#nu1eexu#p(4!Zu2KS7tH z{YI8!8hyfY{P@#y;iVgtlx{8=-VoXN*K-ec9Em*GafH#FgPbf1ctRdIw`Sa$*^~TUtt30N zQj$H&HMdT4UGCaEd|c@XCsuk2D&kj@&8gXN+mq9^;kNhhxA0dzxVZ5x$lvu7Lmm(k diff --git a/music/Learning/2_-_Easy/Sonatina_Piccolina.mid b/music/Learning/2_-_Easy/Sonatina_Piccolina.mid deleted file mode 100644 index c43c221b7d695e8b7d410093d841278731f1bd4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5528 zcmd5<-ESOM6+c^hQ``O63Pe?*NVU~q$90I;`{A+UWjx#UWSo50a1{Uc%aY+gv1*>!5@LN{C?-oj5mZtTM;5G zt7UvOgwQsl}t{Y z9!s81rlqwUhYi@ZpZ#%=tS1g>pwK~ zqwgqL-T&B15s~K3@&>g*4FWwl=Z<rzqN3WYp?<>9KgE^yymZ0P@4ad0AO5JcH~pcZ zKmL)@zQoTA-S1KQ)X2D@zdWn-=^MXS`pntyD}DC)zm{OOtN5&*vUqCu(_o?gc3t_W zp?fVuKl-zwf8SEt{laezUEG(}Xpq$2^GIVnp6C?^i|%;hIRQ#Nt^_(p%d zGE)I-J)U@}g=EHJB1u`6B{?UHvLN#^Cv~aGtW>2UWhu#7Dawo#9pAL70Jnz zoRLYH5KG1-D;Y^kO2(jRR8Gs6<&=!b%Q7q{Wk?3)OL9V5UGei98>`o()%*O?H{ZB+ zy?*1{&9C(@U0u7r^xgIASNg}~W08X=SLLA30bRpyz3Tu~d$5Y1p|OKwPYZsrgF)~H zB_80!a~gMVY&p{76&iPMZWXY|U*0{vm6w?3T-@2fR?M?s+gabTvB+KAX>R3!u?e=Z zfcVXO#S0WK0Gy||>Y=#mp*W>-m%SIE$2}gnal7ah#sjfp3SvdbmogA5VNp))d;!4a ztujQb;}ETaTgdD+)Zd3oHjUI6+^j;p6L5(pXgD%arE@e2S2m!q%{jQ+guB!Xse+zq z{oQ78uuEQ=0ZL=v;=;lr%K&AeBh3J%u}CpMDJ+r>YOIzT7F8yM zsV!;3uX;J!$YIY3ZRBYq50D+YXcycSoO^o(rrlv&q3w!ihbM9f=kcRBIM(i{ zmrD=5+tl)Xa8$=m%n-rWX_>{^~Pz4!XRoy}HrcLsP3UWd8c6)!i3BdD9T zz+8R-5nyoaITX7s-pM17U31HHc)&z>RuiPE_9whtw8=a;3y2m&Tc{xr8g-h|sE4L( zVl;a-_)0HqZZQv2)IDX~+-@A*fhgoiLK8{AFZsPgwS z!D8(wP7dS5fH{nlF2XoPu|#+_Ou)jlMFER2_v<;rn1rF-GVn}Ao(gplCI=i-r4c4l zXcNP9fn!QDKl`hj5Jw}TLMA!Nc7fo4)5M|;lcQ11_MCVbqg1vss#rYBC>QNpkrSOb z8bv3HV04&=_y=!-&Jk8)q$fIX6u}%Ln3E5ByrPYxYY*l^yA!YVJ@-35C0?PTp%y?s zJon#bJM#52#icEQdZXJeXS5ZCEXr+kIUg8~-&tOHM!eb_(#ZnX+CK}%0#Y9_N?@GV zyFvt7WJSE{3W7p}zHhT&oDXy;qXx!>K!-9=C)GxvL)+|ID)06N*J!`uEsy`8ytRz^ zDIBi)7J}i*DgVczsw-Z*`W8llbr3^9~?2queh0450bUIf@Z z9-QmvO)M_?7J8$qpG0qTC!uT#z0sY*B8T4S;t}v|G+P(#{C@z(SYM2M0Mh;{4xZhEYfA^I&br z9p<@)QAdM3SHu~)+z-y)CV){U+rpB>Y~fq!uvD{Qse)rl)e1{B;@pQx+3lr@Vat>% z1|d_bm~2d`VzM!%N{p5&Fbl^8A62V=76yrxt!y|tHW+X3?#@e8BC6;LPW z(!Qe%udWP7_R{_&)l6b*iVF@OsG98tKHZZjqWuBzdX7+Mh&n?Kt?~j)@BlBvRUV)?pjdZ3xNq-gg2kGjX{Rue6pT~*G&>t=IFg_fOLQZfQI>0_RLOogPQJ=%6^LX^U>Zdjn@O$T5 z@JD=WbC*}u@+}Acupq5hf_q`jz-Mx@MVwuOPy$ASPyvRs!K1o6kE(t;@u!pe=|so~ zPXHQ&9GI438h_@&^HQgWFpnw2r+YX3k%KwgG)gVGPAPpvbp~4Lbget+j@mDNvvJda zakI5id(iRk`t8BculJvN_~9*JZgd=1NY-bBX`dX7?k-vzNh!SgEi|BP+G$I~e#;}8taD;3{D>PeQ*+%~FzIw5J z@7)^LnQn{=+G^afr*xKo16Rild^>!_H?UyqF4(%W67O+R0%k=4MFs@{1qL=%X3I^= e@ko-hvz!}Bx#c7q+ElW0lAPr1EZ>tlFX9)mv@wYQ diff --git a/music/Learning/2_-_Easy/The_Wheels_on_the_Bus.mid b/music/Learning/2_-_Easy/The_Wheels_on_the_Bus.mid deleted file mode 100644 index 0a7e55d09f7b61ca5b34203f4aeb2370cc8f5a32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 636 zcmb_ZKTE?v9DQkWtrp};rw$I89Bb5;3Ju|;LR&DPm_f%tgDpx5SsYWrA!FS7G1_mS zpU97J{w@unkht}hd%t_{_wSwS&1V4W(4ZS|z37#q8_2lHcpDHgghtT`$4Ev;J{d->a|HQZQ_+Loc%Om0%h^Tn!E2{sGW>>DLTajLFu~)F1zRu>Mwf_JR1fn7U diff --git a/music/Learning/3_-_Medium/A_Mighty_Fortress_is_Our_God.mid b/music/Learning/3_-_Medium/A_Mighty_Fortress_is_Our_God.mid deleted file mode 100644 index 9dd7e519b636c8e8ccc16fb4b51028c790d6b267..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1598 zcmcIk!A=uV6ur}S1S)2TaRJ5!iHSrbFde5Yi>6K)>y)Gf#GP&_}#^bGC`kyh< z!~GiI-QVr;RDAlS_glp`nNO1UeSkN0_P^^L|BwZn6KwqJbrIut@ATsDX%R2K4MZGG zVmz~QuF;#+jmB4Az1)5`S=iXy#87qJ7;y^ti0Q@{pmjqxE_t=R+WyAwnQ6RlrkLt!a`Gxh93H;UoY<&_cZM1nu3+_A@CzyB-BR9d}Denp8 zoms-Wt-LE8&sN@;=(%@7v7mIyr-o140n?moP~11^WqBgjF}f0 zusCy(@ZsBJnsxioz`L7oPqLOSlL#}DW#12CYAY2DD#<6R%oG< z2`l%jTkOYzpERbEts47{vAo#W`a diff --git a/music/Learning/3_-_Medium/A_la_Claire_Fontaine.mid b/music/Learning/3_-_Medium/A_la_Claire_Fontaine.mid deleted file mode 100644 index 6dba42bfde6a6960830716ecbbebc8d2aade205d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1156 zcmbVLO>fgc5S?}6(nc*tq=|~eA?l$L2O1M%f{PWhIH8V64nUDWNR?U=NJZ%(s<VTnjX%JpC!e@g0*U{@PcbvQ4o#GZuY)zSZ{NH(JG*Z0^*R8s1PoGXXz%sk0) zgEdvVUefiu+qd*>{Wby_RlADBRaj>bKTj*l#xle&lo%j>oLXDIBSQV$PojH`;QG0Y z@1xmxwkg+Vn;%k=_vt_DX8k5U7y8oYhxEIg`#wtizRdXjeck6*vft4$M%072n2b$P za7wDGtw0UpROZRio8D=`IXLMcoL03fI4C);$?yi6sx9qyPrChs<3hVxZ^BoA=w%C{ zRRy9;1Bf!Uxply87U7jeUHoKZ5#9=ZEZRbB3;gVm0}D9!9$|7LXjHw{utACK^+jS= zWvdz}-qWE?TSO*~O=Lp2?dSij^Q(N^!*YfeSS6ALg6J;$nRX{rhsX}KF=^Ey9R~#+ z!#fQcr7SMI!+=+^s6JX22nX*dusI>)XV|m9@%uBo9VF!fUUlDLANh+jb8;1(E$H6e zpRUSH4>37B=XiLI*E@L$>}K*3Y7V}Hl~(ul%tM&_f94;;H&iPy2BB$x9JnU1u>250 zi~D)k0&vR+7NIaD5~WW$z|(uT_<&Dn`*SYfdCxyVZVQ}wo`0ZjQSd##&>c-i)8swq_ilQW zx<}nmLP(HL131EfcLGG-H*7_WAca{1xyEll!Q66IPDmrN?tzT^a4>iv64*&oF diff --git a/music/Learning/3_-_Medium/Au_Clair_de_la_Lune.mid b/music/Learning/3_-_Medium/Au_Clair_de_la_Lune.mid deleted file mode 100644 index e6bd5aa5a578f9bae9fef7cf399c98b7cb57b126..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 963 zcmbtSJx{_=6uqS_3eh~{R0E(c2Za~x-KI2yn)M(!n$LF?PtDM;t`vMDPQye03 z4^A{tcZN|o+68rAPyp&i-+8w{oi6m+7bv}a`}EjIe5s#fn~s@mWwS9|Ix%l;1ZyULx5DjD)Uuyc*SM|>tv&jyVe5q ZlX3ooDp{?f+{2fbUcr9yU?YbZ$2aYK`tbk& diff --git a/music/Learning/3_-_Medium/Bahay_Kubo_My_Palm_Leaf_Hut.mid b/music/Learning/3_-_Medium/Bahay_Kubo_My_Palm_Leaf_Hut.mid deleted file mode 100644 index 2276dfeb546b5770b08668d60dd6f0105d826583..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 874 zcmZ`%u};EJ6uqT95X96tF*x)Kupk7-M=EJ)U_d+QNTdou8Hmn6;=ouoKf#et(8-MboBzWnEROR>itxq9}|rqEd;3 zMv*UA#$R-o)iUKHitaNw_4WKMt-$IrdyzV7KWrd`Q6Nc?Uc4DUjb2T6FdZ_T6~-yI z&JAJYoM0Nv2G3@%bKUuKDIE9T#t##J{1TW|`XUN#Nt=8?o1$FN!bZ0)j539;3~AxA zz(c`f;DB-BmP8u1!L*rip@G;2!!Dte@3fE%S^%xMq`DZO%T7nKhP$9~AjSw6U}t(4 z;x3m|9+l9B7(*3MB@ZQpSBB~q`=vI-2&RC8p~%w)NHV7vRN>W6P#QI2%ZHtldws_D ziqtys9`tNqY$6|0GSFs@5D#hyEnnBfZ{DF3=&K$+b= diff --git a/music/Learning/3_-_Medium/Bridal_March.mid b/music/Learning/3_-_Medium/Bridal_March.mid deleted file mode 100644 index 4f5f2750e05999cbeabfeb928824f40a6c2ed43e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1525 zcmd^8%Syvg5S=u+#nx&>5L~$E(p8&iABKjIP{9`LLg^xIghHzorC@PiBQCm3cKr-L zLBWslFXGHia&4=kVmIOJ&mbdwg-;zsWZ` zgD$Eure?s#Kw;_{N{m#drVo09-mr6(Z#DOu@Cak@P4^ydO_&LMLXfkFvyiJ%P~%An zC+ZyH9ON8#90fKZHX@?lB#N3$31JQ)mWztkLM9P?>(s8!M~Y_?ltmO-60-@)q)BKb zM^B9Ci4h7cn4kfQ_$DaemUI-;u@q6R{IhbCmnZ9?&XLX{o<>;v-9p5b$=i5knZw@M z%#qoRkB%$4I|-if^zxDff#yO`!mo-i;8g*<5`G%I2jeVXWPM&*p4KZ1t?!i1j}nlU zfhXV@I2UPErhy6qQMXu}GX9*UB3hbv;T30`yzP!Zj)9j=8wm_N&G~>+K5<_q;j>c? MKKnmd8vb8i0R)nSr~m)} diff --git a/music/Learning/3_-_Medium/Eine_kleine_Nachtmusik.mid b/music/Learning/3_-_Medium/Eine_kleine_Nachtmusik.mid deleted file mode 100644 index 645280e171ceca40369a9bef74de66cf2c727a3f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1453 zcmd5+U5gT76h5QQre-@4WnBbo7r8`WZe19Rh|DC8l9VN+YgNPK?Fbv} zJ9Lp(wLihju403JM3>!k*MG3*=uEm0v=l+YaL)UjkLNk>d$3U2TqmLhlE~|$LaDQb zlS$*3$7JQ~<#_yRY$YCxUjY!5l@mmv5XlmaOES{%8<%}P&lx|BD;_=-y}mbJ9n;@; zogCvIYyFA+esW^v@TsZIf1cXjx2gT`g~pd0A)X<4WmySOn#SJXt>(kcXAz^`S_iDi z%0jl$YIN$4BZb_x93Y>p9EXU&(c<&wgRN5YNh7jC`$VH74H^a0uq}KW-cbV>rgp3} zS_lz7X%qz(C7JVtUVeKK$+fOdRtKlyB0MvJ*tRP4wL#1YRL%29+s@%AiEPDccC+Lc z`SSZ0-8>wF3k`%a9LgL(3f5C$6eBfFu+6)%S_W?;wFwKe7D`uFlaurM%qS{-7vm~_gbO{vl^h&5$66p$@^d!{dX`-`1 zF?#z?%0c0kmBl`x_*IS{`Hs-<&Z9duEWsYf=k~KTl@>@F*w4WA#>Vf~Q=(6(k4Vxm zY^QJoW{QTVU2l+JuMN!Ht=lQA5L~~lV%bcUBsVD8DlXAQxW(aelH4ab-zUj^9Aw(( zFggF7p8L)_k)4`78SaO0HLoLf^4=_7`T3-no8vn*Tm8rNi5b6o`bwp61zx6I1mjc#;~=< z_CUh!MLZjSKu;b#$;qof!av|ISf6>fyNwA)Pm*lreP^C|=9zh?)au&}B1)4&sbQ+s z_jibtpA;TWsM-}n*B9pI^*Q|-92r&15{*A5O`))^A_;%t#&Bxr@+gIOhxoRhnz#ro z%w+CM-?pyv{p#1qR^LVT;pyM@^{wdcTd{qgj(EQPBc9LyDbL4#UmqGguOCmOJ>UH; zt=9NOVZQ&aL#q^~GPj%0wqNE}HuoBM)L~V-fOk7oRc%bH;Gn5mdfDA`_cveUYO6Pp z5x?-*x%F4gr#toLuA7^u??k;3mwFiiyN7Qp)pOy)GWD&}OOF#ir8fiL45^IsO^2~v z%`-{yO}ld-4_2kK>sh4wWhWA)jUHvaGDAfB0U%R;0ufI4k|z)noXrQDvu$Jx2U+Z~ zILkto$srRVi?b{yjBA!FaVbE`fSBUsjl_y2@+-@-3V9W-vhXHLVm+mE7x15Eo4 zGBE_vzK6!92lGkPp{rflfaA2^dJez{-H&+U@g|cu#U}#KV4)Nb3pIAr-AeX}_lU%q zdn9)a|2q2nbPArFqGSSnfr3KSA88ecS~@8~5t>>>QiBp6q*cO!A*HH6flCB27-Dc_ z36ZsCUk`=xTA_-S?o>*h2kvAch-YaX%>;rTA+(* z;7>N-R)aia3}Esx#$Zf7#^e*7QZ(xXF&0wxWUwsbY+0By%AoHmdaxyWc>p#bASc0X5AW&ALNwZz)dNGxNm(^XM zP=G2RYRe>}Uvwo&;{Fz*YmvV$a?0Tx(b2+4JVTVrU-s{Mf#!4u9=S-ex80f_O*yYnc|KuZ!MAZnx#nQlTu_|v3U>Z{l8~l=ehD2mV+@ViNg;{ zFUzm8Tq)s(R!TYdyUUH@O@g_0lj3a?FsJ*PAYiJK<3tChRR&c8zhNpYu8_FQpiIDE uV5EIAnAPils=k_V)zI*`rHM8E=Bx-3ggD(^m?pGCc$H&A%6ja{u2)X diff --git a/music/Learning/3_-_Medium/In_My_Hot_Air_Balloon.mid b/music/Learning/3_-_Medium/In_My_Hot_Air_Balloon.mid deleted file mode 100644 index 2afb0d3ec1c0a51b2cee8737bf7641500844becb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2259 zcmb_c-%ry}6h7V7ZJi@EMiVu}zzZf~MuBam(u|V2utgRFYz{Or!LWhRkVs5;kc1YI z9}hzN7hv?A^xYRsc<^2S0{sU}eDFb&dG2j*GuRMHd|1Bq^qlXU?>o1*R9=_^fGBVf zjzFor^bCNTg2rkGFLn+{(om{jN=btlNbuq%fMgOx4jR*uNa$)D8Z#j*ZcK!u*9{NM zAKss}I*Hf+xVV2vF_!q|;*%RLeo3!~+NW<+^T%n5u@@^8 ze-X zMSueU=g~Ac$q+cPRd5p8@n_D#B|0_yxyU)uB;b#8dN9@lyrZpxr71hF91YAKLj#UR za@mau66rK@z*%Z~bKX!v2%fC_%sTRD+15OLf_?A5$>wM{)qh@OgB#aV&qtv3pI9(V; zUsu?E&_?MfPhR`~FT?uvO>>YkXvH*(l(l9>>d< zT`l35ceQ|qSBo%StDknWaPSH1yErax%L>@ikkxIV9I>6vI=T0vuSmF^N;!a!B&R%mN5meGmcFHBUtPPI6IR9 zTUO~fZbqx6C(}#!k!{AKmyo_CAXjnN2be+BDplGT^_M+8B$|1MB$cKav(14lX2?}a zVD-9%L5yQ7Ykwq8Rz`g~gK;}#kHk3h_>miAiy2_6>h(mEu2MJJ-bZBtIkWgV`~}TU BtZM)O diff --git a/music/Learning/3_-_Medium/Jesu,_Joy_of_Man_s_Desiring.mid b/music/Learning/3_-_Medium/Jesu,_Joy_of_Man_s_Desiring.mid deleted file mode 100644 index 148ac05c712fd1d62d2b76c2b5afdd7cb20602e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1135 zcmd5*&2G~`5FRISpiwGUNC*x^@~NlD*h~IQtjHl$ai!(}>VcnAr5aj6dWb+Eafq{2 z3I`+1Z(IX1z65eSb}?YuWa1$3-P&-@*m~#L1fkS$9qb@QYQSQI8yJxjno1F9~#LY0D} zJOK6>um`}4Ez4=#<5qhp2rP6}{IXR*=RgHPX6!SN{~MtHguA!bR-9pUZqCrzRMCb| z9fF1~h>;T}q@kt&8eGs|#vZrmp+$6WDH<^a9`s+PxtJhowchj%>%F!cK3Q%zZ!_WF z{kqNh=CA(gSKyeMR!Qtuygs){OGI-qnG4dBX8Yrtc@v6gzq<;HmNdoU6)alPVxJbC eI{egur6WFsQ1n0HxNW3x*_p$0XQZ%ID?b70y+KO= diff --git a/music/Learning/3_-_Medium/Joy_to_the_World.mid b/music/Learning/3_-_Medium/Joy_to_the_World.mid deleted file mode 100644 index 9e326c5ecf7498bbf4adf32a7562af7756345ab2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1315 zcmbtSJx>Br5ZnWfDAAm;GRA_!T2F*vLC7OWIHMFA3oT8=k7z86m5oPYL16)%r9Z<` zf7v;6?`}^c5EHw(*}0kBecL;}Iv0_mIFc_&@A&=(Upo>#ExO)X#rJnMw)_o$8$`+V zmPHm8#B(G%DHL)ma}u5AAde37#nn)v&E)^wqeS`A(e>rkLpeCRJIBuj*IR<{$#uPX z699OwSM2uh`uAtI<=)=zo_vUmjFC}bMiLs4FaXg4(KRm;wm@`2bj-7a9RNz(=G98u zAX;V^%TTcfqb5NUr3Q5kfHpN&Oe?VTrCo;=0-KmrnAl~7z&7`uH5ahLE)}R&?KH8? zDQq+*KrH<5I|j{u|EG@{&ICwjXp4)qZTwoKRuXNKopO1$-RTC%o3 PA1roT=T_Ho5}Wb`TrEkA diff --git a/music/Learning/3_-_Medium/Mexican_Hat_Dance.mid b/music/Learning/3_-_Medium/Mexican_Hat_Dance.mid deleted file mode 100644 index 18044a0006983917666bea565bb01bbd0ecaf154..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1598 zcmd^8yG{a85IxK85+LX`Ru&c%*0>@830bm*gojXQD6}L2#b_vqJ&;grLBU2pz{1jx z&>yh2^iS3qcDXEq*lO(N&N*{t?mX&^P76R73RDgCM(>7RCvf{QU2FsKID|s44PES} z4C5$yU?h!0xaV3}-HX7z2!#OmRMqZ3hVSfF)Ochx$M=27kV_)EE~2pDsTxktaiX3Y@~P?9cy# z`cmYt7U_poHmd853Uew!PA$;q8Xho_lr=_)WlAI?In{tnm1TZWHE`t_ywUbYYwb(9 z{CpEudDXsqhe5|TJBjImyaH}QQQ+jL1;ZS@ypwQJ+yGJ&2*JrPm;r_pbN*qLjzd=CqzTG$_AEi^h3r23{5qvap8b4MydJ*8A7lnZ@kaZ-$`kkB=EdTz{sfFWnQs69 diff --git a/music/Learning/3_-_Medium/Morning_Song.mid b/music/Learning/3_-_Medium/Morning_Song.mid deleted file mode 100644 index be312912a9f9335f5971a2866dffaaae3f580620..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1413 zcmdT@!Ab&A6usljNQ&{IRf`sWflVbiqR2x>93>Zpi&_d=M&Ux*o6w?FC~fR7`h@zE z{$x7WsoSI_LIkxtbKbe1N%l(-YCSqHpQC0-zaafD(feK#@T)%7|vQs+-V9Yk<&so>}w} zrpmWhqrrp`jpT`Bo`#v1YW`?nHEy|vmOTa@K$$^#_6X>U-*Bl0V%A8N_^eii>F`}1 z&nvuro>}w}#^*syG?|t5nE-r1Z5mAgJiVo4@QsW`M zzEQ6^Dl3;Vs(NGUx;mxK07%Npd7@N`6p4DvLsDcsLA`qs(0g~HvD>xKbT}AA@Us-) zFJ{<&S{62bWh}7oUkRJI^<3DIZQl(O?ClQt@MD-@cbyBq{VHrc`8}}hi-G+yLcQs* z(TG94X!7oZjm@VMc5Q17T@K00Ids&NWo4L5IEt*qO7*RJqxNWGabbR;-yR(jT5U#U zWt?2oB0rWQKmM5fq)C1%LjEL?f4@pT#_QLqyVEi$;m%rcW`%Q*hU0ADZD$fO$(@~Z z8h|9XP;^#X1wlecARH>thcnp)t3$3~PJ-yHv<#x-i3X^4IQEC6H`A`EIZxc8o`Ga1 z>)O_}R+09%S~j;*KBeze#u()Mh7YXjvM=RLeZ-@q2X$M{pf=Da!mWg%MsTl z{vQ58=nL{pND_H^(P_4Il7e&UOnGXayll~Fw6jEQl_XC!04zAGA<&ujGN5QBP&807 zpkzSNm=XY>XrSm!(LvEb(Lm8HPy!&~X*ZeSrjHm&P{+-p`SvHss)<*e?rAbTa=&QW(etl(Zgf&5P;SaQAs1$oib{)(pqF&M$g3tf3! z4Z@OVur33V3)VrpT_AVtl*#f;f>C2^e=&Tf91Xv}AC0r{@Kp-4XuQGzaW*hFjFe}q z*}QV`!Fx$~SpkG=;DO>Hr{Y-)+NrAkkMRE0@V-?{GgpC@oakgg-JB&`f%agk{J;DJ D{VClj diff --git a/music/Learning/3_-_Medium/My_Bonnie_Lies_over_the_Ocean.mid b/music/Learning/3_-_Medium/My_Bonnie_Lies_over_the_Ocean.mid deleted file mode 100644 index 329683b22c79353407bba19833d1ddf2b38ba581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 685 zcmb7BO;5r=6r56)K!aK1i9`?m1z5Fwr488x6Wc@%8V-6Sp^DLPAl{)jj_r*jM}LAx z{AKG~YD*DA;%(l`%)Hsz{$M-;P=W@%i2h*uN>dwhcEtGErDe727gpW6qJ_cu2~e$q zYmg5`y-+JdJ{E{B?{wz)kmo;o?G#cs?q8nA@1{4Lj7ZEFuLzGok?~_vr1}|WymS*x zg6Z(h?EBX~)>sftXS{|;hy~^Xh`I`N3AhTle{4PvvNM?@k_@~|KF+S;hdQx1=<_?r zdOzAKXV6n=dvwJU5#}DfJFCd1iYm9k(@sNB>Gm2)O52wHMLwpcA#Ra<*rF+^E4IWE zp#{VZIu|wwbQGgQAf?8(SRu6Yn@rVI^5#aa1T>I0*+e;cM*i1{hS)|)4G}vk9Q}bh TvrU?AV^<|`>H6k*hU)GcPUWmG diff --git a/music/Learning/3_-_Medium/Ode_to_Joy.mid b/music/Learning/3_-_Medium/Ode_to_Joy.mid deleted file mode 100644 index 1b45af5c74802bdaf8f0cd9527c674a6ca45131f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1122 zcmc(du};EJ6o&tnmI%RI65i(n;Dnp*$u3O`lky B9N_=} diff --git a/music/Learning/3_-_Medium/Oh_When_the_Saints.mid b/music/Learning/3_-_Medium/Oh_When_the_Saints.mid deleted file mode 100644 index 2363ccfa482b1c54d2edd7564f15563e103f7fcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1153 zcmb7Cy-vbV7(J!EMhNB_Ck6+e0IEVLq-id}L`Y=NFz84EicuMeJ9J|#abaZi37qv! ze3SZpX>E$61%{iP`~98ooO`>y(Ez{!H0TDpy~#7(EcnwSAy3au(<+^rCG&y;IU!Gg zd>&GRe`gq(!XfT diff --git a/music/Learning/3_-_Medium/Old_MacDonald.mid b/music/Learning/3_-_Medium/Old_MacDonald.mid deleted file mode 100644 index 3c50947096ecb6dfaa705790cc5e04e59d28dfd7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1138 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 c1|o7&-KZuPA{3)*!;73XIK46ppgjJ-Pth+s zXK&$LF(lf}&UT8w4Qg~5WD%?r^oSYp);5aIV^Na@EVFjq+>GL=8HwDe%hmTPFHK_=1EdUegzZN}RYhS{RT07}5LQxx)eZ5F)!6unbsP_Smuv_`8778Ym-6%c}8Ak$JPL`kY(f=j{-WmGT%+B8jM9-AR1 z4fEm$v_H^<#I>>A_#IvO8{?Uw>8g{wcg~!9@4NS%S8H@tBJz?z9+7H|!AJaAWRLGk z@{?pd{$eu`-;6(p;Fsk4M9W07Kz2hy8a}%zic1e~ll^|lhWy6k3tzYpIlH{V$x}!E z;a%XrOBemG0t@_m>f)XJuLb@tySRG1XNgW-pHcylCE2^H^|e9kQ?ORusgmt`Q17({quSS@-VWA3cSiNY{-_&F&^gik zmPT{G0_YpPF;rQ_%T(sPa diff --git a/music/Learning/3_-_Medium/We_Three_Kings.mid b/music/Learning/3_-_Medium/We_Three_Kings.mid deleted file mode 100644 index ac302e5f785e1541f1d1af47c88058fed9605a0d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1398 zcmcgry-osQ5L~!B6@ocqWnsY+C}IdgfE+;(a#Cn0v?Kx1XefxiTx=*I#>B!0u=El1 zO?;Dc<~#iOvw;{JGR*GI&hEEYZ(O%TWKBY1m{M=_Zt<@n{==qa?x-EH@pckz1dxF#PW!?HV+ei@+T4y0cKD3U1x z6vz|+90Es$02tEAd6yC|($7mEvzngnP@ooj{*{iNrpO@z@0gE+>LGNmGIO|$DnS*X zLQqkD#-XXIc}DkI9LM2YTw#e|X3g5zxO||WKp~{lwbouWy~Jl_V?AVr%-n4AIm@;6 z^>KE_$LUmYoRQP^mA=h|D-6zc_EQk~#O20AAsJ=dckwbJqbxS(WdSk-WRmVA>?J{@ z8A&ghqUCgTiZUt4r11I*qzM9HfWQrG&A3U!O_pZCs@#;aC!?JECSDFC>XcfJY9OG` x5*Zcn5+1Hzm9jBEJrXJ-gNz(4O>6v<_%B@p!w5_po=k!T%m;!2{(cEKw{N&_Ycv1= diff --git a/music/Learning/3_-_Medium/Ye_Knights_of_the_Round_Table.mid b/music/Learning/3_-_Medium/Ye_Knights_of_the_Round_Table.mid deleted file mode 100644 index 16bfab968d6a37f774de487568d4415ccb66d372..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2343 zcmdT_UrQ8G6hC)oXG>E?62&0GCq+oza@i?d$B}8+adw0fL8B+ZHKR?!3W=cEb%dFR z$U7j_bDv;7f_<%CrgQGxakXHBh_r{{-1|G{ckcPitgP*90YC{DC`DLV+j|aB_ztN* zsA@Owmdp2M?v!WBa|raS+I4^dfLjdGjUp?IU4`^>o={W!bl@?|Z5>gze)P4@ zi!4g#M%IYm$pa;`LkFS=nf+qxyj(xd?zzM!NZv3Cc$ngK z43I+7hJw|0od7HF#KAR#hiw<8xl1G$N%f_0A61MyWa9`n+SJj;CL0@q_uQ_WacHBB ztp{&-y)sPdZH!bRB!@mXk-jZmn=fnB)QECjaW?NR>kz4afQ{#OD2=(J@8RQ?Y&_iKI0kV}0f)+qoD2we^9hctLi72Z&{V0mIMTA(qH^J@3k(iZH5zAw6C=R~ JW$$PVe*k2{tabnZ diff --git a/music/Learning/4_-_Hard/Aupres_de_ma_Blonde.mid b/music/Learning/4_-_Hard/Aupres_de_ma_Blonde.mid deleted file mode 100644 index cbae7d3f06c4e288b07e077c909d8edb4aa07581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1864 zcmd^9O>YuW6upmOkP-}j)rGoX(KKO0DMBfPk|A`4=@b^4wzhF$8jI3Ox@g=QgdvfL z37OgZ3tY|o16}!J{0Sy_?#%FEH6|{)FfJzV-TThH@7;6nndV;mgoq*}ND5PP@8T7# zZ#3z~mRb`I z=yqE8{8c!SIN=k{DtxPC?)6kkc@%{VjlEr@Kn_g zcY9S}s*1Uf&0rZIoFR`@-6Bh`BS)2}r!!^~4h^|{2M}-=8gjD32oQ#bc;CTq;VzP& zYj@lVLI?M!<^QK;TYAlW0#fJQGPqmJp~2lUz`w!WV$ZB28h1;BN6QUvVq+d*XLc=J zy$x#^^17sRJThB4$8+Ci-BvkXrP0~E?>O7{CIOe!ytZRn4*Y5H(E^D^Z9fsevBvlR zX`;M|5mtpU6}+R&;blb4hV2S29d~%NW|9nj3M5I&ZzU-$HCivGO7!%JKUJW}FP52cqlY<{L{tqX3pF%u)d?RhT7aG{;!X6?g%*grgjcJTtoMam|d5&OA?X>S1Ox qjL!tvg%e=Y+lWjrVzPWo7M>hOO>bC;`pbO$z9QF>$Ai&zjO-75=LB5< diff --git a/music/Learning/4_-_Hard/Ave_Maria.mid b/music/Learning/4_-_Hard/Ave_Maria.mid deleted file mode 100644 index 887720a175aefa18434814c16ec562b0716f5222..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2046 zcmdT^KTpDN5WNB=LNGOs#(}{ZD-ixeexX9!LfI~+%7E1i%gQ!DAOc|tzcyuM zH?FFg*nt{T6JVVNg8sb?u+DrEfOYH-J?((CKkb*^u|t-X5D2jR;gidY_D$4ibefn} zWF@G#I<0QwI$ARiO@}IiRK0+#YyrF?UsRGNFx12|^fiECS=>XvjDaTZoQy7Bps!=5 zLYayUjR_i4>cL6rgv}Kpk;8}(F$$s<7?i2lnPC$RV5p0M)2|cb91&K3ktV30h;(A4 zVv{naok2#*RK+9os~GUG3S}JmOo##LU}tQ@AVOmnVjfLQrta5S8hX{l)GwMMt$a)Q zV|q(r;4MQ(t#gl4+9$;4Lazf)`evWf2ctA9zfA*-@)YDTC{a+t;5VTZ4NWbSkt8U& zP>%-`r>^+Iu4SMswP&%tKtTZm?s7vOGS-85miq)M=}}P+GqWBKhzWVm+~oner~k>@ z@Q}evaM!E^6=|!**{w1mL%g~i73Z*c87M);2`uJ?^AGLEp_MGN41NG?c_oN_E%Qrp WkKh-@>*eVT{cB$ymcNJaKmHT(O$wI) diff --git a/music/Learning/4_-_Hard/Beethoven_s_Fifth_Symphony.mid b/music/Learning/4_-_Hard/Beethoven_s_Fifth_Symphony.mid deleted file mode 100644 index bd3fe8670d7841adcfc60cedb95b0569fd98c57b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3215 zcmd^BO>fg!6uoKU@*$y&SfOebU1WzuoLDBbiu}<}V>b;QB50RLq!fX=sAiwR?MPj) zs4Yff*`L4^&8cS*b|1 zCcVMI3q1WLc6&4^WL47dB?P5yj`1_xph^>J2PJq-m2EVeCFTm z+#jb5RuDYas`x!oE!T_u`AJ8z{1ZM_5q_(A<-r66vXPp3aaTT|9K)zz^8%GFGOk|# z?fJ94-{*rT`%e+98}-@s;r{U8$;0Hh02I?rcljU1D}ACatT~HfymJ!4SWJ6BFIFM7HQxUC=r1xuO;b5@WpS5 zOczDC_$@KwY_spGQ7q`(<-jJxo@B{-8zo)#7iREK`K-8goJ}hrK--daf^~p`3CW-l z$tuC>Bv@`8&asHyA7E6Bw#H%C&JGKPi&1EbdHAfzXGP`uBN}nn6f-Jof)Oyl4TeQO)cG~mw|Z?hztzRlx4OEt`R!4@&#TuqhP(Q{ z&oA|V)uldjBxwhGC+^5JVBrXgE$o2QrpSh<4B8a6DdJTb<8+<^+}1mZ`AIM(R-`!; z@iQQ`=w!jE05%yG&>`qx)lv&LYbMgbCQu>*H78u7XMs(I8jHZf&6=7-CQ*}fX~I0a zMDq*ul)XVf8MY+#@N&fX&?yMNbt*A7VCv!1fh?n_bP6#|in(N3xai~sBzNhy0JknG zN^LL;90J{93qFPON0*!^yP34vX8ryGVeUu``vSPTXqU@^7^AQwMKAfquG&c4-UcL!*G#?Y?sZg*l)lLhujnpHQq_gvu{eQNDC*75VYKpUd^A4Z|I#+QFL$M^w_bnxc=)ZY_m2)hXoS%{m^teU znaVU#r!q-o0i^0&Ch1}&QD>K&R84QRQXVHcCnpCO^7s%SV=J=&ErOIBk_T)J0KB_l z%h(nGTgy0bzvQ^%hB~Ya39gxXuOXG$${C&sbqun;4$zL#M%7X>QW)6~&_Tz@Us3FI z*x}&3oB>70?j9)tc^LtutYcy+?qC|bL2Jb>sx}m_Lg4fILHg_7eg|EhGV0`w4VE&U_-7n&B%HD4Na*F?!2`bqBPx%;8SxZBu4KBW=5|t(J?vApjlnOsje-?jwvEkX z{GnRLYX99*{((+A2<9^D!l&qp%z8*y^Z@>+vdvT5SL8F9ZLzeqDD=+?$TYht#2mH- z#XjD$=!3M0O(-_$#tOswis$s$vWf(Z<||iZN?SqR)e5p=1*=NG;7emHK zMxqIJ{{VMy>&24?jem%Lh1dCg-gRRk(UXU!Pe0H5eSWo1%X^0hL^MtcMWR&RJ9&$z z8uiYmVu`y%(OHTqc$$tS9;~bC^VFJ}Qa7l#AB~RPpP=5$F&yvhMB*8`_!S!M83tc7 z@;<%wt$+XWNZx1e{iNP%m?#3tSuB>AG+Y>oSYq6%AJtE4@8-&dtpZRqmY7BS$kdC* zo5S~WZtduRz5~oD3Uyz3)Qyi(_s%hOr;OXrN*8@~>$v)Nr8^!cTuOHVY=NS__w4h- zrbmijOkeFci!|Z8Ok5C$i34IYu|X^*)+iaCaW(S2!sV)O<=e-QlML$Q$S*qWBZ#2R zw;PB@GK-D#Zs9T|JqBxRcsQ*Ejl&uP5AZZ_gk&8iG&XD4BUod?!-W~pSga9!PXk9t zRyx##o*T_D4}0{RJk->A3RUur>O~wSE%{EVwT%jveAf$`;|iQgI3Kr)nz(e2-8{_g z%EwxB8^%tlRcY>!>X$iI86iB5<-sU=trAAD~FQ{HAj_ zA^1cNfKzMym22$b?>+~TWs)5wA{~Bg+B!Z^KFo=POm=-Lll5nGv**h1aL>v3`<~-B z6PfhtufsL}A=iA20<3v}H4m`n0oMHXb4R3=04p9~)x*0IVAXLc0ahK?)rWIIPdePn zIa=v(bLVKTlV*|z$uP-)s2d>aC>g4Rg)I(#dVNHkYpMp2{OM1GCxX& Ss`+K=sM_@@+=O`i_WuB|2FwHi diff --git a/music/Learning/4_-_Hard/Chinese_Folk_Song.mid b/music/Learning/4_-_Hard/Chinese_Folk_Song.mid deleted file mode 100644 index 3d3dc118026be8b9acf1be7cffafb8aa9c788473..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2365 zcmbtU-EJFI5I*a86KVyy>IDLXgfHAuBOGkAwQIC&HY_W)>rG>)AxdO?5veI9KoRAq z&>&?OS8@@E?%}4rYSkBj-8U#a07B}E@CN3a*|Yg+QK{hKc#r4jn>jPz%<|ghi$aK5 zp^2HISYEsOkr3LJnC_MI@(Ce|^P;5T-?Mu8rB5R{{H6C??WT||IoNm$lU)p;&;E2>7Vdben;ay!JhMhUin3T z9SQjKiAKNtN5{M5H-858dR-M-ucEZNUOpylF`X%`e)z%VFDl;Fm5UG;_409;?v?fO z?7Q1nwy$n|Tv_`7=30j(L<78hgnVlCnT5<}qQ$mYv zXZ&Soi&|`1;|rmMi@7-YDm0<8mVWpY64+SdRoK*H$GQ1J=s@Bwj{BhtW6v7D7kaq3 zOYm}`auz3_!$vLcjT^$4pR<8{_<@_aaN{67ZLae_E4bI3Ie+|ue7c~${ zs~_@1RzqakU66}rG1Un&k07Yp=X*@ zE+!bYh6zTkVS-U>m|)ZqB~b(mP=O9A5ZmpXVNJy_vxVaFm>Kz)H37t9)>aL0TZqB! zZ|2=H;KgIs%Da^tTLj2sX5`&!!kxQCINU7?!QG;K_&s?(U2^9!Gt`**HB`YzgMumm ziJ;yqDhL{8t|G7!1O$Y>yYTuqohE!EGd_g!u&`NET_z%dVn6b^9r?-to9w! XQ_UJ@RO_4?F4(;C(B&>kh?#!_YZcj- diff --git a/music/Learning/4_-_Hard/Cripple_Creek.mid b/music/Learning/4_-_Hard/Cripple_Creek.mid deleted file mode 100644 index f52d4a8e87019d88ad8e79b52c73d4f0dfe1f9b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1317 zcmd5*y-vbV7(JJ^M2M!w$-$vdfK_8)YHm`2LZFR?K}Ql$jD~@@8;ApIVR7_P)F<&x z>i4y!mA?=ZHE!QM_ng~v4t&j4uLB?p0Yyc#HMpZw3BhAt)As;%8+k#e9Zf$tHqBDu z$SjyA2rgAMv%iJlDkFg4Tv4YV2o7VtGC`o^FK%yo4~En3cSx^kdJd8XUDLDGZofNd z-y6-^S&bl7(|3V4ddCm~enrA}XFmwUGN`NPyFsu^btp`Z5fwA<)Z%f>nb;=Q1 z4|8w^j}!7x=b;{^irn}PXLSfkh6ZyQDS6B-5kw79J5j21C^J%~t7Nd5Y=dMr-`T70 zBD2Iy&C((ANGkSNXZeCz;;`Aj@%SY+eV2ajG~{Aht|sOzcNDiiU*x72H}v;!y``He zPH8i9jqdf_VoGQIVhX&6ilQ4byEyogyLcp z7hPo0pV37(75_mO{W;Tf-n`sS20>^GuHL!lew=&nyTgN%BM~W!C&iKs56<4g`YFlB zB|lgNZ{)EDYuOLh>S6e7qZV$24M|>>N`*%YlDsN-aK9*)KR=oBUHI^H_BwOoUiW;P zH*?qO=vm3UZn9k9>l`)EGXAs8+}UAv6g1v4NR0BE{q>7+W>T}zncmZ|BHfoo1w zB@}3|YN>=_I=`}O#RCS%q Hy1k6w+m(w- diff --git a/music/Learning/4_-_Hard/God_Save_the_Queen.mid b/music/Learning/4_-_Hard/God_Save_the_Queen.mid deleted file mode 100644 index 8c89bfaa0be75e33e403972e88a9dd0b591945e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1321 zcmbVK%}QHg5S{#7TZ83FS6#Ts6PRn7OA->o7p$n%ER-zlQZTJWaUp_BiMVjlg>mI; z=o{1*yPh-O&%J62#Xw-bnKNh3oI9iO(V>VeNJ%PH8I8}5@fu2YS&QP&BGo0SmGJr$ z#VgGu>8!3LtI1c%#t~rnW&71i`O8Piew6vztt_R0Hyly!p%Be3-~X&B&~8Ze-e*LNH)vfK1Q) zk!ep$*A~-5gO-t1NFNE~7^X&{a}q<37zPBGF;rUy2JD;{qyz;a(<6hGa_{AGkj&OS zH>OY51ONL9xhka^QdzFq8s#+0Ot*q=MGPS2e-fDBTMXIhSz+B*<^=%-Y%mLf{cdc^ zmBU6#vDKhH*yJtR@Q4j4D9piKs%ty|AI(MH7YZf-D!Kl;8~Yd3U&AaEN}p IkByUh2G3_5Bb&&HgbN@Al#yZx0;Px$ZL}7J3yRoZ zkY9mc;DeTP?#vE03k?B@YVV$zIgfj1W+&%oBC;ca)FPRkT)xBKK#Hq+oIDVT?n*tt z-@Q0_)M>Q_`|Z|#t1HFJC<-6mk>XVtiWJXkyD#v0?9SIdN>QsnfBWYAL*wZ5;tc2G zIN1|}B8iio>HK1TdHTLFJAQHuD2kK&B40qz2!f@oGP9IC6BeIsF*2VdA1UIN#@sUo z;tNB>=pI=eI*R-dfc~%;8UBD1RJt-D?*uEqW*M7n)rZjSZCP=6EXBQHu9(u6O#oYH zKt5E{_RQ*lnGWQ7Balz#3*Wm5cW*_@Afq|S%+^_5=ZLzVrCQvIm&#K&%X|tU3%HO! z09c_n0^UJ2hXLD!lYwPT=o>laIGJo?u5RK$b>bPf*t=!b(0LS0uhZt~|JrV4XqmgD z{`H05@cQV#pe&T6DOCaBz!)Zd2S5joN3? zS1wDAAb*FakJq5gUZPKCYNae}_ne!-_)&Kwi diff --git a/music/Learning/4_-_Hard/Head,_Shoulders,_Knees_and_Toes.mid b/music/Learning/4_-_Hard/Head,_Shoulders,_Knees_and_Toes.mid deleted file mode 100644 index 1489b494e0f7ce451934a558f94957159a8731b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 873 zcmbW0Jx>Bb5QgXAjtJ45u`7nP5eTFq03`<`-ct z!^1-Vsc563%@ytMihPiMTY`E?9evkjmkemvh60xw>}v8Vd`S}u2H^obhBkuRQelAN zLUE&tBlu+)mWw&!O2sHp{iw;RD^D!a?7SRuLu`$PA`rCrv*)vL&%)z9r*0nZM}I9^ zqYt_07;Ostta*WGQv#G2wiOFk7Oi&%ZKvgsmZKHYmVtK>P?SX&P&N-G&kz>j=qe9y dUS+8Qs4x@(NGtI;Ws}NL!A|Q%n)}Ds_yWz{-p~L5 diff --git a/music/Learning/4_-_Hard/In_a_Cabin_in_the_Woods.mid b/music/Learning/4_-_Hard/In_a_Cabin_in_the_Woods.mid deleted file mode 100644 index 010a0bd0983abd07dc3e76bee267d772408caddf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1779 zcmbVMT~E_s6h7St$by-XXf%4k70HajiEHL+)2t~S9UBA~kih~-U;&?xwR(r}FvNlP~j=`B&6yrV@!qcc{0P=n?f6lbPqwqU$`m?Z=_}Uw1bd z=6%0q-EI5bw(ctrpTzJW9KOOJQuQ#LcyE31KD`LPPcKfQiN6g@{Qq^-dl4-v@tbigx!C=C~x0->Q>8 znjnApnEXun#<#03NIo>;w{gN-@`pwVNAf4&n;_?-ty0d_Yfi(~*_d}~!Z2!1-8R^> z;B7n=l@@X3ajdO&A6z3&6OS$v7tCY(zME zGp5msX*6RRoWl&uoFizoLK@LhQw;M-&{3PtqA;{IXW7=mq9swJx13?Xob1JK>FO)w znmE>$Xh2{@wuKsf0RbFqU68sGXdr-NZ3vQA0{x0Qn)Cz6>#<5Ev&u*vlTR!T(gK4Cg9B} zKnp_#WaO!bMiCIk6j!0VqB9oCE4(2C<-BQCLpd9oj&kv|8a5>M!8u~VoFl}fV@SM1 zU-cSPKT>bM8xVcj`n%}y2a81iONc%}0Yo1_^Z`U4K=jwYJ=r3!v?>Juh?{!P?+;%NEu!GQuahgV5?h~T}d>Q8=!)t zZi7KcGzu^i9Bt>zu?Q%bPs8K|hGB|4FuzS<6OJ{M#}4@|9IdE~GgJfV!ob>vp}YZd m6)7>Q0*QoUK_cN;kWn}mWE76YFf#B;B{Y};R7p@^75xEoO!{yD diff --git a/music/Learning/4_-_Hard/La_Marseillaise.mid b/music/Learning/4_-_Hard/La_Marseillaise.mid deleted file mode 100644 index 4eb01a957640718cea9b9721f63a0de3e929ac16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2954 zcmb_cT~8xr6h2cJDnu<=6BT2C1YGw*+1e)Uk~Y(iVcMY#2#B%eLqxW?ev!>$$hu@D z(;oPw*Fb;XkO)dEc3#TLNy(l8||O-gBPwoaa5~%r4!! zNko05P){$-F5UT(C=#Le{(u_00{b|r3Vyw$#@yo%vpVt2O!E{7Zgs|1H1YjUV{& ze?BLi$Cu)C^Xldo@Vxfu^17ZK=eOs?$G)6UcOe%GP3`M`C-mZ}_f<94pEs%9GqCvi zXSco?H8-|z!W>g$edYRg{m#Z$qqEaf(=hd_u|c9IXoOKk`ITIKjhcNgQZu?u&4D~M zuM#!UZOu9z57{~?u3kIZ6$fJl2Ll$PcC>?o>Q>f%xMEjeDOa6!yG$dlzG5#lqg#!4 zWN6h{#$m)Q*KiQ`Rc95JhKhWLH(axJ^0jRWNH`eqEV4t9#$3JnQ&fUj_A*0~Kr&`< zZ{WT>4}N9NZGo0J%=rh?0+`8ZXPkSuQsM0Ei~I=RlQme#EQ(=g&J5>O_>8%RNv^pF zbc0Ben}UJCLqiFM`3^&cK`H<-8N_7zI=STqQ345em09Pm&v`7n}&jgs5!qwN;*2E1e}tFaB(OE z2MysR){JrZxhjlP>BK4V75f-`#m}xYF~KM2)6fg(J#I3j@SQnI6sm~-x* z83GEDq`iU!hr?c)q2`b`?K4X+z+eGe8dNV8c%*!fR0$sQ@Q?<0m@q5?BlHL`0uPx5 z3WZq&JqQvS1ZZeD`qtC1Wu%(u2b3}5rLn9LFyd+0GUu*VaW#f0@X*NF_p}`35RaBW zc#TaPUN#^aK0`oM8t@D{N?CAO@58r(xA3KkXUI!W13nHR(s+jWBn)K;Aq}dRfJbT? zv=i`1!6T7|0c+>XfRI!{z#n7NapE|RlLby zXeLD`s$M$42)fAk*lkD;#XE@SAC5_n$$NQ-ZOlpRwb8P`82wzwCXI@WIx}QoU@8HmhALKcl{B&&B?Bk}jFlQFqUunwqf{9>WND^6 z00U#&6&83J-ol(?-+VGnkf5@vluXCx-tXt0bAQqw93F^>FOIk+=?_jm;AixUJkJWhp_yE0lUa&3(An*b|8XgZ%_K&Llz1=-fB`HyfGNsfv*7GW$Vhyfyok@O6qYtvVN)9xD3xCg=`ya1xE^!&0J=1U zjOK1}=tk8Lcg=pwGyy__ zFwba|PFCh0^RV75?I5jr(==$1izuX>EEn3D$aLG-XP+O-|baYg$c0EFrZLRnmqVa{~226j*V!R~d4nQR=$gaS;C^W0nosJzu9m Z+*^ylo(l-LEWV)Bt8gM#^?>q!{V%SQLj(W- diff --git a/music/Learning/4_-_Hard/Moonlight_Sonata.mid b/music/Learning/4_-_Hard/Moonlight_Sonata.mid deleted file mode 100644 index 425efe05b847ad5bb50cbe3ff1c6367edce30924..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2675 zcmd5+O>Yxd6n*2503paIG=Zv)6gDnV;&f~#8js^flZ-8#C=sFwkSZIH2*lz;0zsuB zBr{LYWJQ>#F1o3*>$V!RM}jqr{)aC55326Wx$nc70-~5oh{fpMx#!(??z``vx3ac% zg)uh3ESAo&m9;z98B2|_ZhJ7B8)htXlw~da9m(eMW!tVym+Wc#H0!QsQmGRMS@-)C zlDp^9!)G6A^N+USmn!^U_EB1``}-sFe(N)jYrdU6^Guzen(v9Ob95&Y*Rxeem1`;DHC^iP~hcCU%ri%RrxB)=aX(nSY&YCV4JEiF5U` zs_2HynnO3L)D6m-qi$%(jWndX0jL#KOb-dFm>$Y3-QEP(+dZ63c7B$)^oDLk5H?g? zfconEDz0&7DDs2HS3{qji+n#EgEJEOjbBFLSnq^(+Y*{@z?r8tE)O)l||EQAXjKeWzozVXu&`qmep5|EPK#2-nb1v$JYtALRp&```Kuyu(B1m#UdMb;!NR>iEF3v6?#YL)=P_OgYa1n*$ zQe3`jpafU1^PiwXI#;j4|9`F}Q8p7r#h0n`y>65Z*NlP|Bm`2GC41;3v(T}ouuT?0 zHr=v^_5xZGHn?!z=(B=c12qM40cwf&aA`-g&7nc`gkp zEn`YAQL3o)V&@6&ZjIFji_p5vW7OUe$ESz|f{k z2ZoIN4frMe6LZe<^TieoNFebcu^pfLeeU%e?;h-n$clJU_hr0$^a@{Fk{vgK@TQ1= zO&T7)t_R_rIEuE`??>y=1IeEGe(lz(WY24!NcOnyUwoGAo{RUNN>*?w& zxR3ZC2-m~_gh9A6oE%P$_Fgx~+Yh%v`9XL?M4FN`s8d(N_jG@T@3}~XW0D7{%&_CWe>#`9SAcsp)^R z`ynT*Xtu+lcQC7(zLlyZgVU_!;~4c(@w&{+^=f8a)Xx^h5(dkbVEe#Txz>P&<}@F+ z1mIN}UwixR$t;TV1jx@5o&4w=^gtA-GzwIsgkmKS>na9KQ%B9CH>`{T&8*<6gl;hj zuOa!11T8%+ck#5WJ(^4_FN+y1e_1^FWM7urLgsBF^TaG9ZHuH()e@b8=s2QV5D<56 zt+ZH{OiXiZec#?jrgu|NKrvB^s3q^Gzq!`T&V=CrI2gB^vfB+Z8@5~Zfr&m5O;Obc zCTN3!WWLE1m^0m!Gb*Lw0KZbg<p ojfDB~dS5}Ci(9%(x7Jf#HPC;K8bHTZu@8HF`LFe-cg7dv3vAm!;K%*Z68m z|HG|B>Ru+DemJA2XVP;pj3iQbMB<~8(4@Z}kH_vNrC*E1MEc7EL*K`be}soQ7?MMO zj@5hnk^lbvUcHB(ewF@g02E(D-9#caY%JiAN~8vz)?VwN`DT2nQm#mUVC2c}tDU#w z3(dVP1jG}m+af;!IId~ZtuIP`LTIuz+l5*uOB_eA?=kKr(+01NUgmKcQQymnTe81%i>uZ z?R{mi5L!~z+Iz~tYK(9;kWV}ZHH?O!vLc{)#ro%U1ze1(pQFZNWm02q8O6$^RtB{q zy0AAvuNaVaNRj0$C~q`Cv4Z$Y4b&I$5Ef$k3B$nuP@@k8JNp;H9X9+OPI_ho{3wsFJF17e+u&CvKQ34mNL3kTz;nvFSfS-xl%OwrLL5i^l+v0aHaHcrSx#6T=>>{xJr7sQi8YE z!)}el6Ypd&2{$8JN5>>wU6P&I=ci-tth5i{JDE|wEGFq@5tPFu-5d^iY?PZv zbOGJC1stM6Sr*E|l7oB*MxiW0m>>BH^cCpS*Q8U}0FW*M3y3VkPzPXScmYEVz`lXR zUNS_H^K&v`P9`XlSwTbtIlcioc{Y=04{U}#WZ4W^W!OvxjCIE7umEn~Cll6*uy2a* zWitaiP6)%__ge|&fIz!y=8+2L8P`82#+nfksqDOb9VVLduq6OrqcnmP4>+w<852(o z40!}z0R|p~7cu8tJGVxKP!I##x##;i-_QL<`^SeOQWryNmW=kNFYvlA`Rj)5TobXb zNW;Ku+jeexu6u9ij=SUDl{~d9^ZI4UpPD($k8772-`>9=Z7ceAnW^>_v9|4ONho=( z@#Oil<5$hygOfwhj_uSRPEID%gO|`7Dw*4dbIMgY;D11|rLdAleKP z`XrluqI6#58Pa(O=K;Y0U`SKJ0Fcqn=hYKB|4Qo*Br57O@Is z6f@u_&)3&%-h!Fe9PZ+pw;oN7es|1^<3yt!UNGI0dZ9gWiAqe%8HN`lHjka>U{$0_<`zau90ND z7*r3o?ihfLcgA4(=s;Upl=j(ZRH`1UgH;KrQW?8uQETZ>*){v4Z-*J6p~kNLk>z6f h5zO3eW@!U>>AM>cI6VRd)Fx`_kJAcG%%G*d%6EIKtn2^) diff --git a/music/Learning/4_-_Hard/Over_the_River_and_Through_the_Woods.mid b/music/Learning/4_-_Hard/Over_the_River_and_Through_the_Woods.mid deleted file mode 100644 index 01428ac7a1b4ee313e40dbb7695915c43e61b648..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2270 zcmeHH&ubG=5S~r4X&NdiVm*j7IY@79)|e(1O4txfQZWH*h2&67+D%MQf>g<&my#x; z&{D`Es8>BJWRKqT>K_%qc|W2p{vcYxgMr7)d-KhkneTm@;%3t!q97UM4^VM)_W_a5 zrqO=bjGQM5T_V%K?wlF9oUp9xOINKW>l%$VO(fwrDhGo8DYfk(`vIRn z=I6}`etw^48pXAa-a$F08JV^Va3W?Tn6J0%yS0b0;`)tssht^U#~4pV zK0-z@!=T|*orYl>wvE;B59>rjNL5*57@Q$2W4M5`1u_{o$h8>TztGK*F~~W+j&k~> zPwv5q4s54a?Ama$POsX{!pXIs&z%N8Yw4`2$SSn@^W6e&F7VCD*@hDx%jsEQP_&~QG$v1wu0paOo541~XtkppfaM9mDpZ9N9b~xq48R!&80i4R z4$?K|=%P5uIfqR-7nk@;M4_LF`6=)ezsyq4gt@lG?5oWDs+b*0d?b|Exqy_IE|QA21`c_)FwJJ|W)eTlI$0?kAyLA9>KO2km;$ zqzCPK(5?sVDrTq-2zLg@YDg8~^@$jXOLmZ7k|nW*ILs rhf3i!Hv#68%puppGgSn=V{PC>z87R8wSkkLYs29eJiLhyh(GBsvJ%2r diff --git a/music/Learning/4_-_Hard/Sevivon,_Sov,_Sov,_Sov.mid b/music/Learning/4_-_Hard/Sevivon,_Sov,_Sov,_Sov.mid deleted file mode 100644 index fb23fc1425b7f278a90477b23e8707a0afac0512..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1824 zcmd^8Uu)BF6uoJix)r6C zpSI+K2+cQ8Uwrl3_!iGiVqH~=>_x%Ck9&LW{oR~=RLz1WIS9(L8)kBz&dt zZBEQzBAP2uPQbqlV*ZL$D&1Hwm)1)a3Y#J>;TJy0WKx&sD14X-(RVkUEgU7`B#BNG zi-j`uJ26Mf%L>3sG%6kbo> zf9ez7xG3i5^&KR6F`uosx~;>#7sbZztzAGFF~5L!pU&NT+BtYt+}Z2y(+2=WL7?%u z7L9W{Vi%{K9=C|buvij>arQjn2;&uCD_a zRmrpJxTz9FEK~)62}%=S3xG8NhHtR6Tfvk19c=6_B$*jy0~xXm);yERn7kBk7bQHC zlWk+zv$yf+UllM|foO47AX=Q8HRj0!Ra{qjASVhBRAQtDL$y00-j;0UV4YCVk{r zt6_Xf|fXLh<11U371|l&H35d+9 ha;eIy@~sW#wSk_qPIfDp%uC<{Ofr0c$e40uqi;(V6+!?2 diff --git a/music/Learning/4_-_Hard/Shuha_D-Maryam.mid b/music/Learning/4_-_Hard/Shuha_D-Maryam.mid deleted file mode 100644 index 3d6a5a5f41b7bc8b370a84d6cc809c07a13e4d98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1395 zcmZ{i%}x_h6vxl>1ECgcj3F*eL<7YZQm135rIl%BoVJ$IDi{_jiH3wCeuOA7kp&6q zh$*hf%!b!+<_$DHhi-fVU!eZa?OY@T7nA#Oe)pc=xpO+JTN^|)LJCD=)LGqmgVjeG z>?h)>D@3s*B^0d2G@v-o*Oi`>(vl z@a4sDJlMpT)JcrvSBt~(*DWz#`eD%EPMALO2MOcx)R@`CBo$AMJm_wBch=udb{1=k zG>9f1zk0d#VY0ctz46avKNe42Ci+G+m{b(<*V^PKBjjIrM}ERQyHs2Z1*7KiQy*f{{{thOJTQBsVV>0SCm}#75Y-VgQ7BdzYn;H8w z(_p3nro~JPOp}==n1+sA;=;<&ibzpimKsY^qb)TaN)2YjDaqK(2n}Y01~WoKG7V;g z1~Wo~8KJ?9xUd##*co|zD%5C9hsWzPp~eYgF=KJb)1QYgW>58ABm0DFG0Z+DUuc3k zfo+C`Gs6~OlVKCEm2u|6o!%ODCfsTkDTaSX8veh)x_l^GG8Pvo4BOIhNg7(x(3XbP z5Vj3zcuyJ{($J8G^U|=?dj`V^*C_V3dj>m~pjzc}a^$uaj(1@|c=&&vul$ysZ=T=z zW9{zdxs9*TchUF}3eflg8b3he2Wb2=Yb8L#2Wb3oR01?UJ|#foxm9SIMj#iuscGT?Qj8{l&j!J#YQ*Ucdf%*kc&(8ABo>$IkxB{U< zS;G|wX|-8q_B`FxkOraheZdsG5<+11yh>X`nxh-T6pxTpMbZKq7DtgC|5Jp@%LtXR zqt`;!g%Uyw5UXSmsvu-cL)E}eHFLb{;Q7x9X$*^!^Ri?!EV;rd#64|!&$7J7mLVey ZX?eVcJ}c|O1hu2&BG+}?K??rYe*w}Kl1l&p diff --git a/music/Learning/4_-_Hard/Sonatina_in_G.mid b/music/Learning/4_-_Hard/Sonatina_in_G.mid deleted file mode 100644 index f7d9ed66c247de0c4e86e060cbc3cbb3752cd644..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6122 zcmeHL(QXq*6rD|QZ~`)t!-Q&qEM+- zDnZw4Y*R%^cc1#yQk7SvCVxPGqObjmzNY8Q?zj{bRH+q8DM- z(w?rax8q{_VwZ+rXS;ioPx$Hi=3@9c;(oouZ}&G2?EUfR!wAsn2>TO1bM`%Ic0?i3 z(V!Ooa<}iju)8k3!-<+a(U_*e@B8I9KD{seKHiYu-h&Uq?}M8B_Gzn+?9SR^%fHfl zZ22+0%U?qgWe2Wwnc*z4LN z;hT=P=$dHcs-ErU(6Ah@;9BgdH4e!h+woQb)_l9_T?-q;(A*-1;Lbe2*x^uT9%tho z=7D({VChs>PA8R9T{$I&Vc5EII;orzL-RRe=FrG{!%{Q0@vO$crA||rhDVy@lf;`NhPZ^6&sU8w7 zQkWA`;aLVYi^dEwGf!jk#7Oapk>V30#aF>+9b`ckS@5srp2ggg39oY4X70(o(8*z4 zCHxtHWx`J*M9F3$3eh@?rOKd-z{rFzsf1rt3IEBnbmX~Ixn@OKj!O;K45ude?QGlE zqDp@M#(}ciMRk{>Q*1pEU2rWMJvV&wZ0nX3J$t^jf<)K+%-L4W&4{>f6~9d&!8AX6 zexrn;w(e(%CdedO<_gg{pw0QUqv1rBcLkV)pP7PLhGym|LOp^OU!MxpBDY9wRyCXLR=xuAuMVfrHjZugXfKO3k8gmB9d+&sV_!k372!zHHE( ztAQ_h6;{EQE!ibnYC$x|U|)lM+|N2*9(*;be*Pjr^6;F6o%I)0Iy_rcg?83ISLIb& z%fq-oR|AuCWOA_uYf;1A9kDi3h^M)X z8@crv0!||QRy+#0(j4`3dV9#X^dy$rvQdX6F}5**o@p$tRq^v__F%})CeeeTTw$7% zRDA2avMLed6@B}%q*C{1K28JU>Hh51G&RWjbIwVq(pvTHi%E!u39V@cvwj<<)=puV zDvTTgGo{rCoi_Sm)%XHSTgTEm%A)kWf>BxYL?=}lN0vMV9UNI199af4$PjBK|3cM0 zfy2wa>|PMf_c0f>tLzfpc1@18Cc$Xt>9Y_VvvNU=w*UcA(UD_Tbl83+h}>9&+TJCo zjIOeGAuRhGn8~t_8qo}!Z$VCE(O%y0w9i2!lNy<#xsSP9@O5rL9WN#IcPB0z+Z+Aviw0b{Mk@K)jp((XfN@EA8XK2-q7Zd*fhlgzSxz zBD@3Ss#7SAB@YuQj_VWPK}T_nr6*tjt_arIAk|}RjG=L&=1tX4;OGucRO>5YYXr{* zIPh);sbTmv29;|1)2dMssT$dq(&$PxL#cK~sa8;`6_siXTdKyerD{~4%Ib?y?Nb>j zRnz|0t9O^9obA-UdxNoJ%S3N`Q7V{1feV`A!Dz8PSRVyn6DV|%0N6DsbR~mn6uKZe z9;D`f_)>z$<^g5`jN1Uq+?WEGf{q&ij{`i0LMn8D@-}plRxVKHhAvR%hAvQkg)VgI zf`M0>#b82@kop-le^Jf=_b@*->i1*~X}W)RG#|M`a8DAH&hmqMNOiz;xO}xJ8nfvtkaC&MJdbMsbk+Hnnp0&m9BK>f66T!6_>69Egtx-FV-Vc)iS h!IPrOOQPrH>7~fyE|uhk>OW$_x$jY<3i??!{Q>Q;plkpD diff --git a/music/Learning/4_-_Hard/Swing_Low,_Sweet_Chariot.mid b/music/Learning/4_-_Hard/Swing_Low,_Sweet_Chariot.mid deleted file mode 100644 index 30e446f23915aa22917df41be386873bbb658ab6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1868 zcmc&!O-~b16uqx>Kq{sLHloI`BB@Dnm@>hEp>!ArhK445##Uk?;X}lRL=Y2VB5B8D zNHBqUD|T*O+WrGgT)FWNxMgkp1NFR_4i@59niv-^@4kEQdH1|Cr_C*FtP)WxF=~lY zZejZg5xYmV{g@Q*B8qlUjNx=eir-LV`A+|U+%Ko7mXAgwS1(bm5UCN>W?Nz(@B7hGi4?Yg{?Z&YiE%{_j! z@vPTg-dcsck`!;J41%~6Z=GD*TH9VO_U5MUP9YVQ;+;hAA#*QdR9Tv)N=Jk$ZTnP- zWiFms1z)qWh866r(%L~-tkQ>EADy&&)|k6fvPkj_^Q5h05Npi5?(#E6+F3-9@X`i? zGy*++SS;xRHRSC2B|~xMgCOP1gqfF~rFP@sjAKN?vlM5~v&Xt|a37Xzz-^PfjCs&g z%3!cD<~~O=^GpMQO;j>*$d2K@EYNn^nL{?|S%RsBk}bH4YYg*WFf~J_<_~$?J5aAUT1RT{-Ub3lk`0#lz--z_OQ*HqRr}P(3+RZy;1pcA#FWQ9W6x zH`=J40riYfy@^o0*)#S2H(N7g>nmvZ25WHs7dXFtdTsrj@iX?XjnC+VZ~O>VVf-qL zUxo3jF#d%ztHSVA7{9)=DvXcCsxUs*+v{A1+sZmIu4=@!$)nA(N>tWJ;>rl|;i==! zvVz1gItI}(EIJ1Lgv3>JXrd#4FfM0Mm4TJV4|)(Vu88Xu0fw0YboaOlqXWUXCTbdj z6fV}q#VK5jpHow#LvnIR?l#Dc9$e#cN~sfcEv~8xcp=boBI{0YeYPJY+#**C3Whs3 zkxpv@dQ5oltR5Kj}MG-QVI&P;g-fhtfcWc(RH t^aQV|KTG)wrbGDdmd{og0r&b=@xP+53ckAzGU9WqXw@tn0!Ijwe+L89HDmw) diff --git a/music/Learning/4_-_Hard/The_Entertainer.mid b/music/Learning/4_-_Hard/The_Entertainer.mid deleted file mode 100644 index 532b7832c8e1cace7a79b9e5e5b4947c08e68545..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1829 zcmcgsJx|+E6unMjR8T8d9Z`o2Y!Sps1GWQ#h%|~ZiK3JUxg!!uL9G~~?p4CVz<}MQ z14GCDjdtv>;Ez=9Ij`}HA}H#RX0UX8?mhSGz5Cj|vr`dS5<{{%Y4?Wj@#jkN>6vN0 zEZerbQL;DeS0GkQ>xD?}shEZ&VJ>6XPb7JpfqT-;=04v^Qk>|sKjChg*0R(9EYn(Q z_AmOwlMng!!RrG_vMX=S-<^HT`zIHtaLAd~bCK_elQ#^Bj!RcEIu?mSf)Job&;#g} zZe-L2I3jZd&?#N6jyiHZhyqdps1`vBz$fql8k98vnq-;)b;|0L?ULFBRU@bY>=5h# zc$9en+hn#C13<0@JWGMH;uMBuIuNo1k!6ck@ouCe|Pp}W5 zO}YKHk&34u3S fdAKQow^|Vno<1dU@SKcOCaaQ?ye7X5|(N00WMtFBAPLi^N1f}A_&`_8@Rp6{Gnt?!#e6d;LYKUM49 zLwtRw$P3j70_)VVpCEv9mO`iIE_^QdFTPMQY z{yJb#255igl@F`of)D2TltnnA1lvineRp$efBY0Sd?!A&{m#_>S`~J+*`UeY*@fgo zzG7tyNm(4dJNe$?LEe;wU!cFcL!Ao>;c3egGf6_unRjaMuh zhjXwU{9E$aA{wK3Gb@b)mk57p9D^@L3iC$!J?E93r^qO0Iu8)FX6Gn2%CGeit6*^q+wfyl50}D9+*y zOT060Xkf$Bvx*Ecr@&AFi@bS!gq)@S1^J^OtmfOf>ZQL|yv&N1&njNxh7r1O!x(^0 zITh}T3U@_=Mmq;+nlh2S!x}!PQRSu3k-#{k<&wU+KnDcT0XQyCc5T)Ii;?qvnT;If zmXBPhVzuTICngQA%JjXUZ(`znpUBl3Vbl=4QE`c<9^=t1#uDjA@inXBAi%oeQhObDm@u W(`7DwoR5gJc6_LYhMg(I4f`8|7Z$Pr diff --git a/music/Learning/4_-_Hard/The_Yellow_Rose_of_Texas.mid b/music/Learning/4_-_Hard/The_Yellow_Rose_of_Texas.mid deleted file mode 100644 index f9ec69d8f0437e661105b2fcd63d17f7234b582f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2161 zcmd^8!D?D<9qwP$dOSL>aU-Ge$@ka3 zE?>@sKL6YN{Q3W)UebSOp$7HBv6Zcj&1S+{t*_&q8Ag1VB#gKbAIewj)$P@1iPG{S z9@S37h+iW5glCozg1l&ryqFAoRU!{h*hk?FjS!ab#^4*HPT7mrGlyBZTd}ir{cv9H z&LQ=NJ&%pd?O(Me351;%!pdj_MpGF%=Hyi9?Q`XsmrfJu;+S+xzNy(3LIt_IW*2Zp zQND}WMRi>)+Bw%6EEKCx;_WM0CXOy|4WG|y1H7=OHAK)yPeED6glKA9xp2W3AU=pd2)P8oLg+%nLYE}sBN`HkdqY<)5r4o>LBB-5 zq@KCGjwK;=L880UIWuR@%kA@UA&b&B`MuFCzDg86t~>7bUZGIR?-uffeFUm!fGA`wxmlQ@(`&w=g}x zTL%XKHICqLey9pl6-3HvMnM_iP;nljhxDCGQ)Q$AMU$mFR9K9Aioqg!mboWvYZFm` oGiDOhqcBm?4h;bvJyBvs85Px-zS&A7rCneOttcLXG`5zOK&AJxp$Cs{ zPJRr(Li@$i_hx6;gwnO`Vd2gD{eLsFvwwWm7m+zhNqScHkFP&rwI$s*ciec&6K^~v3eO1S3C~D)l&1Etf{+>otiZhnWy&C`kt$`7s2_Mety_nnLrHrQ zbbE-Sa9t2;K@hvdK|Anu=^F``;A_Lzqc2D1PBppUChoEH9)L^0$=HL}!v;p1XVb!i zYY|Y}DqI|9h^|gT=?;9m_>PzoGjc5d2uTi^?GT_#5DtsW#I#%-5K!QF;1>N_V46&I zfHWN7XaJV^P6$pE!-WLr17v`Oq<{Xn0Vha%2d4vE(NmQa>}1lj$)sm;Bf)kZdu^jO z_SxS?j9tfqdfBiz%8Ev4jSgHBWCvfj4g-dWbO}NON@@}wXhiLQ9jrPci1X?b+vA!j z$BlCc9M(0tz)qTQ(>24bHIam_4Kw<~kztHA8N)vuNaeZ@F-2-2`Jzf=ztoH5fn!6#@fEH}N4fC@Cu{uHB1Y0;xme zcOv~0B2*mZ0wkzqp?0Z#Ww`=IL_ego(qWeL=QAyDlTu>IUX%?N;N9y;URD(4AC ohv#uehIvFS5i9`|aeGyZ1u{xcGD=VLPUj(D8#!EyDS&(N3zTqwGXMYp diff --git a/music/Learning/5_-_Harder/Big_Bad_Goblin_Blues.mid b/music/Learning/5_-_Harder/Big_Bad_Goblin_Blues.mid deleted file mode 100644 index 17dc348266e1afdaf1a67d53b0328bf90b4c4e6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5192 zcmeHK-)mcC7=BOF({9z7;Xp;as2EdYbWPK>4NIDwv25 zoZxyokgewoDnnsI7&rtW5ydNEg5ZredM94^52)aUcQ!un_ajYgyGC8vloSr{ci!{< z{+{po(y8hB(?rxk1_jz_YWnQ!M4b~O*pA0*oI00j-a?K6Xq#bdF=!M@nRSU**# zO*rANdc3{Oi0z^3i8g+FKG1&UCn?sQRkbJy`QF1)Uj0$Z5B`wy+BZ^u_?whBzLxT% z-=(~=zB_Sr9Xh|x`|)=&Z~12_zbH!i<)`ncem-gFs}*Or=JQL#oLl(WtvUZ+@!Y}> z^YMR`$L{`lcUBE?p{D@@hrOA0BtkNI$CfsvFh3LDfLl zv4u19=eoyd7f<6xHO=5&YaEN98SEGcedzI0S~jsMsm&3&zbqHVZKc^J&6*>t4=K&%d8MhP zhp}jVQ@|!V-rPl&yWr$Gj>mIPCa{sCn2g+->xMVPl@8%kf_qP3F~nZ18Dy_P)-+?o z^JcFUFL+09<2AsM2b#6nKJoxhSH$6fq6?m`>;lteO|6Wkj6-@FVLgo=HI0FYuK8(g z^NhB6R@?Myo0yo!b&R7QP|d=l2L0i`LN#mQvw(h1!_RgPz@hX+3;G}gK~flzBq&Wj zJF*m*ETx%@hYxNm))UlPzb2?DjQLXDOCH1Fcm-RjcngPrjt~E9Q!M_0hn6>zkYMg<&=$Ebj#@tDev{HS#^hnKbf zQj`ooisOid6Gx2YydN2Hmr4;d=l6gTOFf`)KRoRoD1~X|ML+Zc+-IQ=5y1)HLW9uc z;G;A}Ka_-K>^3%ztxCDDpcWH5JE5R$0*}@wj|`I^lWO4HwvG z!*Qg>;qfdVk_kDO>`jlT>6RNRi=whP2aBSzI9C=$WpS=dX^OtE;mR6qI8M#xj&!J} zxzXG|+e*Yy_~A((787LX^q~g{ou{A+Gn}^By}t*Ye;21=Kkk7!Hq>*^;e!wMXbt>~ z4-1+}?B~W&&qMQ)dst~!PHsU5b@;$f0h}<#$4CtynLCP)7PZ_ZYH1+YsC97?4Ep)j x7fc-r95!?2K^5=5=7&!RC@}frqVz*21@@S97uWFm9BBO1`w0QH7_Pux`V$Kz#!>(P diff --git a/music/Learning/5_-_Harder/Carribean_Cruise.mid b/music/Learning/5_-_Harder/Carribean_Cruise.mid deleted file mode 100644 index 794107e448bcdb5ac21879846fa70ea1b3050f95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3841 zcmeHJU2hvz5S?}GGzkSG9{3O-8DvFrtb~oBY+GAqH`~RIW0R!$XdrG%nwn$_YNV*B zqzVmdM@5RlHfwnNx6z;Zi^aT*HJR6h#b928EzE0zSFhezK(W2~%w$catz4PXB)F{4qao7 z8L{LiFv#<-vEWy(ibdz>#|>AXLENt3e;7A?0*24P)iKP&P?L#%WCgLXZ;Anq(vmnM zrvyJHILZr{Vj^f|8gQ*eax1I5QAoy)L9NAJ7Gz_5QVU)x_TGAc*y(liU@b6f82LQr z6j)iufH?(L)-f=Gm4yab9dm?>F@PwsGT!kLl$lUgW@WxqUs)woR^i3KOPQ7V2q-(m z`b=VGKv{{E`BJgN&~C9Z|FmL*p{&Hpe8lsZJwInpaX0_J=S;^9D6Z~w2e)@`;~!4^ z!QJ9yUf}G>>HR4yfMgUd4#+iG8L^Z;#DFVEd02i8xW$nNcTmqG5KeAR7g6tkxyLmZ$j$1Z zIDDMbyPPaFrdg76j<8m&s$$>ea?Mr8L4`(5DRVtAVPVgQ>VY3v`1C8r{iw^;&0Ko2 z*^uZvQvjj=D9WZnUU41FVWrWp!*CNT?HIm>VG}&TBx;AlM z)I>d!CMrTLG*K-yQ7tr4Ei_RFzLgf5rxu#1@a?HprG-WckJ3UTg=cG}uG03Ko`$nu z*C^%X(8$ztq<9({8CW8iv~~ReD9fPilc3!wK$!M-M8{*&RbbNK$uLg_f;9G}v4sU? zjuv#3>f@cM?CcoP#|u)9iclbk4uY=G5x=nFQIuj;U#Z5rFxR;A9%?%ryPvFZM=%nZVfvV2JYWDmW>1g^z-K@ z3+V~AG|d>f47`zY8F(Y*GVn&qWw6ET*0QG|0n6FYrh-GFT?)|J1sOy<4VhF2DS=KL!BRsZhM}P7b^e1sz OlWR~U1AiYmN&X4XpngsO diff --git a/music/Learning/5_-_Harder/Danny_Boy.mid b/music/Learning/5_-_Harder/Danny_Boy.mid deleted file mode 100644 index c97884bf54cc99b2eaaa39b8d499513bac7940d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2869 zcmcgt-%le|6uwgmvZPpdakH*sAXwOxjWG1rblPDYcBZtYP!?D=5TlV~*=2P@$Y#}S zjIPsZgoKSS6Qd6s6Q6xB+rDF>;lU^4f588sZ@$#;+?jy_g+z@$H0Rti_nhy1=bU>w zb8GDmW2}P-tS!i9Zaw^fu|N-NJn3o=Ut%oCSX{uVyFJ_+6UFq%m^dQFSz{>}47}3G z8p{DVH|E;9Uruph>^&FgXzW=}NFEH_gLv`szIB!4{agx9M&gDzX2De{) zmg4s={_!=r^<4UmN4fI&TMBx0{rxI|y!K;`OMuW3!OhP-@XB2nx<7jE%I^n`%LDfe zhiZWC8GFAT^E392`?rYW`RyL_YjKa~aT@Q3f9Pj^dBV|r)nh(QL_jn_=W=h%J9_wQ zWZhEC&q!Y0uTc6_d_NkO2LrsExW{GqhQ=kD;-6V#)EkZ9pBRSr_V5L*043ZW?#QpM zuRdIP&_7c&imcJrHGlu!+N1u$%K9Dl6Go$75LoT)X;upbSnY)kR_oGEo`o7Fu(pby zD}`D|h~X#HhF}|FU-jEr*_tx5ENUwmC<+u+w#uf;L|ap!HrDxyvVN8VVMrGh@NWfy7W|Lf!^6Q{cq?Eqw3}(RJ|hDY05nfdNSos zjW{PAP35cws>K3off8n*@XjVsCf?aN6zXhNM7^@8ml6Y8g_s^zUXL?7H{rEGk1;#1 z^`L@QmQR4LGrKSsGV^Ez49qN`vH3|L`qJ zlwpDQX`Y79^V~lEou?`Rl|R)a6h0wir#gGi6V;+VSj688gZ^HKfFhrsYuhU*m0&CM zuoW7bC?6WZF7%;5Z|*FCFBPb10|xvJsA1h*m|nf>ZMzoh@MpdN1FVh(SjPgaV*%E& z08gBSIu>6Y3(%879SaaYp^gQJ-*-VrQnyAb5)&LLv$?^QWP-uExn4;!<{Dx!D4X{^ zL+6ptb@_{p%5|(XN5V?O<*1W<9ha}+;CjQ*3&W6A_6(vUjssC_MijF^BTFI!lmzQ^ zk}2lM2JTT58DHeg_5&!}tLM3=$UO!37NivO69lV(C$^KDDW}z(=@>H2{<}=SnQsN| z7O<(JpeKzrRWy-=LEP;Fd8)aEf?`d(X~ywsygAKr7}7{nVxp5M<4_EN+7|w*y@rXC zXeHG%Ie{|H?kss_>~s=3uFs*a{#7~8>x!~q`M7v*QN(7vA`E!mJjfAdQ;@UqQYGfZ zO1PS$9%5yohpZCAK`Npl5;bI$kVi2(VhM@}C3X{NF|ZStt07p1oy4Lwi=2lY>9#+m zH$m;)bE#o-xU-{Syl9BhG#}~K^KokE(_kGxyG1)IjuZtk{&WWYr260#ZGJlZH5^8% bs*V`39y^Ia>q9)5op<1FeaxF7@=fp;!<$|o diff --git a/music/Learning/5_-_Harder/Evening_Falls.mid b/music/Learning/5_-_Harder/Evening_Falls.mid deleted file mode 100644 index dfc95de6d043b8002a56d52f9f30247ee7d4eb10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2593 zcmd^9O>YuW6up!VrXXs>$-xzT-YD_uH$B&jV?#y z;RmmO`t%f@*%$BMoqzO#;pG_&b{+S=$O0j~l*p`ZzL-fJpheIEFa*X*KEJk-jsfUE z(l%EzXH($L;-vX3Q&|?q1Yb9N(=%wxf z*>ypsbfID!WwhiroT{w0Dp94k*`JOQ)g-xdn__e%|5l9h?EfYcSiv(vvc!B$9+1SG z>iF;>q2Lf9%nw0GD_jD-V-D54V=~nSz`1 zIv+?euR=rePeFB<0Z?5gC|flE{)JVmlTU9S>Jscici12(jKiP+Oce&bQEpACMN}DX zl{<>9c0O)|EyBl7wcwcG7=;uGiU1V?HdG_10W=u20l+&x#mu7#prJTblY!Y!lTKk{ z0Bmei!ZTspy}bCv#W$`we4(i*9z~dQ|*0?JJF7{ue+r(2oO_Q ze{9SX%l0xk60>uSl;9SB#!bk`vymYAAIKODTqkcgh%aEbxJj>=y*Ml=k<7~xfRwm{ FzW~^d&>jE) diff --git a/music/Learning/5_-_Harder/Greensleeves.mid b/music/Learning/5_-_Harder/Greensleeves.mid deleted file mode 100644 index b424fe73fd4b69f02e54b611e2dd1c0e559582ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1671 zcmc&!Jxc>Y6ny99f(goronVo|LPU}?5kCmYEr}r?B!yz3rC|I(u?Y5ZLBt|Wf`xxa z|JXTmcP^rF3q`DM_Pu#;XJ_|a@9^SOMABl3os!<+;0mi93GcFwyC{+p$y->>JMMDP z^LFwZUfwH7c$7-pE3*NBam%?`c|lRmvYuqD)V%~sWL#H|64U`2j5Gk6>Oq1gKuZlJ zXhjjE7-^79PL1RmK$YYwfFhXEdnuC1@k#chszgSOo!QW5XQs-Gls|HG!#|LU zO=*G_uQmJBOg$B9t^jC-iVArgO;&0YN195;9WLNn&;cb5#KuN}Uz)41LF5PakCcDV z@U6){iXx+No~dTvzYG0yo9(F5a~skcDJGI9ePK)tWvanQs5= z(|o)}^D*-*lTAFs;ikxBn_wHDOn~=jN)^c|g0n@i1+Yu73t&ijajB~!Q|_|DEn5B!9|&@ LVm5}W(OkR%X33{a diff --git a/music/Learning/5_-_Harder/Habanera_from_Carmen.mid b/music/Learning/5_-_Harder/Habanera_from_Carmen.mid deleted file mode 100644 index 3abc14cd215a26579ab14cde96ed0043384f325c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3702 zcmd^Bv2GJf6unNo5kcY^Q6WT;G^U6QS!3B)kymSP9D7ZI#1q9nQ6Z540#R7>XpJR; zL_u6pP*6}%Qc?!Kgg-Io+?k!M{URPhepMRl?wNbfy>s?>X7}zrekdX3u{Rht<0xo%_mEQjI z{o#XWYkTo_45;XpE{c2;nXVNI$8yw8DaO z(1IRe@=nqgc4~;uu0Rx{O{rTnhZPu_g_Js=O4PIMLm_|GLV#ii84CgG`*{of8PIdI z#zJ7(agebPpst^{kOH=~S_nYoii`t%XCV%$Z{E)=#6T^?CACnN6R~WLpau5O&szw< zSrv$4v?+DYLe$Jy$Umf>W4x~b%JS6&fkIG_0Y&cwc$FOlE~mpKA}%Ljj=mW3m@1nS zF*(YYJDz_BK_EvxJ3-phB2;s(7FHs5;kiJ%9y>9`4dKSpyqO#~gv$xZWd;QgH{)`; z9DqGti(dpG=89PWt~AynJa8`VMX8_*=sw|zCm@MCJoq~1ymaq^hwcI-?4a$yzB1e= zobI)mEDll=SbaWVhn$GRo*c#b*)oZkr4l9B8-?vM;7(#L>9#YbZ3f$#gMc|*oMLy9 z_xh0D0T2P$wN&XYfDV8`@}Hwso;jxrsah;IE5|WGuzcVo35)`oT!Xr786++ z$~c3qGPuf&GK7pWjEpi1P20e6Z|p3L1#8w zWgDY|Otx?zP>azP`fkyK4DyWNu9Le#?uLBjDkkF}h;^K|0-%|ERNv@Ms?24J3IiS$ yzk4hMXlD)?T;j(3gpBza{SW3p#hX?7aPA*hp(86ebSLXWtQwaxD&vT}AwL08_!BVz diff --git a/music/Learning/5_-_Harder/Jana-Gana-Mana.mid b/music/Learning/5_-_Harder/Jana-Gana-Mana.mid deleted file mode 100644 index 0aaa6e46806523313510f27b67ec63d132ba59ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2742 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 KUX0=&8~+04;NJKE diff --git a/music/Learning/5_-_Harder/Moonlight_Sonata.mid b/music/Learning/5_-_Harder/Moonlight_Sonata.mid deleted file mode 100644 index 10f5faa202f186894fa265f459ff01318526bfa9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5720 zcmd^D&1w`u5N@N0;LU@2R0L5%FzDuIvoV=92?>FqLT1q10v;40f=@686p!-=K7x4Cn$*U_13%9Si z$?FCDp1iz#<9YeHl%JQre0P&aUi9WIH@SR$|KsV|n>#Pwot}MgKb)%unX8tv^Sm73 z$1poD${`*$`DRn#KMR#ha;U2o|Dw%B*j&k6^^i7K@FVtfB?*-ez4rYevcV{A;O!RQ zYzgcSj-c{BV8-|XWf|jjYOmu#wFd!;Xq6A9wN+$9rIEnX2M0*C?M_y)7%(8RG2N8pKV+iaDAs+ibH&k125_|Qar9H)gDKZ?4H%U(rnc%?~ z9>gW09weYK{Euv}(f>6t3W07yW1(Pst8H6FB*{E{2f1J!CZJjM$vg3=I})uSSs1I(#hMpy!(HYXgJ zFH?3IKM?UEq_XxB36@e$h#*Y@UyOs%RwvQIxm;E1fraP+Z!)-?3yEkn&jq!H%6Trm zhJzbT1DEVI!n;{Z1PLpAC4$K=M3}ubh)C4@Bxs4Sav5%lNRdY()w4`bK|;KP*3dI= z2;(6|cMeZ9ddAWJF%JF)XD+mobW~`VB1rDw734s-2fce{-5#vqus!I8rX8%dy&+*g4v#jwXcpS z0#ffOzYgugHV&0=CbS_U@BwUVx^zUS?F4k-waGm8U$n^q!4)HNDPh|4>Mdlxi3p>} zj5CT_rlaiBBE}&8^D)h3o#Zf5SIo5G5xxYIB1~llGIN~LA_A^~gV*$3&h^}KU^8+V zU(ft!M5hR0`CgE1zf(j`>5jUFvm2J8WH@_LioDHxO2P;Y4B@0q9RDd;UrwQBWUNp` z?ypV}o*;MFj8mA43X`RfUPOP@pHsVhV1FsJ&o?Y-enDwDQRI-?hj<7gfW0=}6jb6d z((SRfZE04~2+V0j%EVVkGXcp{;L!<~N7_<>098tz#%`Aj)(4I_= ze_@k(mV3hFIRvz0vINLqHGcV|b`-5fJA!1PWv@vZOe1N;*lWzxj9z02(vtndhW|T6 zC#31;gVB^3!#SrzqysS%9^%5Oldi!kSuL+juv4jhMuLyIn2BIOAn7!r64 z4|?{51jH_hZ0qWxw}pCOp zu!&wvvtDkn<;b2Q20%4Mv&VxTh?`BH|5F@z5;>&f(D98Zfu?4>LJC9<7{wA~6@i7K z9*}+t3yeLX`HWN%6l1+b>gS_{xIS=jum;rtvR$vS!eI;;Wnwv45#HSN;$nSZw6Uku zf5OucX<#kHN~Ue~R2MLPqng^9`X&yGzFEq?I=zRN5T9lI8)TIPi~w(6$-@vpBk(N} Iz@LYI0<6P1Gynhq diff --git a/music/Learning/5_-_Harder/Once_a_Canadian_Lad.mid b/music/Learning/5_-_Harder/Once_a_Canadian_Lad.mid deleted file mode 100644 index 326e292d725e5307aac660158586e97b3683eb1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2210 zcmcgtO-~bH5T0$js06Grkr?E_iGL>dE6ohmVr3;cZw?j%7^qoN>l9%xUVbCE~G@hpBr#)+OpL#|K7V%HxYX zTl}2*AkM;FaaL;LtiBiLMq8YtFW>%W+^4=c#iR1SI4|;lye-b}W3MItb6?y+*ZIGE z|E}-H0qdjglpLSl?Ml zVOm0x8Hz%47X}&YN zT?=e#j)*s>{R9ux%#+UWe*Qf9*8J|KfaKw^Sdf4Thy#cxAUg>j?2+z!D5MCFGY=vU zG45=8v+3f&W5FIW74dT@@#Z&5s2_6>^CxWor?JP36$YRSZ&I~G^QOYuX${4m! znE_>%VvLjtm{bOcCm_AbKvIOqv6QlmQpSS+P{!ahiia!Phe>6CI1%Kp%G?V1b_Im2 zgYJS-#@{aUE}-R=cf-8ZC1xp!zW5j*zkF@4fhJM2EE~nrSt^|urDOLbgGFUtMHSAk zP%yC>5bokt6n>dQ(4gM?wC=!D-EOeC83mr*w8kgOTIL=(bkgHnEK?0-3xn+cD)}Y+ zF5MN0P9cF(&aRS4yo8b+1efqDvjobaq&i68p_+14Nnr?fOJ!<5^Ii15FvFHZ6^owo zLcM5ycw5+|F~Wk>ZeaxM{Q(S8N6_se7As*0t_zpA>2&ZQ7*A7br8tbK^J4=0F1tbB--59_qM z8QQdyXyr)f5m{`Luwh%2%vE(zaMi|9zE~zM$Cxd+u zvX{1NNQlBrG{IO!VM=@Y=5~X*Mq6ppc;?ia0;d2@-vBr*NsS0>NU#}!S>{aj)dC17 pJK42Yl~$J0qII`aVd|QUoFF{~KPST#s)Eekc627Q&^*b9>le5ImFfTh diff --git a/music/Learning/5_-_Harder/Rock_Solid_Blues.mid b/music/Learning/5_-_Harder/Rock_Solid_Blues.mid deleted file mode 100644 index 16af772b710aca45972ce4ff1a592ca7f41b1740..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3396 zcmeHI-A)rx5S}e;fm*D31^5##u(s5;D~4#iFik47wB0lkLL`O@5(?CkBEJbSv2Kwf zH^}w{H1P%8eF1+S#@DFdoZarW1!6GV!Nuh4*_rRmcjnBGIm*Cq^~-@fV~X-L_DG2-kE!vhyW2C+ON}`X%o{Je`X2nWm%R_okFU*- zK{og{w8yLO;i$F#iHh~w`ggJV$8k>FCeZT)E@e5;mq_CyAP2muLb1jx=M26Q-Mo)zdUxEz3hm0VRk-+|Sjttz_DA4|} zmL$^BkQ{~eWC>tMZu@Z5NRW09=Cyfz9rm}_$->EG)6v?OcS1So93-ToeEeB#MZ%P3&LVH z0Yny}GP4OBm4&EaHUU;yh8%?MTkn_%4t>+SB|@v>?&$j zlO!t6>z72O1xXV5;8x^SwY3z>Rkexia9hdA3c6g?cKlq-l@vGUwa;%v|H_hV&5^a^ zoBH%K(r430@3m?4jai60y4JZp^008nr(CwjCnZiFpMAN)l07{em2Nq3L!#eeih8I% zQX~`8(?s2yz66=5c@xvq#9TAc158X$vp}B)t0N@UL*?3>nIP?MHAE7d)WgNvJpUQ2 zhM^xVA8b}fNv=nVKt%8-Tt3(ls!$OhK-Gh66C_!{N7(K>Cks@hSgWwpp)*`W*hR#4 z5oQ-mF6xkv+T>#n`55$ZM#Vv1VT6J|F(%KdD3b@OuCR@AapbKSI>bOz{0TY4IAVz5 zCT?Iw%!zE=LB(y9;-HxP7^B9{8-xqFp!4?4Y~k>CCV(W;i_@){dYo?VUb0iKnSzo? xQ;Zyuo)|g*mq1sk>10W3#h$FIOPrcAy5f%j`qH`x!hobLRR?H)5Iu*x?q8ki_euZ& diff --git a/music/Learning/5_-_Harder/See_How_the_Night_Arrives.mid b/music/Learning/5_-_Harder/See_How_the_Night_Arrives.mid deleted file mode 100644 index 16a50ae2467a888aad8805035c932028cd07d32f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3270 zcmd5;L2ukt5FTekfOG|ikOK##3PDLin%HICt+!UO>)JR=ch#0OxGANrlG0XDQ>j8o zoY>Tfs00U#9^j1n1NOwZKZ1XN;4kF3d^7JouXhtb3R2ZW^x~N}^UZwU%u70}_cn=W ziY%I#q|WN2Eux99X^>4?wfbu`xHd5$8eFbTFD~fg@$k$hr)uxvlDK~y+U2`)?_a-1 z<5nK1xV!74=ia{h-rL{RIKLhd@7WRKeqmBxN58-61o_*l@&7s>*VMhE#{D#cxAH*Y z-CZ9&_x9B{h^nDb7Dh3)xbUKx+IcP&8>#*}DUu!Q?5gvR-{q{|Y^n3lH=fa8SXv%h6W5i z<>$o^;YJIF2IY1y(l1Ho>-iR-&F;st59(2gZ^ za%D(#LFOq$ymyZ0>FE{BArh{`kmaAtkTRx6CyVeZgxi4Q#*^8K!z#i{RJ6ZD`6i-` zh!%QcM+%3RJ-ss$5j)5oBWHXXM0%*ck$)>xM^65!)Rgd*1idt*W$cNA8E@d~GLpqG zy4oQqFLl8`j~2{Lhxl<%=ilf~Fm!0obMmejJf1=rd?(Muz@yCu+sUtr!G<>Kb{hxz6-s0qtVx6lfagIyo#rSQ{Z6W;-*ughzRV7Fob6x=yv9 zDlC98zJ)LsjBp5=?@BGqh%90z(3vP93&UgVe1Bh-g%>f*z;(!6XFCst=Maxu`WdcW zMpphCqSh13b^#7l>0JcMKREc|uSD>A%Hn85l?n|rY8$92qo(+UQDdOG230MfLXCmy z8q`A^3bk|qH3q7iX;kIFY%!|LmFYFYi<8`h;y2JMPb&`!k8p$>33A}Y>6Q*A&^Y`I zb7mrVGK|B{ut3HkGshZa)tQ3<;lr5=P(>T>p8bW^QBZk-SVxgxg=C_ItSSsHBe{Ua zLmFW{=S1?*F@icq(08H2B6Q=$8Ik85I6mNk7#DQt7!!0J5g&2HxS)(Gf-KfEiP)5}cg&JOdi;^>Xg^da#C~_poA#am$h@kAi z-%EKojDsl-=Aa5cAU0@LLa0Y1T}GN^P;T})0jR%J5j5n2k<)e1yD0P_dgTYyU%=S# a+OrPw&)IP*I!iy?!w2;`^u)sdj(-D{c7C(~ diff --git a/music/Learning/5_-_Harder/The_Four_Seasons_-_Autumn.mid b/music/Learning/5_-_Harder/The_Four_Seasons_-_Autumn.mid deleted file mode 100644 index a78126b2b1c131d20ff90b0f5fd96fdb5ba56891..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4777 zcmeHKPj4Gl5P$2$rb&~ykUv7GigHOqsBmne#n^F*&3eto_3n08j^%`?kSZo6kO)PE zN>mVSHo`q1CA(*&9uQ}+FTDbvfe(Ph2Qj~SZ`W~6D+&!c<*<6Q^Jac;X5Q?~j$XaH z#Tbh*i46=gy}JJ?-cDHOU^p6og|SN?vbcn|(P;eYTgl`*iBvL?Tx6a4;9%s{ORTdN z=`hx@28QN-36^jF2#Dqw@qc)Yufy^0#QI~Iub1Cg66>G8^L6C0%-7K`f9C6$akY6R z#9avN8rg&;(P(@quYrh1Q=j>YCZ zy$FWk+NX>XmoUK)yS6CW}qT@x==CtRc?Th5J%R>pyKWZD(8Fb z(UfP_$AhCC!!g;EXVslOcs1qO>#hmY=D~4Sc|st<8OqE+ z#tvnKFl1IC1NDD{lcpR?BegP=V;K-x$}z%86JVO1On4TG$XXpIQvtD1K&mJaYs`HY z48{}4LPeJE9j#!z?axcC}nKn+BdGJw7{d>s~G z;o@!FzJ+L*>&-8a6R4~7z399GEig}CM#NQsQDN4o5@|%x^>Bi&hltXf%quTJvjkcC zh}G-N(=s@Ylmk%<1S-@216u-Yc^TgHSwJPTYk@FUg|Ye)5AI~|A)VVi}uV5ntsuqFWPh1!k^XV z|G7Q0PB>^p{b0~wc}x>SmBz=xF!7YB<2OEEL|7a1MH}-)8}mgQ^F`mg)W%%VZr~BC z)W&>)M`~lfz!UKcw@)SxQGfjcdY2&9o1cS-J=a!_v~uWpzKn8vC_}A>0JIF~9R6{I zQ1`Sf>1DB(rPH!d%aI{Da5A)&A%eCtPa1OEc+#}o1~@q`^KcqlWQhFefFCQ%*dvRQ zZv#3BM41ecNl3Td2Z!j(zFu){K^U$Xa#jUFhUie!4c7>_ED(toR>z-1i2U?J$;41d z!|%l*{=$8g3{uJb0tK7jQ98Una#nD!KEAf|kbF?)v?V@NpAnmu|MTkejJ$%cd`NoW^Blf8&Xqu4r{@=GLCA^<`n z$Pyu84)RNcR3fB62mpjckPtFLp-~WLiWC@r2Hq9PyJBygisW4p-WAEaB6$}G^~4E6 zMkq820^ZTQ$OB!VI28zzkQ5*(grpEsAT;SiXct0&BqSk(J5+Fo`32@H%gBs8V_+O_ P_mzcEoyk94e-&8m5+#;fJ zQfMqo)s6c*M9Kvk>`$t>H;J-MdP~9S4K?@fB~80LH?PfUAJL$e&1T+yod)&HfM{@S zY~uVYx&1EpPMhJ6cSrZ@KPKmNzh@p~68E1+{La5hcz>}=zwqV1l$Zt|%J<6tgcnlP z+=S)9$f>#UmF>Ol`>oyCYGt_sD68hC@JwTqYoFb|^I+C%?cJhZ0L&^1^%_3)&Sa?f z+CKFrt&?Y^ho7gnjg{<5Z~P2lDZO*R&XFR#;PFi8!C0+-e=l5Rq!xY&WLh|l!-t^* z#Hl}eAl%wMA3~S1!U-Oojc@E)_<3m4Sy153T$jDw*!$^SAgXXVgNrMhIreA<$tg3Z zjH?oJN=)WBHsY8Ka7@Ip7oN9)uF<~sFmN> z=34m?%l;PB%nobjj1H)~hG5k)a z0{Z_6=sjUt2NZuaM*?c60t!+AHM&y}$CIXTz98XYRlj@jEyO`kBZXB=m~=#`zsV6r z)}M~3u?c^>Ehp2j@np(SACsw%$<)VW>SHpUI4gZjq&_B-+?75i6PD7)WWrJ+eUqZ% zR@m<7D5g`SgWHjQ4NxPrk3;K#f>9`8Swq%N607-7V>QE*v5a9|Mp~EAOp8b$uB(+o zN7awUGSK4^$1=FbC5~mF`X!Ea1Qig=;8+D_#o-HJA)_^fb|P(#qJsH&rlS!7RwC_v z0ENScN5BUF7Kgy$H?fayKAVauI{Sd4FGxxZAc%hX@GHqsBh5o&pGcP?Tna7<-gtT! zISDPOQPHQ!yn#ZB08B6v06|kgM?<9+Ty!u>a9PCU>?~3~GBG*flaESu@bO0wF}D~< zZV_CqiHcYo4cRLP;X*XLNurQp{qh1K;xMg|3+^9r3RuRLY>0a>(yYgRz9)?n`aRWi n^46z%mTLKL==mn}96--If2ZeWl;6Wwfr;PAL-Y8CFzx>US8SJB diff --git a/music/Learning/G_Major_Music.txt b/music/Learning/G_Major_Music.txt deleted file mode 100644 index f68f8bc7..00000000 --- a/music/Learning/G_Major_Music.txt +++ /dev/null @@ -1,5 +0,0 @@ -All of these songs are from the G Major Music Theory "Free Piano Music!" page. - -Go to www.gmajormusictheory.org to find more. - -There are new beginner pieces being added all the time, another set of intermediate pieces, and printable sheet music for all of it! diff --git a/music/Popular/Gymnopedie.mid b/music/Popular/Gymnopedie.mid deleted file mode 100644 index 95ebc61bf381d6c6627cf30e2564aab2755998ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4162 zcmai0J#Qmb6n*Q2-6cpATTz8XA&z5X{1Ja(Y){5^ytZd;=R+$5yDJnB1s_t-uBefs zK_Icsj6{zps8}RN0*QhG3My)PD*gmTIOlra^Gs%(EuM1y-kp2Tz4yHHGP(cJhf1lN z>V{gm@z3P`lTY#Mb9MR7>T2qh+v@V&R7&yJiu^iWdFk=&{AYCuBisDt41d@D&7c2x zXTEX%_bH8AfBm{KKY8{A|Ni;lw-o>W;C$Pi?|;XAM0mQ+zmI3?vY_UI-V2Q=v8bb_5>MR_(m!4C#C z_iY5dsa;MztMqjZ18_g_EDL9jTJxN{ZVFou1mSp$Pnlvef-!+{=)hp5#}gQ=eOQ6P z@Xinh>l)KXfOU|a9p&zz9nL;+k-cTIH+A-YDEr|Nx^c+190Y9{Fc=H$v-5pMWiFZA zJs51bL#P6SJA^T^^-*6R(T7LfI&mluRMo?a{`AstKBoN2}WCCb}qP1-jeGv-pV(;AL&G{@8TqOKNegkH-wO+ zc$APO>_iF4`yd@Ngsh;7D_rMvh3jm6^cv}->#osT_)560Lyz{6L%809AzaUEt{*Jt zIteY5;!PDgF}rY`_nSMzDrUp0DO|6F*=D<#a>cNXOcbskgxEILbeWLH!gU%;xNexl zYaqZ#7hZ7zXNR-jWA+8tTRM9p*C&0nWdeHPzRU|8G8b!_Okoh%_$~}dN@h##><@j$ zN3kRJhew^J;J`28`aZbc(Od_|?E_F5MJ(ld2Yjc4L$%Ue?|}1QwRr+w{Auw7jECyt zVO?FU71V`N>S9BwKa}!wnQyv&PQB-+cVMJpsgJARWIq@nMr@kpQ;IsuVn;D?jek<_WWQ>Z7{5WMMn|+{%#=#ir0zAs-bR8>#vJ6l0 z$it(E?<+vsAP!=vU=_6oJ5@xM8n85ogC4c82eXhlEyU>11DDAll`O25^Pq=Kj)!Xz z4|c4K(^x+ZQhF3oM+I>VjtEj_DI&&Fr1QB52F!)kaxS`SoXeaSs3q|x2`_kGg%{|D z;kcfy@Pc#UEwZut%!1cevhY?Lei-)Ai_@bQ)j{8V<5@t}jf`88&KFd{uWVtQSk|VS zLcoHdRt0vRUEGEKkd1k=U>$$4${W~ZJM&maS42pEy-EV`Kzw56f0S3 zbuBf_)p&%ZHbXHMxkr{n0n3OOqYgej9e5dOVNH5QGGpz@2PRgv@nBDER2>mAK10T% yflSgl#4%ps4jM)kSa~`uWSeLfmbH~6WLXGV7CJ;Wh>*P+2-!L|7edB=+WrT}J&<+) diff --git a/music/Popular/Jonh_Lennon_-_Imagine.mid b/music/Popular/Jonh_Lennon_-_Imagine.mid deleted file mode 100644 index 3cef910a556dcc6aaf1ca8a3197d79a71161d399..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22729 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 TaGiST@dfwyyxsU0dnxk2n=b0i diff --git a/scripts/Makefile.am b/scripts/Makefile.am deleted file mode 100644 index a5a5078e..00000000 --- a/scripts/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -dist_bin_SCRIPTS = delay_screensaver.sh diff --git a/scripts/delay_screensaver.sh b/scripts/delay_screensaver.sh deleted file mode 100755 index dbaab235..00000000 --- a/scripts/delay_screensaver.sh +++ /dev/null @@ -1,42 +0,0 @@ -#!/bin/bash - -# Original idea from https://github.com/iye/lightsOn/blob/master/lightsOn.sh - -# Detect screensaver been used (xscreensaver, kscreensaver or none) - screensaver=$(pgrep -l xscreensaver | grep -wc xscreensaver) -if [ $screensaver -ge 1 ]; then - screensaver=xscreensaver -else - screensaver=$(pgrep -l kscreensaver | grep -wc kscreensaver) - if [ $screensaver -ge 1 ]; then - screensaver=kscreensaver - else - screensaver=None - fi -fi - -# reset inactivity time counter so screensaver is not started -if [ "$screensaver" == "xscreensaver" ]; then - xscreensaver-command -deactivate > /dev/null -elif [ "$screensaver" == "kscreensaver" ]; then - simulate=true -fi - -# SimulateUserActivity disables auto screen dimming in KDE4 -if [ "$KDE_FULL_SESSION" == true ]; then - simulate=true -fi - -if [ "$simulate" == true ]; then - qdbus org.freedesktop.ScreenSaver /ScreenSaver SimulateUserActivity > /dev/null -fi - -# Check if DPMS is on. If it is, deactivate and reactivate again. If it is not, do nothing. -dpmsStatus=$(xset -q | grep -ce 'DPMS is Enabled') -if [ $dpmsStatus == 1 ]; then - xset -dpms - xset +dpms -fi - -# Move the mouse http://xkcd.com/196/ -#xte 'mousermove 1 1' diff --git a/src/CompatibleSystem.cpp b/src/CompatibleSystem.cpp deleted file mode 100644 index 7d6fc4f7..00000000 --- a/src/CompatibleSystem.cpp +++ /dev/null @@ -1,99 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include -#include - -#include "MidiComm.h" -#include "CompatibleSystem.h" -#include "StringUtil.h" -#include "Version.h" - -using namespace std; - -namespace Compatible { - - unsigned long GetMilliseconds() { - - timeval tv; - gettimeofday(&tv, 0); - return (tv.tv_sec * 1000) + (tv.tv_usec / 1000); - } - - - void ShowError(const string &err) { - - const static string friendly_app_name = - STRING("Neothesia " << NeothesiaVersionString); - const static string message_box_title = - STRING(friendly_app_name << " Error"); - - Gtk::MessageDialog dialog(err, false, Gtk::MESSAGE_ERROR); - dialog.run(); - } - - void HideMouseCursor() { - // TODO - } - - void ShowMouseCursor() { - // TODO - } - - void GetDisplayRect(Gdk::Rectangle &rect) { - static bool inited = false; - static Gdk::Rectangle monitor_geometry; - - if (!inited) { - auto display = Gdk::Display::get_default(); - - int pointer_x, pointer_y; - Gdk::ModifierType pointer_mask; - display->get_pointer(pointer_x, pointer_y, pointer_mask); - - auto screen = display->get_default_screen(); - - screen->get_monitor_geometry( - screen->get_monitor_at_point(pointer_x, pointer_y), - monitor_geometry - ); - inited = true; - } - rect = monitor_geometry; - } - - int GetDisplayLeft() { - Gdk::Rectangle rect; - GetDisplayRect(rect); - return rect.get_x(); - } - - int GetDisplayTop() { - Gdk::Rectangle rect; - GetDisplayRect(rect); - return rect.get_y(); - } - - int GetDisplayWidth() { - Gdk::Rectangle rect; - GetDisplayRect(rect); - return rect.get_width(); - } - - int GetDisplayHeight() { - Gdk::Rectangle rect; - GetDisplayRect(rect); - return rect.get_height(); - } - - void GracefulShutdown() { - midiStop(); - Gtk::Main::instance()->quit(); - } - -}; // End namespace diff --git a/src/CompatibleSystem.h b/src/CompatibleSystem.h deleted file mode 100644 index c305c2ff..00000000 --- a/src/CompatibleSystem.h +++ /dev/null @@ -1,35 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __COMPATIBLE_SYSTEM_H -#define __COMPATIBLE_SYSTEM_H - -#include - -namespace Compatible { - - // Some monotonically increasing value tied to the system - // clock (but not necessarily based on app-start) - unsigned long GetMilliseconds(); - - // Shows an error box with an OK button - void ShowError(const std::string &err); - - int GetDisplayLeft(); - int GetDisplayTop(); - int GetDisplayWidth(); - int GetDisplayHeight(); - - void HideMouseCursor(); - void ShowMouseCursor(); - - // Send a message to terminate the application loop gracefully - void GracefulShutdown(); -}; - -#endif // __COMPATIBLE_SYSTEM_H diff --git a/src/DeviceTile.cpp b/src/DeviceTile.cpp deleted file mode 100644 index 7ceb1f43..00000000 --- a/src/DeviceTile.cpp +++ /dev/null @@ -1,168 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "DeviceTile.h" -#include "TextWriter.h" -#include "Renderer.h" -#include "Tga.h" - -const static int GraphicWidth = 36; -const static int GraphicHeight = 36; - -DeviceTile::DeviceTile(int x, int y, int device_id, DeviceTileType type, - const MidiCommDescriptionList &device_list, - Tga *button_graphics, Tga *frame_graphics) : - m_x(x), - m_y(y), - m_preview_on(false), - m_device_id(device_id), - m_device_list(device_list), - m_tile_type(type), - m_button_graphics(button_graphics), - m_frame_graphics(frame_graphics) { - - // Initialize the size and position of each button - whole_tile = ButtonState(0, 0, DeviceTileWidth, DeviceTileHeight); - button_mode_left = ButtonState( 6, 38, GraphicWidth, GraphicHeight); - button_mode_right = ButtonState(428, 38, GraphicWidth, GraphicHeight); - button_preview = ButtonState(469, 38, GraphicWidth, GraphicHeight); -} - -void DeviceTile::Update(const MouseInfo &translated_mouse) { - - // Update the mouse state of each button - whole_tile.Update(translated_mouse); - button_preview.Update(translated_mouse); - button_mode_left.Update(translated_mouse); - button_mode_right.Update(translated_mouse); - - if (m_device_list.size() > 0) { - const int last_device = static_cast(m_device_list.size() - 1); - - if (button_mode_left.hit) { - if (m_device_id == -1) - m_device_id = last_device; - - else - --m_device_id; - } - - if (button_mode_right.hit) { - if (m_device_id == last_device) - m_device_id = -1; - - else - ++m_device_id; - } - } - - if (button_preview.hit) - m_preview_on = !m_preview_on; -} - -int DeviceTile::LookupGraphic(TrackTileGraphic graphic, bool button_hovering) const { - - // There are three sets of graphics - // set 0: window lit, hovering - // set 1: window lit, not-hovering - // set 2: window unlit, (implied not-hovering) - int graphic_set = 2; - if (whole_tile.hovering) - graphic_set--; - - if (button_hovering) - graphic_set--; - - const int set_offset = GraphicWidth * Graphic_COUNT; - const int graphic_offset = GraphicWidth * graphic; - - return (set_offset * graphic_set) + graphic_offset; -} - -void DeviceTile::Draw(Renderer &renderer) const { - - renderer.SetOffset(m_x, m_y); - - const Color hover = Renderer::ToColor(0xFF,0xFF,0xFF); - const Color no_hover = Renderer::ToColor(0xE0,0xE0,0xE0); - renderer.SetColor(whole_tile.hovering ? hover : no_hover); - renderer.DrawTga(m_frame_graphics, 0, 0); - - // Choose the last (gray) color in the TrackTile bitmap - int color_offset = GraphicHeight * Track::UserSelectableColorCount; - - renderer.DrawTga(m_button_graphics, BUTTON_RECT(button_mode_left), - LookupGraphic(GraphicLeftArrow, button_mode_left.hovering), - color_offset); - - renderer.DrawTga(m_button_graphics, BUTTON_RECT(button_mode_right), - LookupGraphic(GraphicRightArrow, button_mode_right.hovering), - color_offset); - - TrackTileGraphic preview_graphic = GraphicPreviewTurnOn; - if (m_preview_on) - preview_graphic = GraphicPreviewTurnOff; - - renderer.DrawTga(m_button_graphics, BUTTON_RECT(button_preview), - LookupGraphic(preview_graphic, button_preview.hovering), - color_offset); - - // Draw mode text - TextWriter mode(44, 49, renderer, false, 14); - if (m_device_list.size() == 0) - mode << "[No Devices Found]"; - - else { - - // A -1 for device_id means "disabled" - if (m_device_id >= 0) - mode << m_device_list[m_device_id].name; - - else { - switch (m_tile_type) { - case DeviceTileOutput: - mode << "[Output Off: Display only with no audio]"; - break; - - case DeviceTileInput: - mode << "[Input Off: Play along with no scoring]"; - break; - } - } - } - - renderer.ResetOffset(); -} - -void DeviceTile::ReplaceDeviceList(const MidiCommDescriptionList &device_list) -{ - if (m_device_id != -1) - { - // Try to find currently selected device amoung devices in the new list - std::string current_name = m_device_list[m_device_id].name; - int device_id = 0; - bool replaced = false; - int size = device_list.size(); - for (; device_id < size; device_id++) - { - std::string iter_name = device_list[device_id].name; - if (current_name == iter_name) - { - // Found device - m_device_id = device_id; - replaced = true; - break; - } - } - // The selected device was removed - if (!replaced) - m_device_id = -1; - } - m_device_list = device_list; -} - diff --git a/src/DeviceTile.h b/src/DeviceTile.h deleted file mode 100644 index ac21e712..00000000 --- a/src/DeviceTile.h +++ /dev/null @@ -1,106 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __DEVICE_TILE_H -#define __DEVICE_TILE_H - -#include "GameState.h" -#include "MenuLayout.h" -#include "TrackTile.h" -#include - -#include "libmidi/Midi.h" -#include "MidiComm.h" - -const int DeviceTileWidth = 510; -const int DeviceTileHeight = 80; - -enum TrackTileGraphic; - -enum DeviceTileType { - - DeviceTileOutput, - DeviceTileInput -}; - -class DeviceTile { -public: - - DeviceTile(int x, int y, int device_id, - DeviceTileType type, const MidiCommDescriptionList &device_list, - Tga *button_graphics, Tga *frame_graphics); - - void Update(const MouseInfo &translated_mouse); - void Draw(Renderer &renderer) const; - void ReplaceDeviceList(const MidiCommDescriptionList &device_list); - - int GetX() const { - return m_x; - } - - int GetY() const { - return m_y; - } - - bool HitPreviewButton() const { - return button_preview.hit; - } - - bool IsPreviewOn() const { - return m_preview_on; - } - - void TurnOffPreview() { - m_preview_on = false; - } - - int GetDeviceId() const { - return m_device_id; - } - - const ButtonState WholeTile() const { - return whole_tile; - } - - const ButtonState ButtonPreview() const { - return button_preview; - } - - const ButtonState ButtonLeft() const { - return button_mode_left; - } - - const ButtonState ButtonRight() const { - return button_mode_right; - } - -private: - DeviceTile operator=(const DeviceTile &); - - int m_x; - int m_y; - - bool m_preview_on; - int m_device_id; - - MidiCommDescriptionList m_device_list; - - DeviceTileType m_tile_type; - - Tga *m_button_graphics; - Tga *m_frame_graphics; - - ButtonState whole_tile; - ButtonState button_preview; - ButtonState button_mode_left; - ButtonState button_mode_right; - - int LookupGraphic(TrackTileGraphic graphic, bool button_hovering) const; -}; - -#endif // __DEVICE_TILE_H diff --git a/src/DpmsThread.h b/src/DpmsThread.h deleted file mode 100644 index cf95515b..00000000 --- a/src/DpmsThread.h +++ /dev/null @@ -1,75 +0,0 @@ -#ifndef __DPMS_THREAD_H -#define __DPMS_THREAD_H - -#include -#include -#include -#include -#include - -#ifndef SCRIPTDIR -#define SCRIPTDIR "../scripts" -#endif - -class DpmsThread -{ - std::atomic m_is_keyboard_active{false}; - std::atomic m_should_exit{false}; - std::condition_variable m_should_exit_cv; - std::mutex m_should_exit_cv_m; - std::string m_delay_screensaver_cmd; - - std::thread m_thread; - - void run() - { - while (!m_should_exit) - { - // Required for wait_for - std::unique_lock cv_lock(m_should_exit_cv_m); - - // Sleep for 5 seconds or until program exit - // std::condition_variable::wait_for unlocks mutex - if (std::cv_status::no_timeout == - m_should_exit_cv.wait_for(cv_lock, std::chrono::seconds(5))) - // Handle exit (m_should_exit == true) - continue; - - if (m_is_keyboard_active == false) - // no activity - continue; - - // Handle timeout - delayScreensaver(); - - // Reset value - m_is_keyboard_active.store(false); - } - } - - void delayScreensaver() - { - system(m_delay_screensaver_cmd.c_str()); - } - - public: - DpmsThread() : - m_thread(&DpmsThread::run, this), - m_delay_screensaver_cmd(std::string(SCRIPTDIR) + "/delay_screensaver.sh") - { - } - - ~DpmsThread() - { - m_should_exit.store(true); - m_should_exit_cv.notify_all(); - m_thread.join(); - } - - void handleKeyPress() - { - m_is_keyboard_active.store(true); - } -}; - -#endif // __DPMS_THREAD_H diff --git a/src/FileSelector.cpp b/src/FileSelector.cpp deleted file mode 100644 index 074f4d9d..00000000 --- a/src/FileSelector.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include -#include - -#include "LinthesiaError.h" -#include "FileSelector.h" -#include "UserSettings.h" -#include "StringUtil.h" - -using namespace std; - -const static char PathDelimiter = '/'; - -namespace FileSelector { - - void RequestMidiFilename(string *returned_filename, - string *returned_file_title) { - - // Grab the filename of the last song we played - // and pre-load it into the open dialog - string last_filename = UserSetting::Get("last_file", ""); - - Gtk::FileChooserDialog dialog("Linthesia: Choose a MIDI song to play"); - dialog.add_button(Gtk::StockID("gtk-open"), Gtk::RESPONSE_ACCEPT); - dialog.add_button(Gtk::StockID("gtk-cancel"), Gtk::RESPONSE_CANCEL); - - // Try to populate our "File Open" box with the last file selected - if (!last_filename.empty()) - dialog.set_filename(last_filename); - - // If there wasn't a last file, default to the built-in Music directory - else { - string default_dir = UserSetting::Get("default_music_directory", ""); - dialog.set_current_folder(default_dir); - } - - // Set file filters - Gtk::FileFilter filter_midi; - filter_midi.set_name("MIDI files (*.mid, *.midi)"); - filter_midi.add_pattern("*.mid"); - filter_midi.add_pattern("*.midi"); - dialog.add_filter(filter_midi); - - Gtk::FileFilter filter_all; - filter_all.set_name("All files (*.*)"); - filter_all.add_pattern("*.*"); - dialog.add_filter(filter_all); - - int response = dialog.run(); - switch (response) { - case Gtk::RESPONSE_ACCEPT: - - string filename = dialog.get_filename(); - SetLastMidiFilename(filename); - - if (returned_file_title) - *returned_file_title = filename.substr(filename.rfind(PathDelimiter)+1); - - if (returned_filename) - *returned_filename = filename; - - return; - } - - if (returned_file_title) - *returned_file_title = ""; - - if (returned_filename) - *returned_filename = ""; - } - - void SetLastMidiFilename(const string &filename) { - UserSetting::Set("last_file", filename); - } - - string TrimFilename(const string &filename) { - - // lowercase - string lower = StringLower(filename); - - // remove extension, if known - set exts; - exts.insert(".mid"); - exts.insert(".midi"); - for (set::const_iterator i = exts.begin(); i != exts.end(); i++) { - int len = i->length(); - if (lower.substr(lower.length() - len, len) == *i) - lower = lower.substr(0, lower.length() - len); - } - - // remove path - string::size_type i = lower.find_last_of("/"); - if (i != string::npos) - lower = lower.substr(i+1, lower.length()); - - return lower; - } - -}; // End namespace diff --git a/src/FileSelector.h b/src/FileSelector.h deleted file mode 100644 index b7dc303c..00000000 --- a/src/FileSelector.h +++ /dev/null @@ -1,29 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __FILE_SELECTOR_H -#define __FILE_SELECTOR_H - -#include - -namespace FileSelector { - - // Presents a standard "File Open" dialog box. Returns empty string - // in [filename] if user presses cancel. Also, remembers last filename - void RequestMidiFilename(std::string *filename, std::string *file_title); - - // If a filename was passed in on the command line, we - // can remember it for future file-open dialogs - void SetLastMidiFilename(const std::string &filename); - - // Returns a filename with no path or .mid/.midi extension - std::string TrimFilename(const std::string &filename); -}; - -#endif // __FILE_SELECTOR_H - diff --git a/src/FrameCounter.h b/src/FrameCounter.h deleted file mode 100644 index 9b817fbe..00000000 --- a/src/FrameCounter.h +++ /dev/null @@ -1,54 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __FRAME_COUNTER_H -#define __FRAME_COUNTER_H - -class FrameCounter { -public: - - // averaged_over_milliseconds is the length of time GetFramesPerSecond - // should average the frame count over in order to smooth the rate. - FrameCounter(double averaged_over_milliseconds) : - m_average_over_ms(averaged_over_milliseconds), - m_period_ms(0), - m_frames(0), - m_cached_fps(0) { - - if (m_average_over_ms <= 50.0) m_average_over_ms = 50.0; - } - - void Frame(double delta_ms) { - - if (delta_ms < 0.0) - return; - - m_period_ms += delta_ms; - m_frames++; - - if (m_period_ms > m_average_over_ms) { - m_cached_fps = static_cast(m_frames) / m_period_ms * 1000.0; - - m_frames = 0; - m_period_ms = 0; - } - } - - double GetFramesPerSecond() const { - return m_cached_fps; - } - -private: - double m_average_over_ms; - double m_period_ms; - int m_frames; - - double m_cached_fps; -}; - -#endif // __FRAME_COUNTER_H diff --git a/src/GameState.cpp b/src/GameState.cpp deleted file mode 100644 index 6ad874d0..00000000 --- a/src/GameState.cpp +++ /dev/null @@ -1,303 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "GameState.h" -#include "Renderer.h" -#include "Textures.h" -#include "CompatibleSystem.h" -#include "Tga.h" -#include "OSGraphics.h" - -// For FPS display -#include "TextWriter.h" -#include - -using namespace std; - -// only used on here -const static char* TextureResourceNames[_TextureEnumCount] = { - - "title_Logo", - "InterfaceButtons", - "title_GameMusicThemes", - - "score_RetrySong", - "title_ChooseTracks", - "title_Exit", - "tracks_BackToTitle", - "tracks_PlaySong", - - "title_InputBox", - "title_OutputBox", - "title_SongBox", - - "trackbox", // TrackPanel - - "stats_text", - - "play_Status", - "play_Status2", - "play_Keys", - - "play_NotesBlackColor", - "play_NotesBlackShadow", - "play_NotesWhiteColor", - "play_NotesWhiteShadow", - - "play_KeyRail", - "play_KeyShadow", - "play_KeysBlack", - "play_KeysWhite" -}; - -Tga *GameState::GetTexture(Texture tex_name, bool smooth) const { - - if (!m_manager) - throw GameStateError("Cannot retrieve texture if manager not set!"); - - return m_manager->GetTexture(tex_name, smooth); -} - -void GameState::ChangeState(GameState *new_state) { - - if (!m_manager) - throw GameStateError("Cannot change state if manager not set!"); - - m_manager->ChangeState(new_state); -} - -int GameState::GetStateWidth() const { - - if (!m_manager) - throw GameStateError("Cannot retrieve state width if manager not set!"); - - return m_manager->GetStateWidth(); -} - -int GameState::GetStateHeight() const { - - if (!m_manager) - throw GameStateError("Cannot retrieve state height if manager not set!"); - - return m_manager->GetStateHeight(); -} - -bool GameState::IsKeyPressed(GameKey key) const { - - if (!m_manager) - throw GameStateError("Cannot determine key presses if manager not set!"); - - return m_manager->IsKeyPressed(key); -} - -const MouseInfo &GameState::Mouse() const { - - if (!m_manager) - throw GameStateError("Cannot determine mouse input if manager not set!"); - - return m_manager->Mouse(); -} - -void GameState::SetManager(GameStateManager *manager) { - - if (m_manager) - throw GameStateError("State already has a manager!"); - - m_manager = manager; - Init(); -} - - -GameStateManager::~GameStateManager() { - - for (map::iterator i = m_textures.begin(); - i != m_textures.end(); ++i) { - - if (i->second) Tga::Release(i->second); - i->second = 0; - } -} - -Tga *GameStateManager::GetTexture(Texture tex_name, bool smooth) const { - - if (!m_textures[tex_name]) - m_textures[tex_name] = Tga::Load(TextureResourceNames[tex_name]); - - m_textures[tex_name]->SetSmooth(smooth); - return m_textures[tex_name]; -} - -void GameStateManager::KeyPress(GameKey key) { - - m_key_presses |= static_cast(key); -} - -bool GameStateManager::IsKeyPressed(GameKey key) const { - - return ( (m_key_presses & static_cast(key)) != 0); -} - -bool GameStateManager::IsKeyReleased(GameKey key) const { - return (!IsKeyPressed(key) && - ((m_last_key_presses & static_cast(key)) != 0)); -} - -void GameStateManager::MousePress(MouseButton button) { - - switch (button) { - case MouseLeft: - m_mouse.held.left = true; - m_mouse.released.left = false; - m_mouse.newPress.left = true; - break; - - case MouseRight: - m_mouse.held.right = true; - m_mouse.released.right = false; - m_mouse.newPress.right = true; - break; - } -} - -void GameStateManager::MouseRelease(MouseButton button) { - - switch (button) { - case MouseLeft: - m_mouse.held.left = false; - m_mouse.released.left = true; - m_mouse.newPress.left = false; - break; - - case MouseRight: - m_mouse.held.right = false; - m_mouse.released.right = true; - m_mouse.newPress.right = false; - break; - } -} - -void GameStateManager::MouseMove(int x, int y) { - - m_mouse.x = x; - m_mouse.y = y; -} - -void GameStateManager::SetInitialState(GameState *first_state) { - - if (m_current_state) - throw GameStateError("Cannot set an initial state because GameStateManager" - " already has a state!"); - - first_state->SetManager(this); - m_current_state = first_state; -} - -void GameStateManager::ChangeState(GameState *new_state) { - - if (!m_current_state) - throw GameStateError("Cannot change state without a state! " - "Use SetInitialState()!"); - - if (!new_state) - throw GameStateError("Cannot change to a null state!"); - - if (!m_inside_update) - throw GameStateError("ChangeState must be called from inside another " - "state's Update() function! (This is so we can " - "guarantee the ordering of the draw/update calls.)"); - - m_next_state = new_state; -} - -void GameStateManager::Update(bool skip_this_update) { - - // Manager's timer grows constantly - const unsigned long now = Compatible::GetMilliseconds(); - const unsigned long delta = now - m_last_milliseconds; - m_last_milliseconds = now; - - // Now that we've updated the time, we can return if - // we've been told to skip this one. - if (skip_this_update) - return; - - m_fps.Frame(delta); - if (IsKeyReleased(KeyF6)) - m_show_fps = !m_show_fps; - - if (m_next_state && m_current_state) { - - delete m_current_state; - m_current_state = 0; - - // We return here to insert a blank frame (that may or may - // not last a long time) while the next state's Init() - // and first Update() are being called. - return; - } - - if (m_next_state) { - - m_current_state = m_next_state; - m_next_state = 0; - - m_current_state->SetManager(this); - } - - if (!m_current_state) - return; - - m_inside_update = true; - - m_current_state->m_last_delta_milliseconds = delta; - m_current_state->m_state_milliseconds += delta; - m_current_state->Update(); - - m_inside_update = false; - - // Reset our keypresses for the next frame - m_last_key_presses = m_key_presses; - m_key_presses = 0; - - // Reset our mouse clicks for the next frame - m_mouse.newPress = MouseButtons(); - m_mouse.released = MouseButtons(); -} - -void GameStateManager::Draw(Renderer &renderer) { - - if (!m_current_state) - return; - - // NOTE: Sweet transition effects are *very* possible here... rendering - // the previous state *and* the current state during some transition - // would be really easy. - - // const static float gray = 32.0f / 255.0f; - const static float gray = 32.0f / 255.0f; - glClearColor(gray, gray, gray, 1.0f); - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glTranslatef(0., static_cast(GetStateHeight()), 0.); - glScalef (1., -1., 1.); - glTranslatef(0.375, 0.375, 0.); - - m_current_state->Draw(renderer); - - if (m_show_fps) { - TextWriter fps_writer(0, 0, renderer); - fps_writer << Text("FPS: ", Gray) << - Text(STRING(setprecision(6) << m_fps.GetFramesPerSecond()), White); - } - - glFlush (); - renderer.SwapBuffers(); -} - diff --git a/src/GameState.h b/src/GameState.h deleted file mode 100644 index fd01ac3b..00000000 --- a/src/GameState.h +++ /dev/null @@ -1,245 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __GAMESTATE_H -#define __GAMESTATE_H - -#include -#include -#include - -#include "Textures.h" -#include "CompatibleSystem.h" -#include "FrameCounter.h" -#include "Renderer.h" - -class GameStateError : public std::exception { -public: - - GameStateError(const std::string &error) throw() : - m_error(error) { - } - - virtual const char *what() const throw() { - return m_error.c_str(); - } - - ~GameStateError() throw() { - } - -private: - - const std::string m_error; - - GameStateError operator=(const GameStateError&); -}; - -class GameStateManager; - -enum GameKey { - - // Magic numbers (used in this app only) - // Key combinations are packed into "unsigned integer" - // So, each key should set its own bit - KeySpace = 0x0001, // 0 - KeyEscape = 0x0002, // 10 - KeyUp = 0x0004, // 100 and so on - KeyDown = 0x0008, - KeyLeft = 0x0010, - KeyRight = 0x0020, - KeyEnter = 0x0040, - - KeyF6 = 0x0080, - - KeyGreater = 0x0100, - KeyLess = 0x0200, - - KeyForward = 0x0400, - KeyBackward = 0x0800, - - KeyVolumeUp = 0x1000, - KeyVolumeDown = 0x2000 - - // = 0x4000 - // = 0x8000 -}; - -enum MouseButton { - - MouseLeft, - MouseRight -}; - -struct MouseButtons { - - MouseButtons() : - left(false), right(false) { - } - - bool left; - bool right; -}; - -struct MouseInfo { - - MouseInfo() : - x(0), y(0) { - } - - int x; - int y; - - MouseButtons held; - MouseButtons newPress; - MouseButtons released; -}; - -class GameState { -public: - - // Don't initialize anything that is dependent - // on the protected functions (GetStateWidth, - // GetStateMilliseconds, etc) here. Wait until - // Init() to do that. - GameState() : - m_manager(0), - m_state_milliseconds(0), - m_last_delta_milliseconds(0) { - } - - virtual ~GameState() { - } - -protected: - - // This is called just after the state's manager - // is set for the first time - virtual void Init() = 0; - - // Called every frame - virtual void Update() = 0; - - // Called each frame. Drawing bounds are [0, - // GetStateWidth()) and [0, GetStateHeight()) - virtual void Draw(Renderer &renderer) const = 0; - - // How long has this state been running - unsigned long GetStateMilliseconds() const { - return m_state_milliseconds; - } - - // How much time elapsed since the last update - unsigned long GetDeltaMilliseconds() const { - return m_last_delta_milliseconds; - } - - int GetStateWidth() const; - int GetStateHeight() const; - - // Once finished executing, use this to change - // state to something new. This can only be - // called from inside Update(). After calling - // this function, you're guaranteed that the only - // function that will still be called (before - // the destructor) is Draw(). You *must* be able - // to continue supporting Draw() after you call - // this function. - // - // new_state *must* be dynamically allocated and - // by calling this function you hand off ownership - // of the memory to the state handling subsystem. - void ChangeState(GameState *new_state); - - Tga *GetTexture(Texture tex_name, bool smooth = false) const; - - // These are usable inside Update() - bool IsKeyPressed(GameKey key) const; - const MouseInfo &Mouse() const; - -private: - - void SetManager(GameStateManager *manager); - GameStateManager *m_manager; - - void UpdateStateMicroseconds(unsigned long delta_ms) { - m_state_milliseconds += delta_ms; - m_last_delta_milliseconds = delta_ms; - } - - unsigned long m_state_milliseconds; - unsigned long m_last_delta_milliseconds; - - friend class GameStateManager; -}; - -// Your app calls this from the top level -class GameStateManager { -public: - - GameStateManager(int screen_width, int screen_height) : - m_next_state(0), - m_current_state(0), - m_last_milliseconds(Compatible::GetMilliseconds()), - m_key_presses(0), - m_last_key_presses(0), - m_inside_update(false), - m_fps(500.0), - m_show_fps(false), - m_screen_x(screen_width), - m_screen_y(screen_height) { - } - - ~GameStateManager(); - - // first_state must be dynamically allocated. - // GameStateManager takes ownership of the memory - // from this point forward. - void SetInitialState(GameState *first_state); - - void KeyPress(GameKey key); - bool IsKeyPressed(GameKey key) const; - bool IsKeyReleased(GameKey key) const; - - void MousePress(MouseButton button); - void MouseRelease(MouseButton button); - void MouseMove(int x, int y); - const MouseInfo &Mouse() const { return m_mouse; } - - void Update(bool skip_this_update); - void Draw(Renderer &renderer); - - void ChangeState(GameState *new_state); - - Tga *GetTexture(Texture tex_name, bool smooth) const; - - int GetStateWidth() const { return m_screen_x; } - int GetStateHeight() const { return m_screen_y; } - -private: - GameState *m_next_state; - GameState *m_current_state; - - unsigned long m_last_milliseconds; - unsigned long m_key_presses; - unsigned long m_last_key_presses; - - bool m_inside_update; - - MouseInfo m_mouse; - - FrameCounter m_fps; - bool m_show_fps; - - int m_screen_x; - int m_screen_y; - - mutable std::map m_textures; -}; - -#endif // __GAMESTATE_H - diff --git a/src/KeyboardDisplay.cpp b/src/KeyboardDisplay.cpp deleted file mode 100644 index c4c4372a..00000000 --- a/src/KeyboardDisplay.cpp +++ /dev/null @@ -1,752 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "KeyboardDisplay.h" -#include "LinthesiaError.h" -#include "StringUtil.h" -#include "TrackProperties.h" - -#include "Renderer.h" -#include "Textures.h" -#include "Tga.h" - -#include "neolib/GLShader.h" - -#include "shaders/BlurParticleGLShader.h" -#include "shaders/RenderTextureGLShader.h" - -#include "neolib/NeoFBO.h" -#include "neolib/ParticleSystem.h" - -using namespace std; - -const KeyboardDisplay::NoteTexDimensions KeyboardDisplay::WhiteNoteDimensions = - {32, 128, 4, 25, 22, 28, 93, 100}; -const KeyboardDisplay::NoteTexDimensions KeyboardDisplay::BlackNoteDimensions = - {32, 64, 8, 20, 3, 8, 49, 55}; - -struct KeyTexDimensions { - int tex_width; - int tex_height; - - int left; - int right; - - int top; - int bottom; -}; - -GLuint blurProgram; -GLuint normalProgram; - -// GLuint FramebufferName = 0; -// GLuint renderedTexture; - -ParticleSystem particleSystem; - -std::shared_ptr particlesFBO; -std::shared_ptr blurParticlesFBO; - -const KeyboardDisplay::KeyTexDimensions KeyboardDisplay::BlackKeyDimensions = { - 32, 128, 8, 20, 15, 109}; - -KeyboardDisplay::KeyboardDisplay(KeyboardSize size, int pixelWidth, - int pixelHeight, int stateX_, int stateY_) - : m_size(size), m_width(pixelWidth), m_height(pixelHeight), stateX(stateX_), - stateY(stateY_) { - - particlesFBO = std::shared_ptr(new NeoFBO(stateX, stateY)); - blurParticlesFBO = std::shared_ptr(new NeoFBO(stateX, stateY)); - - normalProgram = - LoadShader(RenderTexture_GLShader::vert, RenderTexture_GLShader::frag); - blurProgram = - LoadShader(BlurParticle_GLShader::vert, BlurParticle_GLShader::frag); - - particleSystem.RemoveParticles(); -} - -bool FullScreanQuadInited; - -GLuint _vao; -GLuint _ebo; - -void FullScreanQuad(int stateX, int stateY, GLuint textureToBlur, - GLuint program) { - - if (!FullScreanQuadInited) { - float quadVertices[8] = { - -1.0, -1.0, - 1.0, -1.0, - -1.0, 1.0, - 1.0, 1.0 - }; - - unsigned int quadIndices[6]={ - 0, 1, 2, - 2, 1, 3 - }; - - GLuint vbo = 0; - glGenBuffers(1, &vbo); - glBindBuffer(GL_ARRAY_BUFFER, vbo); - - glBufferData(GL_ARRAY_BUFFER, sizeof(float) * 8, quadVertices, - GL_STATIC_DRAW); - glGenVertexArrays(1, &_vao); - glBindVertexArray(_vao); - glEnableVertexAttribArray(0); - glBindBuffer(GL_ARRAY_BUFFER, vbo); - glVertexAttribPointer(0, 2, GL_FLOAT, GL_FALSE, 0, NULL); - - glGenBuffers(1, &_ebo); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _ebo); - glBufferData(GL_ELEMENT_ARRAY_BUFFER, - sizeof(unsigned int) * 6, quadIndices, - GL_STATIC_DRAW); - - glBindVertexArray(0); - - FullScreanQuadInited = true; - } - - glUseProgram(program); - - glActiveTexture(GL_TEXTURE0); - - glBindTexture(GL_TEXTURE_2D, textureToBlur); - glBindVertexArray(_vao); - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _ebo); - - glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, (void *)0); - - glBindVertexArray(0); - - glBindTexture(GL_TEXTURE_2D, 0); - - glUseProgram(0); -} - -void KeyboardDisplay::Draw(Renderer &renderer, const Tga *key_tex[4], - const Tga *note_tex[4], int x, int y, - const TranslatedNoteSet ¬es, - microseconds_t show_duration, - microseconds_t current_time, - const vector &track_properties, - const MidiEventMicrosecondList &bar_line_usecs) { - glViewport(0, 0, stateX, stateY); - - // Source: Measured from Yamaha P-70 - const static double WhiteWidthHeightRatio = 6.8181818; - const static double BlackWidthHeightRatio = 7.9166666; - const static double WhiteBlackWidthRatio = 0.5454545; - - const int white_key_count = GetWhiteKeyCount(); - - // Calculate the largest white key size we can, and then - // leave room for a single pixel space between each key - int white_width = (m_width / white_key_count) - 1; - int white_space = 1; - - int white_height = static_cast(white_width * WhiteWidthHeightRatio); - - const int black_width = static_cast(white_width * WhiteBlackWidthRatio); - const int black_height = - static_cast(black_width * BlackWidthHeightRatio); - const int black_offset = white_width - (black_width / 2); - - // The dimensions given to the keyboard object are bounds. Because of pixel - // rounding, the keyboard will usually occupy less than the maximum in - // either direction. - // - // So, we just try to center the keyboard inside the bounds. - const int final_width = (white_width + white_space) * white_key_count; - const int x_offset = (m_width - final_width) / 2; - const int y_offset = (m_height - white_height); - - // Give the notes a little more room to work with so they can roll under - // the keys without distortion - const int y_roll_under = white_height * 3 / 4; - - // Symbolic names for the arbitrary array passed in here - enum { Rail, Shadow, BlackKey }; - - - // Particles Blur { - particleSystem.UpdateParticles(); - - particlesFBO->Bind(); - glViewport(0, 0, stateX, stateY); - - FullScreanQuad(stateX, stateY, blurParticlesFBO->GetTexture(), normalProgram); - - particleSystem.DrawParticles(renderer); - - renderer.SetColor(Renderer::ToColor(255, 255, 255)); - - particlesFBO->Unbind(); - - blurParticlesFBO->Bind(); - glViewport(0, 0, stateX, stateY); - - FullScreanQuad(stateX, stateY, particlesFBO->GetTexture(), blurProgram); - - blurParticlesFBO->Unbind(); - - FullScreanQuad(stateX, stateY, particlesFBO->GetTexture(), normalProgram); - // } Particles Blur - - - DrawGuides(renderer, white_key_count, white_width, white_space, x + x_offset,y, y_offset); - - renderer.SetColor(Renderer::ToColor(255, 255, 255)); - DrawNotePass(renderer, note_tex[2], note_tex[3], white_width, white_space, - black_width, black_offset, x + x_offset, y, y_offset, - y_roll_under, notes, show_duration, current_time, - track_properties); - - const int ActualKeyboardWidth = - white_width * white_key_count + white_space * (white_key_count - 1); - - // Black out the background of where the keys are about to appear - - renderer.SetColor(Renderer::ToColor(0, 0, 0)); - renderer.DrawQuad(x + x_offset, y + y_offset, ActualKeyboardWidth, - white_height); - - DrawShadow(renderer, key_tex[Shadow], x + x_offset, - y + y_offset + white_height - 10, ActualKeyboardWidth); - DrawWhiteKeys(renderer, key_tex[3], false, white_key_count, white_width, - white_height, white_space, x + x_offset, y + y_offset); - DrawBlackKeys(renderer, key_tex[BlackKey], false, white_key_count, - white_width, black_width, black_height, white_space, - x + x_offset, y + y_offset, black_offset); - DrawShadow(renderer, key_tex[Shadow], x + x_offset, y + y_offset, - ActualKeyboardWidth); - DrawRail(renderer, key_tex[Rail], x + x_offset, y + y_offset, - ActualKeyboardWidth); -} - -int KeyboardDisplay::GetStartingOctave() const { - - // Source: Various "Specification" pages at Yamaha's website - const static int StartingOctaveOn37 = 2; - const static int StartingOctaveOn49 = 1; - const static int StartingOctaveOn61 = 1; // TODO! - const static int StartingOctaveOn76 = 0; // TODO! - const static int StartingOctaveOn88 = 0; - - switch (m_size) { - case KeyboardSize37: - return StartingOctaveOn37; - case KeyboardSize49: - return StartingOctaveOn49; - case KeyboardSize61: - return StartingOctaveOn61; - case KeyboardSize76: - return StartingOctaveOn76; - case KeyboardSize88: - return StartingOctaveOn88; - default: - throw LinthesiaError(Error_BadPianoType); - } -} - -char KeyboardDisplay::GetStartingNote() const { - - // Source: Various "Specification" pages at Yamaha's website - const static char StartingKeyOn37 = 'F'; // F3-F6 - const static char StartingKeyOn49 = 'C'; // C3-C6 - const static char StartingKeyOn61 = 'C'; // C1-C6 // TODO! - const static char StartingKeyOn76 = 'E'; // E0-G6 // TODO! - const static char StartingKeyOn88 = 'A'; // A0-C6 - - switch (m_size) { - case KeyboardSize37: - return StartingKeyOn37; - case KeyboardSize49: - return StartingKeyOn49; - case KeyboardSize61: - return StartingKeyOn61; - case KeyboardSize76: - return StartingKeyOn76; - case KeyboardSize88: - return StartingKeyOn88; - default: - throw LinthesiaError(Error_BadPianoType); - } -} - -int KeyboardDisplay::GetWhiteKeyCount() const { - - // Source: Google Image Search - const static int WhiteKeysOn37 = 22; - const static int WhiteKeysOn49 = 29; - const static int WhiteKeysOn61 = 36; - const static int WhiteKeysOn76 = 45; - const static int WhiteKeysOn88 = 52; - - switch (m_size) { - case KeyboardSize37: - return WhiteKeysOn37; - case KeyboardSize49: - return WhiteKeysOn49; - case KeyboardSize61: - return WhiteKeysOn61; - case KeyboardSize76: - return WhiteKeysOn76; - case KeyboardSize88: - return WhiteKeysOn88; - default: - throw LinthesiaError(Error_BadPianoType); - } -} - -void KeyboardDisplay::DrawWhiteKeys(Renderer &renderer, const Tga *tex, - bool active_only, int key_count, - int key_width, int key_height, - int key_space, int x_offset, - int y_offset) const { - Color white = Renderer::ToColor(255, 255, 255); - - char current_white = GetStartingNote(); - int current_octave = GetStartingOctave() + 1; - for (int i = 0; i < key_count; ++i) { - - // Check to see if this is one of the active notes - const string note_name = STRING(current_white << current_octave); - - KeyNames::const_iterator find_result = m_active_keys.find(note_name); - bool active = (find_result != m_active_keys.end()); - - Color c = white; - - if (active) - c = Track::ColorNoteWhite[find_result->second]; - - if ((active_only && active) || !active_only) { - renderer.SetColor(c); - - const int key_x = i * (key_width + key_space) + x_offset; - - int press = 0; - - if (active) { - particleSystem.SpawnParticle(key_x + key_width / 2, y_offset, c); - press = 3; - } - - renderer.DrawStretchedTga(tex, key_x, y_offset, key_width, - key_height + press, 0, 0, 32, 128); - } - - current_white++; - - if (current_white == 'H') - current_white = 'A'; - - if (current_white == 'C') - current_octave++; - } - - renderer.SetColor(white); -} - -void KeyboardDisplay::DrawBlackKey(Renderer &renderer, const Tga *tex, - const KeyTexDimensions &tex_dimensions, - int x, int y, int w, int h, - Track::TrackColor color) const { - - const KeyTexDimensions &d = tex_dimensions; - - const int tex_w = d.right - d.left; - const double width_scale = double(w) / double(tex_w); - const double full_tex_width = d.tex_width * width_scale; - const double left_offset = d.left * width_scale; - - const int src_x = (int(color) * d.tex_width); - const int dest_x = int(x - left_offset) - 1; - const int dest_w = int(full_tex_width); - - const int tex_h = d.bottom - d.top; - const double height_scale = double(h) / double(tex_h); - const double full_tex_height = d.tex_height * height_scale; - const double top_offset = d.top * height_scale; - - const int dest_y = int(y - top_offset) - 1; - const int dest_h = int(full_tex_height); - - renderer.DrawStretchedTga(tex, dest_x, dest_y, dest_w, dest_h, src_x, 0, - d.tex_width, d.tex_height); -} - -void KeyboardDisplay::DrawBlackKeys(Renderer &renderer, const Tga *tex, - bool active_only, int white_key_count, - int white_width, int black_width, - int black_height, int key_space, - int x_offset, int y_offset, - int black_offset) const { - - char current_white = GetStartingNote(); - int current_octave = GetStartingOctave() + 1; - for (int i = 0; i < white_key_count; ++i) { - // Don't allow a very last black key - if (i == white_key_count - 1) - break; - - switch (current_white) { - case 'A': - case 'C': - case 'D': - case 'F': - case 'G': { - // Check to see if this is one of the active notes - const string note_name = STRING(current_white << '#' << current_octave); - - KeyNames::const_iterator find_result = m_active_keys.find(note_name); - bool active = (find_result != m_active_keys.end()); - - // In this case, MissedNote isn't actually MissedNote. In the black key - // texture we use this value (which doesn't make any sense in this - // context) as the default "Black" color. - Track::TrackColor c = Track::MissedNote; - if (active) - c = find_result->second; - - if (!active_only || (active_only && active)) { - const int start_x = - i * (white_width + key_space) + x_offset + black_offset; - - if (active) - particleSystem.SpawnParticle(start_x + black_width / 2, y_offset, - Track::ColorNoteWhite[c]); - DrawBlackKey(renderer, tex, BlackKeyDimensions, start_x, y_offset, - black_width, black_height, c); - } - } - } - - current_white++; - if (current_white == 'H') - current_white = 'A'; - - if (current_white == 'C') - current_octave++; - } -} - -void DrawWidthStretched(Renderer &renderer, const Tga *tex, int x, int y, - int width) { - - renderer.DrawStretchedTga(tex, x, y, width, tex->GetHeight(), 0, 0, - tex->GetWidth(), tex->GetWidth()); -} - -void KeyboardDisplay::DrawRail(Renderer &renderer, const Tga *tex, int x, int y, - int width) const { - - const static int RailOffsetY = -4; - DrawWidthStretched(renderer, tex, x, y + RailOffsetY, width); -} - -void KeyboardDisplay::DrawShadow(Renderer &renderer, const Tga *tex, int x, - int y, int width) const { - - const static int ShadowOffsetY = 10; - DrawWidthStretched(renderer, tex, x, y + ShadowOffsetY, width); -} - -void KeyboardDisplay::DrawGuides(Renderer &renderer, int key_count, - int key_width, int key_space, int x_offset, - int y, int y_offset) const { - - const static int PixelsOffKeyboard = 2; - int keyboard_width = key_width * key_count + key_space * (key_count - 1); - - const Color thick(Renderer::ToColor(0x47, 0x47, 0x47,100)); - const Color thin(Renderer::ToColor(0x47, 0x47, 0x47,100)); - - char current_white = GetStartingNote() - 1; - int current_octave = GetStartingOctave() + 1; - for (int i = 0; i < key_count + 1; ++i) { - const int key_x = i * (key_width + key_space) + x_offset - 1; - - int guide_thickness = 1; - Color guide_color = thin; - - bool draw_guide = true; - switch (current_white) { - case 'B': - guide_color = thick; - guide_thickness = 2; - break; - case 'E': - guide_color = thin; - break; - default: - draw_guide = false; - break; - } - - if (draw_guide) { - renderer.SetColor(guide_color); - renderer.DrawQuad(key_x - guide_thickness / 2, y, guide_thickness, - y_offset - PixelsOffKeyboard); - } - - current_white++; - if (current_white == 'H') - current_white = 'A'; - if (current_white == 'C') - current_octave++; - } -} - -void KeyboardDisplay::DrawBars( - Renderer &renderer, int x, int y, int y_offset, int y_roll_under, - int final_width, microseconds_t show_duration, microseconds_t current_time, - const MidiEventMicrosecondList &bar_line_usecs) const { - int i = 0; - MidiEventMicrosecondList::const_iterator j = bar_line_usecs.begin(); - const Color bar_color(Renderer::ToColor(0x50, 0x50, 0x50)); - const Color text_color1(Renderer::ToColor(0x50, 0x50, 0x50)); - const Color text_color2(Renderer::ToColor(0x90, 0x90, 0x90)); - for (; j != bar_line_usecs.end(); ++j, ++i) { - renderer.SetColor(bar_color); - microseconds_t bar_usec = *j; - // Skip previous bars - if (bar_usec < current_time) - continue; - // This list is sorted by note start time. The moment we encounter - // a bar scrolled off the window, we're done drawing - if (bar_usec > current_time + show_duration) - break; - - const double scaling_factor = - static_cast(y_offset) / static_cast(show_duration); - - const long long roll_under = - static_cast(y_roll_under / scaling_factor); - const long long adjusted_offset = max(bar_usec - current_time, -roll_under); - - // Convert our times to pixel coordinates - const int y_bar_offset = - y - static_cast(adjusted_offset * scaling_factor) + y_offset; - renderer.DrawQuad(x, y_bar_offset, final_width, 2); - - // Add a label with a bar number - // Background text - TextWriter bar_writer2(x + 3, y_bar_offset - 13, renderer, false, 11); - bar_writer2 << Text(STRING(i + 1), text_color1); - - TextWriter bar_writer3(x + 5, y_bar_offset - 15, renderer, false, 11); - bar_writer3 << Text(STRING(i + 1), text_color1); - - TextWriter bar_writer4(x + 3, y_bar_offset - 15, renderer, false, 11); - bar_writer4 << Text(STRING(i + 1), text_color1); - - TextWriter bar_writer5(x + 5, y_bar_offset - 13, renderer, false, 11); - bar_writer5 << Text(STRING(i + 1), text_color1); - - // Foreground text - TextWriter bar_writer(x + 4, y_bar_offset - 14, renderer, false, 11); - bar_writer << Text(STRING(i + 1), text_color2); - } -} - -void KeyboardDisplay::DrawNote(Renderer &renderer, const Tga *tex, - const NoteTexDimensions &tex_dimensions, int x, - int y, int w, int h, int color_id) const { - - const NoteTexDimensions &d = tex_dimensions; - - // Width is super-easy - const int tex_note_w = d.right - d.left; - - const double width_scale = double(w) / double(tex_note_w); - const double full_tex_width = d.tex_width * width_scale; - const double left_offset = d.left * width_scale; - - const int src_x = (color_id * d.tex_width); - const int dest_x = int(x - left_offset); - const int dest_w = int(full_tex_width); - - // Now we draw the note in three sections: - // - Crown (fixed (relative) height) - // - Middle (variable height) - // - Heel (fixed (relative) height) - - // Force the note to be at least as large as the crown + heel height - const double crown_h = (d.crown_end - d.crown_start) * width_scale; - const double heel_h = (d.heel_end - d.heel_start) * width_scale; - const double min_height = crown_h + heel_h + 1.0; - - if (h < min_height) { - const int diff = int(min_height - h); - h += diff; - y -= diff; - } - - // We actually use the width scale in height calculations - // to keep the proportions fixed. - const double crown_start_offset = d.crown_start * width_scale; - const double crown_end_offset = d.crown_end * width_scale; - const double heel_height = double(d.heel_end - d.heel_start) * width_scale; - const double bottom_height = double(d.tex_height - d.heel_end) * width_scale; - - const int dest_y1 = int(y - crown_start_offset); - const int dest_y2 = int(dest_y1 + crown_end_offset); - const int dest_y3 = int((y + h) - heel_height); - const int dest_y4 = int(dest_y3 + bottom_height); - - renderer.DrawStretchedTga(tex, dest_x, dest_y1, dest_w, dest_y2 - dest_y1, - src_x, 0, d.tex_width, d.crown_end); - renderer.DrawStretchedTga(tex, dest_x, dest_y2, dest_w, dest_y3 - dest_y2, - src_x, d.crown_end, d.tex_width, - d.heel_start - d.crown_end); - - renderer.DrawStretchedTga(tex, dest_x, dest_y3, dest_w, dest_y4 - dest_y3, - src_x, d.heel_start, d.tex_width, - d.tex_height - d.heel_start); -} - -void KeyboardDisplay::DrawNotePass( - Renderer &renderer, const Tga *tex_white, const Tga *tex_black, - int white_width, int key_space, int black_width, int black_offset, - int x_offset, int y, int y_offset, int y_roll_under, - const TranslatedNoteSet ¬es, microseconds_t show_duration, - microseconds_t current_time, - const vector &track_properties) const { - - // Shiny music domain knowledge - const static unsigned int NotesPerOctave = 12; - const static unsigned int WhiteNotesPerOctave = 7; - const static bool IsBlackNote[12] = {false, true, false, true, - false, false, true, false, - true, false, true, false}; - - // The constants used in the switch below refer to the number - // of white keys off 'C' that type of piano starts on - int keyboard_type_offset = 0; - - switch (m_size) { - case KeyboardSize37: - keyboard_type_offset = 4 - WhiteNotesPerOctave; - break; - case KeyboardSize49: - keyboard_type_offset = 0 - WhiteNotesPerOctave; - break; - case KeyboardSize61: - keyboard_type_offset = 7 - WhiteNotesPerOctave; - break; // TODO! - case KeyboardSize76: - keyboard_type_offset = 5 - WhiteNotesPerOctave; - break; // TODO! - case KeyboardSize88: - keyboard_type_offset = 2 - WhiteNotesPerOctave; - break; - default: - throw LinthesiaError(Error_BadPianoType); - } - - // This array describes how to "stack" notes in a single place. The - // IsBlackNote array then tells which one should be shifted slightly to the - // right - const static int NoteToWhiteNoteOffset[12] = {0, -1, -1, -2, -2, -2, - -3, -3, -4, -4, -5, -5}; - - const static int MinNoteHeight = 3; - - bool drawing_black = false; - for (int toggle = 0; toggle < 2; ++toggle) { - - for (TranslatedNoteSet::const_iterator i = notes.begin(); i != notes.end(); - ++i) { - // This list is sorted by note start time. The moment we encounter - // a note scrolled off the window, we're done drawing - if (i->start > current_time + show_duration) - break; - - const Track::Mode mode = track_properties[i->track_id].mode; - if (mode == Track::ModeNotPlayed || mode == Track::ModePlayedButHidden) - continue; - - const int octave = (i->note_id / NotesPerOctave) - GetStartingOctave(); - const int octave_base = i->note_id % NotesPerOctave; - const int stack_offset = NoteToWhiteNoteOffset[octave_base]; - const bool is_black = IsBlackNote[octave_base]; - - if (drawing_black != is_black) - continue; - - const int octave_offset = (max(octave - 1, 0) * WhiteNotesPerOctave); - const int inner_octave_offset = (octave_base + stack_offset); - const int generalized_black_offset = (is_black ? black_offset : 0); - - const double scaling_factor = - static_cast(y_offset) / static_cast(show_duration); - - const long long roll_under = - static_cast(y_roll_under / scaling_factor); - const long long adjusted_start = - max(i->start - current_time, -roll_under); - const long long adjusted_end = max(i->end - current_time, 0LL); - - if (adjusted_end < adjusted_start) - continue; - - // Convert our times to pixel coordinates - const int y_end = - y - static_cast(adjusted_start * scaling_factor) + y_offset; - const int y_start = - y - static_cast(adjusted_end * scaling_factor) + y_offset; - - const int start_x = - (octave_offset + inner_octave_offset + keyboard_type_offset) * - (white_width + key_space) + - generalized_black_offset + x_offset; - - const int left = start_x - 1; - const int top = y_start; - const int width = (is_black ? black_width : white_width) + 2; - int height = y_end - y_start; - - // Force a note to be a minimum height at all times - // except when scrolling off underneath the keyboard and - // coming in from the top of the screen. - const bool hitting_bottom = (adjusted_start + current_time != i->start); - const bool hitting_top = (adjusted_end + current_time != i->end); - - if (!hitting_bottom && !hitting_top) { - while ((height) < MinNoteHeight) - height++; - } - - const Track::TrackColor color = track_properties[i->track_id].color; - const int &brush_id = - (((i->state == UserMissed) || (i->retry_state == UserMissed)) - ? Track::MissedNote - : color); - - DrawNote(renderer, (drawing_black ? tex_black : tex_white), - (drawing_black ? BlackNoteDimensions : WhiteNoteDimensions), - left, top, width, height, brush_id); - } - - drawing_black = !drawing_black; - } -} - -void KeyboardDisplay::SetKeyActive(const string &key_name, bool active, - Track::TrackColor color) { - if (active) - m_active_keys[key_name] = color; - - else - m_active_keys.erase(key_name); -} diff --git a/src/KeyboardDisplay.h b/src/KeyboardDisplay.h deleted file mode 100644 index 2a33baa3..00000000 --- a/src/KeyboardDisplay.h +++ /dev/null @@ -1,142 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __KEYBOARDDISPLAY_H -#define __KEYBOARDDISPLAY_H - -#include -#include -#include - -#include "TrackTile.h" -#include "TrackProperties.h" - -#include "libmidi/Note.h" -#include "libmidi/MidiTypes.h" - -enum KeyboardSize { - - KeyboardSize37, - KeyboardSize49, - KeyboardSize61, - KeyboardSize76, - KeyboardSize88 -}; - -typedef std::map KeyNames; - -class KeyboardDisplay { -public: - - const static microseconds_t NoteWindowLength = 330000; - - KeyboardDisplay(KeyboardSize size, int pixelWidth, int pixelHeight,int stateX_,int stateY_); - - void Draw(Renderer &renderer, const Tga *key_tex[4], const Tga *note_tex[4], - int x, int y, const TranslatedNoteSet ¬es, microseconds_t show_duration, - microseconds_t current_time, const std::vector &track_properties, - const MidiEventMicrosecondList &bar_line_usecs); - - void SetKeyActive(const std::string &key_name, bool active, Track::TrackColor color); - - void ResetActiveKeys() { - m_active_keys.clear(); - } - - int stateX; - int stateY; - -private: - struct NoteTexDimensions { - - int tex_width; - int tex_height; - - int left; - int right; - - int crown_start; - int crown_end; - - int heel_start; - int heel_end; - }; - - const static NoteTexDimensions WhiteNoteDimensions; - const static NoteTexDimensions BlackNoteDimensions; - - struct KeyTexDimensions { - - int tex_width; - int tex_height; - - int left; - int right; - - int top; - int bottom; - }; - - const static KeyTexDimensions BlackKeyDimensions; - - // std::shared_ptr particlesFBO; - - void DrawWhiteKeys(Renderer &renderer,const Tga *tex, bool active_only, int key_count, int key_width, - int key_height, int key_space, int x_offset, int y_offset) const; - - void DrawBlackKeys(Renderer &renderer, const Tga *tex, bool active_only, int white_key_count, - int white_width, int black_width, int black_height, int key_space, - int x_offset, int y_offset, int black_offset) const; - - void DrawRail(Renderer &renderer, const Tga *tex, int x, int y, int width) const; - void DrawShadow(Renderer &renderer, const Tga *tex, int x, int y, int width) const; - - void DrawGuides(Renderer &renderer, int key_count, int key_width, int key_space, - int x_offset, int y, int y_offset) const; - void DrawBars(Renderer &renderer, int x, int y, int y_offset, - int y_roll_under, int final_width, - microseconds_t show_duration, microseconds_t current_time, - const MidiEventMicrosecondList &bar_line_usecs) const; - - void DrawNotePass(Renderer &renderer, const Tga *tex_white, const Tga *tex_black, - int white_width, int key_space, int black_width, int black_offset, - int x_offset, int y, int y_offset, int y_roll_under, - const TranslatedNoteSet ¬es, microseconds_t show_duration, - microseconds_t current_time, const std::vector &track_properties) const; - - // This takes the rectangle where the actual note block should appear and transforms - // it to the multi-quad (with relatively complicated texture coordinates) using the - // passed-in texture descriptor, and then draws the result - void DrawNote(Renderer &renderer, const Tga *tex, const NoteTexDimensions &tex_dimensions, - int x, int y, int w, int h, int color_id) const; - - // This works very much like DrawNote - void DrawBlackKey(Renderer &renderer, const Tga *tex, const KeyTexDimensions &tex_dimensions, - int x, int y, int w, int h, Track::TrackColor color) const; - - // Retrieves which white-key a piano with the given key count - // will start with on the far left side - char GetStartingNote() const; - - // Retrieves which octave a piano with the given key count - // will start with on the far left side - int GetStartingOctave() const; - - // Retrieves the number of white keys a piano with the given - // key count will contain - int GetWhiteKeyCount() const; - - KeyboardSize m_size; - KeyNames m_active_keys; - - int m_width; - int m_height; - -}; - -#endif // __KEYBOARDDISPLAY_H diff --git a/src/LinthesiaError.cpp b/src/LinthesiaError.cpp deleted file mode 100644 index d283e70a..00000000 --- a/src/LinthesiaError.cpp +++ /dev/null @@ -1,30 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "LinthesiaError.h" -#include "StringUtil.h" - -using namespace std; - -string LinthesiaError::GetErrorDescription() const { - - switch (m_error) { - case Error_StringSpecified: - return m_optional_string; - - case Error_BadPianoType: - return "Bad piano type specified."; - - case Error_BadGameState: - return "Internal Error: Linthesia entered bad game state!"; - - default: - return STRING("Unknown LinthesiaError Code (" << m_error << ")."); - } -} - diff --git a/src/LinthesiaError.h b/src/LinthesiaError.h deleted file mode 100644 index c429b162..00000000 --- a/src/LinthesiaError.h +++ /dev/null @@ -1,49 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __LINTHESIA_ERROR_H__ -#define __LINTHESIA_ERROR_H__ - -#include -#include - -enum LinthesiaErrorCode { - - Error_StringSpecified, - Error_BadPianoType, - Error_BadGameState -}; - - -class LinthesiaError : public std::exception { -public: - - // TODO: This would be a sweet place to add stack-trace information... - - LinthesiaError(LinthesiaErrorCode error) : - m_error(error), - m_optional_string("") { - } - - LinthesiaError(const std::string error) : - m_error(Error_StringSpecified), - m_optional_string(error) { - } - - std::string GetErrorDescription() const; - - ~LinthesiaError() throw() { } - - const LinthesiaErrorCode m_error; - -private: - const std::string m_optional_string; - LinthesiaError operator=(const LinthesiaError&); -}; - -#endif // __LINTHESIA_ERROR_H__ diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index 942f12ae..00000000 --- a/src/Makefile.am +++ /dev/null @@ -1,79 +0,0 @@ -noinst_LTLIBRARIES = libmidi.la -dist_libmidi_la_SOURCES = libmidi/Midi.cpp \ - libmidi/MidiUtil.cpp \ - libmidi/MidiTrack.cpp \ - libmidi/MidiEvent.cpp -noinst_HEADERS = libmidi/MidiEvent.h \ - libmidi/Midi.h \ - libmidi/MidiTrack.h \ - libmidi/MidiTypes.h \ - libmidi/MidiUtil.h \ - libmidi/Note.h - -libmidi_la_CPPFLAGS = -iquote $(srcdir)/libmidi - -bin_PROGRAMS = neothesia -dist_neothesia_SOURCES = CompatibleSystem.cpp \ - KeyboardDisplay.cpp \ - MenuLayout.cpp \ - Renderer.cpp \ - TextWriter.cpp \ - TrackSelectionState.cpp \ - DeviceTile.cpp \ - FileSelector.cpp \ - LinthesiaError.cpp \ - MidiComm.cpp \ - StatsState.cpp \ - Tga.cpp \ - TrackTile.cpp \ - GameState.cpp \ - main.cpp \ - PlayingState.cpp \ - StringTile.cpp \ - TitleState.cpp \ - UserSettings.cpp \ - neolib/GLShader.cpp\ - neolib/ParticleSystem.cpp \ - neolib/NeoFBO.cpp -noinst_HEADERS += CompatibleSystem.h \ - DeviceTile.h \ - FileSelector.h \ - FrameCounter.h \ - GameState.h \ - KeyboardDisplay.h \ - LinthesiaError.h \ - MenuLayout.h \ - MidiComm.h \ - OSGraphics.h \ - PlayingState.h \ - Renderer.h \ - SharedState.h \ - StatsState.h \ - StringTile.h \ - StringUtil.h \ - Textures.h \ - TextWriter.h \ - Tga.h \ - TitleState.h \ - TrackProperties.h \ - TrackSelectionState.h \ - TrackTile.h \ - UserSettings.h \ - Version.h \ - neolib/GLShader.h \ - neolib/ParticleSystem.h \ - neolib/NeoFBO.h - -neothesia_LDFLAGS = @GTKMM_LIBS@ @GCONFMM_LIBS@ @GTKGLEXTMM_LIBS@ @ALSA_LIBS@ -neothesia_LDADD = libmidi.la -neothesia_CXXFLAGS = -std=c++11 -iquote $(srcdir)/libmidi -lGLEW -neothesia_CPPFLAGS = @GTKMM_CFLAGS@ @GCONFMM_CFLAGS@ @GTKGLEXTMM_CFLAGS@ @ALSA_CFLAGS@ -DGRAPHDIR="\"${graphdir}\"" -DSCRIPTDIR="\"${scriptdir}\"" - -ctags-dependencies: - @$(CC) -M -std=c++11 -I/usr/include @GTKMM_CFLAGS@ @GCONFMM_CFLAGS@ @GTKGLEXTMM_CFLAGS@ @ALSA_CFLAGS@ \ - $(dist_libmidi_la_SOURCES) $(noinst_HEADERS) $(dist_neothesia_SOURCES) 2>/dev/null | \ - sed 's/^.*://;s/^ //;s/ \\//;s/ /\n/g' | \ - sort -u | \ - $(CTAGS) --tag-relative=yes -L - --c++-kinds=+p --fields=+iaS --extra=+q -f $(top_srcdir)/tags - -.PHONY:ctags-dependencies diff --git a/src/MenuLayout.cpp b/src/MenuLayout.cpp deleted file mode 100644 index 57663f2e..00000000 --- a/src/MenuLayout.cpp +++ /dev/null @@ -1,45 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "MenuLayout.h" -#include "TextWriter.h" -#include "Renderer.h" - -using namespace std; - -namespace Layout { - - void DrawTitle(Renderer &renderer, const string &title) { - - TextWriter title_writer(ScreenMarginX, ScreenMarginY - TitleFontSize - 10, - renderer, false, TitleFontSize); - title_writer << title; - } - - void DrawHorizontalRule(Renderer &renderer, int state_width, int y) { - - renderer.SetColor(0x50, 0x50, 0x50); - renderer.DrawQuad(ScreenMarginX, y - 1, state_width - 2*ScreenMarginX, 3); - } - - void DrawButton(Renderer &renderer, const ButtonState &button, const string Title) { - - const static Color color = Renderer::ToColor(32,32,32); - const static Color color_hover = Renderer::ToColor(42,42,42); - - renderer.SetColor(button.hovering ? color_hover : color); - // renderer.DrawTga(tga, button.x, button.y); - renderer.ForceTexture(0); - renderer.DrawQuad(button.x,button.y,button.w,button.h); - - TextWriter title_writer(button.x + button.w/2 - 10, button.y + button.h/2 - 5, renderer, true, 10); - title_writer << Title; - } - - -} // End namespace Layout diff --git a/src/MenuLayout.h b/src/MenuLayout.h deleted file mode 100644 index cfc36fb9..00000000 --- a/src/MenuLayout.h +++ /dev/null @@ -1,74 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __MENU_LAYOUT_H -#define __MENU_LAYOUT_H - -#include "GameState.h" - -#include -using namespace std; - -struct ButtonState { - - ButtonState() : - hovering(false), - depressed(false), - x(0), y(0), w(0), h(0) { - } - - ButtonState(int x, int y, int w, int h) : - hovering(false), - depressed(false), - x(x), y(y), w(w), h(h) {} - - void Update(const MouseInfo &mouse) { - hovering = mouse.x > x && mouse.x < x+w && mouse.y > y && mouse.y < y+h; - depressed = hovering && mouse.held.left; - hit = hovering && mouse.released.left; - } - - // Simple mouse over - bool hovering; - - // Mouse over while (left) button is held down - bool depressed; - - // Mouse over just as the (left) button is released - bool hit; - - int x, y; - int w, h; -}; - -// Macro to turn replace Renderer::DrawTga()'s 4 parameters with one -#define BUTTON_RECT(button) ((button).x), ((button).y), ((button).w), ((button).h) - -namespace Layout { - - void DrawTitle(Renderer &renderer, const std::string &title); - void DrawHorizontalRule(Renderer &renderer, int state_width, int y); - void DrawButton(Renderer &renderer, - const ButtonState &button, - const string Title); - - // Pixel margin forced at edges of screen - const static int ScreenMarginX = 16; - const static int ScreenMarginY = 86; - - const static int TitleFontSize = 16; - const static int ScoreFontSize = 26; - const static int ButtonFontSize = 14; - const static int SmallFontSize = 12; - - const static int ButtonWidth = 176; - const static int ButtonHeight = 46; - -}; - -#endif // __MENU_LAYOUT_H diff --git a/src/MidiComm.cpp b/src/MidiComm.cpp deleted file mode 100644 index 8dcb95fb..00000000 --- a/src/MidiComm.cpp +++ /dev/null @@ -1,424 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include -#include -#include - -#include "libmidi/MidiEvent.h" -#include "libmidi/MidiUtil.h" - -#include "MidiComm.h" -#include "UserSettings.h" -#include "CompatibleSystem.h" -#include "StringUtil.h" - -using namespace std; - -// ALSA sequencer descriptor -static bool midi_initiated = false; -static bool emulate_kb = false; -static snd_seq_t* alsa_seq; - -// ALSA ports -static int local_out, local_in, anon_in, keybd_out = -1; - -void midiInit() { - - if (midi_initiated) - return; - - int err = snd_seq_open(&alsa_seq, "default", SND_SEQ_OPEN_DUPLEX, 0); - int ownid = snd_seq_client_id(alsa_seq); - midi_initiated = true; - - // Could not open sequencer, no out devices - if (err < 0) { - alsa_seq = NULL; - Compatible::ShowError("Could not open MIDI sequencer. No MIDI available"); - return; - } - - snd_seq_set_client_name(alsa_seq, "Linthesia"); - - // meanings of READ and WRITE are permissions of the port from the viewpoint of other ports - // READ: port allows to send events to other ports - local_out = snd_seq_create_simple_port(alsa_seq, "Linthesia Output", - SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ, - SND_SEQ_PORT_TYPE_MIDI_GENERIC); - - keybd_out = snd_seq_create_simple_port(alsa_seq, "Linthesia Keyboard", - SND_SEQ_PORT_CAP_READ | SND_SEQ_PORT_CAP_SUBS_READ, - SND_SEQ_PORT_TYPE_MIDI_GENERIC); - - // WRITE: port allows to receive events from other ports - local_in = snd_seq_create_simple_port(alsa_seq, "Linthesia Input", - SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_SUBS_WRITE, - SND_SEQ_PORT_TYPE_MIDI_GENERIC); - - anon_in = snd_seq_create_simple_port(alsa_seq, "Linthesia Annonce Listener", - SND_SEQ_PORT_CAP_WRITE | SND_SEQ_PORT_CAP_NO_EXPORT, - SND_SEQ_PORT_TYPE_MIDI_GENERIC | SND_SEQ_PORT_TYPE_APPLICATION); - - if (anon_in < 0) - return; // handle error - - // Subscribe on port opening - snd_seq_port_subscribe_t *sub; - snd_seq_addr_t sender, dest; - - snd_seq_port_subscribe_alloca(&sub); - // Receive events from annoncer's port - sender.client = SND_SEQ_CLIENT_SYSTEM; - sender.port = SND_SEQ_PORT_SYSTEM_ANNOUNCE; - snd_seq_port_subscribe_set_sender(sub, &sender); - // Forward them to our port - dest.client = ownid; - dest.port = anon_in; - snd_seq_port_subscribe_set_dest(sub, &dest); - err = snd_seq_subscribe_port(alsa_seq, sub); - if (err<0) { - fprintf(stderr, "Cannot subscribe announce port: %s\n", snd_strerror(err)); - return; - } - -} - -void midiStop() { - - snd_seq_close(alsa_seq); -} - -void sendNote(const unsigned char note, bool on) { - - if (emulate_kb) { - snd_seq_event_t ev; - snd_seq_ev_clear(&ev); - - snd_seq_ev_set_source(&ev, keybd_out); - snd_seq_ev_set_subs(&ev); - snd_seq_ev_set_direct(&ev); - - if (on) - // velocity ~ 60 for audio preview - snd_seq_ev_set_noteon(&ev, 0, note, 60); - else - snd_seq_ev_set_noteoff(&ev, 0, note, 0); - - snd_seq_event_output(alsa_seq, &ev); - snd_seq_drain_output(alsa_seq); - } -} - -// private use -void doRetrieveDevices(unsigned int perms, MidiCommDescriptionList& devices) { - - midiInit(); - if (alsa_seq == NULL) - return; - - snd_seq_client_info_t* cinfo; - snd_seq_port_info_t* pinfo; - int count = 0, ownid = snd_seq_client_id(alsa_seq); - - snd_seq_client_info_alloca(&cinfo); - snd_seq_port_info_alloca(&pinfo); - snd_seq_client_info_set_client(cinfo, -1); - - while (snd_seq_query_next_client(alsa_seq, cinfo) >= 0) { - - // reset query info - snd_seq_port_info_set_client(pinfo, snd_seq_client_info_get_client(cinfo)); - snd_seq_port_info_set_port(pinfo, -1); - - while (snd_seq_query_next_port(alsa_seq, pinfo) >= 0) { - if ((snd_seq_port_info_get_capability(pinfo) & perms) == perms) { - - int client = snd_seq_client_info_get_client(cinfo); - int port = snd_seq_port_info_get_port(pinfo); - - // filter own ports - if (client == ownid && (port == local_in || port == local_out)) - continue; - - MidiCommDescription d; - d.id = count++; - d.name = snd_seq_port_info_get_name(pinfo); - d.client = client; - d.port = port; - - devices.push_back(d); - } - } - } -} - -// Midi IN Ports - -static bool built_input_list = false; -static MidiCommDescriptionList in_list(MidiCommIn::GetDeviceList()); - -MidiCommIn::MidiCommIn(unsigned int device_id) { - m_should_reconnect = false; - - m_description = GetDeviceList()[device_id]; - - // Connect local in to selected port - int res = snd_seq_connect_from(alsa_seq, local_in, m_description.client, m_description.port); - if (res < 0) { - string msg = snd_strerror(res); - cout << "[WARNING] Input, cannot connect from '" << m_description.name << "': " << msg << endl; - } - - // enable internal keyboard - if (m_description.client == snd_seq_client_id(alsa_seq) and - m_description.port == keybd_out) - emulate_kb = true; -} - -MidiCommIn::~MidiCommIn() { - - // Disconnect local in to selected port - snd_seq_disconnect_from(alsa_seq, local_in, m_description.client, m_description.port); -} - -MidiCommDescriptionList MidiCommIn::GetDeviceList() { - - if (built_input_list) - return in_list; - - built_input_list = true; - MidiCommDescriptionList devices; - - unsigned int perms = SND_SEQ_PORT_CAP_READ|SND_SEQ_PORT_CAP_SUBS_READ; - doRetrieveDevices(perms, devices); - - return devices; -} - -void MidiCommIn::UpdateDeviceList() -{ - built_input_list = false; - in_list = MidiCommIn::GetDeviceList(); -} - -MidiEvent MidiCommIn::Read() { - - if (snd_seq_event_input_pending(alsa_seq, 1) < 1) - return MidiEvent::NullEvent(); - - MidiEventSimple simple; - snd_seq_event_t* ev; - snd_seq_event_input(alsa_seq, &ev); - - switch(ev->type) { - case SND_SEQ_EVENT_NOTEON: - simple.status = 0x90 | (ev->data.note.channel & 0x0F); // Type and Channel - simple.byte1 = ev->data.note.note; // Note number - simple.byte2 = ev->data.note.velocity; // Velocity - break; - - case SND_SEQ_EVENT_NOTEOFF: - simple.status = 0x80 | (ev->data.note.channel & 0x0F); // Type and Channel - simple.byte1 = ev->data.note.note; // Note number - simple.byte2 = 0; // Velocity - break; - - case SND_SEQ_EVENT_PGMCHANGE: - simple.status = 0xC0 | (ev->data.note.channel & 0x0F); // Type and Channel - simple.byte1 = ev->data.control.value; // Program number - break; - - case SND_SEQ_EVENT_PORT_EXIT: - // USB device is disconnected - the input client is closed - { - cout << "MIDI device is lost" << endl; - int lost_client = ev->data.addr.client; - int lost_port = ev->data.addr.port; - // TODO add better error reporting - } - break; - - case SND_SEQ_EVENT_PORT_START: - { - int new_client = ev->data.addr.client; - int new_port = ev->data.addr.port; - snd_seq_port_info_t* pinfo; - snd_seq_port_info_alloca(&pinfo); - - cout << "New MIDI device client=" << new_client << ", port=" << new_port << endl; - int err = snd_seq_get_any_port_info(alsa_seq, new_client, new_port, pinfo); - - if (err < 0) - return MidiEvent::NullEvent(); // error - - int port = snd_seq_port_info_get_port(pinfo); - int client = snd_seq_port_info_get_client(pinfo); - cout << "Port info client=" << client << ", port=" << port << endl; - - std::string new_name = snd_seq_port_info_get_name(pinfo); - cout << "New MIDI device " << new_name << endl; - - m_should_reconnect = true; - } - break; - - // unknown type, do nothing - default: - return MidiEvent::NullEvent(); - } - - return MidiEvent::Build(simple); -} - -bool MidiCommIn::KeepReading() const { - - return snd_seq_event_input_pending(alsa_seq, 1); -} - -void MidiCommIn::Reset() { - - snd_seq_drop_input(alsa_seq); -} - -bool MidiCommIn::ShouldReconnect() const { - - return m_should_reconnect; -} - -void MidiCommIn::Reconnect() { - // We assume, that the client and the port is the same after device's reconnect - // Connect local in to selected port - int res = snd_seq_connect_from(alsa_seq, local_in, m_description.client, m_description.port); - m_should_reconnect = false; -} - - -// Midi OUT Ports - -static bool built_output_list = false; -static MidiCommDescriptionList out_list(MidiCommOut::GetDeviceList()); - -MidiCommOut::MidiCommOut(unsigned int device_id) { - - m_description = GetDeviceList()[device_id]; - - // Connect local out to selected port - int res = snd_seq_connect_to(alsa_seq, local_out, m_description.client, m_description.port); - if (res < 0) { - string msg = snd_strerror(res); - cout << "[WARNING] Output, cannot connect to '" << m_description.name - << "': " << msg << endl; - } -} - -MidiCommOut::~MidiCommOut() { - - // Disconnect local out to selected port - snd_seq_disconnect_to(alsa_seq, local_out, m_description.client, m_description.port); - - // This does not harm if done everytime... - emulate_kb = false; -} - -void MidiCommOut::UpdateDeviceList() -{ - built_output_list = false; - out_list = MidiCommOut::GetDeviceList(); -} - -MidiCommDescriptionList MidiCommOut::GetDeviceList() { - - if (built_output_list) - return out_list; - - built_output_list = true; - MidiCommDescriptionList devices; - - unsigned int perms = SND_SEQ_PORT_CAP_WRITE|SND_SEQ_PORT_CAP_SUBS_WRITE; - doRetrieveDevices(perms, devices); - - return devices; -} - -void MidiCommOut::Write(const MidiEvent &out) { - - snd_seq_event_t ev; - snd_seq_ev_clear(&ev); - - // Set my source, to all subscribers, direct delivery - snd_seq_ev_set_source(&ev, local_out); - snd_seq_ev_set_subs(&ev); - snd_seq_ev_set_direct(&ev); - - // set event type - switch (out.Type()) { - case MidiEventType_NoteOn: { - int ch = out.Channel(); - int note = out.NoteNumber(); - snd_seq_ev_set_noteon(&ev, ch, note, out.NoteVelocity()); - - // save for reset - notes_on.push_back(pair(ch, note)); - break; - } - - case MidiEventType_NoteOff: { - int note = out.NoteNumber(); - int ch = out.Channel(); - snd_seq_ev_set_noteoff(&ev, ch, note, out.NoteVelocity()); - - // remove from reset - pair p(ch, note); - vector >::iterator i; - for (i = notes_on.begin(); i != notes_on.end(); ++i) { - if (*i == p) { - notes_on.erase(i); - break; - } - } - - break; - } - - case MidiEventType_ProgramChange: - snd_seq_ev_set_pgmchange(&ev, out.Channel(), out.ProgramNumber()); - break; - - // Unknown type, do nothing - default: - return; - } - - snd_seq_event_output(alsa_seq, &ev); - snd_seq_drain_output(alsa_seq); -} - -void MidiCommOut::Reset() { - - // Sent Note-Off to every open note - snd_seq_event_t ev; - snd_seq_ev_clear(&ev); - snd_seq_ev_set_source(&ev, local_out); - snd_seq_ev_set_subs(&ev); - snd_seq_ev_set_direct(&ev); - - vector >::const_iterator i; - for (i = notes_on.begin(); i != notes_on.end(); ++i) { - snd_seq_ev_set_noteoff(&ev, i->first, i->second, 0); - - snd_seq_event_output(alsa_seq, &ev); - snd_seq_drain_output(alsa_seq); - } - -} - -void MidiCommOut::Reconnect() { - // We assume, that the client and the port is the same after device's reconnect - int res = snd_seq_connect_to(alsa_seq, local_out, m_description.client, m_description.port); -} diff --git a/src/MidiComm.h b/src/MidiComm.h deleted file mode 100644 index 17130d8f..00000000 --- a/src/MidiComm.h +++ /dev/null @@ -1,102 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __MIDI_COMM_H -#define __MIDI_COMM_H - -#include -#include -#include -// #include - -#include "libmidi/MidiEvent.h" - -struct MidiCommDescription { - - unsigned int id; - std::string name; - - int client; - int port; -}; - -typedef std::vector MidiCommDescriptionList; - -// Start/Stop midi services (i.e. open/close sequencer) -void midiInit(); -void midiStop(); - -// Emulate MIDI keyboard using PC keyboard -void sendNote(const unsigned char note, bool on); - -// Once you create a MidiCommIn object. Use the Read() function -// to grab one event at a time from the buffer. -class MidiCommIn { -public: - - static MidiCommDescriptionList GetDeviceList(); - static void UpdateDeviceList(); - - // device_id is obtained from GetDeviceList() - MidiCommIn(unsigned int device_id); - ~MidiCommIn(); - - MidiCommDescription GetDeviceDescription() const { - return m_description; - } - - // Returns the next buffered input event. Use KeepReading() (usually in - // a while loop) to see if you should call this function. If called when - // KeepReading() is false, this will throw MidiError_NoInputAvailable. - MidiEvent Read(); - - // Discard events from the input buffer - void Reset(); - - // Returns whether the input device has more buffered events. - bool KeepReading() const; - bool ShouldReconnect() const; - void Reconnect(); - -private: - MidiCommDescription m_description; - bool m_should_reconnect; - -}; - -class MidiCommOut { -public: - - static MidiCommDescriptionList GetDeviceList(); - static void UpdateDeviceList(); - - // device_id is obtained from GetDeviceList() - MidiCommOut(unsigned int device_id); - ~MidiCommOut(); - - MidiCommDescription GetDeviceDescription() const { - return m_description; - } - - // Send a single event out to the device. - void Write(const MidiEvent &out); - - // Turns all notes off and resets all controllers - void Reset(); - - void Reconnect(); - -private: - void Release(); - - MidiCommDescription m_description; - std::vector > notes_on; - -}; - -#endif // __MIDI_COMM_H diff --git a/src/OSGraphics.h b/src/OSGraphics.h deleted file mode 100644 index bdd519d6..00000000 --- a/src/OSGraphics.h +++ /dev/null @@ -1,30 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __OS_GRAPHICS_H -#define __OS_GRAPHICS_H - -// only for 'Ms. pepis' debugging -#include - - - -#include -#include - -#include -#include - -// #include -// #include - - - -#endif // __OS_GRAPHICS_H - - diff --git a/src/PlayingState.cpp b/src/PlayingState.cpp deleted file mode 100644 index 55604c41..00000000 --- a/src/PlayingState.cpp +++ /dev/null @@ -1,857 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "PlayingState.h" -#include "TrackSelectionState.h" -#include "StatsState.h" -#include "Renderer.h" -#include "Textures.h" -#include "CompatibleSystem.h" - -#include -#include - -#include "StringUtil.h" -#include "MenuLayout.h" -#include "TextWriter.h" - -#include "libmidi/Midi.h" -#include "libmidi/MidiTrack.h" -#include "libmidi/MidiEvent.h" -#include "libmidi/MidiUtil.h" - -#include "MidiComm.h" - -using namespace std; - - -void PlayingState::SetupNoteState() { - - TranslatedNoteSet old = m_notes; - m_notes.clear(); - - for (TranslatedNoteSet::const_iterator i = old.begin(); i != old.end(); ++i) { - TranslatedNote n = *i; - - n.state = AutoPlayed; - n.retry_state = AutoPlayed; - if (isUserPlayableTrack(n.track_id)) - { - n.state = UserPlayable; - n.retry_state = UserPlayable; - } - - m_notes.insert(n); - } -} - -void PlayingState::ResetSong() { - - if (m_state.midi_out) - m_state.midi_out->Reset(); - - if (m_state.midi_in) - m_state.midi_in->Reset(); - - // TODO: These should be moved to a configuration file - // along with ALL other "const static something" variables. - const static microseconds_t LeadIn = 5500000; - const static microseconds_t LeadOut = 1000000; - - if (!m_state.midi) - return; - - m_state.midi->Reset(LeadIn, LeadOut); - - m_notes = m_state.midi->Notes(); - m_notes_history.clear(); - SetupNoteState(); - - m_state.stats = SongStatistics(); - m_state.stats.total_note_count = static_cast(m_notes.size()); - - m_current_combo = 0; - - m_note_offset = 0; - m_max_allowed_title_alpha = 1.0; - - m_should_retry = false; - m_should_wait_after_retry = false; - m_retry_start = m_state.midi->GetNextBarInMicroseconds(-1000000000); -} - -PlayingState::PlayingState(const SharedState &state) : - m_paused(false), - m_keyboard(0), - m_any_you_play_tracks(false), - m_first_update(true), - m_should_retry(false), - m_should_wait_after_retry(false), - m_retry_start(0), - m_state(state) { -} - -void PlayingState::Init() { - - if (!m_state.midi) - throw GameStateError("PlayingState: Init was passed a null MIDI!"); - - m_look_ahead_you_play_note_count = 0; - for (size_t i = 0; i < m_state.track_properties.size(); ++i) { - - if (m_state.track_properties[i].mode == Track::ModeYouPlay || - m_state.track_properties[i].mode == Track::ModeYouPlaySilently || - m_state.track_properties[i].mode == Track::ModeLearning || - m_state.track_properties[i].mode == Track::ModeLearningSilently) { - m_look_ahead_you_play_note_count += m_state.midi->Tracks()[i].Notes().size(); - m_any_you_play_tracks = true; - } - } - - // This many microseconds of the song will - // be shown on the screen at once - const static microseconds_t DefaultShowDurationMicroseconds = 3250000; - m_show_duration = DefaultShowDurationMicroseconds; - - int w = GetStateWidth(); - int h = GetStateHeight(); - - m_keyboard = new KeyboardDisplay(KeyboardSize88, GetStateWidth() - Layout::ScreenMarginX*2, CalcKeyboardHeight(),w,h); - - // Hide the mouse cursor while we're playing - Compatible::HideMouseCursor(); - - ResetSong(); -} - -PlayingState::~PlayingState() { - Compatible::ShowMouseCursor(); -} - -int PlayingState::CalcKeyboardHeight() const { - // Start with the size of the screen - int height = GetStateHeight(); - - // Allow a couple lines of text below the keys - height -= 10; - - return height; -} - -void PlayingState::Play(microseconds_t delta_microseconds) { - - // Move notes, time tracking, everything - // delta_microseconds = 0 means, that we are on pause - MidiEventListWithTrackId evs = m_state.midi->Update(delta_microseconds); - - // These cycle is for keyboard updates (not falling keys) - const size_t length = evs.size(); - for(size_t i = 0; i < length; ++i) { - - const size_t &track_id = evs[i].first; - const MidiEvent &ev = evs[i].second; - - // Draw refers to the keys lighting up (automatically) -- not necessarily - // the falling notes. The KeyboardDisplay object contains its own logic - // to decide how to draw the falling notes - bool draw = false; - bool play = false; - switch (m_state.track_properties[track_id].mode) { - case Track::ModeNotPlayed: draw = false; play = false; break; - case Track::ModePlayedButHidden: draw = false; play = true; break; - case Track::ModeYouPlay: draw = false; play = false; break; - case Track::ModeYouPlaySilently: draw = false; play = false; break; - case Track::ModeLearning: draw = false; play = false; break; - case Track::ModeLearningSilently: draw = false; play = false; break; - case Track::ModePlayedAutomatically: draw = true; play = true; break; - case Track::ModeCount: break; - } - - // Even in "You Play" tracks, we have to play the non-note - // events as per usual. - if (m_state.track_properties[track_id].mode - && ev.Type() != MidiEventType_NoteOn - && ev.Type() != MidiEventType_NoteOff) - play = true; - - if (ev.Type() == MidiEventType_NoteOn || ev.Type() == MidiEventType_NoteOff) { - int vel = ev.NoteVelocity(); - const string name = MidiEvent::NoteName(ev.NoteNumber()); - - bool active = (vel > 0); - // Display pressed or released a key based on information from a MIDI-file. - // If this line is deleted, than no notes will be pressed automatically. - // It is not related to falling notes. - if (draw) - m_keyboard->SetKeyActive(name, active, m_state.track_properties[track_id].color); - filePressedKey(ev.NoteNumber(), active, track_id); - } - - if (play && m_state.midi_out) - { - // Clone event - MidiEvent ev_out = ev; - int vel = ev.NoteVelocity(); - // Scale note's volume before playing - ev_out.SetVelocity(vel * m_state.base_volume); - m_state.midi_out->Write(ev_out); - } - } -} - -double PlayingState::CalculateScoreMultiplier() const { - const static double MaxMultiplier = 5.0; - double multiplier = 1.0; - - const double combo_addition = m_current_combo / 10.0; - multiplier += combo_addition; - - return min(MaxMultiplier, multiplier); -} - -void PlayingState::Listen() { - if (!m_state.midi_in) - return; - - while (m_state.midi_in->KeepReading()) { - - microseconds_t cur_time = m_state.midi->GetSongPositionInMicroseconds(); - MidiEvent ev = m_state.midi_in->Read(); - if (m_state.midi_in->ShouldReconnect()) - { - m_state.midi_in->Reconnect(); - m_state.midi_out->Reconnect(); - continue; - } - - - // Just eat input if we're paused - if (m_paused) - continue; - - // We're only interested in NoteOn and NoteOff - if (ev.Type() != MidiEventType_NoteOn && ev.Type() != MidiEventType_NoteOff) - continue; - - // Octave Sliding - ev.ShiftNote(m_note_offset); - - int note_number = ev.NoteNumber(); - string note_name = MidiEvent::NoteName(note_number); - - // On key release we have to look for existing "active" notes and turn them off. - if (ev.Type() == MidiEventType_NoteOff || ev.NoteVelocity() == 0) { - - // NOTE: This assumes mono-channel input. If they're piping an entire MIDI file - // (or even the *same* MIDI file) through another source, we could get the - // same NoteId on different channels -- and this code would start behaving - // incorrectly. - for (ActiveNoteSet::iterator i = m_active_notes.begin(); i != m_active_notes.end(); ++i) { - if (ev.NoteNumber() != i->note_id) - continue; - - // Play it on the correct channel to turn the note we started - // previously, off. - ev.SetChannel(i->channel); - if (m_state.midi_out) - m_state.midi_out->Write(ev); - - m_active_notes.erase(i); - break; - } - - // User releases the key - // If we delete this line, than all pressed keys will be gray until - // it is unpressed automatically - m_keyboard->SetKeyActive(note_name, false, Track::FlatGray); - userPressedKey(note_number, false); - continue; - } - - TranslatedNoteSet::iterator closest_match = m_notes.end(); - for (TranslatedNoteSet::iterator i = m_notes.begin(); i != m_notes.end(); ++i) { - - const microseconds_t window_start = i->start - (KeyboardDisplay::NoteWindowLength / 2); - const microseconds_t window_end = i->start + (KeyboardDisplay::NoteWindowLength / 2); - - // As soon as we start processing notes that couldn't possibly - // have been played yet, we're done. - if (window_start > cur_time) - break; - - if (i->state != UserPlayable) - continue; - - if (window_end > cur_time && i->note_id == ev.NoteNumber()) { - - if (closest_match == m_notes.end()) { - closest_match = i; - continue; - } - - microseconds_t this_distance = cur_time - i->start; - if (i->start > cur_time) - this_distance = i->start - cur_time; - - microseconds_t known_best = cur_time - closest_match->start; - if (closest_match->start > cur_time) - known_best = closest_match->start - cur_time; - - if (this_distance < known_best) - closest_match = i; - } - } - - Track::TrackColor note_color = Track::FlatGray; - - if (closest_match != m_notes.end()) { - note_color = m_state.track_properties[closest_match->track_id].color; - - // "Open" this note so we can catch the close later and turn off - // the note. - ActiveNote n; - n.channel = closest_match->channel; - n.note_id = closest_match->note_id; - n.velocity = closest_match->velocity; - m_active_notes.insert(n); - - // Play it - ev.SetChannel(n.channel); - ev.SetVelocity(n.velocity); - - bool silently = - m_state.track_properties[closest_match->track_id].mode == Track::ModeYouPlaySilently || - m_state.track_properties[closest_match->track_id].mode == Track::ModeLearningSilently; - if (m_state.midi_out && !silently) - m_state.midi_out->Write(ev); - - // Adjust our statistics - const static double NoteValue = 100.0; - m_state.stats.score += NoteValue * CalculateScoreMultiplier() * (m_state.song_speed / 100.0); - - m_state.stats.notes_user_could_have_played++; - m_state.stats.speed_integral += m_state.song_speed; - - m_state.stats.notes_user_actually_played++; - m_current_combo++; - m_state.stats.longest_combo = max(m_current_combo, m_state.stats.longest_combo); - - TranslatedNote replacement = *closest_match; - replacement.state = UserHit; - - m_notes.erase(closest_match); - m_notes.insert(replacement); - } - - else - m_state.stats.stray_notes++; - - m_state.stats.total_notes_user_pressed++; - // Display a pressed key by an user - // Display a colored key, if it is pressed correctly - // Otherwise display a grey key - // - // If we comment this code, than a missed user pressed key will not shown. - // But correct presed key will be shown as usual. - m_keyboard->SetKeyActive(note_name, true, note_color); - userPressedKey(note_number, true); - } -} - -void PlayingState::Update() { - // Calculate how visible the title bar should be - const static double fade_in_ms = 350.0; - const static double stay_ms = 2500.0; - const static double fade_ms = 500.0; - - m_title_alpha = 0.0; - unsigned long ms = GetStateMilliseconds() * max(m_state.song_speed, 50) / 100; - - if (double(ms) <= stay_ms) - m_title_alpha = min(1.0, ms / fade_in_ms); - - if (double(ms) >= stay_ms) - m_title_alpha = min(max((fade_ms - (ms - stay_ms)) / fade_ms, 0.0), 1.0); - - // Lock down the alpha so that if you are slowing the song down as it - // fades out, it doesn't cut back into a much higher alpha value - m_title_alpha = min(m_title_alpha, m_max_allowed_title_alpha); - - if (double(ms) > stay_ms) - m_max_allowed_title_alpha = m_title_alpha; - - microseconds_t delta_microseconds = static_cast(GetDeltaMilliseconds()) * 1000; - - // The 100 term is really paired with the playback speed, but this - // formation is less likely to produce overflow errors. - delta_microseconds = (delta_microseconds / 100) * m_state.song_speed; - - if (m_paused) - delta_microseconds = 0; - - // Our delta milliseconds on the first frame after state start is extra - // long because we just reset the MIDI. By skipping the "Play" that - // update, we don't have an artificially fast-forwarded start. - if (!m_first_update) { - if (areAllRequiredKeysPressed()) - { - Play(delta_microseconds); -// m_should_wait_after_retry = false; // always reset onces pressed - } - else - m_current_combo = 0; - - Listen(); - } - - m_first_update = false; - - microseconds_t cur_time = m_state.midi->GetSongPositionInMicroseconds(); - - // Delete notes that are finished playing (and are no longer available to hit) - TranslatedNoteSet::iterator i = m_notes.begin(); - while (i != m_notes.end()) { - TranslatedNoteSet::iterator note = i++; - - const microseconds_t window_end = note->start + (KeyboardDisplay::NoteWindowLength / 2); - - if (m_state.midi_in && note->state == UserPlayable && window_end <= cur_time){ - TranslatedNote note_copy = *note; - note_copy.state = UserMissed; - - m_notes.erase(note); - m_notes.insert(note_copy); - - // Re-connect the (now-invalid) iterator to the replacement - note = m_notes.find(note_copy); - - if (m_state.track_properties[note->track_id].is_retry_on - && !m_should_wait_after_retry) - // They missed a note and should retry - // We don't count misses while waiting after retry - m_should_retry = true; - } - - if (note->start > cur_time) - break; - - if (note->end < cur_time && window_end < cur_time) { - - if (note->state == UserMissed) { - // They missed a note, reset the combo counter - m_current_combo = 0; - - m_state.stats.notes_user_could_have_played++; - m_state.stats.speed_integral += m_state.song_speed; - } - - TranslatedNote history_note = *note; - m_notes_history.insert(history_note); - m_notes.erase(note); - } - } - - if(IsKeyPressed(KeyGreater)) - m_note_offset += 12; - - if(IsKeyPressed(KeyLess)) - m_note_offset -= 12; - - if (IsKeyPressed(KeyUp)) { - m_show_duration -= 250000; - - const static microseconds_t MinShowDuration = 250000; - if (m_show_duration < MinShowDuration) - m_show_duration = MinShowDuration; - } - - if (IsKeyPressed(KeyDown)) { - m_show_duration += 250000; - - const static microseconds_t MaxShowDuration = 10000000; - if (m_show_duration > MaxShowDuration) - m_show_duration = MaxShowDuration; - } - - if (IsKeyPressed(KeyLeft)) { - m_state.song_speed -= 10; - if (m_state.song_speed < 0) - m_state.song_speed = 0; - } - - if (IsKeyPressed(KeyRight)) { - m_state.song_speed += 10; - if (m_state.song_speed > 400) - m_state.song_speed = 400; - } - - if (IsKeyPressed(KeyVolumeDown)) { - m_state.base_volume -= 0.1; - if (m_state.base_volume < 0) - m_state.base_volume = 0; - } - - if (IsKeyPressed(KeyVolumeUp)) { - m_state.base_volume += 0.1; - if (m_state.base_volume > 2) // Maximum volume is 200% - m_state.base_volume = 2; - } - - if (IsKeyPressed(KeyForward)) { - // Go 5 seconds forward - microseconds_t cur_time = m_state.midi->GetSongPositionInMicroseconds(); - microseconds_t new_time = cur_time + 5000000; - m_state.midi->GoTo(new_time); - m_required_notes.clear(); - m_state.midi_out->Reset(); - m_keyboard->ResetActiveKeys(); - m_notes = m_state.midi->Notes(); - m_notes_history.clear(); - SetupNoteState(); - m_should_retry = false; - m_should_wait_after_retry = false; - m_retry_start = new_time; - } - else - if (IsKeyPressed(KeyBackward)) { - // Go 5 seconds back - microseconds_t cur_time = m_state.midi->GetSongPositionInMicroseconds(); - microseconds_t new_time = cur_time - 5000000; - m_state.midi->GoTo(new_time); - m_required_notes.clear(); - m_state.midi_out->Reset(); - m_keyboard->ResetActiveKeys(); - m_notes = m_state.midi->Notes(); - m_notes_history.clear(); - SetupNoteState(); - m_should_retry = false; - m_should_wait_after_retry = false; - m_retry_start = new_time; - } - else - { - // Check retry conditions - // track_properties - microseconds_t next_bar_time = - m_state.midi->GetNextBarInMicroseconds(m_retry_start); - microseconds_t cur_time = m_state.midi->GetSongPositionInMicroseconds(); - // Check point in future - microseconds_t checkpoint_time = cur_time + delta_microseconds + 1; -// microseconds_t checkpoint_time = cur_time; - bool next_bar_exists = next_bar_time != 0; - bool next_bar_reached = checkpoint_time > next_bar_time; - if (next_bar_exists && next_bar_reached) - { - if (m_should_retry) - { - TranslatedNoteSet old = m_notes; - old.insert(m_notes_history.begin(), m_notes_history.end()); - - // Forget failed notes - m_should_retry = false; - // Should wait after retry for initial keys to be pressed - m_should_wait_after_retry = true; - - microseconds_t delta_microseconds = static_cast(GetDeltaMilliseconds()) * 1000; - microseconds_t new_time= m_retry_start-delta_microseconds; - // Retry - m_state.midi->GoTo(new_time); - m_required_notes.clear(); - m_pressed_notes.clear(); - m_state.midi_out->Reset(); - m_keyboard->ResetActiveKeys(); - TranslatedNoteSet def = m_state.midi->Notes(); - - // Set retry_state - // For each current node - // from SetupNoteState - m_notes.clear(); - m_notes_history.clear(); - for (TranslatedNoteSet::iterator i = def.begin(); i != def.end(); i++) { - TranslatedNote n = *i; - - n.state = AutoPlayed; - n.retry_state = AutoPlayed; - if (isUserPlayableTrack(n.track_id)) - { - n.state = UserPlayable; - n.retry_state = findNodeState(n, old, UserPlayable); - } - - m_notes.insert(n); - } - - // To avoid checks for keys that start before and stop after new_time - eraseUntilTime(new_time); - } - else - { - // Handle new retry block - m_retry_start = cur_time; - } - } - } - - if (IsKeyPressed(KeySpace)) - m_paused = !m_paused; - - if (IsKeyPressed(KeyEscape)) { - if (m_state.midi_out) - m_state.midi_out->Reset(); - - if (m_state.midi_in) - m_state.midi_in->Reset(); - - ChangeState(new TrackSelectionState(m_state)); - return; - } - - if (m_state.midi->IsSongOver()) { - if (m_state.midi_out) - m_state.midi_out->Reset(); - - if (m_state.midi_in) - m_state.midi_in->Reset(); - - if (m_state.midi_in && m_any_you_play_tracks) - ChangeState(new StatsState(m_state)); - - else - ChangeState(new TrackSelectionState(m_state)); - - return; - } -} - -void PlayingState::Draw(Renderer &renderer) const { - - const Tga *key_tex[4] = { GetTexture(PlayKeyRail), - GetTexture(PlayKeyShadow), - GetTexture(PlayKeysBlack, true), - GetTexture(PlayKeysWhite, true) }; - - const Tga *note_tex[4] = { GetTexture(PlayNotesWhiteShadow, true), - GetTexture(PlayNotesBlackShadow, true), - GetTexture(PlayNotesWhiteColor, true), - GetTexture(PlayNotesBlackColor, true) }; - renderer.ForceTexture(0); - - // Draw a keyboard, fallen keys and background for them - m_keyboard->Draw(renderer, key_tex, note_tex, Layout::ScreenMarginX, 0, m_notes, m_show_duration, - m_state.midi->GetSongPositionInMicroseconds(), m_state.track_properties, - m_state.midi->GetBarLines()); - - const int time_pb_width = static_cast(m_state.midi->GetSongPercentageComplete() * (GetStateWidth() - Layout::ScreenMarginX*2)); - //const int pb_x = Layout::ScreenMarginX+8; - //const int pb_y = CalcKeyboardHeight() - 238; - - const int pb_x = 0; - const int pb_y = 0; - - renderer.SetColor(0x60, 0x223, 0x60); - renderer.DrawQuad(pb_x, pb_y, time_pb_width, 6); - - // string title_text = m_state.song_title; - - // double alpha = m_title_alpha; - // if (m_paused) { - // alpha = 1.0; - // title_text = "Game Paused"; - // } - - // if (alpha > 0.001) { - // renderer.SetColor(0, 0, 0, int(alpha * 160)); - // renderer.DrawQuad(0, GetStateHeight() / 3, GetStateWidth(), 80); - // const Color c = Renderer::ToColor(255, 255, 255, int(alpha * 0xFF)); - // TextWriter title(GetStateWidth()/2, GetStateHeight()/3 + 25, renderer, true, 24); - // title << Text(title_text, c); - - // // While we're at it, show the key legend - // renderer.SetColor(c); - // const Tga *keys = GetTexture(PlayKeys); - // renderer.DrawTga(keys, GetStateWidth() / 2 - 250, GetStateHeight() / 2); - // } - - // int text_y = CalcKeyboardHeight() + 42; - - // renderer.SetColor(White); - // renderer.DrawTga(GetTexture(PlayStatus), Layout::ScreenMarginX - 1, text_y); - // renderer.DrawTga(GetTexture(PlayStatus2), Layout::ScreenMarginX + 273, text_y); - - // string multiplier_text = STRING(fixed << setprecision(1) << CalculateScoreMultiplier() << - // " Multiplier"); - // string speed_text = STRING(m_state.song_speed << "% Speed"); - - // TextWriter score(Layout::ScreenMarginX + 92, text_y + 5, renderer, - // false, Layout::ScoreFontSize); - // score << static_cast(m_state.stats.score); - - // TextWriter multipliers(Layout::ScreenMarginX + 232, text_y + 12, renderer, - // false, Layout::TitleFontSize+2); - // multipliers << Text(multiplier_text, Renderer::ToColor(138, 226, 52)); - - // int speed_x_offset = (m_state.song_speed >= 100 ? 0 : 11); - // TextWriter speed(Layout::ScreenMarginX + 412 + speed_x_offset, text_y + 12, - // renderer, false, Layout::TitleFontSize+2); - // speed << Text(speed_text, Renderer::ToColor(114, 159, 207)); - - // string retry_text = m_should_retry ? "R" : ""; - - // TextWriter retry(Layout::ScreenMarginX + 600, text_y + 12, - // renderer, false, Layout::TitleFontSize+2); - // retry << Text(retry_text, Renderer::ToColor(114, 159, 207)); - - // double non_zero_playback_speed = ( (m_state.song_speed == 0) ? 0.1 : (m_state.song_speed/100.0) ); - // microseconds_t tot_seconds = static_cast((m_state.midi->GetSongLengthInMicroseconds() / - // 100000.0) / non_zero_playback_speed); - // microseconds_t cur_seconds = static_cast((m_state.midi->GetSongPositionInMicroseconds() / - // 100000.0) / non_zero_playback_speed); - - // if (cur_seconds < 0) - // cur_seconds = 0; - - // if (cur_seconds > tot_seconds) - // cur_seconds = tot_seconds; - - // int completion = static_cast(m_state.midi->GetSongPercentageComplete() * 100.0); - - // unsigned int tot_min = static_cast((tot_seconds/10) / 60); - // unsigned int tot_sec = static_cast((tot_seconds/10) % 60); - // unsigned int tot_ten = static_cast( tot_seconds%10); - // const string total_time = STRING(tot_min << ":" << setfill('0') << setw(2) << tot_sec << "." << tot_ten); - - // unsigned int cur_min = static_cast((cur_seconds/10) / 60); - // unsigned int cur_sec = static_cast((cur_seconds/10) % 60); - // unsigned int cur_ten = static_cast( cur_seconds%10 ); - // const string current_time = STRING(cur_min << ":" << setfill('0') << setw(2) << cur_sec << "." << cur_ten); - // const string percent_complete = STRING(" (" << completion << "%)"); - - // text_y += 30 + Layout::SmallFontSize; - // TextWriter time_text(Layout::ScreenMarginX + 39, text_y+2, renderer, false, Layout::SmallFontSize); - // time_text << STRING(current_time << " / " << total_time << percent_complete); - - // // Draw a song progress bar along the top of the screen - // const int time_pb_width = static_cast(m_state.midi->GetSongPercentageComplete() * (GetStateWidth() - - // Layout::ScreenMarginX*2)); - // const int pb_x = Layout::ScreenMarginX; - // const int pb_y = CalcKeyboardHeight() + 25; - - // renderer.SetColor(0x50, 0x50, 0x50); - // renderer.DrawQuad(pb_x, pb_y, time_pb_width, 16); - - // if (m_look_ahead_you_play_note_count > 0) { - - // const double note_count = 1.0 * m_look_ahead_you_play_note_count; - - // const int note_miss_pb_width = static_cast(m_state.stats.notes_user_could_have_played / - // note_count * (GetStateWidth() - Layout::ScreenMarginX*2)); - - // const int note_hit_pb_width = static_cast(m_state.stats.notes_user_actually_played / - // note_count * (GetStateWidth() - Layout::ScreenMarginX*2)); - - // renderer.SetColor(0xCE,0x5C,0x00); - // renderer.DrawQuad(pb_x, pb_y - 20, note_miss_pb_width, 16); - - // renderer.SetColor(0xFC,0xAF,0x3E); - // renderer.DrawQuad(pb_x, pb_y - 20, note_hit_pb_width, 16); - // } - - // // Show the combo - // if (m_current_combo > 5) { - // int combo_font_size = 20; - // combo_font_size += (m_current_combo / 10); - - // int combo_x = GetStateWidth() / 2; - // int combo_y = GetStateHeight() - CalcKeyboardHeight() + 30 - (combo_font_size/2); - - // TextWriter combo_text(combo_x, combo_y, renderer, true, combo_font_size); - // combo_text << STRING(m_current_combo << " Combo!"); - // } -} - - -void PlayingState::userPressedKey(int note_number, bool active) -{ - if (active) - { - if (m_should_wait_after_retry) - { - m_should_retry = false; // to ensure - m_should_wait_after_retry = false; - } - m_pressed_notes.insert(note_number); - m_required_notes.erase(note_number); - m_state.dpms_thread->handleKeyPress(); - } - else - m_pressed_notes.erase(note_number); -} - -void PlayingState::filePressedKey(int note_number, bool active, size_t track_id) -{ - if (m_state.track_properties[track_id].mode == Track::ModeLearning || - m_state.track_properties[track_id].mode == Track::ModeLearningSilently || - (m_should_wait_after_retry && isUserPlayableTrack(track_id))) - { - if (active) - { - m_required_notes.insert(note_number); - } - else - m_required_notes.erase(note_number); - } -} - -bool PlayingState::isKeyPressed(int note_number) -{ - return (m_pressed_notes.find(note_number) != m_pressed_notes.end()); -} - -bool PlayingState::areAllRequiredKeysPressed() -{ - return m_required_notes.empty(); -} - -bool PlayingState::isUserPlayableTrack(size_t track_id) -{ - return (m_state.track_properties[track_id].mode == Track::ModeYouPlay || - m_state.track_properties[track_id].mode == Track::ModeYouPlaySilently || - m_state.track_properties[track_id].mode == Track::ModeLearning || - m_state.track_properties[track_id].mode == Track::ModeLearningSilently); -} - -void PlayingState::eraseUntilTime(microseconds_t time) -{ - for (TranslatedNoteSet::const_iterator i = m_notes.begin(); i != m_notes.end();) { - TranslatedNoteSet::const_iterator j = i; - TranslatedNote n = *i; - i++; - - // Erase very old notes - if (n.end < time) - m_notes.erase(j); - else - // Hit still visible once - if (n.start <= time) - { - n.state = UserHit; - m_notes.erase(j); - m_notes.insert(n); - } - } -} - -NoteState PlayingState::findNodeState(const TranslatedNote& note, TranslatedNoteSet& notes, NoteState default_note_state) -{ - // Search by comparing start, end, note_id and track_id - TranslatedNoteSet::iterator n = notes.find(note); - if (n == notes.end()) - return default_note_state; - - return n->state; -} diff --git a/src/PlayingState.h b/src/PlayingState.h deleted file mode 100644 index b797aeb6..00000000 --- a/src/PlayingState.h +++ /dev/null @@ -1,112 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __PLAYING_STATE_H -#define __PLAYING_STATE_H - -#include -#include -#include - -#include "libmidi/Midi.h" -#include "SharedState.h" -#include "GameState.h" -#include "KeyboardDisplay.h" -#include "MidiComm.h" - -struct ActiveNote { - - bool operator()(const ActiveNote &lhs, const ActiveNote &rhs) { - if (lhs.note_id < rhs.note_id) - return true; - - if (lhs.note_id > rhs.note_id) - return false; - - if (lhs.channel < rhs.channel) - return true; - - if (lhs.channel > rhs.channel) - return false; - - return false; - } - - NoteId note_id; - unsigned char channel; - int velocity; -}; - -typedef std::set ActiveNoteSet; - - -class PlayingState : public GameState { -public: - PlayingState(const SharedState &state); - ~PlayingState(); - bool ResetKeyboardActive(); - -protected: - virtual void Init(); - virtual void Update(); - virtual void Draw(Renderer &renderer) const; - -private: - - std::set m_pressed_notes; - std::set m_required_notes; - - void userPressedKey(int note_number, bool active); - void filePressedKey(int note_number, bool active, size_t track_id); - bool areAllRequiredKeysPressed(); - bool isKeyPressed(int note_number); - bool isUserPlayableTrack(size_t track_id); - - int CalcKeyboardHeight() const; - void SetupNoteState(); - - void ResetSong(); - void Play(microseconds_t delta_microseconds); - void Listen(); - - double CalculateScoreMultiplier() const; - - bool m_paused; - - KeyboardDisplay *m_keyboard; - microseconds_t m_show_duration; - TranslatedNoteSet m_notes; - TranslatedNoteSet m_notes_history; - - bool m_any_you_play_tracks; - size_t m_look_ahead_you_play_note_count; - - ActiveNoteSet m_active_notes; - - bool m_first_update; - - SharedState m_state; - int m_current_combo; - - double m_title_alpha; - double m_max_allowed_title_alpha; - - // For octave sliding - int m_note_offset; - - // For retries - bool m_should_retry; - bool m_should_wait_after_retry; - microseconds_t m_retry_start; - - void eraseUntilTime(microseconds_t time); - - NoteState findNodeState(const TranslatedNote& note, TranslatedNoteSet& notes, NoteState default_note_state); -}; - -#endif // __PLAYING_STATE_H diff --git a/src/Renderer.cpp b/src/Renderer.cpp deleted file mode 100644 index 74065404..00000000 --- a/src/Renderer.cpp +++ /dev/null @@ -1,151 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "Renderer.h" -#include "Tga.h" -#include "OSGraphics.h" - -#include - -using namespace std; - -// These are static because OpenGL is (essentially) static -static unsigned int last_texture_id = numeric_limits::max(); - -void SelectTexture(unsigned int texture_id) { - - if (texture_id == last_texture_id) - return; - - glBindTexture(GL_TEXTURE_2D, texture_id); - last_texture_id = texture_id; -} - -unsigned int Renderer::GetLastTGAID() { - return last_texture_id; -} - -Renderer::Renderer(GLContext glcontext, PGContext pangocontext) : - m_xoffset(0), - m_yoffset(0), - m_glcontext(glcontext), - m_pangocontext(pangocontext) { - glewInit(); -} - -Color Renderer::ToColor(int r, int g, int b, int a) { - - Color c; - c.r = r; - c.g = g; - c.b = b; - c.a = a; - - return c; -} - -void Renderer::SetVSyncInterval(int interval) { -// #ifdef WIN32 - -// const char *extensions = reinterpret_cast(static_cast(glGetString( GL_EXTENSIONS ))); - -// // Check if the WGL_EXT_swap_control extension is supported. -// if (strstr(extensions, "WGL_EXT_swap_control") == 0) return; - -// typedef BOOL (APIENTRY *SWAP_INTERVAL_PROC)( int ); -// SWAP_INTERVAL_PROC wglSwapIntervalEXT = (SWAP_INTERVAL_PROC)wglGetProcAddress( "wglSwapIntervalEXT" ); -// if (wglSwapIntervalEXT) wglSwapIntervalEXT(interval); - -// #else - -// GLint i = interval; -// GLboolean ret = aglSetInteger(m_glcontext, AGL_SWAP_INTERVAL, &i); -// if (ret == GL_FALSE) -// { -// // LOGTODO! -// // This is non-critical. V-Sync might just not be supported. -// } - -// #endif -} - -void Renderer::SwapBuffers() { - m_glcontext->get_gl_drawable()->swap_buffers(); -} - -void Renderer::ForceTexture(unsigned int texture_id) { - last_texture_id = numeric_limits::max(); - SelectTexture(texture_id); -} - -void Renderer::SetColor(Color c) { - SetColor(c.r, c.g, c.b, c.a); -} - -void Renderer::SetColor(int r, int g, int b, int a) { - glColor4f(r / 255.0f, g / 255.0f, b / 255.0f, a / 255.0f); -} - -void Renderer::DrawQuad(int x, int y, int w, int h) { - SelectTexture(0); - - glBegin(GL_QUADS); - glVertex3i( x + m_xoffset, y + m_yoffset, 0); - glVertex3i( x+w + m_xoffset, y + m_yoffset, 0); - glVertex3i( x+w + m_xoffset, y+h + m_yoffset, 0); - glVertex3i( x + m_xoffset, y+h + m_yoffset, 0); - glEnd(); -} - -void Renderer::DrawTga(const Tga *tga, int x, int y) const { - DrawTga(tga, x, y, (int)tga->GetWidth(), (int)tga->GetHeight(), 0, 0); -} - -void Renderer::DrawTga(const Tga *tga, int in_x, int in_y, int width, int height, - int src_x, int src_y) const { - - const int x = in_x + m_xoffset; - const int y = in_y + m_yoffset; - - const double tx = static_cast(src_x) / static_cast(tga->GetWidth()); - const double ty = -static_cast(src_y) / static_cast(tga->GetHeight()); - const double tw = static_cast(width) / static_cast(tga->GetWidth()); - const double th = -static_cast(height)/ static_cast(tga->GetHeight()); - - SelectTexture(tga->GetId()); - glBegin(GL_QUADS); - glTexCoord2d( tx, ty); glVertex3i( x, y, 0); - glTexCoord2d( tx, ty+th); glVertex3i( x, y+height, 0); - glTexCoord2d(tx+tw, ty+th); glVertex3i(x+width, y+height, 0); - glTexCoord2d(tx+tw, ty); glVertex3i(x+width, y, 0); - glEnd(); -} - -void Renderer::DrawStretchedTga(const Tga *tga, int x, int y, int w, int h) const { - DrawStretchedTga(tga, x, y, w, h, 0, 0, (int)tga->GetWidth(), (int)tga->GetHeight()); -} - -void Renderer::DrawStretchedTga(const Tga *tga, int x, int y, int w, int h, - int src_x, int src_y, int src_w, int src_h) const { - const int sx = x + m_xoffset; - const int sy = y + m_yoffset; - - const double tx = static_cast(src_x) / static_cast(tga->GetWidth()); - const double ty = -static_cast(src_y) / static_cast(tga->GetHeight()); - const double tw = static_cast(src_w) / static_cast(tga->GetWidth()); - const double th = -static_cast(src_h) / static_cast(tga->GetHeight()); - - SelectTexture(tga->GetId()); - - glBegin(GL_QUADS); - glTexCoord2d( tx, ty); glVertex3i( sx, sy, 0); - glTexCoord2d( tx, ty+th); glVertex3i( sx, sy+h, 0); - glTexCoord2d(tx+tw, ty+th); glVertex3i(sx+w, sy+h, 0); - glTexCoord2d(tx+tw, ty); glVertex3i(sx+w, sy, 0); - glEnd(); -} diff --git a/src/Renderer.h b/src/Renderer.h deleted file mode 100644 index b07af5d2..00000000 --- a/src/Renderer.h +++ /dev/null @@ -1,72 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __RENDERER_H -#define __RENDERER_H - -#include "OSGraphics.h" -#include "Tga.h" - -typedef Glib::RefPtr GLContext; -typedef Glib::RefPtr PGContext; - -struct Color { - int r, g, b, a; -}; - -class Renderer { -public: - Renderer(GLContext glcontext, PGContext pangocontext); - - - unsigned int GetLastTGAID(); - - static Color ToColor(int r, int g, int b, int a = 0xFF); - - void SwapBuffers(); - - // 0 will disable vsync, 1 will enable. - void SetVSyncInterval(int interval = 1); - - void SetOffset(int x, int y) { - m_xoffset = x; m_yoffset = y; - } - - void ResetOffset() { - SetOffset(0,0); - } - - void ForceTexture(unsigned int texture_id); - - void SetColor(Color c); - void SetColor(int r, int g, int b, int a = 0xFF); - void DrawQuad(int x, int y, int w, int h); - - void DrawTga(const Tga *tga, int x, int y) const; - void DrawTga(const Tga *tga, int x, int y, int width, int height, - int src_x, int src_y) const; - - void DrawStretchedTga(const Tga *tga, int x, int y, int w, int h) const; - void DrawStretchedTga(const Tga *tga, int x, int y, int w, int h, - int src_x, int src_y, int src_w, int src_h) const; - -private: - - // NOTE: These are used externally by the friend - // class TextWriter (along with the context) - int m_xoffset; - int m_yoffset; - - GLContext m_glcontext; - PGContext m_pangocontext; - - friend class Text; - friend class TextWriter; -}; - -#endif // __RENDERER_H diff --git a/src/SharedState.h b/src/SharedState.h deleted file mode 100644 index 505ad3af..00000000 --- a/src/SharedState.h +++ /dev/null @@ -1,73 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __SHARED_STATE_H -#define __SHARED_STATE_H - -#include -#include - -#include "TrackProperties.h" -#include "MidiComm.h" -#include "libmidi/Midi.h" -#include "DpmsThread.h" - -struct SongStatistics { - - SongStatistics() : - total_note_count(0), - notes_user_could_have_played(0), - speed_integral(0), - notes_user_actually_played(0), - stray_notes(0), - total_notes_user_pressed(0), - longest_combo(0), - score(0) { - } - - int total_note_count; - - int notes_user_could_have_played; - long speed_integral; - - int notes_user_actually_played; - - int stray_notes; - int total_notes_user_pressed; - - int longest_combo; - double score; - -}; - -struct SharedState { - - SharedState() : - midi(0), - midi_out(0), - midi_in(0), - dpms_thread(0), - song_speed(100), - base_volume(1) - {} - - Midi *midi; - MidiCommOut *midi_out; - MidiCommIn *midi_in; - DpmsThread *dpms_thread; - - SongStatistics stats; - - int song_speed; - double base_volume; - - std::vector track_properties; - std::string song_title; -}; - -#endif // __SHARED_STATE_H diff --git a/src/StatsState.cpp b/src/StatsState.cpp deleted file mode 100644 index b4c9e4d8..00000000 --- a/src/StatsState.cpp +++ /dev/null @@ -1,140 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "StatsState.h" -#include "TrackSelectionState.h" -#include "PlayingState.h" -#include "Renderer.h" -#include "Textures.h" - -#include - -using namespace std; - -void StatsState::Init() { - m_back_button = ButtonState( - Layout::ScreenMarginX, - GetStateHeight() - Layout::ScreenMarginY/2 - Layout::ButtonHeight/2, - Layout::ButtonWidth, Layout::ButtonHeight); - - m_continue_button = ButtonState( - GetStateWidth() - Layout::ScreenMarginX - Layout::ButtonWidth, - GetStateHeight() - Layout::ScreenMarginY/2 - Layout::ButtonHeight/2, - Layout::ButtonWidth, Layout::ButtonHeight); -} - -void StatsState::Update() { - - MouseInfo mouse = Mouse(); - - m_continue_button.Update(mouse); - m_back_button.Update(mouse); - - if (IsKeyPressed(KeyEscape) || m_back_button.hit) { - ChangeState(new TrackSelectionState(m_state)); - return; - } - - if (IsKeyPressed(KeyEnter) || m_continue_button.hit) { - ChangeState(new PlayingState(m_state)); - return; - } - - m_tooltip = ""; - if (m_back_button.hovering) - m_tooltip = "Return to the track selection screen."; - - if (m_continue_button.hovering) - m_tooltip = "Try this song again with the same settings."; -} - -void StatsState::Draw(Renderer &renderer) const { - - const bool ConstrainedHeight = (GetStateHeight() < 720); - - int left = GetStateWidth() / 2 + 40; - const int InstructionsY = ConstrainedHeight ? 120 : 263; - - renderer.SetColor(White); - renderer.DrawTga(GetTexture(StatsText), left - 270, InstructionsY - 113); - - if (!ConstrainedHeight) { - Layout::DrawTitle(renderer, m_state.song_title); - Layout::DrawHorizontalRule(renderer, GetStateWidth(), Layout::ScreenMarginY); - } - - Layout::DrawHorizontalRule(renderer, GetStateWidth(), GetStateHeight() - Layout::ScreenMarginY); - - Layout::DrawButton(renderer, m_continue_button, "RetrySong"); - Layout::DrawButton(renderer, m_back_button, "ChooseTracks"); - - const SongStatistics &s = m_state.stats; - - double hit_percent = 0.0; - if (s.notes_user_could_have_played > 0) { - hit_percent = 100.0 * (s.notes_user_actually_played / (s.notes_user_could_have_played * 1.0)); - } - - string grade = "F"; - if (hit_percent >= 50) grade = "D-"; - if (hit_percent >= 55) grade = "D"; - if (hit_percent >= 63) grade = "D+"; - if (hit_percent >= 70) grade = "C-"; - if (hit_percent >= 73) grade = "C"; - if (hit_percent >= 77) grade = "C+"; - if (hit_percent >= 80) grade = "B-"; - if (hit_percent >= 83) grade = "B"; - if (hit_percent >= 87) grade = "B+"; - if (hit_percent >= 90) grade = "A-"; - if (hit_percent >= 93) grade = "A"; - if (hit_percent >= 97) grade = "A+"; - if (hit_percent >= 99) grade = "A++"; - if (hit_percent >= 100) grade = "A+++"; - - int stray_percent = 0; - if (s.total_notes_user_pressed > 0) - stray_percent = static_cast((100.0 * s.stray_notes) / s.total_notes_user_pressed); - - int average_speed = 0; - if (s.notes_user_could_have_played > 0) - average_speed = s.speed_integral / s.notes_user_could_have_played; - - // Choose a dynamic color for the grade - const double p = hit_percent / 100.0; - const double r = max(0.0, 1 - (p*p*p*p)); - const double g = max(0.0, 1 - (((p- 1)*4)*((p- 1)*4))); - const double b = max(0.0, 1 - (((p-.75)*5)*((p-.75)*5))); - - const Color c = Renderer::ToColor(int(r*0xFF), int(g*0xFF), int(b*0xFF)); - - TextWriter grade_text(left - 5, InstructionsY - 15, renderer, false, 100); - grade_text << Text(grade, c); - - TextWriter score(left, InstructionsY + 112, renderer, false, 28); - score << STRING(static_cast(s.score)); - - TextWriter speed(left, InstructionsY + 147, renderer, false, 28); - speed << STRING(average_speed << " %"); - - TextWriter good(left, InstructionsY + 218, renderer, false, 28); - good << STRING(s.notes_user_actually_played << " / " << - s.notes_user_could_have_played << " (" << - static_cast(hit_percent) << " %" << ")"); - - TextWriter stray(left, InstructionsY + 255, renderer, false, 28); - stray << STRING(s.stray_notes << " (" << stray_percent << " %" << ")"); - - TextWriter combo(left, InstructionsY + 323, renderer, false, 28); - combo << STRING(s.longest_combo); - - TextWriter tooltip(GetStateWidth() / 2, - GetStateHeight() - Layout::ScreenMarginY/2 - Layout::TitleFontSize/2, - renderer, true, Layout::TitleFontSize); - - tooltip << m_tooltip; -} diff --git a/src/StatsState.h b/src/StatsState.h deleted file mode 100644 index 97f2c80d..00000000 --- a/src/StatsState.h +++ /dev/null @@ -1,37 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __STATS_STATE_H -#define __STATS_STATE_H - -#include "SharedState.h" -#include "GameState.h" -#include "MenuLayout.h" - -class StatsState : public GameState { -public: - - StatsState(const SharedState &state) : - m_state(state) { - } - -protected: - virtual void Init(); - virtual void Update(); - virtual void Draw(Renderer &renderer) const; - -private: - ButtonState m_continue_button; - ButtonState m_back_button; - - std::string m_tooltip; - - SharedState m_state; -}; - -#endif // __STATS_STATE_H diff --git a/src/StringTile.cpp b/src/StringTile.cpp deleted file mode 100644 index e1299057..00000000 --- a/src/StringTile.cpp +++ /dev/null @@ -1,38 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "StringTile.h" -#include "TextWriter.h" -#include "Renderer.h" - -StringTile::StringTile(int x, int y, Tga *graphics) : - m_x(x), m_y(y), m_graphics(graphics) { - - whole_tile = ButtonState(0, 0, StringTileWidth, StringTileHeight); -} - -void StringTile::Update(const MouseInfo &translated_mouse) { - - whole_tile.Update(translated_mouse); -} - -void StringTile::Draw(Renderer &renderer) const { - - renderer.SetOffset(m_x, m_y); - - const Color hover = Renderer::ToColor(0xFF, 0xFF, 0xFF); - const Color no_hover = Renderer::ToColor(0xE0, 0xE0, 0xE0); - renderer.SetColor(whole_tile.hovering ? hover : no_hover); - renderer.DrawTga(m_graphics, 0, 0); - - TextWriter text(20, 46, renderer, false, 14); - text << m_string; - - renderer.ResetOffset(); -} - diff --git a/src/StringTile.h b/src/StringTile.h deleted file mode 100644 index 0b85df70..00000000 --- a/src/StringTile.h +++ /dev/null @@ -1,63 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __STRING_TILE_H -#define __STRING_TILE_H - -#include "GameState.h" -#include "MenuLayout.h" -#include - -const int StringTileWidth = 510; -const int StringTileHeight = 80; - -class StringTile { -public: - - StringTile(int x, int y, Tga *graphics); - - void Update(const MouseInfo &translated_mouse); - void Draw(Renderer &renderer) const; - - int GetX() const { - return m_x; - } - - int GetY() const { - return m_y; - } - - bool Hit() const { - return whole_tile.hit; - } - - void SetString(const std::string &s) { - m_string = s; - } - - void SetTitle(const std::string &s) { - m_title = s; - } - - const ButtonState WholeTile() const { - return whole_tile; - } - -private: - int m_x; - int m_y; - - Tga *m_graphics; - - std::string m_string; - std::string m_title; - - ButtonState whole_tile; -}; - -#endif // __STRING_TILE_H diff --git a/src/StringUtil.h b/src/StringUtil.h deleted file mode 100644 index 97f47a7e..00000000 --- a/src/StringUtil.h +++ /dev/null @@ -1,71 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __STRING_UTIL_H -#define __STRING_UTIL_H - -// Handy string macros -#ifndef STRING -#include -#define STRING(v) ((static_cast(std::ostringstream().\ - flush() << v)).str()) -#endif - -#include -#include -#include -#include -#include -#include - -// string_type here can be things like std::string or std::wstring -template -const string_type StringLower(string_type s) { - - std::locale loc; - - std::transform(s.begin(), s.end(), s.begin(), - std::bind1st( std::mem_fun( &std::ctype::tolower ), - &std::use_facet< std::ctype >( loc ) ) ); - - return s; -} - -// E here is usually wchar_t -template, class A = std::allocator > -class Widen : public std::unary_function< const std::string&, std::basic_string > { - -public: - - Widen(const std::locale& loc = std::locale()) : loc_(loc) { - pCType_ = &std::use_facet >(loc); - } - - std::basic_string operator() (const std::string& str) const { - if (str.length() == 0) return std::basic_string(); - - typename std::basic_string::size_type srcLen = str.length(); - const char* pSrcBeg = str.c_str(); - std::vector tmp(srcLen); - - pCType_->widen(pSrcBeg, pSrcBeg + srcLen, &tmp[0]); - return std::basic_string(&tmp[0], srcLen); - } - -private: - - std::locale loc_; - const std::ctype* pCType_; - - // No copy-constructor or no assignment operator - Widen(const Widen&); - Widen& operator= (const Widen&); - -}; - -#endif // __STRING_UTIL_H diff --git a/src/TextWriter.cpp b/src/TextWriter.cpp deleted file mode 100644 index d071ca12..00000000 --- a/src/TextWriter.cpp +++ /dev/null @@ -1,188 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "TextWriter.h" -#include "Renderer.h" -#include "LinthesiaError.h" -#include "OSGraphics.h" -#include "UserSettings.h" - -#include -#include - -using namespace std; - -// TODO: This should be deleted at shutdown -static map font_size_lookup; - -// TODO: This should be deleted at shutdown -static map font_lookup; - -// Returns the most suitable font available on the platform -// or an empty string if no font is available; -static const std::string get_default_font(); - -TextWriter::TextWriter(int in_x, int in_y, Renderer &in_renderer, - bool in_centered, int in_size, string fontname) : - x(in_x), - y(in_y), - size(in_size), - original_x(0), - last_line_height(0), - centered(in_centered), - renderer(in_renderer) { - - x += renderer.m_xoffset; - original_x = x; - - y += renderer.m_yoffset; - point_size = size; - - - if (font_size_lookup[size] == 0) { - - // Get font from user settings - // if (fontname.empty()) { - // string key = "font_desc"; - // fontname = UserSetting::Get(key, ""); - - // // Or set it if there is no default - // if (fontname.empty()) { - // fontname = get_default_font(); - // UserSetting::Set(key, fontname); - // } - // } - - int list_start = glGenLists(128); - fontname = STRING(fontname << " " << in_size); - - //@TODO Beter Font System!!! - Pango::FontDescription* font_desc = new Pango::FontDescription("Roboto Medium"); - - Glib::RefPtr ret = Gdk::GL::Font::use_pango_font(*font_desc, 0, 128, list_start); - if (!ret) - throw LinthesiaError("An error ocurred while trying to use use_pango_font() with " - "font '" + fontname + "'"); - - font_size_lookup[size] = list_start; - font_lookup[size] = font_desc; - } -} - -int TextWriter::get_point_size() { - return point_size; -} - -TextWriter& TextWriter::next_line() { - y += max(last_line_height, get_point_size()); - x = original_x; - - last_line_height = 0; - return *this; -} - -TextWriter& Text::operator<<(TextWriter& tw) const { - int draw_x; - int draw_y; - calculate_position_and_advance_cursor(tw, &draw_x, &draw_y); - - string narrow(m_text.begin(), m_text.end()); - - glBindTexture(GL_TEXTURE_2D, 0); - - glPushMatrix(); - tw.renderer.SetColor(m_color); - glListBase(font_size_lookup[tw.size]); - glRasterPos2i(draw_x, draw_y + tw.size); - glCallLists(static_cast(narrow.length()), GL_UNSIGNED_BYTE, narrow.c_str()); - glPopMatrix(); - - // TODO: Should probably delete these on shutdown. - //glDeleteLists(1000, 128); - - return tw; -} - -void Text::calculate_position_and_advance_cursor(TextWriter &tw, int *out_x, int *out_y) const { - - Glib::RefPtr layout = Pango::Layout::create(tw.renderer.m_pangocontext); - layout->set_text(m_text); - layout->set_font_description(*(font_lookup[tw.size])); - - Pango::Rectangle drawing_rect = layout->get_pixel_logical_extents(); - tw.last_line_height = drawing_rect.get_height(); - - if (tw.centered) - *out_x = tw.x - drawing_rect.get_width() / 2; - - else { - *out_x = tw.x; - tw.x += drawing_rect.get_width(); - } - - *out_y = tw.y; -} - -TextWriter& operator<<(TextWriter& tw, const Text& t) { - return t.operator <<(tw); -} - -TextWriter& newline(TextWriter& tw) { - return tw.next_line(); -} - -TextWriter& operator<<(TextWriter& tw, const string& s) { return tw << Text(s, White); } -TextWriter& operator<<(TextWriter& tw, const int& i) { return tw << Text(i, White); } -TextWriter& operator<<(TextWriter& tw, const unsigned int& i) { return tw << Text(i, White); } -TextWriter& operator<<(TextWriter& tw, const long& l) { return tw << Text(l, White); } -TextWriter& operator<<(TextWriter& tw, const unsigned long& l) { return tw << Text(l, White); } - -static -const std::string get_default_font() -{ - // populate a vector of candidates with the most common choices - vector< string > allCandidates; - allCandidates.push_back("serif"); - allCandidates.push_back("sans"); - allCandidates.push_back("clean"); - allCandidates.push_back("courier"); // Debian suggests using courier - - vector< string >::const_iterator candidate; - const vector< string >::const_iterator end = allCandidates.end(); - - // retrieve all fonts from the X server - Display * const display = XOpenDisplay(NULL); - int nbFonts = 0, i = 0; - char ** const allFonts = XListFonts(display, "-*", 32767, &nbFonts); - - string returnedFont = (nbFonts > 0) ? allFonts[0] : ""; - - // check if we have a candidate, and returns it if we do - string currentFont; - bool found = false; - for (i = 0; i < nbFonts && !found; ++i) - { - currentFont = allFonts[i]; - - for (candidate = allCandidates.begin(); - candidate != end && !found; ++candidate) - { - // any font that contains the name of the candidate ( "serif" ) will do - if (currentFont.find(*candidate) != string::npos) - { - returnedFont = *candidate; - found = true; - } - } - } - // raise(SIGINT); - XFreeFontNames(allFonts); - XCloseDisplay(display); - - return returnedFont; -} diff --git a/src/TextWriter.h b/src/TextWriter.h deleted file mode 100644 index bfb9c083..00000000 --- a/src/TextWriter.h +++ /dev/null @@ -1,125 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __TEXTWRITER_H -#define __TEXTWRITER_H - -#ifndef __cdecl -#define __cdecl -#endif - -#include -#include -#include - -#include "StringUtil.h" -#include "TrackProperties.h" - -// A nice ostream-like class for drawing OS-specific (or OpenGL) text to the -// screen in varying colors, fonts, and sizes. -class TextWriter { -public: - - // Centering only works for single-write lines... in other words, centered - // lines can only be 1 color. - TextWriter(int in_x, int in_y, - Renderer &in_renderer, bool in_centered = false, - int in_size = 12, std::string fontname = ""); - - // Skips at least 1 line, or the height of the last write... whichever - // is greater (so that you can skip down past a multiline write) - TextWriter& next_line(); - - // Allow manipulators - TextWriter& operator<<(TextWriter& (__cdecl *_Pfn)(TextWriter&)) { - (*_Pfn)(*(TextWriter *)this); - return (*this); - } - -private: - TextWriter operator=(const TextWriter&); - TextWriter(const TextWriter&); - - int get_point_size(); - - int point_size; - int x, y, size, original_x; - int last_line_height; - bool centered; - Renderer renderer; - - friend class Text; -}; - -// Some colors to choose from, for convenience -const static Color Black = { 0x00,0x00,0x00, 0xFF }; -const static Color Dk_Blue = { 0xC4,0x00,0x00, 0xFF }; -const static Color Dk_Green = { 0x00,0xC4,0x00, 0xFF }; -const static Color Dk_Cyan = { 0xFF,0x80,0x00, 0xFF }; -const static Color Dk_Red = { 0x00,0x00,0xC4, 0xFF }; -const static Color Dk_Purple = { 0x80,0x00,0x80, 0xFF }; -const static Color Brown = { 0x00,0x40,0x80, 0xFF }; -const static Color Gray = { 0xBB,0xBB,0xBB, 0xFF }; -const static Color Dk_Gray = { 0x55,0x55,0x55, 0xFF }; -const static Color Blue = { 0xFF,0x00,0x00, 0xFF }; -const static Color Green = { 0x00,0xFF,0x00, 0xFF }; -const static Color Cyan = { 0xFF,0xFF,0x00, 0xFF }; -const static Color Red = { 0x00,0x00,0xFF, 0xFF }; -const static Color Magenta = { 0xFF,0x00,0xFF, 0xFF }; -const static Color Yellow = { 0x00,0xFF,0xFF, 0xFF }; -const static Color White = { 0xFF,0xFF,0xFF, 0xFF }; -const static Color Orange = { 0x20,0x80,0xFF, 0xFF }; -const static Color Pink = { 0xA0,0x80,0xFF, 0xFF }; -const static Color CheatYellow = { 0x00,0xCC,0xFF, 0xFF }; - - -// A class to use TextWriter, and write to the screen -class Text { -public: - - Text(std::string t, Color color) : - m_color(color), - m_text(t) { - } - - Text(int i, Color color) : - m_color(color), - m_text(STRING(i)) { - } - - Text(double d, int prec, Color color) : - m_color(color), - m_text(STRING(std::setprecision(prec) << d)) { - } - - TextWriter& operator<<(TextWriter& tw) const; - -private: - - // This will return where the text should be drawn on - // the screen (determined in an OS dependent way) and - // advance the TextWriter's position by the width and/or - // height of the text. - void calculate_position_and_advance_cursor(TextWriter &tw, int *out_x, - int *out_y) const; - - Color m_color; - std::string m_text; -}; - -// newline manipulator -TextWriter& newline(TextWriter& tw); - -TextWriter& operator<<(TextWriter& tw, const Text& t); -TextWriter& operator<<(TextWriter& tw, const std::string& s); -TextWriter& operator<<(TextWriter& tw, const int& i); -TextWriter& operator<<(TextWriter& tw, const unsigned int& i); -TextWriter& operator<<(TextWriter& tw, const long& l); -TextWriter& operator<<(TextWriter& tw, const unsigned long& l); - -#endif // __TEXTWRITER_H diff --git a/src/Textures.h b/src/Textures.h deleted file mode 100644 index d33b4cd7..00000000 --- a/src/Textures.h +++ /dev/null @@ -1,50 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __TEXTURES_H -#define __TEXTURES_H - -enum Texture { - - // TextureResourceNames should have the same order - TitleLogo, - InterfaceButtons, - GameMusicThemes, - - ButtonRetrySong, - ButtonChooseTracks, - ButtonExit, - ButtonBackToTitle, - ButtonPlaySong, - - InputBox, - OutputBox, - SongBox, - - TrackPanel, - - StatsText, - - PlayStatus, - PlayStatus2, - PlayKeys, - - PlayNotesBlackColor, - PlayNotesBlackShadow, - PlayNotesWhiteColor, - PlayNotesWhiteShadow, - - PlayKeyRail, - PlayKeyShadow, - PlayKeysBlack, - PlayKeysWhite, - - _TextureEnumCount -}; - -#endif // __TEXTURES_H diff --git a/src/Tga.cpp b/src/Tga.cpp deleted file mode 100644 index 5fedb9ff..00000000 --- a/src/Tga.cpp +++ /dev/null @@ -1,235 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include -#include -#include // Fix Artifact ID: 2927098 - -#include "Tga.h" -#include "OSGraphics.h" -#include "StringUtil.h" -#include "LinthesiaError.h" - -#ifndef GRAPHDIR -#define GRAPHDIR "../graphics" -#endif - -using namespace std; - -Tga* Tga::Load(const string &resource_name) { - - // Append extension - string full_name = resource_name + ".tga"; - - // FIXME this! - full_name = string(GRAPHDIR) + "/" + full_name; - - ifstream file(full_name.c_str(), ios::in|ios::binary|ios::ate); - if (!file.is_open()) - throw LinthesiaError("Couldn't open TGA resource (" + full_name + ")."); - - int size = file.tellg(); - unsigned char *bytes = new unsigned char[size]; - - file.seekg(0, ios::beg); - file.read((char*)bytes, size); - file.close(); - - Tga *ret = LoadFromData(bytes); - delete[] bytes; - - ret->SetSmooth(false); - return ret; -} - -void Tga::Release(Tga *tga) { - if (!tga) - return; - - glDeleteTextures(1, &tga->m_texture_id); - delete tga; -} - -const static int TgaTypeHeaderLength = 12; -const static unsigned char UncompressedTgaHeader[TgaTypeHeaderLength] = {0,0,2,0,0,0,0,0,0,0,0,0}; -const static unsigned char CompressedTgaHeader[TgaTypeHeaderLength] = {0,0,10,0,0,0,0,0,0,0,0,0}; - -void Tga::SetSmooth(bool smooth) { - GLint filter = GL_NEAREST; - if (smooth) - filter = GL_LINEAR; - - glBindTexture(GL_TEXTURE_2D, m_texture_id); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filter); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filter); -} - -enum TgaType { - - TgaUncompressed, - TgaCompressed, - TgaUnknown -}; - -Tga *Tga::LoadFromData(const unsigned char *bytes) { - if (!bytes) - return 0; - - const unsigned char *pos = bytes; - - TgaType type = TgaUnknown; - if (memcmp(UncompressedTgaHeader, pos, TgaTypeHeaderLength) == 0) - type = TgaUncompressed; - - if (memcmp(CompressedTgaHeader, pos, TgaTypeHeaderLength) == 0) - type = TgaCompressed; - - if (type == TgaUnknown) - throw LinthesiaError("Unsupported TGA type."); - - // We're done with the type header - pos += TgaTypeHeaderLength; - - unsigned int width = pos[1] * 256 + pos[0]; - unsigned int height = pos[3] * 256 + pos[2]; - unsigned int bpp = pos[4]; - - // We're done with the data header - const static int TgaDataHeaderLength = 6; - pos += TgaDataHeaderLength; - - if (width <= 0 || height <= 0) - throw LinthesiaError("Invalid TGA dimensions."); - - if (bpp != 24 && bpp != 32) - throw LinthesiaError("Unsupported TGA BPP."); - - const unsigned int data_size = width * height * bpp/8; - unsigned char *image_data = new unsigned char[data_size]; - - Tga *t = 0; - if (type == TgaCompressed) - t = LoadCompressed(pos, image_data, width, height, bpp); - - if (type == TgaUncompressed) - t = LoadUncompressed(pos, image_data, data_size, width, height, bpp); - - delete[] image_data; - return t; -} - -Tga *Tga::LoadUncompressed(const unsigned char *src, unsigned char *dest, - unsigned int size, unsigned int width, unsigned int height, - unsigned int bpp) { - // We can use most of the data as-is with little modification - memcpy(dest, src, size); - - for (unsigned int cswap = 0; cswap < size; cswap += bpp/8) { - dest[cswap] ^= dest[cswap+2] ^= dest[cswap] ^= dest[cswap+2]; - } - - return BuildFromParameters(dest, width, height, bpp); -} - -Tga *Tga::LoadCompressed(const unsigned char *src, unsigned char *dest, - unsigned int width, unsigned int height, unsigned int bpp) { - - const unsigned char *pos = src; - - const unsigned int BytesPerPixel = bpp / 8; - const unsigned int PixelCount = height * width; - - const static unsigned int MaxBytesPerPixel = 4; - unsigned char pixel_buffer[MaxBytesPerPixel]; - - unsigned int pixel = 0; - unsigned int byte = 0; - - while (pixel < PixelCount) { - unsigned char chunkheader = 0; - memcpy(&chunkheader, pos, sizeof(unsigned char)); - pos += sizeof(unsigned char); - - if (chunkheader < 128) { - chunkheader++; - - for (short i = 0; i < chunkheader; i++) { - memcpy(pixel_buffer, pos, BytesPerPixel); - pos += BytesPerPixel; - - dest[byte + 0] = pixel_buffer[2]; - dest[byte + 1] = pixel_buffer[1]; - dest[byte + 2] = pixel_buffer[0]; - - if (BytesPerPixel == 4) - dest[byte + 3] = pixel_buffer[3]; - - byte += BytesPerPixel; - pixel++; - - if (pixel > PixelCount) - throw LinthesiaError("Too many pixels in TGA."); - } - } - - else { - chunkheader -= 127; - - memcpy(pixel_buffer, pos, BytesPerPixel); - pos += BytesPerPixel; - - for (short i = 0; i < chunkheader; i++) { - - dest[byte + 0] = pixel_buffer[2]; - dest[byte + 1] = pixel_buffer[1]; - dest[byte + 2] = pixel_buffer[0]; - - if (BytesPerPixel == 4) - dest[byte + 3] = pixel_buffer[3]; - - byte += BytesPerPixel; - pixel++; - - if (pixel > PixelCount) - throw LinthesiaError("Too many pixels in TGA."); - - } - } - } - - return BuildFromParameters(dest, width, height, bpp); -} - - -Tga *Tga::BuildFromParameters(const unsigned char *raw, unsigned int width, - unsigned int height, unsigned int bpp) { - - unsigned int pixel_format = 0; - if (bpp == 24) - pixel_format = GL_RGB; - - if (bpp == 32) - pixel_format = GL_RGBA; - - TextureId id; - glGenTextures(1, &id); - if (!id) - return 0; - - glBindTexture(GL_TEXTURE_2D, id); - glPixelStorei(GL_UNPACK_ALIGNMENT, 4); - glTexImage2D(GL_TEXTURE_2D, 0, bpp/8, width, height, - 0, pixel_format, GL_UNSIGNED_BYTE, raw); - - Tga *t = new Tga(); - t->m_width = width; - t->m_height = height; - t->m_texture_id = id; - - return t; -} diff --git a/src/Tga.h b/src/Tga.h deleted file mode 100644 index 39fe53bb..00000000 --- a/src/Tga.h +++ /dev/null @@ -1,62 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __TGA_H -#define __TGA_H - -#include - -typedef unsigned int TextureId; - -class Tga { -public: - - static Tga *Load(const std::string &resource_name); - static void Release(Tga *tga); - - TextureId GetId() const { - return m_texture_id; - } - - unsigned int GetWidth() const { - return m_width; - } - - unsigned int GetHeight() const { - return m_height; - } - - void SetSmooth(bool smooth); - -private: - - TextureId m_texture_id; - unsigned int m_width; - unsigned int m_height; - - Tga() { } - ~Tga() { } - - Tga(const Tga& rhs); - Tga &operator=(const Tga& rhs); - - - static Tga *LoadFromData(const unsigned char *bytes); - - static Tga *LoadCompressed(const unsigned char *src, unsigned char *dest, - unsigned int width, unsigned int height, unsigned int bpp); - - static Tga *LoadUncompressed(const unsigned char *src, unsigned char *dest, - unsigned int size, unsigned int width, unsigned int height, - unsigned int bpp); - - static Tga *BuildFromParameters(const unsigned char *data, unsigned int width, - unsigned int height, unsigned int bpp); -}; - -#endif // __TGA_H diff --git a/src/TitleState.cpp b/src/TitleState.cpp deleted file mode 100644 index 94d7e327..00000000 --- a/src/TitleState.cpp +++ /dev/null @@ -1,455 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "TitleState.h" -#include "TrackSelectionState.h" - -#include "Version.h" -#include "CompatibleSystem.h" - -#include "MenuLayout.h" -#include "UserSettings.h" -#include "FileSelector.h" -#include "Renderer.h" -#include "Textures.h" -#include "GameState.h" - -#include "libmidi/Midi.h" -#include "libmidi/MidiUtil.h" -#include "MidiComm.h" - -using namespace std; - -const static string OutputDeviceKey = "last_output_device"; -const static string OutputKeySpecialDisabled = "[no output device]"; - -const static string InputDeviceKey = "last_input_device"; -const static string InputKeySpecialDisabled = "[no input device]"; - -TitleState::~TitleState() { - - if (m_output_tile) delete m_output_tile; - if (m_input_tile) delete m_input_tile; - if (m_file_tile) delete m_file_tile; -} - -void TitleState::Init() { - - m_back_button = ButtonState( - Layout::ScreenMarginX, - GetStateHeight() - Layout::ScreenMarginY/2 - Layout::ButtonHeight/2, - Layout::ButtonWidth, Layout::ButtonHeight); - - m_continue_button = ButtonState( - GetStateWidth() - Layout::ScreenMarginX - Layout::ButtonWidth, - GetStateHeight() - Layout::ScreenMarginY/2 - Layout::ButtonHeight/2, - Layout::ButtonWidth, Layout::ButtonHeight); - - string last_output_device = UserSetting::Get(OutputDeviceKey, ""); - string last_input_device = UserSetting::Get(InputDeviceKey, ""); - - // midi_out could be in one of three states right now: - // 1. We just started and were passed a null MidiCommOut pointer - // Or, we're returning from track selection either with: - // 2. a null MidiCommOut because the user didn't want any output, or - // 3. a valid MidiCommOut we constructed previously. - if (!m_state.midi_out) { - - // Try to find the previously used device - MidiCommDescriptionList devices = MidiCommOut::GetDeviceList(); - MidiCommDescriptionList::const_iterator it; - for (it = devices.begin(); it != devices.end(); it++) { - if (it->name == last_output_device) { - m_state.midi_out = new MidiCommOut(it->id); - break; - } - } - - // Next, if we couldn't find a previously used device, - // use the first one - if (last_output_device != OutputKeySpecialDisabled && - !m_state.midi_out && devices.size() > 0) - - m_state.midi_out = new MidiCommOut(devices[0].id); - } - - if (!m_state.midi_in) { - - // Try to find the previously used device - MidiCommDescriptionList devices = MidiCommIn::GetDeviceList(); - MidiCommDescriptionList::const_iterator it; - for (it = devices.begin(); it != devices.end(); it++) { - if (it->name == last_input_device) { - try { - m_state.midi_in = new MidiCommIn(it->id); - break; - } - catch (MidiErrorCode) { - m_state.midi_in = 0; - } - } - } - - // If we couldn't find the previously used device, - // disabling by default (i.e. leaving it null) is - // completely acceptable. - } - - int output_device_id = -1; - if (m_state.midi_out) { - output_device_id = m_state.midi_out->GetDeviceDescription().id; - m_state.midi_out->Reset(); - } - - int input_device_id = -1; - if (m_state.midi_in) { - input_device_id = m_state.midi_in->GetDeviceDescription().id; - m_state.midi_in->Reset(); - } - - const bool compress_height = (GetStateHeight() < 750); - const int initial_y = (compress_height ? 230 : 360); - const int each_y = (compress_height ? 94 : 100); - - m_file_tile = new StringTile((GetStateWidth() - StringTileWidth) / 2, - initial_y + each_y*0, - GetTexture(SongBox)); - - m_file_tile->SetString(m_state.song_title); - - const MidiCommDescriptionList output_devices = MidiCommOut::GetDeviceList(); - const MidiCommDescriptionList input_devices = MidiCommIn::GetDeviceList(); - - m_output_tile = new DeviceTile((GetStateWidth() - DeviceTileWidth) / 2, - initial_y + each_y*1, - output_device_id, - DeviceTileOutput, - output_devices, - GetTexture(InterfaceButtons), - GetTexture(OutputBox)); - - m_input_tile = new DeviceTile((GetStateWidth() - DeviceTileWidth) / 2, - initial_y + each_y*2, - input_device_id, - DeviceTileInput, - input_devices, - GetTexture(InterfaceButtons), - GetTexture(InputBox)); -} - -void TitleState::Update() { - MidiCommOut::UpdateDeviceList(); - MidiCommIn::UpdateDeviceList(); - m_input_tile->ReplaceDeviceList(MidiCommIn::GetDeviceList()); - m_output_tile->ReplaceDeviceList(MidiCommOut::GetDeviceList()); - - MouseInfo mouse = Mouse(); - - if (m_skip_next_mouse_up) { - mouse.released.left = false; - m_skip_next_mouse_up = false; - } - - m_continue_button.Update(mouse); - m_back_button.Update(mouse); - - MouseInfo output_mouse(mouse); - output_mouse.x -= m_output_tile->GetX(); - output_mouse.y -= m_output_tile->GetY(); - m_output_tile->Update(output_mouse); - - MouseInfo input_mouse(mouse); - input_mouse.x -= m_input_tile->GetX(); - input_mouse.y -= m_input_tile->GetY(); - m_input_tile->Update(input_mouse); - - MouseInfo file_mouse(mouse); - file_mouse.x -= m_file_tile->GetX(); - file_mouse.y -= m_file_tile->GetY(); - m_file_tile->Update(file_mouse); - - // Check to see for clicks on the file box - if (m_file_tile->Hit()) { - m_skip_next_mouse_up = true; - - if (m_state.midi_out) { - m_state.midi_out->Reset(); - m_output_tile->TurnOffPreview(); - } - - Midi *new_midi = 0; - - string filename; - string file_title; - FileSelector::RequestMidiFilename(&filename, &file_title); - - if (filename != "") { - try { - new_midi = new Midi(Midi::ReadFromFile(filename)); - } - catch (const MidiError &e) { - string description = STRING("Problem while loading file: " << - file_title << "\n") + e.GetErrorDescription(); - Compatible::ShowError(description); - new_midi = 0; - } - - if (new_midi) { - - SharedState new_state; - new_state.midi = new_midi; - new_state.midi_in = m_state.midi_in; - new_state.midi_out = m_state.midi_out; - new_state.song_title = FileSelector::TrimFilename(filename); - new_state.dpms_thread = m_state.dpms_thread; - - delete m_state.midi; - m_state = new_state; - - m_file_tile->SetString(m_state.song_title); - } - } - } - - // Check to see if we need to switch to a newly selected output device - int output_id = m_output_tile->GetDeviceId(); - if (!m_state.midi_out || - output_id != static_cast(m_state.midi_out->GetDeviceDescription().id)) { - - if (m_state.midi_out) - m_state.midi_out->Reset(); - - delete m_state.midi_out; - m_state.midi_out = 0; - - // save to user preferences - if (output_id >= 0) { - - m_state.midi_out = new MidiCommOut(output_id); - m_state.midi->Reset(0,0); - - UserSetting::Set(OutputDeviceKey, m_state.midi_out->GetDeviceDescription().name); - } - else - UserSetting::Set(OutputDeviceKey, OutputKeySpecialDisabled); - - } - - if (m_state.midi_out) { - if (m_output_tile->HitPreviewButton()) { - m_state.midi_out->Reset(); - - if (m_output_tile->IsPreviewOn()) { - - const microseconds_t PreviewLeadIn = 250000; - const microseconds_t PreviewLeadOut = 250000; - m_state.midi->Reset(PreviewLeadIn, PreviewLeadOut); - - PlayDevicePreview(0); - } - } - - else - PlayDevicePreview(static_cast(GetDeltaMilliseconds()) * 1000); - - } - - int input_id = m_input_tile->GetDeviceId(); - if (!m_state.midi_in || - input_id != static_cast(m_state.midi_in->GetDeviceDescription().id)) { - - if (m_state.midi_in) - m_state.midi_in->Reset(); - - m_last_input_note_name = ""; - - delete m_state.midi_in; - m_state.midi_in = 0; - - if (input_id >= 0) { - - try { - m_state.midi_in = new MidiCommIn(input_id); - UserSetting::Set(InputDeviceKey, m_state.midi_in->GetDeviceDescription().name); - } - - catch (MidiErrorCode) { - m_state.midi_in = 0; - } - } - - else - UserSetting::Set(InputDeviceKey, InputKeySpecialDisabled); - - } - - if (m_state.midi_in && m_input_tile->IsPreviewOn()) { - - // Read note events to display on screen - while (m_state.midi_in->KeepReading()) { - MidiEvent ev = m_state.midi_in->Read(); - - // send to output (for a possible audio preview) - if (m_state.midi_out) - m_state.midi_out->Write(ev); - - if (ev.Type() == MidiEventType_NoteOff || ev.Type() == MidiEventType_NoteOn) { - string note = MidiEvent::NoteName(ev.NoteNumber()); - - if (ev.Type() == MidiEventType_NoteOn && ev.NoteVelocity() > 0) - m_last_input_note_name = note; - - else - if (note == m_last_input_note_name) - m_last_input_note_name = ""; - - } - } - } - - else - m_last_input_note_name = ""; - - if (IsKeyPressed(KeyEscape) || m_back_button.hit) { - delete m_state.midi_out; - m_state.midi_out = 0; - - delete m_state.midi_in; - m_state.midi_in = 0; - - delete m_state.midi; - m_state.midi = 0; - - Compatible::GracefulShutdown(); - return; - } - - if (IsKeyPressed(KeyEnter) || m_continue_button.hit) { - - if (m_state.midi_out) - m_state.midi_out->Reset(); - - if (m_state.midi_in) - m_state.midi_in->Reset(); - - ChangeState(new TrackSelectionState(m_state)); - return; - } - - m_tooltip = ""; - - if (m_back_button.hovering) - m_tooltip = "Click to exit Linthesia."; - - if (m_continue_button.hovering) - m_tooltip = "Click to continue on to the track selection screen."; - - if (m_file_tile->WholeTile().hovering) - m_tooltip = "Click to choose a different MIDI file."; - - if (m_input_tile->ButtonLeft().hovering) - m_tooltip = "Cycle through available input devices."; - - if (m_input_tile->ButtonRight().hovering) - m_tooltip = "Cycle through available input devices."; - - if (m_input_tile->ButtonPreview().hovering) { - if (m_input_tile->IsPreviewOn()) - m_tooltip = "Turn off test MIDI input for this device."; - else - m_tooltip = "Click to test your MIDI input device by playing notes."; - } - - if (m_output_tile->ButtonLeft().hovering) - m_tooltip = "Cycle through available output devices."; - - if (m_output_tile->ButtonRight().hovering) - m_tooltip = "Cycle through available output devices."; - - if (m_output_tile->ButtonPreview().hovering) { - if (m_output_tile->IsPreviewOn()) - m_tooltip = "Turn off output test for this device."; - else - m_tooltip = "Click to test MIDI output on this device."; - } -} - -void TitleState::PlayDevicePreview(microseconds_t delta_microseconds) { - if (!m_output_tile->IsPreviewOn()) - return; - - if (!m_state.midi_out) - return; - - MidiEventListWithTrackId evs = m_state.midi->Update(delta_microseconds); - - for (MidiEventListWithTrackId::const_iterator i = evs.begin(); i != evs.end(); ++i) { - m_state.midi_out->Write(i->second); - } -} - -void TitleState::Draw(Renderer &renderer) const { - - const bool compress_height = (GetStateHeight() < 750); - const bool compress_width = (GetStateWidth() < 850); - - const static int TitleWidth = 507; - const static int TitleY = (compress_height ? 20 : 100); - - int left = GetStateWidth() / 2 - TitleWidth / 2; - - renderer.SetColor(White); - renderer.DrawTga(GetTexture(TitleLogo), left, TitleY); - //renderer.DrawTga(GetTexture(GameMusicThemes), left+3, TitleY + (compress_height ? 120 : 150) ); - - TextWriter version(Layout::ScreenMarginX, - GetStateHeight() - Layout::ScreenMarginY - Layout::SmallFontSize * 2, - renderer, false, Layout::SmallFontSize); - - version << Text("version " + NeothesiaVersionString, Gray); - - Layout::DrawHorizontalRule(renderer, - GetStateWidth(), - GetStateHeight() - Layout::ScreenMarginY); - - Layout::DrawButton(renderer, m_continue_button, "ChooseTracks"); - Layout::DrawButton(renderer, m_back_button, "Exit"); - - m_output_tile->Draw(renderer); - m_input_tile->Draw(renderer); - m_file_tile->Draw(renderer); - - if (m_input_tile->IsPreviewOn()) { - - const static int PreviewWidth = 60; - const static int PreviewHeight = 40; - - const int x = m_input_tile->GetX() + DeviceTileWidth + 12; - const int y = m_input_tile->GetY() + 38; - - renderer.SetColor(0xFF, 0xFF, 0xFF); - renderer.DrawQuad(x, y, PreviewWidth, PreviewHeight); - - renderer.SetColor(0, 0, 0); - renderer.DrawQuad(x+1, y+1, PreviewWidth-2, PreviewHeight-2); - - TextWriter last_note(x + PreviewWidth/2 - 1, - m_input_tile->GetY() + 44, - renderer, true, Layout::TitleFontSize); - - Widen w; - last_note << w(m_last_input_note_name); - } - - const int tooltip_font_size = (compress_width ? Layout::ButtonFontSize : Layout::TitleFontSize); - TextWriter tooltip(GetStateWidth() / 2, - GetStateHeight() - Layout::ScreenMarginY/2 - tooltip_font_size/2, - renderer, true, tooltip_font_size); - - tooltip << m_tooltip; -} diff --git a/src/TitleState.h b/src/TitleState.h deleted file mode 100644 index 5a4fca09..00000000 --- a/src/TitleState.h +++ /dev/null @@ -1,61 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __TITLE_STATE_H -#define __TITLE_STATE_H - -#include "SharedState.h" -#include "GameState.h" -#include "MenuLayout.h" -#include "libmidi/MidiTypes.h" -#include "DeviceTile.h" -#include "StringTile.h" - -// class Midi; -// class MidiCommOut; -// class Tga; - -class TitleState : public GameState { -public: - - // You can pass 0 in for state.midi_out to have the title - // screen pick a device for you. - TitleState(const SharedState &state) : - m_state(state), - m_output_tile(0), - m_input_tile(0), - m_file_tile(0), - m_skip_next_mouse_up(false) { - } - - ~TitleState(); - -protected: - virtual void Init(); - virtual void Update(); - virtual void Draw(Renderer &renderer) const; - -private: - void PlayDevicePreview(microseconds_t delta_microseconds); - - ButtonState m_continue_button; - ButtonState m_back_button; - - SharedState m_state; - - std::string m_last_input_note_name; - std::string m_tooltip; - - DeviceTile *m_output_tile; - DeviceTile *m_input_tile; - StringTile *m_file_tile; - - bool m_skip_next_mouse_up; -}; - -#endif // __TITLE_STATE_H diff --git a/src/TrackProperties.h b/src/TrackProperties.h deleted file mode 100644 index db249f47..00000000 --- a/src/TrackProperties.h +++ /dev/null @@ -1,102 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __TRACK_PROPERTIES_H -#define __TRACK_PROPERTIES_H - -#include "Renderer.h" - -namespace Track { - - // See ModeText in TrackTile.cpp for titles - // See TractSelectionState.cpp for description - enum Mode { - - ModePlayedAutomatically, - ModeYouPlay, - ModeYouPlaySilently, - ModeLearning, - ModeLearningSilently, - ModePlayedButHidden, - ModeNotPlayed, - - ModeCount - }; - - // Based on the Open Source icon theme "Tango" color scheme - // with a few changes. (e.g. Chameleon NoteBlack is a little - // darker to distinguish it from NoteWhite, ScarletRed is a - // little brighter to make it easier on the eyes, etc.) - const static int ColorCount = 8; - const static int UserSelectableColorCount = ColorCount - 2; - - enum TrackColor { - - TangoSkyBlue = 0, - TangoChameleon, - TangoOrange, - TangoButter, - TangoPlum, - TangoScarletRed, - - FlatGray, - MissedNote - }; - - const static Color ColorNoteWhite[ColorCount] = { - { 114, 159, 207, 0xFF }, - { 138, 226, 52, 0xFF }, - { 252, 175, 62, 0xFF }, - { 252, 235, 87, 0xFF }, - { 173, 104, 180, 0xFF }, - { 238, 94, 94, 0xFF }, - - { 90, 90, 90, 0xFF }, - { 60, 60, 60, 0xFF } - }; - - const static Color ColorNoteHit[ColorCount] = { - { 192, 222, 255, 0xFF }, - { 203, 255, 152, 0xFF }, - { 255, 216, 152, 0xFF }, - { 255, 247, 178, 0xFF }, - { 255, 218, 251, 0xFF }, - { 255, 178, 178, 0xFF }, - - { 180, 180, 180, 0xFF }, - { 60, 60, 60, 0xFF } - }; - - const static Color ColorNoteBlack[ColorCount] = { - { 52, 101, 164, 0xFF }, - { 86, 157, 17, 0xFF }, - { 245, 121, 0, 0xFF }, - { 218, 195, 0, 0xFF }, - { 108, 76, 113, 0xFF }, - { 233, 49, 49, 0xFF }, - - { 90, 90, 90, 0xFF }, - { 60, 60, 60, 0xFF } - }; - - struct Properties { - - Properties() : - mode(ModeNotPlayed), - color(TangoSkyBlue), - is_retry_on(false) { - } - - Mode mode; - TrackColor color; - bool is_retry_on; - }; - -}; // end namespace - -#endif // __TRACK_PROPERTIES_H diff --git a/src/TrackSelectionState.cpp b/src/TrackSelectionState.cpp deleted file mode 100644 index 53631c6a..00000000 --- a/src/TrackSelectionState.cpp +++ /dev/null @@ -1,376 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "TrackSelectionState.h" - -#include "TitleState.h" -#include "PlayingState.h" -#include "MenuLayout.h" -#include "Renderer.h" -#include "Textures.h" - -#include "libmidi/Midi.h" -#include "libmidi/MidiUtil.h" -#include "MidiComm.h" - -using namespace std; - -TrackSelectionState::TrackSelectionState(const SharedState &state) : - m_page_count(0), - m_current_page(0), - m_tiles_per_page(0), - m_preview_on(false), - m_first_update_after_seek(false), - m_preview_track_id(0), - m_state(state) { -} - -void TrackSelectionState::Init() { - - if (m_state.midi_out) - m_state.midi_out->Reset(); - - Midi &m = *m_state.midi; - - // Prepare a very simple count of the playable tracks first - int track_count = 0; - for (size_t i = 0; i < m.Tracks().size(); ++i) { - if (m.Tracks()[i].Notes().size()) - track_count++; - } - - m_back_button = ButtonState( - Layout::ScreenMarginX, - GetStateHeight() - Layout::ScreenMarginY/2 - Layout::ButtonHeight/2, - Layout::ButtonWidth, Layout::ButtonHeight); - - m_continue_button = ButtonState( - GetStateWidth() - Layout::ScreenMarginX - Layout::ButtonWidth, - GetStateHeight() - Layout::ScreenMarginY/2 - Layout::ButtonHeight/2, - Layout::ButtonWidth, Layout::ButtonHeight); - - // Determine how many track tiles we can fit - // horizontally and vertically. Integer division - // helps us round down here. - int tiles_across = (GetStateWidth() + Layout::ScreenMarginX) / - (TrackTileWidth + Layout::ScreenMarginX); - - tiles_across = max(tiles_across, 1); - - int tiles_down = (GetStateHeight() - Layout::ScreenMarginX - Layout::ScreenMarginY * 2) / - (TrackTileHeight + Layout::ScreenMarginX); - - tiles_down = max(tiles_down, 1); - - // Calculate how many pages of tracks there will be - m_tiles_per_page = tiles_across * tiles_down; - - m_page_count = track_count / m_tiles_per_page; - const int remainder = track_count % m_tiles_per_page; - if (remainder > 0) - m_page_count++; - - // If we have fewer than one row of tracks, just - // center the tracks we do have - if (track_count < tiles_across) - tiles_across = track_count; - - // Determine how wide that many track tiles will - // actually be, so we can center the list - int all_tile_widths = tiles_across * TrackTileWidth + (tiles_across-1) * Layout::ScreenMarginX; - int global_x_offset = (GetStateWidth() - all_tile_widths) / 2; - - const static int starting_y = 100; - - int tiles_on_this_line = 0; - int tiles_on_this_page = 0; - int current_y = starting_y; - - for (size_t i = 0; i < m.Tracks().size(); ++i) { - - const MidiTrack &t = m.Tracks()[i]; - if (t.Notes().size() == 0) - continue; - - int x = global_x_offset + (TrackTileWidth + Layout::ScreenMarginX)*tiles_on_this_line; - int y = current_y; - - Track::Mode mode = Track::ModePlayedAutomatically; - bool is_retry_on = false; - if (t.IsPercussion()) - mode = Track::ModePlayedButHidden; - - Track::TrackColor color = static_cast((m_track_tiles.size()) % Track::UserSelectableColorCount); - - // If we came back here from StatePlaying, reload all our preferences - if (m_state.track_properties.size() > i) { - - color = m_state.track_properties[i].color; - mode = m_state.track_properties[i].mode; - is_retry_on = m_state.track_properties[i].is_retry_on; - } - - TrackTile tile(x, y, i, color, mode, is_retry_on); - - m_track_tiles.push_back(tile); - - - tiles_on_this_line++; - tiles_on_this_line %= tiles_across; - - if (!tiles_on_this_line) - current_y += TrackTileHeight + Layout::ScreenMarginX; - - - tiles_on_this_page++; - tiles_on_this_page %= m_tiles_per_page; - - if (!tiles_on_this_page) { - current_y = starting_y; - tiles_on_this_line = 0; - } - } -} - -vector TrackSelectionState::BuildTrackProperties() const { - - vector props; - for (size_t i = 0; i < m_state.midi->Tracks().size(); ++i) { - props.push_back(Track::Properties()); - } - - // Populate it with the tracks that have notes - for (vector::const_iterator i = m_track_tiles.begin(); i != m_track_tiles.end(); ++i) { - props[i->GetTrackId()].color = i->GetColor(); - props[i->GetTrackId()].mode = i->GetMode(); - props[i->GetTrackId()].is_retry_on = i->IsRetryOn(); - } - - return props; -} - -void TrackSelectionState::Update() { - m_continue_button.Update(MouseInfo(Mouse())); - m_back_button.Update(MouseInfo(Mouse())); - - if (IsKeyPressed(KeyEscape) || m_back_button.hit) { - - if (m_state.midi_out) - m_state.midi_out->Reset(); - - m_state.track_properties = BuildTrackProperties(); - ChangeState(new TitleState(m_state)); - return; - } - - if (IsKeyPressed(KeyEnter) || m_continue_button.hit) { - - if (m_state.midi_out) - m_state.midi_out->Reset(); - - m_state.track_properties = BuildTrackProperties(); - ChangeState(new PlayingState(m_state)); - - return; - } - - if (IsKeyPressed(KeyDown) || IsKeyPressed(KeyRight)) { - m_current_page++; - - if (m_current_page == m_page_count) - m_current_page = 0; - } - - if (IsKeyPressed(KeyUp) || IsKeyPressed(KeyLeft)) { - m_current_page--; - - if (m_current_page < 0) - m_current_page += m_page_count; - } - - m_tooltip = ""; - - if (m_back_button.hovering) - m_tooltip = "Click to return to the title screen."; - - if (m_continue_button.hovering) - m_tooltip = "Click to begin playing with these settings."; - - // Our delta milliseconds on the first frame after we seek down to the - // first note is extra long because the seek takes a while. By skipping - // the "Play" that update, we don't have an artificially fast-forwarded - // start. - if (!m_first_update_after_seek) - PlayTrackPreview(static_cast(GetDeltaMilliseconds()) * 1000); - - m_first_update_after_seek = false; - - // Do hit testing on each tile button on this page - size_t start = m_current_page * m_tiles_per_page; - size_t end = min( static_cast((m_current_page+1) * m_tiles_per_page), m_track_tiles.size() ); - for (size_t i = start; i < end; ++i) { - - TrackTile &t = m_track_tiles[i]; - - MouseInfo mouse = MouseInfo(Mouse()); - mouse.x -= t.GetX(); - mouse.y -= t.GetY(); - - t.Update(mouse); - - if (t.ButtonLeft().hovering || t.ButtonRight().hovering) { - - switch (t.GetMode()) { - case Track::ModeNotPlayed: - m_tooltip = "Track won't be played or shown during the game."; - break; - - case Track::ModePlayedAutomatically: - m_tooltip = "Track will be played automatically by the game."; - break; - - case Track::ModePlayedButHidden: - m_tooltip = "Track will be played automatically by the game, but also hidden from view."; - break; - - case Track::ModeYouPlay: - m_tooltip = "'You Play' means you want to play this track yourself."; - break; - - case Track::ModeYouPlaySilently: - m_tooltip = "Same as 'You Play', ignore velocity from MIDI."; - break; - - case Track::ModeLearning: - m_tooltip = "Wait for you to play."; - break; - - case Track::ModeLearningSilently: - m_tooltip = "Wait for you to play, do not produce sounds from MIDI."; - break; - - case Track::ModeCount: - break; - } - } - - if (t.ButtonPreview().hovering) { - if (t.IsPreviewOn()) - m_tooltip = "Turn track preview off."; - - else - m_tooltip = "Preview how this track sounds."; - } - - if (t.ButtonColor().hovering) - m_tooltip = "Pick a color for this track's notes."; - - if (t.ButtonRetry().hovering) { - if (t.IsRetryOn()) - m_tooltip = "Ignore failed tempo blocks."; - - else - m_tooltip = "Repeat failed tempo blocks."; - } - - if (t.HitPreviewButton()) { - - if (m_state.midi_out) - m_state.midi_out->Reset(); - - if (t.IsPreviewOn()) { - - // Turn off any other preview modes - for (size_t j = 0; j < m_track_tiles.size(); ++j) { - if (i == j) - continue; - - m_track_tiles[j].TurnOffPreview(); - } - - const microseconds_t PreviewLeadIn = 25000; - const microseconds_t PreviewLeadOut = 25000; - - m_preview_on = true; - m_preview_track_id = t.GetTrackId(); - m_state.midi->Reset(PreviewLeadIn, PreviewLeadOut); - PlayTrackPreview(0); - - // Find the first note in this track so we can skip right to the good part. - microseconds_t additional_time = -PreviewLeadIn; - const MidiTrack &track = m_state.midi->Tracks()[m_preview_track_id]; - for (size_t i = 0; i < track.Events().size(); ++i) { - - const MidiEvent &ev = track.Events()[i]; - if (ev.Type() == MidiEventType_NoteOn && ev.NoteVelocity() > 0) { - additional_time += track.EventUsecs()[i] - m_state.midi->GetDeadAirStartOffsetMicroseconds() - 1; - break; - } - } - - PlayTrackPreview(additional_time); - m_first_update_after_seek = true; - } - - else - m_preview_on = false; - } - } -} - -void TrackSelectionState::PlayTrackPreview(microseconds_t delta_microseconds) { - - if (!m_preview_on) - return; - - MidiEventListWithTrackId evs = m_state.midi->Update(delta_microseconds); - - for (MidiEventListWithTrackId::const_iterator i = evs.begin(); i != evs.end(); ++i) { - const MidiEvent &ev = i->second; - - if (i->first != m_preview_track_id) - continue; - - if (m_state.midi_out) - m_state.midi_out->Write(ev); - } -} - -void TrackSelectionState::Draw(Renderer &renderer) const { - - Layout::DrawTitle(renderer, "Choose Tracks To Play"); - - Layout::DrawHorizontalRule(renderer, GetStateWidth(), Layout::ScreenMarginY); - Layout::DrawHorizontalRule(renderer, GetStateWidth(), GetStateHeight() - Layout::ScreenMarginY); - - Layout::DrawButton(renderer, m_continue_button, "PlaySong"); - Layout::DrawButton(renderer, m_back_button, "BackToTitle"); - - // Write our page count on the screen - TextWriter pagination(GetStateWidth()/2, GetStateHeight() - Layout::SmallFontSize - 30, - renderer, true, Layout::ButtonFontSize); - - pagination << Text(STRING("Page " << (m_current_page+1) << " of " << - m_page_count << " (arrow keys change page)"), Gray); - - TextWriter tooltip(GetStateWidth()/2, GetStateHeight() - Layout::SmallFontSize - 54, - renderer, true, Layout::ButtonFontSize); - - tooltip << m_tooltip; - - Tga *buttons = GetTexture(InterfaceButtons); - Tga *box = GetTexture(TrackPanel); - - // Draw each track tile on the current page - size_t start = m_current_page * m_tiles_per_page; - size_t end = min(static_cast((m_current_page+1) * m_tiles_per_page), m_track_tiles.size()); - - for (size_t i = start; i < end; ++i) { - m_track_tiles[i].Draw(renderer, m_state.midi, buttons, box); - } -} diff --git a/src/TrackSelectionState.h b/src/TrackSelectionState.h deleted file mode 100644 index 6ebb9e2b..00000000 --- a/src/TrackSelectionState.h +++ /dev/null @@ -1,52 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __TRACKSELECTION_STATE_H -#define __TRACKSELECTION_STATE_H - -#include "SharedState.h" -#include "GameState.h" -#include "TrackTile.h" -#include "libmidi/MidiTypes.h" -#include "MidiComm.h" - -#include - -class TrackSelectionState : public GameState { -public: - - TrackSelectionState(const SharedState &state); - -protected: - virtual void Init(); - virtual void Update(); - virtual void Draw(Renderer &renderer) const; - -private: - void PlayTrackPreview(microseconds_t additional_time); - std::vector BuildTrackProperties() const; - - int m_page_count; - int m_current_page; - int m_tiles_per_page; - - bool m_preview_on; - bool m_first_update_after_seek; - size_t m_preview_track_id; - - ButtonState m_continue_button; - ButtonState m_back_button; - - std::string m_tooltip; - - std::vector m_track_tiles; - - SharedState m_state; -}; - -#endif // __TRACKSELECTION_STATE_H diff --git a/src/TrackTile.cpp b/src/TrackTile.cpp deleted file mode 100644 index 9583add1..00000000 --- a/src/TrackTile.cpp +++ /dev/null @@ -1,180 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "libmidi/Midi.h" - -#include "TrackTile.h" -#include "Renderer.h" -#include "Tga.h" - -const static int GraphicWidth = 36; -const static int GraphicHeight = 36; - -// Only used here -const static char* ModeText[Track::ModeCount] = { - "Played Automatically", - "You Play", // You Press, we help - "You Play Silently", // You Play - "Learning", - "Learning Silently", - "Played But Hidden", - "Not Played" -}; - -TrackTile::TrackTile(int x, int y, size_t track_id, Track::TrackColor color, Track::Mode mode, - bool is_retry_on) : - m_x(x), - m_y(y), - m_mode(mode), - m_color(color), - m_preview_on(false), - m_retry_on(is_retry_on), - m_track_id(track_id) { - - // Initialize the size and position of each button - whole_tile = ButtonState(0, 0, TrackTileWidth, TrackTileHeight); - button_mode_left = ButtonState( 2, 68, GraphicWidth, GraphicHeight); - button_mode_right = ButtonState(192, 68, GraphicWidth, GraphicHeight); - button_color = ButtonState(228, 68, GraphicWidth, GraphicHeight); - button_preview = ButtonState(264, 68, GraphicWidth, GraphicHeight); - button_retry = ButtonState(300, 68, GraphicWidth, GraphicHeight); -} - -void TrackTile::Update(const MouseInfo &translated_mouse) { - - // Update the mouse state of each button - whole_tile.Update(translated_mouse); - button_preview.Update(translated_mouse); - button_retry.Update(translated_mouse); - button_color.Update(translated_mouse); - button_mode_left.Update(translated_mouse); - button_mode_right.Update(translated_mouse); - - if (button_mode_left.hit) { - - int mode = static_cast(m_mode) - 1; - if (mode < 0) - mode = Track::ModeCount - 1; - - m_mode = static_cast(mode); - } - - if (button_mode_right.hit) { - - int mode = static_cast(m_mode) + 1; - if (mode >= Track::ModeCount) - mode = 0; - - m_mode = static_cast(mode); - } - - if (button_preview.hit) - m_preview_on = !m_preview_on; - - if (button_retry.hit) - m_retry_on = !m_retry_on; - - if (button_color.hit && m_mode != Track::ModeNotPlayed && m_mode != Track::ModePlayedButHidden) { - int color = static_cast(m_color) + 1; - if (color >= Track::UserSelectableColorCount) - color = 0; - - m_color = static_cast(color); - } - -} - -int TrackTile::LookupGraphic(TrackTileGraphic graphic, bool button_hovering) const { - - // There are three sets of graphics - // set 0: window lit, hovering - // set 1: window lit, not-hovering - // set 2: window unlit, (implied not-hovering) - int graphic_set = 2; - if (whole_tile.hovering) - graphic_set--; - - if (button_hovering) - graphic_set--; - - const int set_offset = GraphicWidth * Graphic_COUNT; - const int graphic_offset = GraphicWidth * graphic; - - return (set_offset * graphic_set) + graphic_offset; -} - -void TrackTile::Draw(Renderer &renderer, const Midi *midi, Tga *buttons, Tga *box) const { - - const MidiTrack &track = midi->Tracks()[m_track_id]; - - bool gray_out_buttons = false; - Color light = Track::ColorNoteWhite[m_color]; - Color medium = Track::ColorNoteBlack[m_color]; - - if (m_mode == Track::ModePlayedButHidden || m_mode == Track::ModeNotPlayed) { - - gray_out_buttons = true; - light = Renderer::ToColor(0xB0,0xB0,0xB0); - medium = Renderer::ToColor(0x70,0x70,0x70); - } - - Color color_tile = medium; - Color color_tile_hovered = light; - - renderer.SetOffset(m_x, m_y); - - renderer.SetColor(whole_tile.hovering ? color_tile_hovered : color_tile); - renderer.DrawTga(box, -10, -6); - - renderer.SetColor(White); - - // Write song info to the tile - TextWriter instrument(95, 14, renderer, false, 14); - instrument << track.InstrumentName(); - TextWriter note_count(95, 35, renderer, false, 14); - note_count << static_cast(track.Notes().size()); - - int color_offset = GraphicHeight * static_cast(m_color); - if (gray_out_buttons) - color_offset = GraphicHeight * Track::UserSelectableColorCount; - - renderer.DrawTga(buttons, BUTTON_RECT(button_mode_left), - LookupGraphic(GraphicLeftArrow, button_mode_left.hovering), - color_offset); - - renderer.DrawTga(buttons, BUTTON_RECT(button_mode_right), - LookupGraphic(GraphicRightArrow, button_mode_right.hovering), - color_offset); - - renderer.DrawTga(buttons, BUTTON_RECT(button_color), - LookupGraphic(GraphicColor, button_color.hovering), - color_offset); - - TrackTileGraphic preview_graphic = GraphicPreviewTurnOn; - if (m_preview_on) - preview_graphic = GraphicPreviewTurnOff; - - TrackTileGraphic retry_graphic = GraphicRetryOff; - if (m_retry_on) - retry_graphic = GraphicRetryOn; - - renderer.DrawTga(buttons, BUTTON_RECT(button_preview), - LookupGraphic(preview_graphic, button_preview.hovering), - color_offset); - - renderer.DrawTga(buttons, BUTTON_RECT(button_retry), - LookupGraphic(retry_graphic, button_retry.hovering), - color_offset); - - // Draw mode text - TextWriter mode(42, 81, renderer, false, 12); - mode << ModeText[m_mode]; - - renderer.ResetOffset(); -} - diff --git a/src/TrackTile.h b/src/TrackTile.h deleted file mode 100644 index 1b37df93..00000000 --- a/src/TrackTile.h +++ /dev/null @@ -1,133 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __TRACK_TILE_H -#define __TRACK_TILE_H - -#include "GameState.h" -#include "TextWriter.h" -#include "TrackProperties.h" -#include "MenuLayout.h" - -#include "libmidi/Midi.h" - -#include - -const int TrackTileWidth = 336; -const int TrackTileHeight = 110; - -enum TrackTileGraphic { - - GraphicLeftArrow = 0, - GraphicRightArrow, - GraphicColor, - GraphicPreviewTurnOn, - GraphicPreviewTurnOff, - - GraphicComputerPlays, - GraphicHumanPlays, - GraphicRetryOn, - GraphicRetryOff, - - Graphic_COUNT -}; - -class TrackTile { -public: - - TrackTile(int x, int y, size_t track_id, - Track::TrackColor color, Track::Mode mode, - bool is_retry_on); - - void Update(const MouseInfo &translated_mouse); - void Draw(Renderer &renderer, const Midi *midi, Tga *buttons, Tga *box) const; - - int GetX() { - return m_x; - } - - int GetY() { - return m_y; - } - - Track::Mode GetMode() const { - return m_mode; - } - - Track::TrackColor GetColor() const { - return m_color; - } - - bool HitPreviewButton() const { - return button_preview.hit; - } - - bool IsPreviewOn() const { - return m_preview_on; - } - - bool IsRetryOn() const { - return m_retry_on; - } - - void TurnOffPreview() { - m_preview_on = false; - } - - size_t GetTrackId() const { - return m_track_id; - } - - const ButtonState WholeTile() const { - return whole_tile; - } - - const ButtonState ButtonPreview() const { - return button_preview; - } - - const ButtonState ButtonColor() const { - return button_color; - } - - const ButtonState ButtonRetry() const { - return button_retry; - } - - const ButtonState ButtonLeft() const { - return button_mode_left; - } - - const ButtonState ButtonRight() const { - return button_mode_right; - } - -private: - int m_x; - int m_y; - - Track::Mode m_mode; - Track::TrackColor m_color; - - bool m_preview_on; - bool m_retry_on; - - ButtonState whole_tile; - ButtonState button_preview; - ButtonState button_color; - ButtonState button_retry; - ButtonState button_mode_left; - ButtonState button_mode_right; - - int LookupGraphic(TrackTileGraphic graphic, bool button_hovering) const; - - // Link to the track index of the Midi object - size_t m_track_id; -}; - -#endif // __TRACK_TILE_H diff --git a/src/UserSettings.cpp b/src/UserSettings.cpp deleted file mode 100644 index 9edf211f..00000000 --- a/src/UserSettings.cpp +++ /dev/null @@ -1,50 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include - -#include "StringUtil.h" - -using namespace std; - -namespace UserSetting { - - static bool g_initialized(false); - static string g_app_name(""); - static Glib::RefPtr gconf; - - void Initialize(const string &app_name) { - if (g_initialized) - return; - - Gnome::Conf::init(); - - gconf = Gnome::Conf::Client::get_default_client(); - g_app_name = "/apps/" + app_name; - g_initialized = true; - } - - string Get(const string &setting, const string &default_value) { - if (!g_initialized) - return default_value; - - string result = gconf->get_string(g_app_name + "/" + setting); - if (result.empty()) - return default_value; - - return result; - } - - void Set(const string &setting, const string &value) { - if (!g_initialized) - return; - - gconf->set(g_app_name + "/" + setting, value); - } - -}; // End namespace diff --git a/src/UserSettings.h b/src/UserSettings.h deleted file mode 100644 index a5ba6a6d..00000000 --- a/src/UserSettings.h +++ /dev/null @@ -1,26 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __USER_SETTINGS_H -#define __USER_SETTINGS_H - -#include - -namespace UserSetting { - - // This must be called exactly once before any of the following will work - void Initialize(const std::string &app_name); - - std::string Get(const std::string &setting, - const std::string &default_value); - - void Set(const std::string &setting, - const std::string &value); -}; - -#endif // __USER_SETTINGS_H diff --git a/src/Version.h b/src/Version.h deleted file mode 100644 index 774424ae..00000000 --- a/src/Version.h +++ /dev/null @@ -1,16 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Neothesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __NEOTHESIA_VERSION_H__ -#define __NEOTHESIA_VERSION_H__ - -#include - -static const std::string NeothesiaVersionString = "0.1"; - -#endif diff --git a/src/event_loop.rs b/src/event_loop.rs new file mode 100644 index 00000000..e69de29b diff --git a/src/libmidi/Midi.cpp b/src/libmidi/Midi.cpp deleted file mode 100644 index 47e4e439..00000000 --- a/src/libmidi/Midi.cpp +++ /dev/null @@ -1,526 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "Midi.h" -#include "MidiEvent.h" -#include "MidiTrack.h" -#include "MidiUtil.h" - -#include -#include -#include - -using namespace std; - -Midi Midi::ReadFromFile(const string &filename) { - - fstream file(filename.c_str(), ios::in | ios::binary); - - if (!file.good()) - throw MidiError(MidiError_BadFilename); - - Midi m; - - try { - m = ReadFromStream(file); - } - - catch (const MidiError &e) { - // Close our file resource before handing the error up - file.close(); - throw e; - } - - return m; -} - -Midi Midi::ReadFromStream(istream &stream) { - Midi m; - - // header_id is always "MThd" by definition - const static string MidiFileHeader = "MThd"; - const static string RiffFileHeader = "RIFF"; - - // I could use (MidiFileHeader.length() + 1), but then this has to be - // dynamically allocated. More hassle than it's worth. MIDI is well - // defined and will always have a 4-byte header. We use 5 so we get - // free null termination. - char header_id[5] = { 0, 0, 0, 0, 0 }; - uint32_t header_length; - unsigned short format; - unsigned short track_count; - unsigned short time_division; - - stream.read(header_id, static_cast(MidiFileHeader.length())); - string header(header_id); - if (header != MidiFileHeader) { - if (header != RiffFileHeader) - throw MidiError(MidiError_UnknownHeaderType); - - else { - // We know how to support RIFF files - unsigned long throw_away; - stream.read(reinterpret_cast(&throw_away), sizeof(unsigned long)); // RIFF length - stream.read(reinterpret_cast(&throw_away), sizeof(unsigned long)); // "RMID" - stream.read(reinterpret_cast(&throw_away), sizeof(unsigned long)); // "data" - stream.read(reinterpret_cast(&throw_away), sizeof(unsigned long)); // data size - - // Call this recursively, without the RIFF header this time - return ReadFromStream(stream); - } - } - - stream.read(reinterpret_cast(&header_length), sizeof(uint32_t)); - stream.read(reinterpret_cast(&format), sizeof(unsigned short)); - stream.read(reinterpret_cast(&track_count), sizeof(unsigned short)); - stream.read(reinterpret_cast(&time_division), sizeof(unsigned short)); - - if (stream.fail()) - throw MidiError(MidiError_NoHeader); - - // Chunk Size is always 6 by definition - const static unsigned int MidiFileHeaderChunkLength = 6; - - header_length = BigToSystem32(header_length); - if (header_length != MidiFileHeaderChunkLength) - throw MidiError(MidiError_BadHeaderSize); - - enum MidiFormat { MidiFormat0 = 0, MidiFormat1, MidiFormat2 }; - - format = BigToSystem16(format); - if (format == MidiFormat2) { - // MIDI 0: All information in 1 track - // MIDI 1: Multiple tracks intended to be played simultaneously - // MIDI 2: Multiple tracks intended to be played separately - // - // We do not support MIDI 2 at this time - throw MidiError(MidiError_Type2MidiNotSupported); - } - - track_count = BigToSystem16(track_count); - if (format == 0 && track_count != 1) - // MIDI 0 has only 1 track by definition - throw MidiError(MidiError_BadType0Midi); - - // Time division can be encoded two ways based on a bit-flag: - // - pulses per quarter note (15-bits) - // - SMTPE frames per second (7-bits for SMPTE frame count and 8-bits for clock ticks per frame) - time_division = BigToSystem16(time_division); - bool in_smpte = ((time_division & 0x8000) != 0); - - if (in_smpte) - throw MidiError(MidiError_SMTPETimingNotImplemented); - - // We ignore the possibility of SMPTE timing, so we can - // use the time division value directly as PPQN. - unsigned short pulses_per_quarter_note = time_division; - - // Read in our tracks - for (int i = 0; i < track_count; ++i) { - m.m_tracks.push_back(MidiTrack::ReadFromStream(stream)); - } - - m.BuildTempoTrack(); - - // Tell our tracks their IDs - for (int i = 0; i < track_count; ++i) { - m.m_tracks[i].SetTrackId(i); - } - - // Translate each track's list of notes and list - // of events into microseconds. - for (MidiTrackList::iterator i = m.m_tracks.begin(); i != m.m_tracks.end(); ++i) { - i->Reset(); - m.TranslateNotes(i->Notes(), pulses_per_quarter_note); - - MidiEventMicrosecondList event_usecs; - for (MidiEventPulsesList::const_iterator j = i->EventPulses().begin(); j != i->EventPulses().end(); ++j) { - event_usecs.push_back(m.GetEventPulseInMicroseconds(*j, pulses_per_quarter_note)); - } - - i->SetEventUsecs(event_usecs); - } - - m.m_initialized = true; - - // Just grab the end of the last note to find out how long the song is - m.m_microsecond_base_song_length = m.m_translated_notes.rbegin()->end; - - // Eat everything up until *just* before the first note event - m.m_microsecond_dead_start_air = m.GetEventPulseInMicroseconds(m.FindFirstNotePulse(), pulses_per_quarter_note) - 1; - - // Calculate positions for bar_lines - MidiEventMicrosecondList bar_line_usecs; - const microseconds_t len = m.GetSongLengthInMicroseconds(); - microseconds_t bar_usec = 0; - int bar_no = 0; - while (bar_usec <= len) - { - bar_usec = m.GetEventPulseInMicroseconds(bar_no*pulses_per_quarter_note*4, pulses_per_quarter_note); - bar_line_usecs.push_back(bar_usec); - bar_no++; - } - m.m_bar_line_usecs = bar_line_usecs; - - return m; -} - -// NOTE: This is required for much of the other functionality provided -// by this class, however, this causes a destructive change in the way -// the MIDI is represented internally which means we can never save the -// file back out to disk exactly as we loaded it. -// -// This adds an extra track dedicated to tempo change events. Tempo events -// are extracted from every other track and placed in the new one. -// -// This allows quick(er) calculation of wall-clock event times -void Midi::BuildTempoTrack() { - // This map will help us get rid of duplicate events if - // the tempo is specified in every track (as is common). - // - // It also does sorting for us so we can just copy the - // events right over to the new track. - map tempo_events; - - // Run through each track looking for tempo events - for (MidiTrackList::iterator t = m_tracks.begin(); t != m_tracks.end(); ++t) { - for (size_t i = 0; i < t->Events().size(); ++i) { - MidiEvent ev = t->Events()[i]; - unsigned long ev_pulses = t->EventPulses()[i]; - - if (ev.Type() == MidiEventType_Meta && - ev.MetaType() == MidiMetaEvent_TempoChange) { - - // Pull tempo event out of both lists - // - // Vector is kind of a hassle this way -- we have to - // walk an iterator to that point in the list because - // erase MUST take an iterator... but erasing from a - // list invalidates iterators. bleah. - MidiEventList::iterator event_to_erase = t->Events().begin(); - MidiEventPulsesList::iterator event_pulse_to_erase = t->EventPulses().begin(); - for (size_t j = 0; j < i; ++j) { - ++event_to_erase; - ++event_pulse_to_erase; - } - - t->Events().erase(event_to_erase); - t->EventPulses().erase(event_pulse_to_erase); - - // Adjust next event's delta time - if (t->Events().size() > i) { - // (We just erased the element at i, so - // now i is pointing to the next element) - unsigned long next_dt = t->Events()[i].GetDeltaPulses(); - - t->Events()[i].SetDeltaPulses(ev.GetDeltaPulses() + next_dt); - } - - // We have to roll i back for the next loop around - --i; - - // Insert our newly stolen event into the auto-sorting map - tempo_events[ev_pulses] = ev; - } - } - } - - // Create a new track (always the last track in the track list) - m_tracks.push_back(MidiTrack::CreateBlankTrack()); - - MidiEventList &tempo_track_events = m_tracks[m_tracks.size()-1].Events(); - MidiEventPulsesList &tempo_track_event_pulses = m_tracks[m_tracks.size()-1].EventPulses(); - - // Copy over all our tempo events - unsigned long previous_absolute_pulses = 0; - for (map::const_iterator i = tempo_events.begin(); - i != tempo_events.end(); ++i) { - - unsigned long absolute_pulses = i->first; - MidiEvent ev = i->second; - - // Reset each of their delta times while we go - ev.SetDeltaPulses(absolute_pulses - previous_absolute_pulses); - previous_absolute_pulses = absolute_pulses; - - // Add them to the track - tempo_track_event_pulses.push_back(absolute_pulses); - tempo_track_events.push_back(ev); - } -} - -unsigned long Midi::FindFirstNotePulse() { - unsigned long first_note_pulse = 0; - - // Find the very last value it could ever possibly be, to start with - for (MidiTrackList::const_iterator t = m_tracks.begin(); t != m_tracks.end(); ++t) { - if (t->EventPulses().size() == 0) - continue; - - unsigned long pulses = t->EventPulses().back(); - - if (pulses > first_note_pulse) - first_note_pulse = pulses; - } - - // Now run through each event in each track looking for the very - // first note_on event - for (MidiTrackList::const_iterator t = m_tracks.begin(); t != m_tracks.end(); ++t) { - for (size_t ev_id = 0; ev_id < t->Events().size(); ++ev_id) { - if (t->Events()[ev_id].Type() == MidiEventType_NoteOn) { - unsigned long note_pulse = t->EventPulses()[ev_id]; - - if (note_pulse < first_note_pulse) - first_note_pulse = note_pulse; - - // We found the first note event in this - // track. No need to keep searching. - break; - } - } - } - - return first_note_pulse; -} - -microseconds_t Midi::ConvertPulsesToMicroseconds(unsigned long pulses, - microseconds_t tempo, - unsigned short pulses_per_quarter_note) { - // Here's what we have to work with: - // pulses is given - // tempo is given (units of microseconds/quarter_note) - // (pulses/quarter_note) is given as a constant in this object file - const double quarter_notes = static_cast(pulses) / static_cast(pulses_per_quarter_note); - const double microseconds = quarter_notes * static_cast(tempo); - - return static_cast(microseconds); -} - -microseconds_t Midi::GetEventPulseInMicroseconds(unsigned long event_pulses, - unsigned short pulses_per_quarter_note) const { - if (m_tracks.size() == 0) - return 0; - - const MidiTrack &tempo_track = m_tracks.back(); - - microseconds_t running_result = 0; - - bool hit = false; - unsigned long last_tempo_event_pulses = 0; - microseconds_t running_tempo = DefaultUSTempo; - - for (size_t i = 0; i < tempo_track.Events().size(); ++i) { - unsigned long tempo_event_pulses = tempo_track.EventPulses()[i]; - - // If the time we're asking to convert is still beyond - // this tempo event, just add the last time slice (at - // the previous tempo) to the running wall-clock time. - unsigned long delta_pulses = 0; - if (event_pulses > tempo_event_pulses) - delta_pulses = tempo_event_pulses - last_tempo_event_pulses; - - else { - hit = true; - delta_pulses = event_pulses - last_tempo_event_pulses; - } - - running_result += ConvertPulsesToMicroseconds(delta_pulses, running_tempo, pulses_per_quarter_note); - - // If the time we're calculating is before the tempo event we're - // looking at, we're done. - if (hit) - break; - - running_tempo = tempo_track.Events()[i].GetTempoInUsPerQn(); - last_tempo_event_pulses = tempo_event_pulses; - } - - // The requested time may be after the very last tempo event - if (!hit) { - unsigned long remaining_pulses = event_pulses - last_tempo_event_pulses; - running_result += ConvertPulsesToMicroseconds(remaining_pulses, running_tempo, pulses_per_quarter_note); - } - - return running_result; -} - -void Midi::Reset(microseconds_t lead_in_microseconds, microseconds_t lead_out_microseconds) { - m_microsecond_lead_in = lead_in_microseconds; - m_microsecond_lead_out = lead_out_microseconds; - m_microsecond_song_position = m_microsecond_dead_start_air - lead_in_microseconds; - m_first_update_after_reset = true; - - for (MidiTrackList::iterator i = m_tracks.begin(); i != m_tracks.end(); ++i) { - i->Reset(); - } -} - -void Midi::TranslateNotes(const NoteSet ¬es, unsigned short pulses_per_quarter_note) { - for (NoteSet::const_iterator i = notes.begin(); i != notes.end(); ++i) { - TranslatedNote trans; - - trans.note_id = i->note_id; - trans.track_id = i->track_id; - trans.channel = i->channel; - trans.velocity = i->velocity; - trans.start = GetEventPulseInMicroseconds(i->start, pulses_per_quarter_note); - trans.end = GetEventPulseInMicroseconds(i->end, pulses_per_quarter_note); - - m_translated_notes.insert(trans); - } -} - -MidiEventListWithTrackId Midi::Update(microseconds_t delta_microseconds) { - MidiEventListWithTrackId aggregated_events; - if (!m_initialized) - return aggregated_events; - - // Move everything forward (fallen keys, the screen keyboard) - // These variable is used on redraw later - m_microsecond_song_position += delta_microseconds; - if (m_first_update_after_reset) { - delta_microseconds += m_microsecond_song_position; - m_first_update_after_reset = false; - } - - if (delta_microseconds == 0) - return aggregated_events; - - if (m_microsecond_song_position < 0) - return aggregated_events; - - if (delta_microseconds > m_microsecond_song_position) - delta_microseconds = m_microsecond_song_position; - - const size_t track_count = m_tracks.size(); - // These code is not related to fallen keys - for (size_t i = 0; i < track_count; ++i) { - MidiEventList track_events = m_tracks[i].Update(delta_microseconds); - - const size_t event_count = track_events.size(); - // Collect events to be passed to a screen keyboard - for (size_t j = 0; j < event_count; ++j) { - aggregated_events.insert(aggregated_events.end(), make_pair(i, track_events[j])); - } - } - - // Pass to a keyboard - return aggregated_events; -} - -void Midi::GoTo(microseconds_t microsecond_song_position) { - if (!m_initialized) - return; - - // Do not let go back too far (causes bugs) - // There is some black magic for negative values of - // microsecond_song_position, just skip it -//if (microsecond_song_position <= 0) -//{ -// Reset(m_microsecond_lead_in, m_microsecond_lead_out); -// return; -//} - - m_microsecond_song_position = microsecond_song_position; - - const size_t track_count = m_tracks.size(); - for (size_t i = 0; i < track_count; ++i) { - m_tracks[i].GoTo(microsecond_song_position); - } -} - -microseconds_t Midi::GetSongLengthInMicroseconds() const { - if (!m_initialized) - return 0; - - return m_microsecond_base_song_length - m_microsecond_dead_start_air; -} - - -// Gets next bar after point of time -microseconds_t Midi::GetNextBarInMicroseconds(const microseconds_t point) const { - MidiEventMicrosecondList::const_iterator j = m_bar_line_usecs.begin(); - microseconds_t first_bar_usec = *j; - for (; j != m_bar_line_usecs.end(); ++j) { - microseconds_t bar_usec = *j; - // Add offset - bar_usec -= first_bar_usec + 1; - if (bar_usec > point) - return bar_usec; - } - return 0; // not found -} - -unsigned int Midi::AggregateEventsRemain() const { - if (!m_initialized) - return 0; - - unsigned int aggregate = 0; - for (MidiTrackList::const_iterator i = m_tracks.begin(); i != m_tracks.end(); ++i) - aggregate += i->AggregateEventsRemain(); - - return aggregate; -} - -unsigned int Midi::AggregateNotesRemain() const { - if (!m_initialized) - return 0; - - unsigned int aggregate = 0; - for (MidiTrackList::const_iterator i = m_tracks.begin(); i != m_tracks.end(); ++i) - aggregate += i->AggregateNotesRemain(); - - return aggregate; -} - -unsigned int Midi::AggregateEventCount() const { - if (!m_initialized) - return 0; - - unsigned int aggregate = 0; - for (MidiTrackList::const_iterator i = m_tracks.begin(); i != m_tracks.end(); ++i) - aggregate += i->AggregateEventCount(); - - return aggregate; -} - -unsigned int Midi::AggregateNoteCount() const { - if (!m_initialized) - return 0; - - unsigned int aggregate = 0; - for (MidiTrackList::const_iterator i = m_tracks.begin(); i != m_tracks.end(); ++i) - aggregate += i->AggregateNoteCount(); - - return aggregate; -} - -// This function is used for the progress bar -double Midi::GetSongPercentageComplete() const { - if (!m_initialized) - return 0.0; - - const double pos = static_cast(m_microsecond_song_position - m_microsecond_dead_start_air); - const double len = static_cast(GetSongLengthInMicroseconds()); - - if (pos < 0) - return 0.0; - - if (len == 0) - return 1.0; - - return min( (pos / len), 1.0 ); -} - -bool Midi::IsSongOver() const { - if (!m_initialized) - return true; - - return (m_microsecond_song_position - m_microsecond_dead_start_air) >= - GetSongLengthInMicroseconds() + m_microsecond_lead_out; -} diff --git a/src/libmidi/Midi.h b/src/libmidi/Midi.h deleted file mode 100644 index d4db4c9c..00000000 --- a/src/libmidi/Midi.h +++ /dev/null @@ -1,124 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __MIDI_H -#define __MIDI_H - -#include -#include - -#include "Note.h" -#include "MidiTrack.h" -#include "MidiTypes.h" - -class MidiError; -class MidiEvent; - -typedef std::vector MidiTrackList; - -typedef std::vector MidiEventList; -typedef std::vector > MidiEventListWithTrackId; - -// NOTE: This library's MIDI loading and handling is destructive. Perfect -// 1:1 serialization routines will not be possible without quite a -// bit of additional work. -class Midi { - -public: - static Midi ReadFromFile(const std::string &filename); - static Midi ReadFromStream(std::istream &stream); - - const std::vector &Tracks() const { - return m_tracks; - } - - const TranslatedNoteSet &Notes() const { - return m_translated_notes; - } - - MidiEventListWithTrackId Update(microseconds_t delta_microseconds); - void GoTo(microseconds_t microsecond_song_position); - - void Reset(microseconds_t lead_in_microseconds, - microseconds_t lead_out_microseconds); - - microseconds_t GetSongPositionInMicroseconds() const { - return m_microsecond_song_position; - } - - microseconds_t GetSongLengthInMicroseconds() const; - - microseconds_t GetDeadAirStartOffsetMicroseconds() const { - return m_microsecond_dead_start_air; - } - - // This doesn't include lead-in (so it's perfect for a progress bar). - // (It is also clamped to [0.0, 1.0], so lead-in and lead-out won't give any - // unexpected results.) - double GetSongPercentageComplete() const; - - // This will report when the lead-out period is complete. - bool IsSongOver() const; - - unsigned int AggregateEventsRemain() const; - unsigned int AggregateEventCount() const; - - unsigned int AggregateNotesRemain() const; - unsigned int AggregateNoteCount() const; - - const MidiEventMicrosecondList & GetBarLines() const { - return m_bar_line_usecs; - } - - microseconds_t GetNextBarInMicroseconds(const microseconds_t point) const; - -private: - const static unsigned long DefaultBPM = 120; - const static microseconds_t OneMinuteInMicroseconds = 60000000; - const static microseconds_t DefaultUSTempo = OneMinuteInMicroseconds / DefaultBPM; - - static microseconds_t ConvertPulsesToMicroseconds(unsigned long pulses, - microseconds_t tempo, - unsigned short pulses_per_quarter_note); - - Midi(): - m_initialized(false), m_microsecond_dead_start_air(0) { - - Reset(0, 0); - } - - // This is O(n) where n is the number of tempo changes (across all tracks) in - // the song up to the specified time. Tempo changes are usually a small number. - // (Almost always 0 or 1, going up to maybe 30-100 in rare cases.) - microseconds_t GetEventPulseInMicroseconds(unsigned long event_pulses, - unsigned short pulses_per_quarter_note) const; - - unsigned long FindFirstNotePulse(); - - void BuildTempoTrack(); - void TranslateNotes(const NoteSet ¬es, unsigned short pulses_per_quarter_note); - - bool m_initialized; - - TranslatedNoteSet m_translated_notes; - - // Position can be negative (for lead-in). - microseconds_t m_microsecond_song_position; - microseconds_t m_microsecond_base_song_length; - - microseconds_t m_microsecond_lead_in; - microseconds_t m_microsecond_lead_out; - microseconds_t m_microsecond_dead_start_air; - - bool m_first_update_after_reset; - double m_playback_speed; - MidiTrackList m_tracks; - MidiEventMicrosecondList m_bar_line_usecs; -}; - -#endif diff --git a/src/libmidi/MidiEvent.cpp b/src/libmidi/MidiEvent.cpp deleted file mode 100644 index 2f6dede1..00000000 --- a/src/libmidi/MidiEvent.cpp +++ /dev/null @@ -1,350 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "MidiEvent.h" -#include "MidiUtil.h" -#include "Note.h" - -using namespace std; - -MidiEvent MidiEvent::ReadFromStream(istream &stream, - unsigned char last_status, - bool contains_delta_pulses) { - MidiEvent ev; - - if (contains_delta_pulses) - ev.m_delta_pulses = parse_variable_length(stream); - else - ev.m_delta_pulses = 0; - - // MIDI uses a compression mechanism called "running status". - // Anytime you read a status byte that doesn't have the highest- - // order bit set, what you actually read is the 1st data byte - // of a message with the status of the previous message. - ev.m_status = static_cast(stream.peek()); - - if ((ev.m_status & 0x80) == 0) - ev.m_status = last_status; - - else - // It was a status byte after all, just read past it - // in the stream - stream.read(reinterpret_cast(&ev.m_status), sizeof(unsigned char)); - - switch (ev.Type()) { - case MidiEventType_Meta: - ev.ReadMeta(stream); - break; - - case MidiEventType_SysEx: - ev.ReadSysEx(stream); - break; - - default: - ev.ReadStandard(stream); - break; - } - - return ev; -} - -MidiEvent MidiEvent::Build(const MidiEventSimple &simple) { - MidiEvent ev; - - ev.m_delta_pulses = 0; - ev.m_status = simple.status; - ev.m_data1 = simple.byte1; - ev.m_data2 = simple.byte2; - - if (ev.Type() == MidiEventType_Meta) - throw MidiError(MidiError_MetaEventOnInput); - - return ev; -} - -MidiEvent MidiEvent::NullEvent() { - MidiEvent ev; - - ev.m_status = 0xFF; - ev.m_meta_type = MidiMetaEvent_Proprietary; - ev.m_delta_pulses = 0; - - return ev; -} - -void MidiEvent::ReadMeta(istream &stream) { - stream.read(reinterpret_cast(&m_meta_type), sizeof(unsigned char)); - unsigned long meta_length = parse_variable_length(stream); - - char *buffer = new char[meta_length + 1]; - buffer[meta_length] = 0; - - stream.read(buffer, meta_length); - if (stream.fail()) { - delete[] buffer; - throw MidiError(MidiError_EventTooShort); - } - - switch (m_meta_type) { - case MidiMetaEvent_Text: - case MidiMetaEvent_Copyright: - case MidiMetaEvent_TrackName: - case MidiMetaEvent_Instrument: - case MidiMetaEvent_Lyric: - case MidiMetaEvent_Marker: - case MidiMetaEvent_Cue: - case MidiMetaEvent_PatchName: - case MidiMetaEvent_DeviceName: - m_text = string(buffer, meta_length); - break; - - case MidiMetaEvent_TempoChange: { - if (meta_length < 3) - throw MidiError(MidiError_EventTooShort); - - // We have to convert to unsigned char first for some reason or the - // conversion gets all wacky and tries to look at more than just its - // one byte at a time. - unsigned int b0 = static_cast(buffer[0]); - unsigned int b1 = static_cast(buffer[1]); - unsigned int b2 = static_cast(buffer[2]); - m_tempo_uspqn = (b0 << 16) + (b1 << 8) + b2; - - break; - } - - case MidiMetaEvent_SequenceNumber: - case MidiMetaEvent_EndOfTrack: - case MidiMetaEvent_SMPTEOffset: - case MidiMetaEvent_TimeSignature: - case MidiMetaEvent_KeySignature: - case MidiMetaEvent_Proprietary: - case MidiMetaEvent_ChannelPrefix: - case MidiMetaEvent_MidiPort: - // NOTE: We would have to keep all of this around if we - // wanted to reproduce 1:1 MIDIs between file Save/Load - break; - - default: - // Ignore unknown event - std::cerr << "Ignore unknown midi event type " << (m_meta_type * 1) - << " of length " << meta_length << endl; -// delete[] buffer; -// throw MidiError(MidiError_UnknownMetaEventType); - } - - delete[] buffer; -} - -void MidiEvent::ReadSysEx(istream &stream) { - // NOTE: We would have to keep SysEx events around if we - // wanted to reproduce 1:1 MIDIs between file Save/Load - unsigned long sys_ex_length = parse_variable_length(stream); - - // Discard - char *buffer = new char[sys_ex_length]; - stream.read(buffer, sys_ex_length); - delete[] buffer; -} - -void MidiEvent::ReadStandard(istream &stream) { - switch (Type()) { - case MidiEventType_NoteOff: - case MidiEventType_NoteOn: - case MidiEventType_Aftertouch: - case MidiEventType_Controller: - case MidiEventType_PitchWheel: - stream.read(reinterpret_cast(&m_data1), sizeof(unsigned char)); - stream.read(reinterpret_cast(&m_data2), sizeof(unsigned char)); - break; - - case MidiEventType_ProgramChange: - case MidiEventType_ChannelPressure: - stream.read(reinterpret_cast(&m_data1), sizeof(unsigned char)); - m_data2 = 0; - break; - - default: - throw MidiError(MidiError_UnknownEventType); - } -} - -bool MidiEvent::GetSimpleEvent(MidiEventSimple *simple) const { - MidiEventType t = Type(); - if (t == MidiEventType_Meta || - t == MidiEventType_SysEx || - t == MidiEventType_Unknown) - return false; - - simple->status = m_status; - simple->byte1 = m_data1; - simple->byte2 = m_data2; - - return true; -} - -MidiEventType MidiEvent::Type() const { - if (m_status > 0xEF && m_status < 0xFF) - return MidiEventType_SysEx; - - if (m_status < 0x80) - return MidiEventType_Unknown; - - if (m_status == 0xFF) - return MidiEventType_Meta; - - // The 0x8_ through 0xE_ events contain channel numbers - // in the lowest 4 bits - unsigned char status_top = m_status >> 4; - - switch (status_top) { - case 0x8: - return MidiEventType_NoteOff; - - case 0x9: - return MidiEventType_NoteOn; - - case 0xA: - return MidiEventType_Aftertouch; - - case 0xB: - return MidiEventType_Controller; - - case 0xC: - return MidiEventType_ProgramChange; - - case 0xD: - return MidiEventType_ChannelPressure; - - case 0xE: - return MidiEventType_PitchWheel; - - default: - return MidiEventType_Unknown; - } -} - -MidiMetaEventType MidiEvent::MetaType() const { - if (Type() != MidiEventType_Meta) - return MidiMetaEvent_Unknown; - - return static_cast(m_meta_type); -} - -bool MidiEvent::IsEnd() const { - return (Type() == MidiEventType_Meta && - MetaType() == MidiMetaEvent_EndOfTrack); -} - -unsigned char MidiEvent::Channel() const { - // The channel is held in the lower nibble of the status code - return (m_status & 0x0F); -} - -void MidiEvent::SetChannel(unsigned char channel) { - if (channel > 15) - return; - - // Clear out the old channel - m_status = m_status & 0xF0; - - // Set the new channel - m_status = m_status | channel; -} - -void MidiEvent::SetVelocity(int velocity) { - if (Type() != MidiEventType_NoteOn) - return; - - m_data2 = static_cast(velocity); -} - -bool MidiEvent::HasText() const { - if (Type() != MidiEventType_Meta) - return false; - - switch (m_meta_type) { - case MidiMetaEvent_Text: - case MidiMetaEvent_Copyright: - case MidiMetaEvent_TrackName: - case MidiMetaEvent_Instrument: - case MidiMetaEvent_Lyric: - case MidiMetaEvent_Marker: - case MidiMetaEvent_Cue: - case MidiMetaEvent_PatchName: - case MidiMetaEvent_DeviceName: - return true; - - default: - return false; - } -} - -NoteId MidiEvent::NoteNumber() const { - if (Type() != MidiEventType_NoteOn && - Type() != MidiEventType_NoteOff) - return 0; - - return m_data1; -} - -void MidiEvent::ShiftNote(int shift_amount) { - if (Type() != MidiEventType_NoteOn && - Type() != MidiEventType_NoteOff) - return; - - m_data1 = m_data1 + static_cast(shift_amount); -} - -int MidiEvent::ProgramNumber() const { - if (Type() != MidiEventType_ProgramChange) - return 0; - - return m_data1; -} - -string MidiEvent::NoteName(unsigned int note_number) { - // Music domain knowledge - const static unsigned int NotesPerOctave = 12; - const static string NoteBases[NotesPerOctave] = { - STRING("C"), STRING("C#"), STRING("D"), - STRING("D#"), STRING("E"), STRING("F"), - STRING("F#"), STRING("G"), STRING("G#"), - STRING("A"), STRING("A#"), STRING("B") - }; - - unsigned int octave = (note_number / NotesPerOctave); - const string note_base = NoteBases[note_number % NotesPerOctave]; - - return STRING(note_base << octave); -} - -int MidiEvent::NoteVelocity() const { - if (Type() == MidiEventType_NoteOff) - return 0; - - if (Type() != MidiEventType_NoteOn) - return -1; - - return static_cast(m_data2); -} - -string MidiEvent::Text() const { - if (!HasText()) - return ""; - - return m_text; -} - -unsigned long MidiEvent::GetTempoInUsPerQn() const { - if (Type() != MidiEventType_Meta || - MetaType() != MidiMetaEvent_TempoChange) - throw MidiError(MidiError_RequestedTempoFromNonTempoEvent); - - return m_tempo_uspqn; -} diff --git a/src/libmidi/MidiEvent.h b/src/libmidi/MidiEvent.h deleted file mode 100644 index 2f369e44..00000000 --- a/src/libmidi/MidiEvent.h +++ /dev/null @@ -1,131 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __MIDI_EVENT_H -#define __MIDI_EVENT_H - -#include -#include - -#include "Note.h" -#include "MidiUtil.h" - -struct MidiEventSimple { - - MidiEventSimple() : - status(0), byte1(0), byte2(0) { - } - - MidiEventSimple(unsigned char s, unsigned char b1, unsigned char b2) : - status(s), byte1(b1), byte2(b2) { - } - - unsigned char status; - unsigned char byte1; - unsigned char byte2; -}; - -class MidiEvent { -public: - - static MidiEvent ReadFromStream(std::istream &stream, - unsigned char last_status, - bool contains_delta_pulses = true); - - static MidiEvent Build(const MidiEventSimple &simple); - static MidiEvent NullEvent(); - - // NOTE: There is a VERY good chance you don't want to use this directly. - // The only reason it's not private is because the standard containers - // require a default constructor. - MidiEvent() : - m_status(0), m_data1(0), m_data2(0), m_tempo_uspqn(0) { - } - - // Returns true if the event could be expressed in a simple event. (So, - // this will return false for Meta and SysEx events.) - bool GetSimpleEvent(MidiEventSimple *simple) const; - - MidiEventType Type() const; - - unsigned long GetDeltaPulses() const { - return m_delta_pulses; - } - - // This is generally for internal Midi library use only. - void SetDeltaPulses(unsigned long delta_pulses) { - m_delta_pulses = delta_pulses; - } - - void ShiftNote(int shift_amount); - - NoteId NoteNumber() const; - - // Returns a friendly name for this particular Note-On or Note- - // Off event. (e.g. "A#2") Returns empty string on other types - // of events. - static std::string NoteName(NoteId note_number); - - // Returns the "Program to change to" value if this is a Program - // Change event, 0 otherwise. - int ProgramNumber() const; - - // Returns the "velocity" of a Note-On (or 0 if this is a Note- - // Off event). Returns -1 for other event types. - int NoteVelocity() const; - - void SetVelocity(int velocity); - - // Returns which type of meta event this is (or - // MetaEvent_Unknown if type() is not EventType_Meta). - MidiMetaEventType MetaType() const; - - // Retrieve the tempo from a tempo meta event in microseconds - // per quarter note. (Non-meta-tempo events will throw an error). - unsigned long GetTempoInUsPerQn() const; - - // Convenience function: Is this the special End-Of-Track event - bool IsEnd() const; - - // Returns which channel this event operates on. This is - // only defined for standard MIDI events that require a - // channel argument. - unsigned char Channel() const; - - void SetChannel(unsigned char channel); - - // Does this event type allow arbitrary text - bool HasText() const; - - // Returns the text content of the event (or empty-string if - // this isn't a text event.) - std::string Text() const; - - // Returns the status code of the MIDI event - unsigned char StatusCode() const { - return m_status; - } - -private: - void ReadMeta(std::istream &stream); - void ReadSysEx(std::istream &stream); - void ReadStandard(std::istream &stream); - - unsigned char m_status; - unsigned char m_data1; - unsigned char m_data2; - unsigned long m_delta_pulses; - - unsigned char m_meta_type; - - unsigned long m_tempo_uspqn; - std::string m_text; -}; - - -#endif // __MIDI_EVENT_H diff --git a/src/libmidi/MidiTrack.cpp b/src/libmidi/MidiTrack.cpp deleted file mode 100644 index d095506d..00000000 --- a/src/libmidi/MidiTrack.cpp +++ /dev/null @@ -1,270 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include "MidiTrack.h" -#include "MidiEvent.h" -#include "MidiUtil.h" -#include "Midi.h" - -#include -#include -#include -#include - -using namespace std; - -MidiTrack MidiTrack::ReadFromStream(std::istream &stream) { - // Verify the track header - const static string MidiTrackHeader = "MTrk"; - - // I could use (MidiTrackHeader.length() + 1), but then this has to be - // dynamically allocated. More hassle than it's worth. MIDI is well - // defined and will always have a 4-byte header. We use 5 so we get - // free null termination. - char header_id[5] = { 0, 0, 0, 0, 0 }; - uint32_t track_length; - - stream.read(header_id, static_cast(MidiTrackHeader.length())); - stream.read(reinterpret_cast(&track_length), sizeof(uint32_t)); - - if (stream.fail()) - throw MidiError(MidiError_TrackHeaderTooShort); - - string header(header_id); - if (header != MidiTrackHeader) - throw MidiError_BadTrackHeaderType; - - // Pull the full track out of the file all at once -- there is an - // End-Of-Track event, but this allows us handle malformed MIDI a - // little more gracefully. - track_length = BigToSystem32(track_length); - char *buffer = new char[track_length + 1]; - buffer[track_length] = 0; - - stream.read(buffer, track_length); - if (stream.fail()) { - delete[] buffer; - throw MidiError(MidiError_TrackTooShort); - } - - // We have to jump through a couple hoops because istringstream - // can't handle binary data unless constructed through an std::string. - string buffer_string(buffer, track_length); - istringstream event_stream(buffer_string, ios::binary); - delete[] buffer; - - MidiTrack t; - - // Read events until we run out of track - char last_status = 0; - unsigned long current_pulse_count = 0; - while (event_stream.peek() != char_traits::eof()) { - MidiEvent ev = MidiEvent::ReadFromStream(event_stream, last_status); - last_status = ev.StatusCode(); - - t.m_events.push_back(ev); - - current_pulse_count += ev.GetDeltaPulses(); - t.m_event_pulses.push_back(current_pulse_count); - } - - t.BuildNoteSet(); - t.DiscoverInstrument(); - - return t; -} - -struct NoteInfo { - - int velocity; - unsigned char channel; - unsigned long pulses; -}; - -void MidiTrack::BuildNoteSet() { - m_note_set.clear(); - - // Keep a list of all the notes currently "on" (and the pulse that - // it was started). On a note_on event, we create an element. On - // a note_off event we check that an element exists, make a "Note", - // and remove the element from the list. If there is already an - // element on a note_on we both cap off the previous "Note" and - // begin a new one. - // - // A note_on with velocity 0 is a note_off - map m_active_notes; - - for (size_t i = 0; i < m_events.size(); ++i) { - const MidiEvent &ev = m_events[i]; - if (ev.Type() != MidiEventType_NoteOn && ev.Type() != MidiEventType_NoteOff) - continue; - - bool on = (ev.Type() == MidiEventType_NoteOn && ev.NoteVelocity() > 0); - NoteId id = ev.NoteNumber(); - - // Check for an active note - map::iterator find_ret = m_active_notes.find(id); - bool active_event = (find_ret != m_active_notes.end()); - - // Close off the last event if there was one - if (active_event) { - Note n; - n.start = find_ret->second.pulses; - n.end = m_event_pulses[i]; - n.note_id = id; - n.channel = find_ret->second.channel; - n.velocity = find_ret->second.velocity; - - // NOTE: This must be set at the next level up. The track - // itself has no idea what its index is. - n.track_id = 0; - - // Add a note and remove this NoteId from the active list - m_note_set.insert(n); - m_active_notes.erase(find_ret); - } - - // We've handled any active events. If this was a note_off we're done. - if (!on) - continue; - - // Add a new active event - NoteInfo info; - info.channel = ev.Channel(); - info.velocity = ev.NoteVelocity(); - info.pulses = m_event_pulses[i]; - - m_active_notes[id] = info; - } - - if (m_active_notes.size() > 0) { - // LOGTODO! - - // This is mostly non-critical. - // - // Erroring out would be needlessly restrictive against - // promiscuous MIDI files. As-is, a note just won't be - // inserted if it isn't closed properly. - } -} - -void MidiTrack::DiscoverInstrument() { - // Default to Program 0 per the MIDI Standard - m_instrument_id = 0; - bool instrument_found = false; - - // These are actually 10 and 16 in the MIDI standard. However, MIDI - // channels are 1-based facing the user. They're stored 0-based. - const static int PercussionChannel1 = 9; - const static int PercussionChannel2 = 15; - - // Check to see if any/all of the notes - // in this track use Channel 10. - bool any_note_uses_percussion = false; - bool any_note_does_not_use_percussion = false; - - for (size_t i = 0; i < m_events.size(); ++i) { - const MidiEvent &ev = m_events[i]; - - if (ev.Type() != MidiEventType_NoteOn) - continue; - - if (ev.Channel() == PercussionChannel1 || ev.Channel() == PercussionChannel2) - any_note_uses_percussion = true; - - if (ev.Channel() != PercussionChannel1 && ev.Channel() != PercussionChannel2) - any_note_does_not_use_percussion = true; - } - - if (any_note_uses_percussion && !any_note_does_not_use_percussion) { - m_instrument_id = InstrumentIdPercussion; - return; - } - - if (any_note_uses_percussion && any_note_does_not_use_percussion) { - m_instrument_id = InstrumentIdVarious; - return; - } - - for (size_t i = 0; i < m_events.size(); ++i) { - const MidiEvent &ev = m_events[i]; - - if (ev.Type() != MidiEventType_ProgramChange) - continue; - - // If we've already hit a different instrument in this - // same track, just tag it as "various" and exit early - // - // Also check that the same instrument isn't just set - // multiple times in the same track - if (instrument_found && m_instrument_id != ev.ProgramNumber()) { - m_instrument_id = InstrumentIdVarious; - return; - } - - m_instrument_id = ev.ProgramNumber(); - instrument_found = true; - } -} - -void MidiTrack::SetTrackId(size_t track_id) { - NoteSet old = m_note_set; - - m_note_set.clear(); - for (NoteSet::const_iterator i = old.begin(); i != old.end(); ++i) { - Note n = *i; - n.track_id = track_id; - - m_note_set.insert(n); - } -} - -void MidiTrack::Reset() { - m_running_microseconds = 0; - m_last_event = -1; - - m_notes_remaining = static_cast(m_note_set.size()); -} - -MidiEventList MidiTrack::Update(microseconds_t delta_microseconds) { - m_running_microseconds += delta_microseconds; - - MidiEventList evs; - for (size_t i = m_last_event + 1; i < m_events.size(); ++i) { - if (m_event_usecs[i] <= m_running_microseconds) { - evs.push_back(m_events[i]); - m_last_event = static_cast(i); - - if (m_events[i].Type() == MidiEventType_NoteOn && m_events[i].NoteVelocity() > 0) - m_notes_remaining--; - } - - else - break; - } - - return evs; -} - -void MidiTrack::GoTo(microseconds_t microsecond_song_position) { - m_running_microseconds = microsecond_song_position; - m_last_event = -1; - m_notes_remaining = static_cast(m_note_set.size()); - - for (size_t i = 0; i < m_events.size(); ++i) { - if (m_event_usecs[i] <= m_running_microseconds) { - m_last_event = static_cast(i); - - if (m_events[i].Type() == MidiEventType_NoteOn && m_events[i].NoteVelocity() > 0) - m_notes_remaining--; - } - - else - break; - } -} diff --git a/src/libmidi/MidiTrack.h b/src/libmidi/MidiTrack.h deleted file mode 100644 index fa5f877f..00000000 --- a/src/libmidi/MidiTrack.h +++ /dev/null @@ -1,124 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __MIDI_TRACK_H -#define __MIDI_TRACK_H - -#include -#include - -#include "Note.h" -#include "MidiEvent.h" -#include "MidiUtil.h" - -class MidiEvent; - -typedef std::vector MidiEventList; -typedef std::vector MidiEventPulsesList; -typedef std::vector MidiEventMicrosecondList; - -class MidiTrack { -public: - static MidiTrack ReadFromStream(std::istream &stream); - static MidiTrack CreateBlankTrack() { - return MidiTrack(); - } - - MidiEventList &Events() { - return m_events; - } - - MidiEventPulsesList &EventPulses() { - return m_event_pulses; - } - - MidiEventMicrosecondList &EventUsecs() { - return m_event_usecs; - } - - const MidiEventList &Events() const { - return m_events; - } - - const MidiEventPulsesList &EventPulses() const { - return m_event_pulses; - } - - const MidiEventMicrosecondList &EventUsecs() const { - return m_event_usecs; - } - - void SetEventUsecs(const MidiEventMicrosecondList &event_usecs) { - m_event_usecs = event_usecs; - } - - const std::string InstrumentName() const { - return InstrumentNames[m_instrument_id]; - } - - bool IsPercussion() const { - return m_instrument_id == InstrumentIdPercussion; - } - - const NoteSet &Notes() const { - return m_note_set; - } - - void SetTrackId(size_t track_id); - - // Reports whether this track contains any Note-On MIDI events - // (vs. just being an information track with a title or copyright) - bool hasNotes() const { - return (m_note_set.size() > 0); - } - - void Reset(); - MidiEventList Update(microseconds_t delta_microseconds); - void GoTo(microseconds_t microsecond_song_position); - - unsigned int AggregateEventsRemain() const { - return static_cast(m_events.size() - (m_last_event + 1)); - } - - unsigned int AggregateEventCount() const { - return static_cast(m_events.size()); - } - - unsigned int AggregateNotesRemain() const { - return m_notes_remaining; - } - - unsigned int AggregateNoteCount() const { - return static_cast(m_note_set.size()); - } - -private: - MidiTrack() : - m_instrument_id(0) { - - Reset(); - } - - void BuildNoteSet(); - void DiscoverInstrument(); - - MidiEventList m_events; - MidiEventPulsesList m_event_pulses; - MidiEventMicrosecondList m_event_usecs; - - NoteSet m_note_set; - - int m_instrument_id; - - microseconds_t m_running_microseconds; - long m_last_event; - - unsigned int m_notes_remaining; -}; - -#endif diff --git a/src/libmidi/MidiTypes.h b/src/libmidi/MidiTypes.h deleted file mode 100644 index 7bf7309f..00000000 --- a/src/libmidi/MidiTypes.h +++ /dev/null @@ -1,15 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __MIDI_TYPES_H -#define __MIDI_TYPES_H - -typedef long long microseconds_t; - -#endif - diff --git a/src/libmidi/MidiUtil.cpp b/src/libmidi/MidiUtil.cpp deleted file mode 100644 index f6abb425..00000000 --- a/src/libmidi/MidiUtil.cpp +++ /dev/null @@ -1,290 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include - -#include "MidiUtil.h" - -using namespace std; - -unsigned long BigToSystem32(unsigned long x) { - return ntohl(x); -} - -unsigned short BigToSystem16(unsigned short x) { - return ntohs(x); -} - -unsigned long parse_variable_length(istream &in) { - register unsigned long value = in.get(); - - if (in.good() && (value & 0x80) ) { - value &= 0x7F; - - register unsigned long c; - do { - c = in.get(); - value = (value << 7) + (c & 0x7F); - } while (in.good() && (c & 0x80) ); - } - - return(value); -} - -string MidiError::GetErrorDescription() const { - switch (m_error) { - case MidiError_UnknownHeaderType: - return "Found an unknown header type.\n\nThis probably isn't a valid MIDI file."; - case MidiError_BadFilename: - return "Could not open file for input. Check that file exists."; - case MidiError_NoHeader: - return "No MIDI header could be read. File too short."; - case MidiError_BadHeaderSize: - return "Incorrect header size."; - case MidiError_Type2MidiNotSupported: - return "Type 2 MIDI is not supported."; - case MidiError_BadType0Midi: - return "Type 0 MIDI should only have 1 track."; - case MidiError_SMTPETimingNotImplemented: - return "MIDI using SMTP time division is not implemented."; - - case MidiError_BadTrackHeaderType: - return "Found an unknown track header type."; - case MidiError_TrackHeaderTooShort: - return "File terminated before reading track header."; - case MidiError_TrackTooShort: - return "Data stream too short to read entire track."; - case MidiError_BadTrackEnd: - return "MIDI track did not end with End-Of-Track event."; - - case MidiError_EventTooShort: - return "Data stream ended before reported end of MIDI event."; - case MidiError_UnknownEventType: - return "Found an unknown MIDI Event Type."; - case MidiError_UnknownMetaEventType: - return "Found an unknown MIDI Meta Event Type."; - - case MidiError_MM_NoDevice: - return "Could not open the specified MIDI device."; - case MidiError_MM_NotEnabled: - return "MIDI device failed enable."; - case MidiError_MM_AlreadyAllocated: - return "The specified MIDI device is already in use."; - case MidiError_MM_BadDeviceID: - return "The MIDI device ID specified is out of range."; - case MidiError_MM_InvalidParameter: - return "An invalid parameter was used with the MIDI device."; - case MidiError_MM_NoDriver: - return "The specified MIDI driver is not installed."; - case MidiError_MM_NoMemory: - return "Cannot allocate or lock memory for MIDI device."; - case MidiError_MM_Unknown: - return "An unknown MIDI I/O error has occurred."; - - case MidiError_NoInputAvailable: - return "Attempted to read MIDI event from an empty input buffer."; - case MidiError_MetaEventOnInput: - return "MIDI Input device sent a Meta Event."; - - case MidiError_InputError: - return "MIDI input driver reported an error."; - case MidiError_InvalidInputErrorBehavior: - return "Invalid InputError value. Choices are 'report', 'ignore', and 'use'."; - - case MidiError_RequestedTempoFromNonTempoEvent: - return "Tempo data was requested from a non-tempo MIDI event."; - - default: - return STRING("Unknown MidiError Code (" << m_error << ")."); - } -} - -string GetMidiEventTypeDescription(MidiEventType type) { - switch (type) { - case MidiEventType_Meta: return "Meta"; - case MidiEventType_SysEx: return "System Exclusive"; - - case MidiEventType_NoteOff: return "Note-Off"; - case MidiEventType_NoteOn: return "Note-On"; - case MidiEventType_Aftertouch: return "Aftertouch"; - case MidiEventType_Controller: return "Controller"; - case MidiEventType_ProgramChange: return "Program Change"; - case MidiEventType_ChannelPressure: return "Channel Pressure"; - case MidiEventType_PitchWheel: return "Pitch Wheel"; - - case MidiEventType_Unknown: return "Unknown"; - default: return "BAD EVENT TYPE"; - } -} - -string GetMidiMetaEventTypeDescription(MidiMetaEventType type) { - switch (type) { - case MidiMetaEvent_SequenceNumber: return "Sequence Number"; - - case MidiMetaEvent_Text: return "Text"; - case MidiMetaEvent_Copyright: return "Copyright"; - case MidiMetaEvent_TrackName: return "Track Name"; - case MidiMetaEvent_Instrument: return "Instrument"; - case MidiMetaEvent_Lyric: return "Lyric"; - case MidiMetaEvent_Marker: return "Marker"; - case MidiMetaEvent_Cue: return "Cue Point"; - case MidiMetaEvent_PatchName: return "Patch Name"; - case MidiMetaEvent_DeviceName: return "Device Name"; - - case MidiMetaEvent_EndOfTrack: return "End Of Track"; - case MidiMetaEvent_TempoChange: return "Tempo Change"; - case MidiMetaEvent_SMPTEOffset: return "SMPTE Offset"; - case MidiMetaEvent_TimeSignature: return "Time Signature"; - case MidiMetaEvent_KeySignature: return "Key Signature"; - - case MidiMetaEvent_Proprietary: return "Proprietary"; - - case MidiMetaEvent_ChannelPrefix: return "(Deprecated) Channel Prefix"; - case MidiMetaEvent_MidiPort: return "(Deprecated) MIDI Port"; - - case MidiMetaEvent_Unknown: return "Unknown Meta Event Type"; - default: return "BAD META EVENT TYPE"; - } -} - -string const InstrumentNames[InstrumentCount] = { - "Acoustic Grand Piano", - "Bright Acoustic Piano", - "Electric Grand Piano", - "Honky-tonk Piano", - "Electric Piano 1", - "Electric Piano 2", - "Harpsichord", - "Clavi", - "Celesta", - "Glockenspiel", - "Music Box", - "Vibraphone", - "Marimba", - "Xylophone", - "Tubular Bells", - "Dulcimer", - "Drawbar Organ", - "Percussive Organ", - "Rock Organ", - "Church Organ", - "Reed Organ", - "Accordion", - "Harmonica", - "Tango Accordion", - "Acoustic Guitar (nylon)", - "Acoustic Guitar (steel)", - "Electric Guitar (jazz)", - "Electric Guitar (clean)", - "Electric Guitar (muted)", - "Overdriven Guitar", - "Distortion Guitar", - "Guitar harmonics", - "Acoustic Bass", - "Electric Bass (finger)", - "Electric Bass (pick)", - "Fretless Bass", - "Slap Bass 1", - "Slap Bass 2", - "Synth Bass 1", - "Synth Bass 2", - "Violin", - "Viola", - "Cello", - "Contrabass", - "Tremolo Strings", - "Pizzicato Strings", - "Orchestral Harp", - "Timpani", - "String Ensemble 1", - "String Ensemble 2", - "SynthStrings 1", - "SynthStrings 2", - "Choir Aahs", - "Voice Oohs", - "Synth Voice", - "Orchestra Hit", - "Trumpet", - "Trombone", - "Tuba", - "Muted Trumpet", - "French Horn", - "Brass Section", - "SynthBrass 1", - "SynthBrass 2", - "Soprano Sax", - "Alto Sax", - "Tenor Sax", - "Baritone Sax", - "Oboe", - "English Horn", - "Bassoon", - "Clarinet", - "Piccolo", - "Flute", - "Recorder", - "Pan Flute", - "Blown Bottle", - "Shakuhachi", - "Whistle", - "Ocarina", - "Lead 1 (square)", - "Lead 2 (sawtooth)", - "Lead 3 (calliope)", - "Lead 4 (chiff)", - "Lead 5 (charang)", - "Lead 6 (voice)", - "Lead 7 (fifths)", - "Lead 8 (bass + lead)", - "Pad 1 (new age)", - "Pad 2 (warm)", - "Pad 3 (polysynth)", - "Pad 4 (choir)", - "Pad 5 (bowed)", - "Pad 6 (metallic)", - "Pad 7 (halo)", - "Pad 8 (sweep)", - "FX 1 (rain)", - "FX 2 (soundtrack)", - "FX 3 (crystal)", - "FX 4 (atmosphere)", - "FX 5 (brightness)", - "FX 6 (goblins)", - "FX 7 (echoes)", - "FX 8 (sci-fi)", - "Sitar", - "Banjo", - "Shamisen", - "Koto", - "Kalimba", - "Bag pipe", - "Fiddle", - "Shanai", - "Tinkle Bell", - "Agogo", - "Steel Drums", - "Woodblock", - "Taiko Drum", - "Melodic Tom", - "Synth Drum", - "Reverse Cymbal", - "Guitar Fret Noise", - "Breath Noise", - "Seashore", - "Bird Tweet", - "Telephone Ring", - "Helicopter", - "Applause", - "Gunshot", - - // - // NOTE: These aren't actually General MIDI instruments! - // - "Percussion", // for Tracks that use Channel 10 or 16 - "Various" // for Tracks that use more than one -}; diff --git a/src/libmidi/MidiUtil.h b/src/libmidi/MidiUtil.h deleted file mode 100644 index 0d130b93..00000000 --- a/src/libmidi/MidiUtil.h +++ /dev/null @@ -1,138 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __MIDI_UTILS_H -#define __MIDI_UTILS_H - -#include -#include - -// Handy string macros -#ifndef STRING -#include -#define STRING(v) ((static_cast(std::ostringstream().flush() << v)).str()) -#endif - -// Cross-platform Endian conversion functions -// -// MIDI is big endian. Some platforms aren't -unsigned long BigToSystem32(unsigned long x); -unsigned short BigToSystem16(unsigned short x); - -// MIDI contains these wacky variable length numbers where -// the value is stored only in the first 7 bits of each -// byte, and the last bit is a kind of "keep going" flag. -unsigned long parse_variable_length(std::istream &in); - -const static int InstrumentCount = 130; -const static int InstrumentIdVarious = InstrumentCount - 1; -const static int InstrumentIdPercussion = InstrumentCount - 2; -extern std::string const InstrumentNames[InstrumentCount]; - -enum MidiErrorCode { - - MidiError_BadFilename, - MidiError_NoHeader, - MidiError_UnknownHeaderType, - MidiError_BadHeaderSize, - MidiError_Type2MidiNotSupported, - MidiError_BadType0Midi, - MidiError_SMTPETimingNotImplemented, - - MidiError_TrackHeaderTooShort, - MidiError_BadTrackHeaderType, - MidiError_TrackTooShort, - MidiError_BadTrackEnd, - - MidiError_EventTooShort, - MidiError_UnknownEventType, - MidiError_UnknownMetaEventType, - - // MMSYSTEM Errors for MIDI I/O - MidiError_MM_NoDevice, - MidiError_MM_NotEnabled, - MidiError_MM_AlreadyAllocated, - MidiError_MM_BadDeviceID, - MidiError_MM_InvalidParameter, - MidiError_MM_NoDriver, - MidiError_MM_NoMemory, - MidiError_MM_Unknown, - - MidiError_NoInputAvailable, - MidiError_MetaEventOnInput, - - MidiError_InputError, - MidiError_InvalidInputErrorBehavior, - - MidiError_RequestedTempoFromNonTempoEvent -}; - -class MidiError : public std::exception { -public: - MidiError(MidiErrorCode error) : m_error(error) { } - std::string GetErrorDescription() const; - - const MidiErrorCode m_error; - -private: - MidiError operator =(const MidiError&); -}; - -enum MidiEventType { - - MidiEventType_Meta, - MidiEventType_SysEx, - MidiEventType_Unknown, - - MidiEventType_NoteOff, - MidiEventType_NoteOn, - MidiEventType_Aftertouch, - MidiEventType_Controller, - MidiEventType_ProgramChange, - MidiEventType_ChannelPressure, - MidiEventType_PitchWheel -}; - -std::string GetMidiEventTypeDescription(MidiEventType type); - -enum MidiMetaEventType { - - MidiMetaEvent_SequenceNumber = 0x00, - - MidiMetaEvent_Text = 0x01, - MidiMetaEvent_Copyright = 0x02, - MidiMetaEvent_TrackName = 0x03, - MidiMetaEvent_Instrument = 0x04, - MidiMetaEvent_Lyric = 0x05, - MidiMetaEvent_Marker = 0x06, - MidiMetaEvent_Cue = 0x07, - MidiMetaEvent_PatchName = 0x08, - MidiMetaEvent_DeviceName = 0x09, - - MidiMetaEvent_EndOfTrack = 0x2F, - MidiMetaEvent_TempoChange = 0x51, - MidiMetaEvent_SMPTEOffset = 0x54, - MidiMetaEvent_TimeSignature = 0x58, - MidiMetaEvent_KeySignature = 0x59, - - MidiMetaEvent_Proprietary = 0x7F, - - // Deprecated Meta Events - MidiMetaEvent_ChannelPrefix = 0x20, - MidiMetaEvent_MidiPort = 0x21, - - MidiMetaEvent_Unknown = 0xFF -}; - -// Returns a human-readable description of this meta type -// type type of the text ought to contain in -// this event. (e.g. Copyright, Lyric, Track name, etc.) -// (If this isn't a meta event, returns an empty string) -std::string GetMidiMetaEventTypeDescription(MidiMetaEventType type); - -#endif diff --git a/src/libmidi/Note.h b/src/libmidi/Note.h deleted file mode 100644 index 2b6d6f2c..00000000 --- a/src/libmidi/Note.h +++ /dev/null @@ -1,73 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#ifndef __MIDI_NOTE_H -#define __MIDI_NOTE_H - -#include -#include "MidiTypes.h" - -// Range of all 128 MIDI notes possible -typedef unsigned int NoteId; - -// Arbitrary value outside the usual range -const static NoteId InvalidNoteId = 2048; - -enum NoteState { - - AutoPlayed, - UserPlayable, - UserHit, - UserMissed -}; - -template -struct GenericNote { - - bool operator()(const GenericNote &lhs, const GenericNote &rhs) const { - if (lhs.start < rhs.start) return true; - if (lhs.start > rhs.start) return false; - - if (lhs.end < rhs.end) return true; - if (lhs.end > rhs.end) return false; - - if (lhs.note_id < rhs.note_id) return true; - if (lhs.note_id > rhs.note_id) return false; - - if (lhs.track_id < rhs.track_id) return true; - if (lhs.track_id > rhs.track_id) return false; - - return false; - } - - T start; - T end; - NoteId note_id; - size_t track_id; - - // We have to drag a little extra info around so we can - // play the user's input correctly - unsigned char channel; - int velocity; - - NoteState state; - // State before retry (last try) - NoteState retry_state; -}; - -// Note keeps the internal pulses found in the MIDI file which are -// independent of tempo or playback speed. TranslatedNote contains -// the exact (translated) microsecond that notes start and stop on -// based on a given playback speed, after dereferencing tempo changes. -typedef GenericNote Note; -typedef GenericNote TranslatedNote; - -typedef std::set NoteSet; -typedef std::set TranslatedNoteSet; - -#endif diff --git a/src/main.cpp b/src/main.cpp deleted file mode 100644 index 02b1c397..00000000 --- a/src/main.cpp +++ /dev/null @@ -1,527 +0,0 @@ -// -*- mode: c++; coding: utf-8 -*- - -// Linthesia - -// Copyright (c) 2007 Nicholas Piegdon -// Adaptation to GNU/Linux by Oscar Aceña -// See COPYING for license information - -#include - -#include "OSGraphics.h" -#include "StringUtil.h" -#include "FileSelector.h" -#include "UserSettings.h" -#include "Version.h" -#include "CompatibleSystem.h" -#include "LinthesiaError.h" -#include "Tga.h" -#include "Renderer.h" -#include "SharedState.h" -#include "GameState.h" -#include "TitleState.h" -#include "DpmsThread.h" - -#include "libmidi/Midi.h" -#include "libmidi/MidiUtil.h" -#include - -#ifndef GRAPHDIR -#define GRAPHDIR "../graphics" -#endif - -using namespace std; - -GameStateManager* state_manager; - -const static string application_name = "Neothesia"; -const static string friendly_app_name = STRING("Neothesia " << - NeothesiaVersionString); - -const static string error_header1 = "Neothesia detected a"; -const static string error_header2 = " problem and must close:\n\n"; -const static string error_footer = "\n\n Error )-: "; - -class EdgeTracker { -public: - - EdgeTracker() : - active(true), - just_active(true) { - } - - void Activate() { - just_active = true; - active = true; - } - - void Deactivate() { - just_active = false; - active = false; - } - - bool IsActive() { - return active; - } - - bool JustActivated() { - bool was_active = just_active; - just_active = false; - return was_active; - } - -private: - bool active; - bool just_active; -}; - -static EdgeTracker window_state; - -class DrawingArea : public Gtk::GL::DrawingArea { -public: - - DrawingArea(const Glib::RefPtr& config) : - Gtk::GL::DrawingArea(config) { - - set_events(Gdk::POINTER_MOTION_MASK | - Gdk::BUTTON_PRESS_MASK | - Gdk::BUTTON_RELEASE_MASK | - Gdk::KEY_PRESS_MASK | - Gdk::KEY_RELEASE_MASK); - - set_can_focus(); - - signal_motion_notify_event().connect(sigc::mem_fun(*this, &DrawingArea::on_motion_notify)); - signal_button_press_event().connect(sigc::mem_fun(*this, &DrawingArea::on_button_press)); - signal_button_release_event().connect(sigc::mem_fun(*this, &DrawingArea::on_button_press)); - signal_key_press_event().connect(sigc::mem_fun(*this, &DrawingArea::on_key_press)); - signal_key_release_event().connect(sigc::mem_fun(*this, &DrawingArea::on_key_release)); - } - - bool GameLoop(); - -protected: - virtual void on_realize(); - virtual bool on_configure_event(GdkEventConfigure* event); - virtual bool on_expose_event(GdkEventExpose* event); - - virtual bool on_motion_notify(GdkEventMotion* event); - virtual bool on_button_press(GdkEventButton* event); - virtual bool on_key_press(GdkEventKey* event); - virtual bool on_key_release(GdkEventKey* event); -}; - -bool DrawingArea::on_motion_notify(GdkEventMotion* event) { - - state_manager->MouseMove(event->x, event->y); - return true; -} - -bool DrawingArea::on_button_press(GdkEventButton* event) { - - MouseButton b; - - // left and right click allowed - if (event->button == 1) - b = MouseLeft; - else if (event->button == 3) - b = MouseRight; - - // ignore other buttons - else - return false; - - // press or release? - if (event->type == GDK_BUTTON_PRESS) - state_manager->MousePress(b); - else if (event->type == GDK_BUTTON_RELEASE) - state_manager->MouseRelease(b); - else - return false; - - return true; -} - -// FIXME: use user settings to do this mapping -int keyToNote(GdkEventKey* event) { - const unsigned short oct = 4; - - switch(event->keyval) { - /* no key for C :( */ - case GDK_masculine: return 12*oct + 1; /* C# */ - case GDK_Tab: return 12*oct + 2; /* D */ - case GDK_1: return 12*oct + 3; /* D# */ - case GDK_q: return 12*oct + 4; /* E */ - case GDK_w: return 12*oct + 5; /* F */ - case GDK_3: return 12*oct + 6; /* F# */ - case GDK_e: return 12*oct + 7; /* G */ - case GDK_4: return 12*oct + 8; /* G# */ - case GDK_r: return 12*oct + 9; /* A */ - case GDK_5: return 12*oct + 10; /* A# */ - case GDK_t: return 12*oct + 11; /* B */ - - case GDK_y: return 12*(oct+1) + 0; /* C */ - case GDK_7: return 12*(oct+1) + 1; /* C# */ - case GDK_u: return 12*(oct+1) + 2; /* D */ - case GDK_8: return 12*(oct+1) + 3; /* D# */ - case GDK_i: return 12*(oct+1) + 4; /* E */ - case GDK_o: return 12*(oct+1) + 5; /* F */ - case GDK_0: return 12*(oct+1) + 6; /* F# */ - case GDK_p: return 12*(oct+1) + 7; /* G */ - case GDK_apostrophe: return 12*(oct+1) + 8; /* G# */ - case GDK_dead_grave: return 12*(oct+1) + 9; /* A */ - case GDK_exclamdown: return 12*(oct+1) + 10; /* A# */ - case GDK_plus: return 12*(oct+1) + 11; /* B */ - } - - return -1; -} - -typedef map ConnectMap; -ConnectMap pressed; - -bool __sendNoteOff(int note) { - - ConnectMap::iterator it = pressed.find(note); - if (it == pressed.end()) - return false; - - sendNote(note, false); - pressed.erase(it); - - return true; -} - -bool DrawingArea::on_key_press(GdkEventKey* event) { - - // if is a note... - int note = keyToNote(event); - if (note >= 0) { - - // if first press, send Note-On - ConnectMap::iterator it = pressed.find(note); - if (it == pressed.end()) - sendNote(note, true); - - // otherwise, cancel emission of Note-off - else - it->second.disconnect(); - - return true; - } - - switch (event->keyval) { - case GDK_Up: state_manager->KeyPress(KeyUp); break; - case GDK_Down: state_manager->KeyPress(KeyDown); break; - case GDK_Left: state_manager->KeyPress(KeyLeft); break; - case GDK_Right: state_manager->KeyPress(KeyRight); break; - case GDK_space: state_manager->KeyPress(KeySpace); break; - case GDK_Return: state_manager->KeyPress(KeyEnter); break; - case GDK_Escape: state_manager->KeyPress(KeyEscape); break; - - // show FPS - case GDK_F6: state_manager->KeyPress(KeyF6); break; - - // increase/decrease octave - case GDK_greater: state_manager->KeyPress(KeyGreater); break; - case GDK_less: state_manager->KeyPress(KeyLess); break; - - // +/- 5 seconds - case GDK_Page_Down:state_manager->KeyPress(KeyForward); break; - case GDK_Page_Up: state_manager->KeyPress(KeyBackward); break; - - case GDK_bracketleft: state_manager->KeyPress(KeyVolumeDown); break; // [ - case GDK_bracketright: state_manager->KeyPress(KeyVolumeUp); break; // ] - - default: - return false; - } - - return true; -} - -bool DrawingArea::on_key_release(GdkEventKey* event) { - - // if is a note... - int note = keyToNote(event); - if (note >= 0) { - - // setup a timeout with Note-Off - pressed[note] = Glib::signal_timeout().connect( - sigc::bind(sigc::ptr_fun(&__sendNoteOff), note), 20); - return true; - } - - return false; -} - -void DrawingArea::on_realize() { - // we need to call the base on_realize() - Gtk::GL::DrawingArea::on_realize(); - - Glib::RefPtr glwindow = get_gl_window(); - if (!glwindow->gl_begin(get_gl_context())) - return; - - glwindow->gl_end(); -} - -bool DrawingArea::on_configure_event(GdkEventConfigure* event) { - - Glib::RefPtr glwindow = get_gl_window(); - if (!glwindow->gl_begin(get_gl_context())) - return false; - - glClearColor(.25, .25, .25, 1.0); - glClearDepth(1.0); - - glDisable(GL_DEPTH_TEST); - glEnable(GL_TEXTURE_2D); - - glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - glEnable(GL_BLEND); - - glShadeModel(GL_SMOOTH); - - glViewport(0, 0, get_width(), get_height()); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluOrtho2D(0, get_width(), 0, get_height()); - - state_manager->Update(window_state.JustActivated()); - - glwindow->gl_end(); - return true; -} - -bool DrawingArea::on_expose_event(GdkEventExpose* event) { - - Glib::RefPtr glwindow = get_gl_window(); - if (!glwindow->gl_begin(get_gl_context())) - return false; - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); - glCallList(1); - - Renderer rend(get_gl_context(), get_pango_context()); - rend.SetVSyncInterval(1); - state_manager->Draw(rend); - - // swap buffers. - if (glwindow->is_double_buffered()) - glwindow->swap_buffers(); - else - glFlush(); - - glwindow->gl_end(); - return true; -} - -bool DrawingArea::GameLoop() { - - if (window_state.IsActive()) { - - state_manager->Update(window_state.JustActivated()); - - Renderer rend(get_gl_context(), get_pango_context()); - rend.SetVSyncInterval(1); - - state_manager->Draw(rend); - } - - return true; -} - -int main(int argc, char *argv[]) { - Gtk::Main main_loop(argc, argv); - Gtk::GL::init(argc, argv); - - state_manager = new GameStateManager( - Compatible::GetDisplayWidth(), - Compatible::GetDisplayHeight() - ); - - try { - string command_line(""); - - UserSetting::Initialize(application_name); - - if (argc > 1) - command_line = string(argv[1]); - - // strip any leading or trailing quotes from the filename - // argument (to match the format returned by the open-file - // dialog later). - if (command_line.length() > 0 && - command_line[0] == '\"') - command_line = command_line.substr(1, command_line.length() - 1); - - if (command_line.length() > 0 && - command_line[command_line.length()-1] == '\"') - command_line = command_line.substr(0, command_line.length() - 1); - - Midi *midi = 0; - - // attempt to open the midi file given on the command line first - if (command_line != "") { - try { - midi = new Midi(Midi::ReadFromFile(command_line)); - } - - catch (const MidiError &e) { - string wrapped_description = STRING("Problem while loading file: " << - command_line << - "\n") + e.GetErrorDescription(); - Compatible::ShowError(wrapped_description); - - command_line = ""; - midi = 0; - } - } - - // if midi couldn't be opened from command line filename or there - // simply was no command line filename, use a "file open" dialog. - if (command_line == "") { - while (!midi) { - string file_title; - FileSelector::RequestMidiFilename(&command_line, &file_title); - - if (command_line != "") { - try { - midi = new Midi(Midi::ReadFromFile(command_line)); - } - catch (const MidiError &e) { - string wrapped_description = \ - STRING("Problem while loading file: " << - file_title << - "\n") + e.GetErrorDescription(); - Compatible::ShowError(wrapped_description); - - midi = 0; - } - } - - else { - // they pressed cancel, so they must not want to run - // the app anymore. - return 0; - } - } - } - - Glib::RefPtr glconfig; - - // try double-buffered visual - glconfig = Gdk::GL::Config::create(Gdk::GL::MODE_RGB | - Gdk::GL::MODE_DEPTH | - Gdk::GL::MODE_DOUBLE); - if (!glconfig) { - cerr << "*** Cannot find the double-buffered visual.\n" - << "*** Trying single-buffered visual.\n"; - - // try single-buffered visual - glconfig = Gdk::GL::Config::create(Gdk::GL::MODE_RGB | - Gdk::GL::MODE_DEPTH); - if (!glconfig) { - string description = STRING(error_header1 << - " OpenGL" << - error_header2 << - "Cannot find any OpenGL-capable visual." << - error_footer); - Compatible::ShowError(description); - return 1; - } - } - - Gtk::Window window; - DrawingArea da(glconfig); - window.add(da); - window.show_all(); - window.move(Compatible::GetDisplayLeft() + Compatible::GetDisplayWidth()/2, Compatible::GetDisplayTop() + Compatible::GetDisplayHeight()/2); - - - // Init DHMS thread once for the whole program - DpmsThread* dpms_thread = new DpmsThread(); - - // do this after gl context is created (ie. after da realized) - SharedState state; - state.song_title = FileSelector::TrimFilename(command_line); - state.midi = midi; - state.dpms_thread = dpms_thread; - state_manager->SetInitialState(new TitleState(state)); - - window.fullscreen(); - window.set_title(friendly_app_name); - - window.set_icon_from_file(string(GRAPHDIR) + "/app_icon.ico"); - - // get refresh rate from user settings - string key = "refresh_rate"; - int rate = 65; - string user_rate = UserSetting::Get(key, ""); - if (user_rate.empty()) { - user_rate = STRING(rate); - UserSetting::Set(key, user_rate); - } - - else { - istringstream iss(user_rate); - if (not (iss >> rate)) { - Compatible::ShowError("Invalid setting for '"+ key +"' key.\n\nReset to default value when reload."); - UserSetting::Set(key, ""); - } - } - - Glib::signal_timeout().connect(sigc::mem_fun(da, &DrawingArea::GameLoop), 1000/rate); - - main_loop.run(window); - window_state.Deactivate(); - - delete dpms_thread; - - return 0; - } - - catch (const LinthesiaError &e) { - string wrapped_description = STRING(error_header1 << - error_header2 << - e.GetErrorDescription() << - error_footer); - Compatible::ShowError(wrapped_description); - } - - catch (const MidiError &e) { - string wrapped_description = STRING(error_header1 << - " MIDI" << - error_header2 << - e.GetErrorDescription() << - error_footer); - Compatible::ShowError(wrapped_description); - } - - catch (const Gnome::Conf::Error& e) { - string wrapped_description = STRING(error_header1 << - " Gnome::Conf::Error" << - error_header2 << - e.what() << - error_footer); - Compatible::ShowError(wrapped_description); - } - - catch (const exception &e) { - string wrapped_description = STRING("Linthesia detected an unknown " - "problem and must close! '" << - e.what() << "'" << error_footer); - Compatible::ShowError(wrapped_description); - } - - catch (...) { - string wrapped_description = STRING("Linthesia detected an unknown " - "problem and must close!" << - error_footer); - Compatible::ShowError(wrapped_description); - } - - return 1; -} - diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 00000000..e5f34776 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,268 @@ +mod wgpu_jumpstart; +use wgpu_jumpstart::{Gpu, Uniform, Window}; + +mod ui; +use ui::Ui; + +mod scene; +use scene::{Scene, SceneType}; + +mod time_menager; +use time_menager::TimeMenager; + +mod midi_device; + +mod transform_uniform; +use transform_uniform::TransformUniform; + +#[cfg(target_arch = "wasm32")] +mod web_wrappers; + +use wgpu_glyph::Section; +use winit::{ + event::{Event, VirtualKeyCode, WindowEvent}, + event_loop::{ControlFlow, EventLoop}, +}; + +mod rectangle_pipeline; + +pub struct MainState { + pub window_size: (f32, f32), + pub mouse_pos: (f32, f32), + /// Mouse Was Clicked This Frame + pub mouse_clicked: bool, + /// Mouse Is Pressed This Frame + pub mouse_pressed: bool, + pub time_menager: TimeMenager, + pub transform_uniform: Uniform, +} + +impl MainState { + fn new(gpu: &Gpu) -> Self { + Self { + window_size: (0.0, 0.0), + mouse_pos: (0.0, 0.0), + mouse_clicked: false, + mouse_pressed: false, + time_menager: TimeMenager::new(), + transform_uniform: Uniform::new( + &gpu.device, + TransformUniform::default(), + wgpu::ShaderStage::VERTEX, + ), + } + } + fn resize(&mut self, gpu: &mut Gpu, w: f32, h: f32) { + self.window_size = (w, h); + self.transform_uniform.data.update(w, h); + self.transform_uniform.update(&mut gpu.encoder, &gpu.device); + } + fn update_mouse_pos(&mut self, x: f32, y: f32) { + self.mouse_pos = (x, y); + } + fn update_mouse_pressed(&mut self, state: bool) { + self.mouse_pressed = state; + + if state { + self.update_mouse_clicked(true); + } + } + fn update_mouse_clicked(&mut self, clicked: bool) { + self.mouse_clicked = clicked; + } +} + +struct App<'a> { + pub window: Window, + pub gpu: Gpu, + pub ui: Ui<'a>, + pub main_state: MainState, + game_scene: Box, +} + +impl<'a> App<'a> { + fn new(mut gpu: Gpu, window: Window) -> Self { + let mut main_state = MainState::new(&gpu); + + let ui = Ui::new(&main_state, &mut gpu); + let game_scene: Box = + Box::new(scene::menu_scene::MenuScene::new(&mut gpu, &mut main_state)); + + Self { + window, + gpu, + ui, + main_state, + game_scene, + } + } + fn resize(&mut self) { + self.window + .surface + .resize(&mut self.gpu, self.window.physical_size()); + + let (w, h) = self.window.size(); + + self.main_state.resize(&mut self.gpu, w, h); + self.game_scene.resize(&mut self.main_state, &mut self.gpu); + self.ui.resize(&self.main_state, &mut self.gpu); + } + fn go_back(&mut self, control_flow: &mut ControlFlow) { + match self.game_scene.state_type() { + SceneType::MainMenu => { + *control_flow = ControlFlow::Exit; + } + SceneType::Playing => { + let mut state = + scene::menu_scene::MenuScene::new(&mut self.gpu, &mut self.main_state); + state.resize(&mut self.main_state, &mut self.gpu); + + self.game_scene = Box::new(state); + } + } + } + fn key_released(&mut self, key: VirtualKeyCode) { + self.game_scene.key_released(&mut self.main_state, key); + } + fn render_fps(&mut self) { + self.ui.queue_text(Section { + text: &format!("FPS: {}", self.main_state.time_menager.fps()), + color: [1.0, 1.0, 1.0, 1.0], + screen_position: (0.0, 5.0), + scale: wgpu_glyph::Scale::uniform(20.0), + layout: wgpu_glyph::Layout::Wrap { + line_breaker: Default::default(), + h_align: wgpu_glyph::HorizontalAlign::Left, + v_align: wgpu_glyph::VerticalAlign::Top, + }, + ..Default::default() + }); + } + fn clear(&mut self, frame: &wgpu::SwapChainOutput) { + self.gpu + .encoder + .begin_render_pass(&wgpu::RenderPassDescriptor { + color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { + attachment: &frame.view, + resolve_target: None, + load_op: wgpu::LoadOp::Clear, + store_op: wgpu::StoreOp::Store, + clear_color: wgpu::Color { + r: 0.0, + g: 0.0, + b: 0.0, + a: 1.0, + }, + }], + depth_stencil_attachment: None, + }); + } + fn render(&mut self) { + self.main_state.time_menager.update(); + + let frame = self.window.surface.get_next_texture(); + + self.clear(&frame); + + let event = self + .game_scene + .update(&mut self.main_state, &mut self.gpu, &mut self.ui); + + match event { + scene::SceneEvent::MainMenu(event) => match event { + scene::menu_scene::Event::MidiOpen(midi, port) => { + let mut state = scene::playing_scene::PlayingScene::new( + &mut self.gpu, + &mut self.main_state, + midi, + port, + ); + state.resize(&mut self.main_state, &mut self.gpu); + + self.game_scene = Box::new(state); + } + }, + _ => {} + } + + self.game_scene + .render(&mut self.main_state, &mut self.gpu, &frame); + + self.render_fps(); + + self.ui.render(&mut self.main_state, &mut self.gpu, &frame); + + self.gpu.submit(); + + self.main_state.update_mouse_clicked(false); + } +} + +async fn main_async() { + let event_loop = EventLoop::new(); + + let builder = winit::window::WindowBuilder::new().with_title("Neothesia"); + let (window, gpu) = Window::new(builder, (1080, 720), &event_loop).await; + let mut app = App::new(gpu, window); + app.resize(); + app.gpu.submit(); + + event_loop.run(move |event, _, mut control_flow| match &event { + Event::MainEventsCleared => app.window.request_redraw(), + Event::WindowEvent { event, .. } => match event { + WindowEvent::Resized(_) => { + app.resize(); + app.gpu.submit(); + } + WindowEvent::CursorMoved { position, .. } => { + let dpi = &app.window.dpi; + let x = (position.x / dpi).round(); + let y = (position.y / dpi).round(); + + app.main_state.update_mouse_pos(x as f32, y as f32); + } + WindowEvent::MouseInput { state, .. } => { + if let winit::event::ElementState::Pressed = state { + app.main_state.update_mouse_pressed(true); + } else { + app.main_state.update_mouse_pressed(false); + } + } + WindowEvent::KeyboardInput { input, .. } => { + if input.state == winit::event::ElementState::Released { + match input.virtual_keycode { + Some(winit::event::VirtualKeyCode::Escape) => { + app.go_back(&mut control_flow); + } + Some(key) => { + app.key_released(key); + } + _ => {} + } + } + } + WindowEvent::CloseRequested => *control_flow = ControlFlow::Exit, + _ => {} + }, + Event::RedrawRequested(_) => { + app.render(); + } + _ => {} + }); +} + +fn main() { + #[cfg(not(target_arch = "wasm32"))] + { + env_logger::init(); + futures::executor::block_on(main_async()); + } + + #[cfg(target_arch = "wasm32")] + { + console_log::init().expect("could not initialize logger"); + std::panic::set_hook(Box::new(console_error_panic_hook::hook)); + + wasm_bindgen_futures::spawn_local(main_async()); + } +} diff --git a/src/midi_device/devices_menager.rs b/src/midi_device/devices_menager.rs new file mode 100644 index 00000000..3328096b --- /dev/null +++ b/src/midi_device/devices_menager.rs @@ -0,0 +1,100 @@ +use midir::{ + MidiInput, MidiInputConnection, MidiInputPort, MidiOutput, MidiOutputConnection, MidiOutputPort, +}; + +pub struct MidiDevicesMenager { + midi_out: Option, + // midi_in: Option, + midi_out_c: Option, + // midi_in_c: Option, +} + +impl MidiDevicesMenager { + pub fn new() -> Self { + let midi_out = MidiOutput::new("midi_out").ok(); + // let midi_in = MidiInput::new("midi_in").ok(); + + Self { + midi_out, + // midi_in, + midi_out_c: None, + // midi_in_c: None, + } + } + pub fn get_outs(&self) -> Vec { + match &self.midi_out { + Some(midi_out) => { + let mut outs = Vec::new(); + let ports = midi_out.ports(); + for p in ports { + let name = match midi_out.port_name(&p).ok() { + Some(name) => name, + None => String::from("Unknown"), + }; + outs.push(MidiPortInfo { port: p, name }) + } + outs + } + None => Vec::new(), + } + } + // pub fn get_ins(&self) -> Vec { + // match &self.midi_in { + // Some(midi_in) => { + // let mut ins = Vec::new(); + // let ports = midi_in.ports(); + + // for p in ports { + // // for i in 0..midi_in.port_count() { + // let name = match midi_in.port_name(&p).ok() { + // Some(name) => name, + // None => String::from("Unknown"), + // }; + // ins.push(MidiPortInfo { + // port: MidiPort::Input(p), + // name, + // }) + // } + // ins + // } + // None => Vec::new(), + // } + // } + pub fn connect_out(&mut self, port: MidiPortInfo) { + let midi_out = MidiOutput::new("midi_out").ok(); + + if let Some(midi_out) = midi_out { + self.midi_out_c = midi_out.connect(&port.port, "out").ok(); + } + } + pub fn send(&mut self, message: &[u8]) { + let _res = match &mut self.midi_out_c { + Some(out) => out.send(message), + None => Ok(()), + }; + } +} + +// pub enum MidiPort { +// Output(MidiOutputPort), +// Input(MidiInputPort), +// } +// impl std::fmt::Debug for MidiPort { +// fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { +// match self { +// Self::Output(_) => write!(f, "Output"), +// Self::Input(_) => write!(f, "Input"), +// } +// } +// } + +pub struct MidiPortInfo { + pub port: MidiOutputPort, + pub name: String, +} + +impl std::fmt::Debug for MidiPortInfo { + fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { + write!(f, "{}", self.name) + } +} diff --git a/src/midi_device/mod.rs b/src/midi_device/mod.rs new file mode 100644 index 00000000..ba298f5a --- /dev/null +++ b/src/midi_device/mod.rs @@ -0,0 +1,4 @@ +#[allow(dead_code)] +mod devices_menager; +pub use devices_menager::MidiDevicesMenager; +pub use devices_menager::MidiPortInfo; diff --git a/src/neolib/GLShader.cpp b/src/neolib/GLShader.cpp deleted file mode 100644 index dfc9f931..00000000 --- a/src/neolib/GLShader.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include "GLShader.h" - -#include -#include -#include -#include -#include - -GLuint LoadShader(std::string vert,std::string frag) { - GLuint vertShader = glCreateShader(GL_VERTEX_SHADER); - GLuint fragShader = glCreateShader(GL_FRAGMENT_SHADER); - - const char *vertShaderSrc = vert.c_str(); - const char *fragShaderSrc = frag.c_str(); - - GLint result = GL_FALSE; - int logLength; - - // Compile - glShaderSource(vertShader, 1, &vertShaderSrc, NULL); - glCompileShader(vertShader); - - // Check - glGetShaderiv(vertShader, GL_COMPILE_STATUS, &result); - glGetShaderiv(vertShader, GL_INFO_LOG_LENGTH, &logLength); - std::vector vertShaderError((logLength > 1) ? logLength : 1); - glGetShaderInfoLog(vertShader, logLength, NULL, &vertShaderError[0]); - std::cout << &vertShaderError[0] << std::endl; - - // Compile - glShaderSource(fragShader, 1, &fragShaderSrc, NULL); - glCompileShader(fragShader); - - // Check - glGetShaderiv(fragShader, GL_COMPILE_STATUS, &result); - glGetShaderiv(fragShader, GL_INFO_LOG_LENGTH, &logLength); - std::vector fragShaderError((logLength > 1) ? logLength : 1); - glGetShaderInfoLog(fragShader, logLength, NULL, &fragShaderError[0]); - std::cout << &fragShaderError[0] << std::endl; - - // Link - GLuint program = glCreateProgram(); - glAttachShader(program, vertShader); - glAttachShader(program, fragShader); - glLinkProgram(program); - - // Check - glGetProgramiv(program, GL_LINK_STATUS, &result); - glGetProgramiv(program, GL_INFO_LOG_LENGTH, &logLength); - std::vector programError( (logLength > 1) ? logLength : 1 ); - glGetProgramInfoLog(program, logLength, NULL, &programError[0]); - std::cout << &programError[0] << std::endl; - - // Delete - glDeleteShader(vertShader); - glDeleteShader(fragShader); - - return program; -} \ No newline at end of file diff --git a/src/neolib/GLShader.h b/src/neolib/GLShader.h deleted file mode 100644 index f7d58abd..00000000 --- a/src/neolib/GLShader.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef GLSHADER_H -#define GLSHADER_H - -#include "OSGraphics.h" -#include - -GLuint LoadShader(std::string vert,std::string frag); - -#endif \ No newline at end of file diff --git a/src/neolib/NeoFBO.cpp b/src/neolib/NeoFBO.cpp deleted file mode 100644 index afaeb235..00000000 --- a/src/neolib/NeoFBO.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include "NeoFBO.h" - -NeoFBO::NeoFBO(int width_, int height_) : width(width_),height(height_){ - glGenFramebuffers(1, &FboId); - glBindFramebuffer(GL_FRAMEBUFFER, FboId); - - glGenTextures(1, &TextureId); - glBindTexture(GL_TEXTURE_2D, TextureId); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - - glFramebufferTexture(GL_FRAMEBUFFER,GL_COLOR_ATTACHMENT0,TextureId,0); - - GLenum drawBuffers[1] = {GL_COLOR_ATTACHMENT0}; - glDrawBuffers(1, drawBuffers); - - glBindFramebuffer(GL_FRAMEBUFFER, 0); -} - -void NeoFBO::Bind(){ - glBindFramebuffer(GL_FRAMEBUFFER, FboId); -} - -void NeoFBO::Unbind(){ - glBindFramebuffer(GL_FRAMEBUFFER, 0); -} \ No newline at end of file diff --git a/src/neolib/NeoFBO.h b/src/neolib/NeoFBO.h deleted file mode 100644 index 032408fe..00000000 --- a/src/neolib/NeoFBO.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __NEOFBO_H -#define __NEOFBO_H - -#include "OSGraphics.h" - -class NeoFBO { - -public: - NeoFBO(int width_, int height_); - - void Bind(); - void Unbind(); - - GLuint GetTexture() { return TextureId; } -private: - GLuint FboId; - GLuint TextureId; - - int width; - int height; -}; - -#endif \ No newline at end of file diff --git a/src/neolib/ParticleSystem.cpp b/src/neolib/ParticleSystem.cpp deleted file mode 100644 index 584f72e2..00000000 --- a/src/neolib/ParticleSystem.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include "ParticleSystem.h" -#include "Renderer.h" - -ParticleSystem::ParticleSystem() {} - -void ParticleSystem::RemoveParticles(){ - particleArr.clear(); -}; - -void ParticleSystem::SpawnParticle(float x1, float y1, Color c1) { - Particle p(x1, y1, c1); - particleArr.push_back(p); -} - -void ParticleSystem::DrawParticles(Renderer &renderer) { - glBindTexture(GL_TEXTURE_2D, 0); - for (int i = 0; i < particleArr.size(); i++) { - particleArr[i].Draw(renderer); - } -} - -void ParticleSystem::UpdateParticles() { - for (int i = 0; i < particleArr.size(); i++) { - particleArr[i].Update(particleArr); - } -} - -Particle::Particle(float x1, float y1, Color c1) : x(x1), y(y1), c(c1) { - ax = 0.01; - ay = -0.005; - - vx = (static_cast(rand()) / static_cast(RAND_MAX)) * 2 - 1; - vy = -(static_cast(rand()) / static_cast(RAND_MAX)) * 2; - - c.r-=50; - c.g-=50; - c.b-=50; -} - -void Particle::Update(std::vector &pa) { - vx += ax; - vy += ay; - - x += vx; - y += vy; - - alpha -= 1; - - if (alpha < 0) { - if (pa.empty()) - return; - pa.erase(pa.begin()); - } -} - -void Particle::Draw(Renderer &renderer) { - c.a = alpha; - renderer.SetColor(c); - renderer.DrawQuad(x, y, 2, 2); -} \ No newline at end of file diff --git a/src/neolib/ParticleSystem.h b/src/neolib/ParticleSystem.h deleted file mode 100644 index e54e92eb..00000000 --- a/src/neolib/ParticleSystem.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef __NEOPARTICLESYSTEM_H -#define __NEOPARTICLESYSTEM_H - -#include "Renderer.h" - -class Particle { -public: - Particle(float x1, float y1, Color c1); - void Update(std::vector &particleArr); - void Draw(Renderer &renderer); - -private: - float x, y; - float alpha = 255; - float vx, vy; - float ax; - float ay; - Color c; -}; - - - -class ParticleSystem -{ -private: - std::vector particleArr; -public: - ParticleSystem(); - void UpdateParticles(); - void RemoveParticles(); - void DrawParticles(Renderer &renderer); - void SpawnParticle(float x1, float y1, Color c1); -}; - - - -#endif \ No newline at end of file diff --git a/src/rectangle_pipeline/instance_data.rs b/src/rectangle_pipeline/instance_data.rs new file mode 100644 index 00000000..91d79fb6 --- /dev/null +++ b/src/rectangle_pipeline/instance_data.rs @@ -0,0 +1,20 @@ +use wgpu::vertex_attr_array; + +use zerocopy::AsBytes; + +#[repr(C)] +#[derive(Debug, Copy, Clone, AsBytes, PartialEq)] +pub struct RectangleInstance { + pub position: [f32; 2], + pub size: [f32; 2], + pub color: [f32; 4], +} +impl RectangleInstance { + pub fn desc<'a>() -> wgpu::VertexBufferDescriptor<'a> { + wgpu::VertexBufferDescriptor { + stride: std::mem::size_of::() as wgpu::BufferAddress, + step_mode: wgpu::InputStepMode::Instance, + attributes: &vertex_attr_array!(1 => Float2,2 => Float2,3 => Float4), + } + } +} diff --git a/src/rectangle_pipeline/mod.rs b/src/rectangle_pipeline/mod.rs new file mode 100644 index 00000000..d35a2fc0 --- /dev/null +++ b/src/rectangle_pipeline/mod.rs @@ -0,0 +1,6 @@ +mod instance_data; + +mod rectangle_pipeline; + +pub use instance_data::RectangleInstance; +pub use rectangle_pipeline::RectanglePipeline; diff --git a/src/rectangle_pipeline/rectangle_pipeline.rs b/src/rectangle_pipeline/rectangle_pipeline.rs new file mode 100644 index 00000000..c1434812 --- /dev/null +++ b/src/rectangle_pipeline/rectangle_pipeline.rs @@ -0,0 +1,66 @@ +use super::RectangleInstance; + +use crate::wgpu_jumpstart::{shader, Instances, RenderPipelineBuilder, SimpleQuad}; + +use crate::MainState; + +pub struct RectanglePipeline { + render_pipeline: wgpu::RenderPipeline, + + simple_quad: SimpleQuad, + + instances: Instances, +} + +impl<'a> RectanglePipeline { + pub fn new(state: &MainState, device: &wgpu::Device) -> Self { + let vs_module = shader::create_module(device, include_bytes!("shader/quad.vert.spv")); + let fs_module = shader::create_module(device, include_bytes!("shader/quad.frag.spv")); + + let render_pipeline_layout = + device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { + bind_group_layouts: &[&state.transform_uniform.bind_group_layout], + }); + + let render_pipeline = RenderPipelineBuilder::new(&render_pipeline_layout, &vs_module) + .fragment_stage(&fs_module) + .vertex_buffers(&[ + SimpleQuad::vertex_buffer_descriptor(), + RectangleInstance::desc(), + ]) + .build(device); + + let simple_quad = SimpleQuad::new(device); + let instances = Instances::new(device, 100_000); + + Self { + render_pipeline, + + simple_quad, + + instances, + } + } + pub fn render(&'a self, state: &'a MainState, render_pass: &mut wgpu::RenderPass<'a>) { + render_pass.set_pipeline(&self.render_pipeline); + render_pass.set_bind_group(0, &state.transform_uniform.bind_group, &[]); + + render_pass.set_vertex_buffer(0, &self.simple_quad.vertex_buffer, 0, 0); + render_pass.set_vertex_buffer(1, &self.instances.buffer, 0, 0); + + render_pass.set_index_buffer(&self.simple_quad.index_buffer, 0, 0); + + render_pass.draw_indexed(0..SimpleQuad::indices_len(), 0, 0..self.instances.len()); + } + pub fn update_instance_buffer( + &mut self, + command_encoder: &mut wgpu::CommandEncoder, + device: &wgpu::Device, + instances: Vec, + ) { + if self.instances.data != instances { + self.instances.data = instances; + self.instances.update(command_encoder, device); + } + } +} diff --git a/src/rectangle_pipeline/shader/quad.frag b/src/rectangle_pipeline/shader/quad.frag new file mode 100644 index 00000000..7bfecc90 --- /dev/null +++ b/src/rectangle_pipeline/shader/quad.frag @@ -0,0 +1,10 @@ +#version 450 + + +layout(location=0) in vec4 color; + +layout(location=0) out vec4 f_color; + +void main() { + f_color = color; +} \ No newline at end of file diff --git a/src/rectangle_pipeline/shader/quad.frag.spv b/src/rectangle_pipeline/shader/quad.frag.spv new file mode 100644 index 0000000000000000000000000000000000000000..fe52ae4e0a2a5f53eda4400eb2b8fceaa7e817d9 GIT binary patch literal 372 zcmYk1OA7%}6vvMl^YA9cP9yut0x7YzvGV~WQp%(734JOX<^Q`g)MvU#lX9qBI6Wy^g ve*r(sF+0GamzA~ZPX{v-ZlVpDM=uUFFEN4gTr54S3j7PH^aa0FJym=FF2)mJ literal 0 HcmV?d00001 diff --git a/src/rectangle_pipeline/shader/quad.vert b/src/rectangle_pipeline/shader/quad.vert new file mode 100644 index 00000000..324cf53f --- /dev/null +++ b/src/rectangle_pipeline/shader/quad.vert @@ -0,0 +1,28 @@ +#version 450 + +layout(location=0) in vec2 a_position; + +layout(location=1) in vec2 i_pos; +layout(location=2) in vec2 i_size; +layout(location=3) in vec4 i_color; + +layout(location=0) out vec4 color; + +layout(set=0, binding=0) +uniform Uniforms { + mat4 u_Transform; +}; + +void main() { + color = i_color; + + mat4 i_Transform = mat4( + vec4(0.5*i_size.x, 0.0, 0.0, 0.0), + vec4(0.0, 0.5*i_size.y, 0.0, 0.0), + vec4(0.0, 0.0, 1.0, 0.0), + vec4(i_pos, 0.0, 1.0) + ); + + + gl_Position = u_Transform * i_Transform * vec4(a_position, 0.0, 1.0); +} \ No newline at end of file diff --git a/src/rectangle_pipeline/shader/quad.vert.spv b/src/rectangle_pipeline/shader/quad.vert.spv new file mode 100644 index 0000000000000000000000000000000000000000..bb5e6cf736ba2a6f2fa07ebd0f762f33ee37e4d7 GIT binary patch literal 2252 zcmY+E*=`e242Fk>v}G;(PDu&-QuZC%LV*@2P}bY1f`CQ}2}**5xZ;KffJfq~xIyCk zW{#`jRL1si`#-klgxW}REX&sLH=e!B%Cj{a!OyY{*=V5`mR>DQ4~FljFJC!t#^$V6 zB$_ipmS-*UX(jJ!uR}z)BTZxud4kmV8$ti3uues_M&G)3y-u%>)|Vr1l}H_AqVQk$ zSGt1_z5b^n$2;=YAph1bYrHRSeeMm=b^4z{f9$lD+x@rg{;>TO7qrB+jr9ikFz`SM!8mlw&9Jt3B=FxAux&7NB zwW9^5{iRi%t(H9y%J=-actyU};PML1{B9_u`T z85gVO$ss0pWzrscZO`=f&N`8-1Bb4Z{z;WcNcpQ@gL;q??wFH;>$3~xgQaa9jk-$Ahw+D zG&p_F;=y?cTTb!dY+%b{EO@Q=9UVcM$cxm|(S)H^v118yPr-Q{+gxLEP9ec@0^2z} zft|z_lOwQG33Km(olcnh59|zf1MviQ7Q2B|`KA+AR)3LwrBhE+XRLKf<=|7d6Ho zBj$+5n_I&6cNe>QiY?{|>>0M0`->T#W1DL%-rP^_87p$iyUelQar6sh4zXY7(O*XX I!g?L~2S<{F%K!iX literal 0 HcmV?d00001 diff --git a/src/scene/menu_scene/bg_pipeline/bg_pipeline.rs b/src/scene/menu_scene/bg_pipeline/bg_pipeline.rs new file mode 100644 index 00000000..46354d94 --- /dev/null +++ b/src/scene/menu_scene/bg_pipeline/bg_pipeline.rs @@ -0,0 +1,68 @@ +use crate::wgpu_jumpstart::{shader, Gpu, RenderPipelineBuilder, SimpleQuad, Uniform}; +use zerocopy::AsBytes; + +pub struct BgPipeline { + render_pipeline: wgpu::RenderPipeline, + + simple_quad: SimpleQuad, + time_uniform: Uniform, +} + +impl<'a> BgPipeline { + pub fn new(gpu: &Gpu) -> Self { + let vs_module = shader::create_module(&gpu.device, include_bytes!("shader/quad.vert.spv")); + let fs_module = shader::create_module(&gpu.device, include_bytes!("shader/quad.frag.spv")); + + let time_uniform = Uniform::new( + &gpu.device, + TimeUniform::default(), + wgpu::ShaderStage::FRAGMENT, + ); + + let render_pipeline_layout = + &gpu.device + .create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { + bind_group_layouts: &[&time_uniform.bind_group_layout], + }); + + let render_pipeline = RenderPipelineBuilder::new(&render_pipeline_layout, &vs_module) + .fragment_stage(&fs_module) + .vertex_buffers(&[SimpleQuad::vertex_buffer_descriptor()]) + .build(&gpu.device); + + let simple_quad = SimpleQuad::new(&gpu.device); + + Self { + render_pipeline, + + simple_quad, + + time_uniform, + } + } + pub fn render(&'a self, render_pass: &mut wgpu::RenderPass<'a>) { + render_pass.set_pipeline(&self.render_pipeline); + render_pass.set_bind_group(0, &self.time_uniform.bind_group, &[]); + + render_pass.set_vertex_buffer(0, &self.simple_quad.vertex_buffer, 0, 0); + + render_pass.set_index_buffer(&self.simple_quad.index_buffer, 0, 0); + + render_pass.draw_indexed(0..SimpleQuad::indices_len(), 0, 0..1); + } + pub fn update_time(&mut self, gpu: &mut Gpu, time: f32) { + self.time_uniform.data.time = time; + self.time_uniform.update(&mut gpu.encoder, &gpu.device); + } +} + +#[repr(C)] +#[derive(Clone, Copy, AsBytes)] +struct TimeUniform { + time: f32, +} +impl Default for TimeUniform { + fn default() -> Self { + Self { time: 0.0 } + } +} diff --git a/src/scene/menu_scene/bg_pipeline/mod.rs b/src/scene/menu_scene/bg_pipeline/mod.rs new file mode 100644 index 00000000..75928280 --- /dev/null +++ b/src/scene/menu_scene/bg_pipeline/mod.rs @@ -0,0 +1,3 @@ +mod bg_pipeline; + +pub use bg_pipeline::BgPipeline; diff --git a/src/scene/menu_scene/bg_pipeline/shader/quad.frag b/src/scene/menu_scene/bg_pipeline/shader/quad.frag new file mode 100644 index 00000000..230b35da --- /dev/null +++ b/src/scene/menu_scene/bg_pipeline/shader/quad.frag @@ -0,0 +1,83 @@ +#version 450 + + +layout(location=0) in vec2 uv; +layout(location=0) out vec4 f_color; + + +layout(set=0, binding=0) +uniform Uniforms2 { + float u_time; +}; + +mat2 rotZ(float angle) { + float ca = cos(angle); + float sa = sin(angle); + return mat2(ca, -sa, sa, ca); +} + +void note_render(vec2 uv, float pos, inout vec3 color) { + float mod_x = mod(uv.x, 0.1 * 2.5 * 2.0); + + vec3 col = vec3(160.0 / 255.0, 81.0 / 255.0, 238.0 / 255.0); + + if (pos == 0.5) { + col = vec3(113.0 / 255.0, 48.0 / 255.0, 178.0 / 255.0); + } + + if (uv.y > 0.0 && uv.y < 0.5) { + color = mix(color, col, + smoothstep(-0.002, 0., 127. / 5800. - abs(mod_x - pos))); + } +} + +#define speed -0.5 +#define liveTime 2.6 + +void main() { + vec2 st = uv; + vec3 color = vec3(0.12); + + float d = 0.0; + + st *= rotZ(0.7); + st.x *= 1.5; + st.x = mod(st.x, 0.5); + + { + st.y += 0.5; + + float off = 0.0; + vec2 pos = st; + + pos.y -= mod((u_time * speed + off) / 5.0, 1.0) * liveTime; + note_render(pos, 0.1, color); + + off = 1.0; + pos = st; + pos.y -= mod((u_time * speed + off) / 5.0, 1.0) * liveTime; + note_render(pos, 0.1 * 2.0, color); + + off = 3.0; + pos = st; + pos.y -= mod((u_time * speed + off) / 5.0, 1.0) * liveTime; + note_render(pos, 0.1 * 3.0, color); + + off = 2.0; + pos = st; + pos.y -= mod((u_time * speed + off) / 5.0, 1.0) * liveTime; + note_render(pos, 0.1 * 4.0, color); + + off = 0.0; + pos = st; + pos.y -= mod((u_time * speed + off) / 5.0, 1.0) * liveTime; + note_render(pos, 0.1 * 5.0, color); + + off = 4.0; + pos = st; + pos.y -= mod((u_time * speed + off) / 5.0, 1.0) * liveTime; + note_render(pos, 0.1 * 5.0, color); + } + + f_color = vec4(color / 2.5, 1.0); +} \ No newline at end of file diff --git a/src/scene/menu_scene/bg_pipeline/shader/quad.frag.spv b/src/scene/menu_scene/bg_pipeline/shader/quad.frag.spv new file mode 100644 index 0000000000000000000000000000000000000000..4023df184514b56e86010cd27a77d444fdc3844d GIT binary patch literal 6188 zcmZ9P37A!78OP7eof%Mw9Wg5!pnNopgh7;WU~I!`EX=f`1tyql6wIYzX;0KFDoxwN zk_OE7Rg6q3kydSJ-xmVR_Ov2UNy*>u-18p4=iGVT=llQv@B4n|JKz7D@7}4k&KQwp zE&Pql+FP>xGd^pDXW6K%BOe#{UeG&h-TIZY=ALo71!J;WUT4kNY(&<^Xsqd5HDKa} z!~?`Q>eRUasK%^Wwuh#6)U>`GWi+|L#`>kF)MqaM<~5@j`vxvv-JkQ3*<{9n#`^wc zgZ%?5`v*_iSf8_i@{RSb1=QEF3FJ3yw6~T`1g~wZ%jcN{UeQ?H7-TdzMc&uMCxO@H zxGg&syr!{o*=vhBZ65iu7#h*lSSDVY%*Pg8dUpTO;-WXi7ZVtGE3N=3)maSj4h7EAt8=6u+_uIh_&)t^2v%;^e z@U0a-RN>ny{H6-uS>a!)@H;AexWe~V_`V9?U*QKT{7{7-uJ9uj?(^)0o3ILwo|LgRwJ@w)`FNJy4s% z{38o&?TPT?7}c8dv}MPG)$HjcKc>Le*guxhxxAkFag5fgPa`v)(Yd0}{7mZXnNDQc zrbWSH4MXg>@b%lbFO2!S;P>1;u;?_d?)v5u z_E=|b5-Xj@81+vE-+Az0+3$gH+wPu{pAFw}XEZ_wf?AT13qIGPJI)u5v$Cz_V=kqN%v$ zGv->nCdWzck($?(``qc9UTkFSBw`Kn*ARZ}_nflU`QqAd0Q0#u_$4_V>Ir@syk0-K z%H3R$C~?4+8OQjIlqYT9gzFHFHN|*XLIBoJ)cwV z`5fH&Jfl2e$_5BIA{y@U5Ka_CmJ#%9|>yH$?oBj5^c@g0|vk-UmLN3+^-xaYQ%qXz? z@4GS|7d`8i6Qc?Bn6nS;T-Q+JHC|4rEhpkSYUhx5ZGQJ!@0sNsK5zYm`W4j3>xH(0 zG5RhBN1yY`t&99Cl6=g&3Qhg0V%}GR)n*aV_bPBYuiU!GuP*Wn8Dn05FQ{Ky%sT*9 zOXqFCo!36sE4NO(meD3WW`Fd( z4IF*$h1|N>i+7ayTITyKx6XHYGhvPu>r=PCY#N09ZZsR<#CRPMd%GPRo@@il z!;|a5da{)mBFsnM#|j>v$itHxiaO7hj}xgU^6=yn;HoE|L{kq>J_S}wJ^3^|_2e^f z>(s-O&w|xcPd*1%Pd)iOTs`&V3-H+6@Z^hV>fy@*Onw@Z`H-HT%Pp z?}4Mwy^vcMo_xQ|*YfXvxpl*gw-h$EtMCyq=JoyQ@>d8;h)WegXfz?t^ehyDP`32lM_3-4EVD;3KU%}N=Pks$oPd)h! zJoYv``7N4yc=9{2n*HI)@4?aMUdXKrPySHmYx(ahxpn&)XA!Zt2f^XV0kAwgxf84> z`-uI7`RMy&!NU`Icyd=!rzd|RQcvXJ$)CYhPyT|Y9-jOatd@H6H+bsF-{ID&hbR94 ztEZm)6Rw_mayMK(_2eFS>}`1RFEsV=>kc!f zp4_vvK9T64$P z8+q)b`|mU2XFTCPj$xcoVE1iefyXgUBHZ5-7-K(A1;_qcb9%w!Sw9W#d^3r-mnVYN z<2Ut_z-m6*?wxb0iJfmQ5xr-CUDHk6-#o@M2{n7~rG7r6pQG%nxw8m0*Da1YyTSLP zMb0tSya?=?7ZP#Z9v$%kAJ<{cxrCbQ5PLtqzt1A{Gx)Q??seSnbHMr# z{JCKFJh2>V?3 Zg@k?XjrZWXt<_iW$Gm$M_v{#F$3sRrO#T1> literal 0 HcmV?d00001 diff --git a/src/scene/menu_scene/bg_pipeline/shader/quad.vert b/src/scene/menu_scene/bg_pipeline/shader/quad.vert new file mode 100644 index 00000000..10cbc510 --- /dev/null +++ b/src/scene/menu_scene/bg_pipeline/shader/quad.vert @@ -0,0 +1,11 @@ +#version 450 + +layout(location=0) in vec2 a_position; + +layout(location=0) out vec2 uv; + +void main() { + uv = (a_position + vec2(1.0,1.0))/2.0; + gl_Position = vec4(a_position,0.0,1.0); +} +// \ No newline at end of file diff --git a/src/scene/menu_scene/bg_pipeline/shader/quad.vert.spv b/src/scene/menu_scene/bg_pipeline/shader/quad.vert.spv new file mode 100644 index 0000000000000000000000000000000000000000..5eeba45e8c9506a2367f1e5f3814541a2cfb06e5 GIT binary patch literal 1012 zcmYk4O-me65JjIe_84QLF@8s*ZCoaZ3l%|(h6v-r#fXrt3`rvm<0wuml2zRKyYj2t z2%gj3&!mPsujwq^+EA#eRFF=#dv6z zLNyaSrwxOPZr;})1!G_VH2F0+{~}IM{jW>NslB;1mz2+R&#o>9d68dIDdGM(^5?y? zPImnxyDqXjLfDGeHy0mhg^^NkUnQUSi_`pfrY`2}h1~aEes!1+if;dB_L6fdb2q)- zOU@phLu=E${VtbL6+35)kLcKbHF+&^)jr+yKh9p%d2iI|%ekjE8SAN=;@@)>PL2L7 zUW+pYb3DO|EMs#iv2RAL{B9lFznuBkoc0s*#@;RWnY^{%f)M`fe_=Lt<3LVC%{zST zz#gV>e9r!7_@CxXfu`Pg26)F3@hqo$xn(@(jWx^(d!6UBZ}ZM#Tzy~FJs*fuU|sJq zUIbd~^J5j3^;Yq%=Uv;(=FaR{lYfLsIQL+k`weh6_w^noYR-LhYHkwWU5JO8dylWy z+*c~Qf4Nw93E#RW=-q?glAIQ~6?{2o>(Gror$DVa=kk4gqlR;R0`A87z0)`aPgK|e E&ok^iH2?qr literal 0 HcmV?d00001 diff --git a/src/scene/menu_scene/menu_scene.rs b/src/scene/menu_scene/menu_scene.rs new file mode 100644 index 00000000..a9ef3d9e --- /dev/null +++ b/src/scene/menu_scene/menu_scene.rs @@ -0,0 +1,310 @@ +use crate::{ + midi_device::{MidiDevicesMenager, MidiPortInfo}, + scene::{Scene, SceneEvent, SceneType}, + time_menager::Timer, + ui::Ui, + wgpu_jumpstart::Gpu, + MainState, +}; + +use super::bg_pipeline::BgPipeline; +use std::sync::mpsc; +use std::thread; + +pub enum Event { + MidiOpen(lib_midi::Midi, MidiPortInfo), +} + +pub struct MenuScene { + aysnc_job: async_job::Job, + bg_pipeline: BgPipeline, + midi_device_select: MidiDeviceSelect, + file: Option, + timer: Timer, +} + +impl MenuScene { + pub fn new(gpu: &mut Gpu, _state: &mut MainState) -> Self { + let (sender, receiver) = mpsc::channel(); + + let midi_device_select = MidiDeviceSelect::new(); + + let timer = Timer::new(); + + Self { + aysnc_job: async_job::Job::new(receiver, sender), + bg_pipeline: BgPipeline::new(&gpu), + midi_device_select, + file: None, + timer, + } + } +} + +impl Scene for MenuScene { + fn state_type(&self) -> SceneType { + SceneType::MainMenu + } + fn update(&mut self, state: &mut MainState, gpu: &mut Gpu, ui: &mut Ui) -> SceneEvent { + self.timer.update(); + let time = self.timer.get_elapsed() / 1000.0; + + self.bg_pipeline.update_time(gpu, time); + // Listen To Async Job Finish Event + if self.aysnc_job.working { + if let Ok(event) = self.aysnc_job.receiver.try_recv() { + self.aysnc_job.working = false; + + match event { + async_job::Event::MidiLoaded(mut midi) => { + midi.merged_track.notes = midi + .merged_track + .notes + .into_iter() + .filter(|n| n.ch != 9) + .collect(); + self.file = Some(midi); + } + async_job::Event::Err(e) => log::warn!("Midi Load: {}", e), + } + } + } + + // Select File Button + if button::queue( + state, + ui, + "Select File", + (state.window_size.0 / 2.0, state.window_size.1 / 2.0 - 100.0), + (500.0, 100.0), + false, + ) { + let tx = self.aysnc_job.sender.clone(); + + self.aysnc_job.working = true; + thread::spawn(move || { + let path = tinyfiledialogs::open_file_dialog("Select Midi", "", None); + + if let Some(path) = path { + let midi = lib_midi::Midi::new(&path); + + if let Ok(midi) = midi { + tx.send(async_job::Event::MidiLoaded(midi)) + .expect("tx send failed in midi loader"); + } else if let Err(e) = midi { + tx.send(async_job::Event::Err(e)) + .expect("tx send failed in midi loader"); + } + } else { + tx.send(async_job::Event::Err("File dialog returned None".into())) + .expect("tx send failed in midi loader"); + } + }); + } + + self.midi_device_select.queue(ui, &state); + + if self.file.is_some() + && button::queue( + state, + ui, + "Play", + ( + state.window_size.0 - 250.0 / 2.0 - 10.0, + state.window_size.1 - 80.0 / 2.0 - 10.0, + ), + (250.0, 80.0), + false, + ) + { + let file = std::mem::replace(&mut self.file, None); + let select = std::mem::replace(&mut self.midi_device_select, MidiDeviceSelect::new()); + return SceneEvent::MainMenu(Event::MidiOpen(file.unwrap(), select.get_selected())); + } + + SceneEvent::None + } + fn render(&mut self, _state: &mut MainState, gpu: &mut Gpu, frame: &wgpu::SwapChainOutput) { + let encoder = &mut gpu.encoder; + { + let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { + attachment: &frame.view, + resolve_target: None, + load_op: wgpu::LoadOp::Load, + store_op: wgpu::StoreOp::Store, + clear_color: wgpu::Color { + r: 0.0, + g: 0.0, + b: 0.0, + a: 0.0, + }, + }], + depth_stencil_attachment: None, + }); + self.bg_pipeline.render(&mut render_pass); + } + } +} + +struct MidiDeviceSelect { + midi_device_menager: MidiDevicesMenager, + midi_outs: Vec, + pub selected_id: usize, +} +impl MidiDeviceSelect { + fn new() -> Self { + let midi_device_menager = MidiDevicesMenager::new(); + Self { + midi_outs: midi_device_menager.get_outs(), + midi_device_menager, + selected_id: 0, + } + } + fn get_selected(mut self) -> MidiPortInfo { + self.midi_outs.remove(self.selected_id) + } + fn next(&mut self) { + self.selected_id += 1; + } + fn prev(&mut self) { + self.selected_id -= 1; + } + fn update_outs_list(&mut self) { + self.midi_outs = self.midi_device_menager.get_outs(); + log::info!("{:?}", self.midi_outs); + } + fn queue(&mut self, ui: &mut Ui, state: &MainState) { + self.update_outs_list(); + + let text = if self.midi_outs.len() > self.selected_id { + &self.midi_outs[self.selected_id].name + } else { + "No Midi Devices" + }; + + ui.queue_text(wgpu_glyph::Section { + text, + color: [1.0, 1.0, 1.0, 1.0], + screen_position: (state.window_size.0 / 2.0, state.window_size.1 / 2.0 + 25.0), + scale: wgpu_glyph::Scale::uniform(40.0), + layout: wgpu_glyph::Layout::Wrap { + line_breaker: Default::default(), + h_align: wgpu_glyph::HorizontalAlign::Center, + v_align: wgpu_glyph::VerticalAlign::Center, + }, + ..Default::default() + }); + + if button::queue( + state, + ui, + "<", + ( + state.window_size.0 / 2.0 - 250.0 / 2.0, + state.window_size.1 / 2.0 + 100.0, + ), + (250.0, 50.0), + self.selected_id == 0, + ) { + self.prev(); + } + + if button::queue( + state, + ui, + ">", + ( + state.window_size.0 / 2.0 + 250.0 / 2.01, + state.window_size.1 / 2.0 + 100.0, + ), + (250.0, 50.0), + self.selected_id + 1 >= self.midi_outs.len(), + ) { + self.next(); + } + } +} + +mod async_job { + use std::sync::mpsc::{Receiver, Sender}; + + pub enum Event { + MidiLoaded(lib_midi::Midi), + Err(String), + } + + pub struct Job { + pub receiver: Receiver, + pub sender: Sender, + + pub working: bool, + } + impl Job { + pub fn new(receiver: Receiver, sender: Sender) -> Self { + Self { + receiver, + sender, + working: false, + } + } + } +} + +mod button { + use crate::ui::ButtonInstance; + pub fn queue( + state: &super::MainState, + ui: &mut super::Ui, + text: &str, + pos: (f32, f32), + size: (f32, f32), + disabled: bool, + ) -> bool { + let (x, y) = pos; + let (w, h) = size; + + let coll_x = x - w / 2.0; + let coll_y = y - h / 2.0; + + let is_hover = state.mouse_pos.0 > coll_x + && state.mouse_pos.0 < coll_x + w + && state.mouse_pos.1 > coll_y + && state.mouse_pos.1 < coll_y + h; + + let color = if is_hover { + // [121.0 / 255.0, 85.0 / 255.0, 195.0 / 255.0] + [56.0 / 255.0, 145.0 / 255.0, 1.0] + } else { + // [111.0 / 255.0, 75.0 / 255.0, 185.0 / 255.0] + [160.0 / 255.0, 81.0 / 255.0, 232_558.0 / 255.0] + }; + + ui.queue_button(ButtonInstance { + position: [x, y], + size: [w, h], + color, + radius: 15.0, + is_hovered: if is_hover { 1 } else { 0 }, + }); + + ui.queue_text(wgpu_glyph::Section { + text, + color: if !disabled { + [1.0, 1.0, 1.0, 1.0] + } else { + [0.3, 0.3, 0.3, 1.0] + }, + screen_position: (x, y), + scale: wgpu_glyph::Scale::uniform(40.0), + layout: wgpu_glyph::Layout::Wrap { + line_breaker: Default::default(), + h_align: wgpu_glyph::HorizontalAlign::Center, + v_align: wgpu_glyph::VerticalAlign::Center, + }, + ..Default::default() + }); + + is_hover && state.mouse_clicked && !disabled + } +} diff --git a/src/scene/menu_scene/mod.rs b/src/scene/menu_scene/mod.rs new file mode 100644 index 00000000..4c78908d --- /dev/null +++ b/src/scene/menu_scene/mod.rs @@ -0,0 +1,5 @@ +mod bg_pipeline; +mod menu_scene; + +pub use bg_pipeline::BgPipeline; +pub use menu_scene::{Event, MenuScene}; diff --git a/src/scene/mod.rs b/src/scene/mod.rs new file mode 100644 index 00000000..2da0a6c6 --- /dev/null +++ b/src/scene/mod.rs @@ -0,0 +1,6 @@ +pub mod menu_scene; +pub mod playing_scene; + +mod scene; + +pub use scene::*; diff --git a/src/scene/playing_scene/keyboard.rs b/src/scene/playing_scene/keyboard.rs new file mode 100644 index 00000000..e5464c89 --- /dev/null +++ b/src/scene/playing_scene/keyboard.rs @@ -0,0 +1,164 @@ +use super::keyboard_pipeline::{KeyInstance, KeyStateInstance, KeyboardPipeline}; +use crate::wgpu_jumpstart::Gpu; +use crate::MainState; + +// const KEY_C: u8 = 0; +const KEY_CIS: u8 = 1; +// const KEY_D: u8 = 2; +const KEY_DIS: u8 = 3; +// const KEY_E: u8 = 4; +// const KEY_F: u8 = 5; +const KEY_FIS: u8 = 6; +// const KEY_G: u8 = 7; +const KEY_GIS: u8 = 8; +// const KEY_A: u8 = 9; +const KEY_AIS: u8 = 10; +// const KEY_B: u8 = 11; + +pub struct Key { + pub x: f32, + pub w: f32, + pub is_black: bool, +} + +pub struct PianoKeyboard { + pub keyboard_pipeline: KeyboardPipeline, + pub all_keys: Vec, +} + +impl PianoKeyboard { + pub fn new(state: &MainState, gpu: &Gpu) -> Self { + let keyboard_pipeline = KeyboardPipeline::new(state, gpu); + Self { + keyboard_pipeline, + all_keys: Vec::new(), + } + } + pub fn resize(&mut self, state: &crate::MainState, gpu: &mut Gpu) { + let w = state.window_size.0 / 52.0; + let h = 120.0 * state.window_size.0 / state.window_size.1; + + let mut x_offset = 0.0; + + self.all_keys.clear(); + let mut white_keys = Vec::new(); + let mut black_keys = Vec::new(); + + let mut rectangles = Vec::new(); + for id in 0..88 { + let x = id as f32 * w; + let y = 0.0; + + let key_id = id + 9; + let note_id = key_id % 12; + + if note_id == KEY_CIS + || note_id == KEY_DIS + || note_id == KEY_FIS + || note_id == KEY_GIS + || note_id == KEY_AIS + { + x_offset -= w; + + let w = w / 1.5; + let h = h / 1.5; + + let black_offset = w; + + let x = x_offset + black_offset + x + w / 2.0; + let y = y + h / 2.0 + state.window_size.1 - h * 1.5; + + self.all_keys.push(Key { + x, + w, + is_black: true, + }); + black_keys.push((x, y, w, h)); + } else { + let x = x_offset + x + w / 2.0; + let y = y + h / 2.0 + state.window_size.1 - h; + + self.all_keys.push(Key { + x, + w, + is_black: false, + }); + white_keys.push((x, y, w, h)); + } + } + + // To lazy to use depth buffer so we draw white keys first + for rect in white_keys { + rectangles.push(KeyInstance { + position: [rect.0, rect.1], + size: [rect.2 - 1.0, rect.3], + is_black: 0, + radius: 5.0 * state.window_size.0 / state.window_size.1, + }); + } + for rect in black_keys { + rectangles.push(KeyInstance { + position: [rect.0, rect.1], + size: [rect.2 - 1.0, rect.3], + is_black: 1, + radius: 5.0 * state.window_size.0 / state.window_size.1, + }); + } + + self.keyboard_pipeline + .update_instance_buffer(gpu, rectangles); + } + pub fn update_notes(&mut self, gpu: &mut Gpu, notes: [bool; 88]) { + let mut white_keys = Vec::new(); + let mut black_keys = Vec::new(); + + // Becouse white keys are first in instance bufer we need to split input + for id in 0..88 { + let key_id = id + 9; + let note_id = key_id % 12; + let on = notes[id as usize]; + + if note_id == KEY_CIS + || note_id == KEY_DIS + || note_id == KEY_FIS + || note_id == KEY_GIS + || note_id == KEY_AIS + { + black_keys.push(on); + } else { + white_keys.push(on); + } + } + + let notes_out = white_keys + .into_iter() + .chain(black_keys.into_iter()) + .map(|b| if b { 1 } else { 0 }) + .map(|b| KeyStateInstance { on: b }) + .collect(); + + self.keyboard_pipeline + .update_notes_state(&mut gpu.encoder, &gpu.device, notes_out); + } + pub fn render(&mut self, state: &MainState, gpu: &mut Gpu, frame: &wgpu::SwapChainOutput) { + let encoder = &mut gpu.encoder; + { + let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { + attachment: &frame.view, + resolve_target: None, + load_op: wgpu::LoadOp::Load, + store_op: wgpu::StoreOp::Store, + clear_color: wgpu::Color { + r: 0.0, + g: 0.0, + b: 0.0, + a: 0.0, + }, + }], + depth_stencil_attachment: None, + }); + self.keyboard_pipeline.render(state, &mut render_pass); + } + } +} diff --git a/src/scene/playing_scene/keyboard_pipeline/instance_data.rs b/src/scene/playing_scene/keyboard_pipeline/instance_data.rs new file mode 100644 index 00000000..d5d5ef1b --- /dev/null +++ b/src/scene/playing_scene/keyboard_pipeline/instance_data.rs @@ -0,0 +1,36 @@ +use wgpu::vertex_attr_array; + +use zerocopy::AsBytes; + +#[repr(C)] +#[derive(Debug, Copy, Clone, AsBytes)] +pub struct KeyInstance { + pub position: [f32; 2], + pub size: [f32; 2], + pub is_black: u32, + pub radius: f32, +} +impl KeyInstance { + pub fn vertex_buffer_descriptor<'a>() -> wgpu::VertexBufferDescriptor<'a> { + wgpu::VertexBufferDescriptor { + stride: std::mem::size_of::() as wgpu::BufferAddress, + step_mode: wgpu::InputStepMode::Instance, + attributes: &vertex_attr_array!(1 => Float2,2 => Float2,3 => Uint,4 => Float), + } + } +} + +#[repr(C)] +#[derive(Debug, Copy, Clone, AsBytes, PartialEq)] +pub struct KeyStateInstance { + pub on: u32, +} +impl KeyStateInstance { + pub fn vertex_buffer_descriptor<'a>() -> wgpu::VertexBufferDescriptor<'a> { + wgpu::VertexBufferDescriptor { + stride: std::mem::size_of::() as wgpu::BufferAddress, + step_mode: wgpu::InputStepMode::Instance, + attributes: &vertex_attr_array!(5 => Uint), + } + } +} diff --git a/src/scene/playing_scene/keyboard_pipeline/keyboard_pipeline.rs b/src/scene/playing_scene/keyboard_pipeline/keyboard_pipeline.rs new file mode 100644 index 00000000..3fc98400 --- /dev/null +++ b/src/scene/playing_scene/keyboard_pipeline/keyboard_pipeline.rs @@ -0,0 +1,73 @@ +use super::{KeyInstance, KeyStateInstance}; + +use crate::wgpu_jumpstart::{shader, Gpu, Instances, RenderPipelineBuilder, SimpleQuad}; + +use crate::MainState; + +pub struct KeyboardPipeline { + render_pipeline: wgpu::RenderPipeline, + simple_quad: SimpleQuad, + + instances: Instances, + instances_state: Instances, +} + +impl<'a> KeyboardPipeline { + pub fn new(state: &MainState, gpu: &Gpu) -> Self { + let vs_module = shader::create_module(&gpu.device, include_bytes!("shader/quad.vert.spv")); + let fs_module = shader::create_module(&gpu.device, include_bytes!("shader/quad.frag.spv")); + + let render_pipeline_layout = + &gpu.device + .create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { + bind_group_layouts: &[&state.transform_uniform.bind_group_layout], + }); + + let render_pipeline = RenderPipelineBuilder::new(&render_pipeline_layout, &vs_module) + .fragment_stage(&fs_module) + .vertex_buffers(&[ + SimpleQuad::vertex_buffer_descriptor(), + KeyInstance::vertex_buffer_descriptor(), + KeyStateInstance::vertex_buffer_descriptor(), + ]) + .build(&gpu.device); + + let simple_quad = SimpleQuad::new(&gpu.device); + let instances = Instances::new(&gpu.device, 88); + let instances_state = Instances::new(&gpu.device, 88); + + Self { + render_pipeline, + simple_quad, + instances, + instances_state, + } + } + pub fn render(&'a self, state: &'a MainState, render_pass: &mut wgpu::RenderPass<'a>) { + render_pass.set_pipeline(&self.render_pipeline); + render_pass.set_bind_group(0, &state.transform_uniform.bind_group, &[]); + + render_pass.set_vertex_buffer(0, &self.simple_quad.vertex_buffer, 0, 0); + render_pass.set_vertex_buffer(1, &self.instances.buffer, 0, 0); + render_pass.set_vertex_buffer(2, &self.instances_state.buffer, 0, 0); + + render_pass.set_index_buffer(&self.simple_quad.index_buffer, 0, 0); + + render_pass.draw_indexed(0..SimpleQuad::indices_len(), 0, 0..self.instances.len()); + } + pub fn update_instance_buffer(&mut self, gpu: &mut Gpu, instances: Vec) { + self.instances.data = instances; + self.instances.update(&mut gpu.encoder, &gpu.device); + } + pub fn update_notes_state( + &mut self, + command_encoder: &mut wgpu::CommandEncoder, + device: &wgpu::Device, + instances_state: Vec, + ) { + if self.instances_state.data != instances_state { + self.instances_state.data = instances_state; + self.instances_state.update(command_encoder, device); + } + } +} diff --git a/src/scene/playing_scene/keyboard_pipeline/mod.rs b/src/scene/playing_scene/keyboard_pipeline/mod.rs new file mode 100644 index 00000000..2169b28f --- /dev/null +++ b/src/scene/playing_scene/keyboard_pipeline/mod.rs @@ -0,0 +1,6 @@ +mod instance_data; + +mod keyboard_pipeline; + +pub use instance_data::{KeyInstance, KeyStateInstance}; +pub use keyboard_pipeline::KeyboardPipeline; diff --git a/src/scene/playing_scene/keyboard_pipeline/shader/quad.frag b/src/scene/playing_scene/keyboard_pipeline/shader/quad.frag new file mode 100644 index 00000000..125d8bfb --- /dev/null +++ b/src/scene/playing_scene/keyboard_pipeline/shader/quad.frag @@ -0,0 +1,33 @@ +#version 450 + + +layout(location=0) in vec3 color; +layout(location=1) in vec2 uv; +layout(location=2) in vec2 size; +layout(location=3) in float radius; +layout(location=4) in float is_black; + +layout(location=0) out vec4 f_color; + +void main() { + vec3 col = color; + + float alpha = 1.0; + + vec2 pos = uv * size; + + float xMax = size.x - radius; + float yMax = size.y - radius; + + if (pos.x < radius && pos.y > yMax ){ + alpha *= 1.0 - smoothstep(radius - 0.7,radius+ 0.7, length(pos - vec2(radius,yMax))); + }else if (pos.x > xMax && pos.y > yMax ){ + alpha *= 1.0 - smoothstep(radius - 0.7,radius+ 0.7, length(pos - vec2(xMax,yMax))); + } + + if(is_black==1.0){ + f_color = vec4(col, alpha); + }else{ + f_color = vec4(col*alpha,1.0); + } +} \ No newline at end of file diff --git a/src/scene/playing_scene/keyboard_pipeline/shader/quad.frag.spv b/src/scene/playing_scene/keyboard_pipeline/shader/quad.frag.spv new file mode 100644 index 0000000000000000000000000000000000000000..b30e79c753a08d80b0be6b3f7fa8c57da9d15839 GIT binary patch literal 2700 zcmYk5S5uTx42C~I6cxdSy{y<9q9|5CY*k;3jlWOMH*EX;3A2 zynTpu6L*&D5&6#C9L~gj6A!gP608ecM*%6Td>XPyF`wy*y7=D!_Md2 zjxR^toX$hcoX%?}V(?#4IgH_o^Rdk{I|zsT8w_WR2{jqOFmd`s=9wGZ1` z`Tkq+#iQ1KY-zb^M>Dn?cMswA-@xmBkm4}bs^?4R!=2s zokXgTQ;6|;{u$!kh`6({XL~w{#6HP)r{zTtr?DFl_t+d~5HY#&KM-@)&d*snvv|XE z*xoU}FFp9;QR6(eyBlwK0b7o^?{W$4=eroYh=^HBJ8Jb}TPwdWm+{4;))nk#Bx+s7 zmLu*RBCk63r4QS>-b=nU?duxa&%WgJBVzWY9W}3G=lA6XzF6#nbG?~3u`jn0798LD zHsbvv?;ULC7XDpq?-u)V4_l6S?8|*@^B9YLd4L`JVm$WcVZz-Pd$uRJu`iFX-4}V$ z!vJ=EUmoL&$&GyxbJj5{b$)-`qsaFJyNG;c|NQR`B4XC{4TjNvzJakJWE}Agw9PXQ zT|(w3-+4bn?6W`Z^>b`Feu0f)i#eOXUL>p<-ACpT^h?C^@{OC@yN;rbc{lsCCwq&Y zCb088y~4MrFZ5*3lZYJgs9#PvY8HE)uza6W3Cs8S2F&yFjXT5W(^$Sw`~Anwk0Ad6 DhO@2y literal 0 HcmV?d00001 diff --git a/src/scene/playing_scene/keyboard_pipeline/shader/quad.vert b/src/scene/playing_scene/keyboard_pipeline/shader/quad.vert new file mode 100644 index 00000000..1bac0d80 --- /dev/null +++ b/src/scene/playing_scene/keyboard_pipeline/shader/quad.vert @@ -0,0 +1,62 @@ +#version 450 + +layout(location=0) in vec2 a_position; + +layout(location=1) in vec2 i_pos; +layout(location=2) in vec2 i_size; +layout(location=3) in uint i_is_black; +layout(location=4) in float i_radius; +layout(location=5) in uint i_on; + +layout(location=0) out vec3 color; +layout(location=1) out vec2 uv; +layout(location=2) out vec2 size; +layout(location=3) out float radius; +layout(location=4) out float is_black; + +layout(set=0, binding=0) +uniform Uniforms { + mat4 u_Transform; + vec2 u_size; +}; + +void main() { + + if(i_on==1){ + // if (i_is_black==1) { + // color = vec3( 91.0 / 255.0, 55.0 / 255.0, 165.0 / 255.0 ); + // } else { + // color = vec3( 121.0 / 255.0, 85.0 / 255.0, 195.0 / 255.0 ); + // }; + if (i_is_black==1){ + color=vec3(0.5,0.5,0.5); + } + else{ + color=vec3(0.7,0.7,0.7); + } + } + else{ + if (i_is_black==1){ + color=vec3(0.1,0.1,0.1); + } + else{ + color=vec3(1.0,1.0,1.0); + } + } + + size = i_size; + radius = i_radius; + uv = (a_position + vec2(1.0,1.0))/2.0; + is_black = float(i_is_black); + + mat4 i_Transform = mat4( + vec4(0.5*i_size.x, 0.0, 0.0, 0.0), + vec4(0.0, 0.5*i_size.y, 0.0, 0.0), + vec4(0.0, 0.0, 1.0, 0.0), + vec4(i_pos, 0.0, 1.0) + ); + + + // if (i_is_black==0){z=0.0;}else{z=1.0;} + gl_Position = u_Transform * i_Transform * vec4(a_position, 0.0, 1.0); +} \ No newline at end of file diff --git a/src/scene/playing_scene/keyboard_pipeline/shader/quad.vert.spv b/src/scene/playing_scene/keyboard_pipeline/shader/quad.vert.spv new file mode 100644 index 0000000000000000000000000000000000000000..138e2edae232c7f9de6000c5c70defd9b53c530e GIT binary patch literal 3372 zcmZ9NZC8|46owyx0m{&hGrO3`%)iTtFQJm z`Wbz;-_y%lt<`lsb2dJ!!@4YPt|eBXr|Zn?&DwIKbFIvy_Q(iBIoFp&N7^Gt);iq%fYPpFmMa$ zTa95?lJB?Dw+`ceCw+&$-$~yy==+_@zTc_5-aDl49Wmegq;F07ekXm0zTc>v@12YM zMXK~$ICl4^EI9S#oP)DQInNTDwp_oS!9vfxMVRQJy)ZxgNqk3{;}K?$l{oh`uL>5} z(Y4Vd`~56%ct-t+!ppM#WSKX?8f()&NX{_xIB<;PyPtc=pH05+Ol~UWKb-snsCdT6 z^P8G?h#d|vkAuUkImoQ5VZp1yA= zzH>X-t}*`(vwKv;xWF6x=Uc36+Gaqt{aM?3bM#C8w!jhPd%tbHCt%@-2?GdZ5&BJl5`{BnA0?}WeS|Hy3xwt}wzwS{AvfihOE9-p*cL_K`?{jRqvfdYoE9-rk zxU$|?aQ4FydS7G9mGx?gE9+fPoO;pQI<`HuXZFaRMC=B({qX#r*Yibe72C6U7HhZG zh^=8;r*&D!bztlqa|5`i+G?2Vovtz)^ZvD&w?GSQ0Pl}$zXS5&cd)DASJoKs0(0c! z&TV7+KBHGXY&l18x3J~xU!384Y;%ppox8_AbNIJ`dzoXscbM;j99XaC(Kqj3RL_9_ E0AGysl>h($ literal 0 HcmV?d00001 diff --git a/src/scene/playing_scene/mod.rs b/src/scene/playing_scene/mod.rs new file mode 100644 index 00000000..d4753fb6 --- /dev/null +++ b/src/scene/playing_scene/mod.rs @@ -0,0 +1,9 @@ +mod keyboard; +mod keyboard_pipeline; + +mod notes; +mod notes_pipeline; + +mod playing_scene; + +pub use playing_scene::PlayingScene; diff --git a/src/scene/playing_scene/notes.rs b/src/scene/playing_scene/notes.rs new file mode 100644 index 00000000..400265c0 --- /dev/null +++ b/src/scene/playing_scene/notes.rs @@ -0,0 +1,104 @@ +use super::notes_pipeline::{NoteInstance, NotesPipeline}; +use crate::wgpu_jumpstart::Gpu; +use crate::MainState; + +pub struct Notes { + notes_pipeline: NotesPipeline, +} + +impl Notes { + pub fn new(state: &MainState, gpu: &Gpu, midi: &lib_midi::Midi) -> Self { + let notes_pipeline = NotesPipeline::new(state, gpu, midi); + Self { notes_pipeline } + } + pub fn resize( + &mut self, + state: &crate::MainState, + gpu: &mut Gpu, + keys: &[super::keyboard::Key], + midi: &lib_midi::Midi, + ) { + let mut instances = Vec::new(); + + let mut longer_than_88 = false; + for note in midi.merged_track.notes.iter() { + if note.note >= 21 && note.note <= 108 { + let key = &keys[note.note as usize - 21]; + let ar = state.window_size.0 / state.window_size.1; + + // let colors: [[[f32; 3]; 2]; 2] = [ + // [ + // [146.0 / 255.0, 255.0 / 255.0, 48.0 / 255.0], + // [87.0 / 255.0, 183.0 / 255.0, 12.0 / 255.0], + // ], + // [ + // [118.0 / 255.0, 166.0 / 255.0, 211.0 / 255.0], + // [54.0 / 255.0, 109.0 / 255.0, 173.0 / 255.0], + // ], + // ]; + let colors: [[[f32; 3]; 2]; 2] = [ + [ + [93.0 / 255.0, 188.0 / 255.0, 1.0], + [48.0 / 255.0, 124.0 / 255.0, 1.0], + // [49.0 / 255.0, 151.0 / 255.0, 255.0 / 255.0], + // [5.0 / 255.0, 92.0 / 255.0, 182.0 / 255.0], + ], + [ + [210.0 / 255.0, 89.0 / 255.0, 222.0 / 255.0], + [125.0 / 255.0, 69.0 / 255.0, 134.0 / 255.0], + // [165.0 / 255.0, 84.0 / 255.0, 255.0 / 255.0], + // [114.0 / 255.0, 0.0 / 255.0, 219.0 / 255.0], + ], + ]; + + let color = colors[note.track_id % 2]; + let color = if key.is_black { color[1] } else { color[0] }; + + let h = if note.duration >= 0.1 { + note.duration + } else { + 0.1 + }; + + instances.push(NoteInstance { + position: [key.x, note.start], + size: [key.w - 1.0, h], + color, + radius: 4.0 * ar, + }); + } else { + longer_than_88 = true; + } + } + + if longer_than_88 { + log::warn!("Midi Wider Than 88 Keys!"); + } + + self.notes_pipeline.update_instance_buffer(gpu, instances); + } + pub fn update(&mut self, gpu: &mut Gpu, time: f32) { + self.notes_pipeline.update_time(gpu, time); + } + pub fn render(&mut self, state: &MainState, gpu: &mut Gpu, frame: &wgpu::SwapChainOutput) { + let encoder = &mut gpu.encoder; + { + let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { + attachment: &frame.view, + resolve_target: None, + load_op: wgpu::LoadOp::Load, + store_op: wgpu::StoreOp::Store, + clear_color: wgpu::Color { + r: 0.0, + g: 0.0, + b: 0.0, + a: 0.0, + }, + }], + depth_stencil_attachment: None, + }); + self.notes_pipeline.render(state, &mut render_pass); + } + } +} diff --git a/src/scene/playing_scene/notes_pipeline/instance_data.rs b/src/scene/playing_scene/notes_pipeline/instance_data.rs new file mode 100644 index 00000000..01434dc5 --- /dev/null +++ b/src/scene/playing_scene/notes_pipeline/instance_data.rs @@ -0,0 +1,21 @@ +use wgpu::vertex_attr_array; + +use zerocopy::AsBytes; + +#[repr(C)] +#[derive(Debug, Copy, Clone, AsBytes)] +pub struct NoteInstance { + pub position: [f32; 2], + pub size: [f32; 2], + pub color: [f32; 3], + pub radius: f32, +} +impl NoteInstance { + pub fn vertex_buffer_descriptor<'a>() -> wgpu::VertexBufferDescriptor<'a> { + wgpu::VertexBufferDescriptor { + stride: std::mem::size_of::() as wgpu::BufferAddress, + step_mode: wgpu::InputStepMode::Instance, + attributes: &vertex_attr_array!(1 => Float2,2 => Float2,3 => Float3,4 => Float), + } + } +} diff --git a/src/scene/playing_scene/notes_pipeline/mod.rs b/src/scene/playing_scene/notes_pipeline/mod.rs new file mode 100644 index 00000000..16264431 --- /dev/null +++ b/src/scene/playing_scene/notes_pipeline/mod.rs @@ -0,0 +1,6 @@ +mod instance_data; + +mod notes_pipeline; + +pub use instance_data::NoteInstance; +pub use notes_pipeline::NotesPipeline; diff --git a/src/scene/playing_scene/notes_pipeline/notes_pipeline.rs b/src/scene/playing_scene/notes_pipeline/notes_pipeline.rs new file mode 100644 index 00000000..9f3512d0 --- /dev/null +++ b/src/scene/playing_scene/notes_pipeline/notes_pipeline.rs @@ -0,0 +1,91 @@ +use super::NoteInstance; + +use crate::wgpu_jumpstart::{shader, Gpu, Instances, RenderPipelineBuilder, SimpleQuad, Uniform}; + +use crate::MainState; + +use zerocopy::AsBytes; + +pub struct NotesPipeline { + render_pipeline: wgpu::RenderPipeline, + + simple_quad: SimpleQuad, + + instances: Instances, + time_uniform: Uniform, +} + +impl<'a> NotesPipeline { + pub fn new(state: &MainState, gpu: &Gpu, midi: &lib_midi::Midi) -> Self { + let vs_module = shader::create_module(&gpu.device, include_bytes!("shader/quad.vert.spv")); + let fs_module = shader::create_module(&gpu.device, include_bytes!("shader/quad.frag.spv")); + + let time_uniform = Uniform::new( + &gpu.device, + TimeUniform::default(), + wgpu::ShaderStage::VERTEX, + ); + + let render_pipeline_layout = + &gpu.device + .create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { + bind_group_layouts: &[ + &state.transform_uniform.bind_group_layout, + &time_uniform.bind_group_layout, + ], + }); + + let render_pipeline = RenderPipelineBuilder::new(&render_pipeline_layout, &vs_module) + .fragment_stage(&fs_module) + .vertex_buffers(&[ + SimpleQuad::vertex_buffer_descriptor(), + NoteInstance::vertex_buffer_descriptor(), + ]) + .build(&gpu.device); + + let simple_quad = SimpleQuad::new(&gpu.device); + + let instances = Instances::new(&gpu.device, midi.merged_track.notes.len()); + + Self { + render_pipeline, + + simple_quad, + + instances, + + time_uniform, + } + } + pub fn render(&'a self, state: &'a MainState, render_pass: &mut wgpu::RenderPass<'a>) { + render_pass.set_pipeline(&self.render_pipeline); + render_pass.set_bind_group(0, &state.transform_uniform.bind_group, &[]); + render_pass.set_bind_group(1, &self.time_uniform.bind_group, &[]); + + render_pass.set_vertex_buffer(0, &self.simple_quad.vertex_buffer, 0, 0); + render_pass.set_vertex_buffer(1, &self.instances.buffer, 0, 0); + + render_pass.set_index_buffer(&self.simple_quad.index_buffer, 0, 0); + + render_pass.draw_indexed(0..SimpleQuad::indices_len(), 0, 0..self.instances.len()); + } + pub fn update_instance_buffer(&mut self, gpu: &mut Gpu, instances: Vec) { + self.instances.data = instances; + self.instances.update(&mut gpu.encoder, &gpu.device); + } + pub fn update_time(&mut self, gpu: &mut Gpu, time: f32) { + self.time_uniform.data.time = time; + self.time_uniform.update(&mut gpu.encoder, &gpu.device); + } +} + +#[repr(C)] +#[derive(Clone, Copy, AsBytes)] +struct TimeUniform { + time: f32, +} +impl Default for TimeUniform { + fn default() -> Self { + Self { time: 0.0 } + } +} diff --git a/src/scene/playing_scene/notes_pipeline/shader/quad.frag b/src/scene/playing_scene/notes_pipeline/shader/quad.frag new file mode 100644 index 00000000..d7968ea7 --- /dev/null +++ b/src/scene/playing_scene/notes_pipeline/shader/quad.frag @@ -0,0 +1,33 @@ +#version 450 + + +layout(location=0) in vec3 color; +layout(location=1) in vec2 uv; +layout(location=2) in vec2 size; +layout(location=3) in float radius; + +layout(location=0) out vec4 f_color; + + +void main() { + vec3 col = color; + + float alpha = 1.0; + + vec2 pos = uv * size; + + float xMax = size.x - radius; + float yMax = size.y - radius; + + if (pos.x < radius && pos.y < radius ){ + alpha *= 1.0 - smoothstep(radius - 0.7,radius+ 0.7, length(pos - vec2(radius,radius))); + }else if (pos.x < radius && pos.y > yMax ){ + alpha *= 1.0 - smoothstep(radius - 0.7,radius+ 0.7, length(pos - vec2(radius,yMax))); + }else if (pos.x > xMax && pos.y > yMax ){ + alpha *= 1.0 - smoothstep(radius - 0.7,radius+ 0.7, length(pos - vec2(xMax,yMax))); + }else if (pos.x > xMax && pos.y < radius ){ + alpha *= 1.0 - smoothstep(radius - 0.7,radius+ 0.7, length(pos - vec2(xMax,radius))); + } + + f_color = vec4(col, alpha); +} \ No newline at end of file diff --git a/src/scene/playing_scene/notes_pipeline/shader/quad.frag.spv b/src/scene/playing_scene/notes_pipeline/shader/quad.frag.spv new file mode 100644 index 0000000000000000000000000000000000000000..3f3f8eff5e4e5dd08d0daf7051d10cb0187b2bb9 GIT binary patch literal 3540 zcmYk7_j8q15QaYzLX82WiS-ifXhcI0MVgAS1Px$scqJgwKw>VzfCUh-Vy}n={VN=Q z^nY?JGtT%tH{UyRK4xd%eb3(AJ$qiDvt!NNs+z^0dDXAg%(tZKAg-!~)tt5;9NII~ z*E%xNw|-!q89h~JJJFm))q-j^UOUtrJ?z0kY#Fu!y9zsxE#^1o& zZ@V~~&)L55vG$p@z~hs6b9?a3v5AAtcHCKAjGq{9an{-HIdya<&)%)kt$= z?`%#dcCN|h$mmpS=De5qSaI&m2lmc%9;B~xT#5M^dp~1$U~E5Q?`3R#V>e}Nz5ISD zS>~VaNTS>lqGWNVdJP$9Y885)w+jvtQJENTE7u9FhSWB#5gjLnat=3-* zlC!t@OYqi`H(rXjma+AXy|Y|m?`*uB^Gop!%+G$tm$f7L+12G>bM5Kxjop!4^4HYy zGN!t|=FPty>+kPx&wUOor)I4CJ>DJ3Ti4iK%WdH0y`Q;$a(}~g;mviYYAri-XX-1l zJ5gVWJy%C%+*`++sVCo!`3_s?W^H4!b=|*t?sPfkJ`=A5yU#OB=lLa=Ir9GAIpnr; z?(VL@%y-Aua3|_ZK5+x=j!*L&&sSsSG%#y=7rE5D8f;D9AvLZ6%O}1TT-Lmf*c^Fl zx(_*Py005BXD{cxvF1~AEwMF!<2SzhO_(|Ie^Ij!@AohF^z3F#&bJh&*DYXsmGiG7 zmQSx+!DX-8h|Q7zhkB{2|C1MWo_@@}>c)I~I@bW+&$-N5kL|#mOPrn?z~#<163eOU z4+*Zswo^_)Nb+HYbh24#L z-p$_(`R$mzyK!b`+J;3>=BsJ*GQ&OK9!wou<6cb8-26R|bJynE^M zFHaKtoAh}K?A@Z5r@`jPM=#HSt>anr@+??g_@%M5$L zrCwejmNPeck#pDX&t18*yy1&r?^x<(AF+ITjDS~RdBgo+bL4%Om+*eRi)RNgIeUrI z>mb-(rCvsf<H@qW%_&LQkg%(=wrIS%$+ zv*!u0T(qEGUd7CbUM6cUIqIc_dB4;>0(NhSr@-DVdN~RoVn49oV#{^?#i9z4c`KL$5JmRh~?AcB)HVe zDPnWveV5aCKi|c(w=p?;iPP&Hu)RvXoFSG^uXn+|Oa3i;4{VOScSv1*^zuH~zTV4x zdpg&Lct7Vd=L1a6xy0%D5!jyD^I5Q5w4h!-#>|OcKB>9nsFzQ%QZJtomwNe}*c#Ex z7hrSbqn9ti*6}QQ`3fApcpklcUGwV2nVrep+~XUtdND6|{T5v6|W4-<6;(x&A*Rgy25wriU`v1e9z~=ac`xz|fox@$Ixeoj=mCxaS V!Ti1X7cgskhx2&P{-eT1?0>qR0x|#q literal 0 HcmV?d00001 diff --git a/src/scene/playing_scene/notes_pipeline/shader/quad.vert b/src/scene/playing_scene/notes_pipeline/shader/quad.vert new file mode 100644 index 00000000..99668767 --- /dev/null +++ b/src/scene/playing_scene/notes_pipeline/shader/quad.vert @@ -0,0 +1,54 @@ +#version 450 + +layout(location=0) in vec2 a_position; + +layout(location=1) in vec2 i_pos; +layout(location=2) in vec2 i_size; +layout(location=3) in vec3 i_color; +layout(location=4) in float i_radius; + +layout(location=0) out vec3 o_color; +layout(location=1) out vec2 o_uv; +layout(location=2) out vec2 o_size; +layout(location=3) out float o_radius; + +layout(set=0, binding=0) +uniform Uniforms { + mat4 u_Transform; + vec2 u_size; +}; +layout(set=1, binding=0) +uniform Uniforms2 { + float u_time; +}; + + +#define speed 400.0 +void main() { + vec2 pos = i_pos; + float start = pos.y; + pos.y = u_size.y - 120.0 * u_size.x/u_size.y; + + vec2 size = i_size; + size.y = size.y * speed; + + pos = pos - vec2(0.0,size.y/2.0); + + vec2 offset = vec2(0.0, -(start - u_time) * speed); + + + mat4 i_Transform = mat4( + vec4(size.x / 2.0, 0.0, 0.0, 0.0), + vec4(0.0, size.y / 2.0, 0.0, 0.0), + vec4(0.0, 0.0, 1.0, 0.0), + vec4(pos + offset, 0.0, 1.0) + ); + + + o_color = i_color; + o_radius = i_radius; + o_uv = (a_position + vec2(1.0,1.0))/2.0; + o_size = size; + + gl_Position = u_Transform * i_Transform * vec4(a_position, 0.0, 1.0); +} \ No newline at end of file diff --git a/src/scene/playing_scene/notes_pipeline/shader/quad.vert.spv b/src/scene/playing_scene/notes_pipeline/shader/quad.vert.spv new file mode 100644 index 0000000000000000000000000000000000000000..b6ee4bc3e55de60443351121b402780f626a8aab GIT binary patch literal 3824 zcmZvdX?GPx5Qc}WD1u;ETrdVuQ9(q)rpTITPyvGh+`UA&!NHr{a2G%n2_T9Kdh{px z$)Dp#zj%(%Gt-qbcV=`mJJko;@H%& zZSBtaZ98{uH)2KBTLc>OFn^9dWOh2A(_V%=hcpn0OGq2Jj9fvkBe#%V{(8`Vkf@&w z)g1l!9>6!>Y!^Or<~30ny8_+rOt(4(?$6esPtWBu&DN|TtbCy0w7a!at?9Y8KG-tW zwRdan{94_7z1cbg8Lne9y7ZLTz2u9rec2vxb7rPpr+7bquYjZW4s2`4Il8q@KAURn zE2(16ICfrHmv!w|vv#i8Xts#yD|(kN;{KwK&01^veBLegXl;%BKCZ9mbF{Zx<2c8?i&$D;0+}#uxIZ&jJIx_Yt%KLT;%hN&1X&XiL3cMWAi!m z`#!|>MC@CsV$WCX+tBZ!iX*>gD|YDjT*a~81#E}?bhw8FwDaZE!8u3HwFIXvSJv+> z<{CFd1@#7^jnQ6z7w=0r)}()V@|j}|*e}fp;@Fa~ z=WGt^4WW&7t&j4%8Z9Rt=GSwVi~4J^U7Ni1#omXK>mx^5&-~UCKZb~1-{WXwt*KxA zB$8!+9f|eD*~I?5Pm#~~t%hfRj>Y`q0}B&)wD4z#hUu;M%sJM66>V)fbBn!ea?W+F zuOSZO$I$NE{YUQO*jcu4a4R1BbON!yqEBsKFQTpMIh*T?WXoGy?7a^EEVg?Lzu0>& z=lprJvF3EX*n1!ITiC{iU))Zd^Sju_#=Q~yF65%mz6*0~<-QyDCE}hGW1Qn#an5@1 z4Yc)EBEwh zk9YkE#P{JFsLolRd=d9lCC>XFxks?|-J!m>{dcE0@W z#65%UTJ*&ppT&+nx+k%5(VyqBeUtj^tvKesfGtlUzl?BPXhIp1;2+lC$U%quo7 zYQBW+nj-#X?1+zE?SPYy{qDq;8$~AB?;v^?vK`T959D?u=GSL!>&Qjkz1W_swLR1Q zh~Evr6%lhF@zK|VVCTu-NcZFrwtV#AFt(h1i1i)8c76I>i+5En_We4x`>x)RH^B0- z?+I+Va^K~5>L^&=+#!+kO*nI|L}EX0VarF(x3T4_Igf$Or7v9lE2<{BF+>#3SUgCNx z-1~|18xwOsz;>UG;6B8btLFPCan*buC$5_B6SxzIBl3NUEmzG~OI$VI*~C@zO~cs_ zN96kqTdtb#T;i(v&L_@%(c3zRXM@5o?;;9L9R@$I<${KNrzWWDe2SNI33l2i#7+OK5T2yQ|n&khpi(u;u*U z7H{q=?9n9Nckl1lh_U*tc{y>B_Z#r$@pp)O{GB=C z?-66 Self { + let piano_keyboard = PianoKeyboard::new(state, &gpu); + let notes = Notes::new(state, &gpu, &midi); + + Self { + piano_keyboard, + notes, + player: Player::new(midi, port), + rectangle_pipeline: RectanglePipeline::new(&state, &gpu.device), + } + } +} + +impl Scene for PlayingScene { + fn state_type(&self) -> SceneType { + SceneType::Playing + } + fn resize(&mut self, state: &mut MainState, gpu: &mut Gpu) { + self.piano_keyboard.resize(state, gpu); + self.notes + .resize(state, gpu, &self.piano_keyboard.all_keys, &self.player.midi); + } + fn update(&mut self, state: &mut MainState, gpu: &mut Gpu, ui: &mut Ui) -> SceneEvent { + let notes_on = self.player.update(); + + let size_x = state.window_size.0 * self.player.percentage; + ui.queue_rectangle(RectangleInstance { + position: [size_x / 2.0, 0.0], + size: [size_x, 10.0], + color: [56.0 / 255.0, 145.0 / 255.0, 1.0, 1.0], + }); + + self.piano_keyboard.update_notes(gpu, notes_on); + self.notes.update(gpu, self.player.time); + + SceneEvent::None + } + fn render(&mut self, state: &mut MainState, gpu: &mut Gpu, frame: &wgpu::SwapChainOutput) { + self.notes.render(state, gpu, frame); + self.piano_keyboard.render(state, gpu, frame); + + let encoder = &mut gpu.encoder; + { + let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { + attachment: &frame.view, + resolve_target: None, + load_op: wgpu::LoadOp::Load, + store_op: wgpu::StoreOp::Store, + clear_color: wgpu::Color { + r: 0.0, + g: 0.0, + b: 0.0, + a: 0.0, + }, + }], + depth_stencil_attachment: None, + }); + self.rectangle_pipeline.render(state, &mut render_pass) + } + } + fn key_released(&mut self, _state: &mut MainState, key: VirtualKeyCode) { + match key { + VirtualKeyCode::Space => { + self.player.pause_resume(); + } + _ => {} + } + } +} + +use crate::midi_device::MidiPortInfo; +use std::collections::HashMap; +struct Player { + midi: lib_midi::Midi, + midi_first_note_start: f32, + midi_last_note_end: f32, + midi_device: crate::midi_device::MidiDevicesMenager, + active_notes: HashMap, + timer: Timer, + /// Time from start of the song without offsets + percentage: f32, + time: f32, +} + +impl Player { + fn new(midi: lib_midi::Midi, port: MidiPortInfo) -> Self { + let mut midi_device = crate::midi_device::MidiDevicesMenager::new(); + + log::info!("{:?}", midi_device.get_outs()); + + midi_device.connect_out(port); + + let midi_first_note_start = if let Some(note) = midi.merged_track.notes.first() { + note.start + } else { + 0.0 + }; + let midi_last_note_end = if let Some(note) = midi.merged_track.notes.last() { + note.start + note.duration + } else { + 0.0 + }; + + Self { + midi, + midi_first_note_start, + midi_last_note_end, + midi_device, + active_notes: HashMap::new(), + timer: Timer::new(), + percentage: 0.0, + time: 0.0, + } + } + fn update(&mut self) -> [bool; 88] { + self.timer.update(); + let raw_time = self.timer.get_elapsed() / 1000.0; + self.percentage = raw_time / self.midi_last_note_end; + self.time = raw_time + self.midi_first_note_start - 3.0; + + let mut notes_state: [bool; 88] = [false; 88]; + + let filtered: Vec<&lib_midi::MidiNote> = self + .midi + .merged_track + .notes + .iter() + .filter(|n| n.start <= self.time && n.start + n.duration + 0.5 > self.time) + .collect(); + + let midi_out = &mut self.midi_device; + for n in filtered { + use std::collections::hash_map::Entry; + + if n.start + n.duration >= self.time { + if n.note >= 21 && n.note <= 108 { + notes_state[n.note as usize - 21] = true; + } + + if let Entry::Vacant(_e) = self.active_notes.entry(n.id) { + self.active_notes.insert(n.id, n.note); + midi_out.send(&[0x90, n.note, n.vel]); + } + } else if let Entry::Occupied(_e) = self.active_notes.entry(n.id) { + self.active_notes.remove(&n.id); + midi_out.send(&[0x80, n.note, n.vel]); + } + } + + notes_state + } + fn pause_resume(&mut self) { + self.clear(); + self.timer.pause_resume(); + } + fn clear(&mut self) { + for (_id, n) in self.active_notes.iter() { + self.midi_device.send(&[0x80, *n, 0]); + } + self.active_notes.clear(); + } +} + +impl Drop for Player { + fn drop(&mut self) { + self.clear(); + } +} diff --git a/src/scene/scene.rs b/src/scene/scene.rs new file mode 100644 index 00000000..0f246b89 --- /dev/null +++ b/src/scene/scene.rs @@ -0,0 +1,23 @@ +use crate::ui::Ui; +use crate::wgpu_jumpstart::Gpu; +use crate::MainState; + +use winit::event::VirtualKeyCode; + +pub trait Scene { + fn state_type(&self) -> SceneType; + fn resize(&mut self, _state: &mut MainState, _gpu: &mut Gpu) {} + fn update(&mut self, state: &mut MainState, gpu: &mut Gpu, ui: &mut Ui) -> SceneEvent; + fn render(&mut self, state: &mut MainState, gpu: &mut Gpu, frame: &wgpu::SwapChainOutput); + fn key_released(&mut self, _state: &mut MainState, _key: VirtualKeyCode) {} +} + +pub enum SceneType { + MainMenu, + Playing, +} + +pub enum SceneEvent { + MainMenu(super::menu_scene::Event), + None, +} diff --git a/src/shaders/BlurParticleGLShader.h b/src/shaders/BlurParticleGLShader.h deleted file mode 100644 index 29d016e4..00000000 --- a/src/shaders/BlurParticleGLShader.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef BlurParticleGLShader_H -#define BlurParticleGLShader_H - -#include - -namespace BlurParticle_GLShader { - -std::string frag = - "#version 330 \n" - "in vec2 uv;" - "uniform sampler2D screenTexture;" - "out vec4 fragColor;" - "void main(){" - " vec3 color = texture(screenTexture, uv).rgb;" - " color += textureOffset(screenTexture, uv, 2*ivec2(-2,-2)).rgb;" - " color += textureOffset(screenTexture, uv, 2*ivec2(-2,2)).rgb;" - " color += textureOffset(screenTexture, uv, 2*ivec2(-1,0)).rgb;" - " color += textureOffset(screenTexture, uv, 2*ivec2(0,-1)).rgb;" - " color += textureOffset(screenTexture, uv, 2*ivec2(0,1)).rgb;" - " color += textureOffset(screenTexture, uv, 2*ivec2(1,0)).rgb;" - " color += textureOffset(screenTexture, uv, 2*ivec2(2,-2)).rgb;" - " color += textureOffset(screenTexture, uv, 2*ivec2(2,2)).rgb;" - " fragColor = vec4(mix(vec3(0.0, 0.0, 0.0), color/9.0, 0.99),1);" - "}"; -std::string vert = "#version 330 \n " - "layout(location = 0) in vec2 v;" - "out vec2 uv;" - "void main(){" - " gl_Position = vec4(v, 0.0, 1.0);" - " uv = v.xy * 0.5 + 0.5;" - "}"; -} // namespace BlurParticle_GLShader -#endif \ No newline at end of file diff --git a/src/shaders/RenderTextureGLShader.h b/src/shaders/RenderTextureGLShader.h deleted file mode 100644 index 3a336093..00000000 --- a/src/shaders/RenderTextureGLShader.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef RenderTextureGLShader_H -#define RenderTextureGLShader_H - -#include - -namespace RenderTexture_GLShader { - -std::string frag = "#version 330 \n" - "in vec2 uv;" - "uniform sampler2D screenTexture;" - "out vec4 color;" - "void main(){" - " color = texture(screenTexture,uv);" - "}"; -std::string vert = "#version 330 \n " - "layout(location = 0) in vec2 v;" - "out vec2 uv;" - "void main(){" - " gl_Position = vec4(v.xy,0.0f,1.0f);" - " uv = v.xy * 0.5 + 0.5;" - "}"; -} // namespace RenderTexture_GLShader -#endif \ No newline at end of file diff --git a/src/shaders/test.frag b/src/shaders/test.frag deleted file mode 100644 index aba93df4..00000000 --- a/src/shaders/test.frag +++ /dev/null @@ -1,17 +0,0 @@ - -void main(){ - vec2 st = gl_FragCoord.xy/iResolution.xy; - float pct = 0.0; - - pct = 1.0 - distance(st.x,0.5)*2.0; - - if(st.y>0.5){ - pct -= distance(st.y,0.5); - } - - - - vec4 color = vec4(1,0,0,pct); - - gl_FragColor = color; -} \ No newline at end of file diff --git a/src/shaders/test.vert b/src/shaders/test.vert deleted file mode 100644 index dde4458c..00000000 --- a/src/shaders/test.vert +++ /dev/null @@ -1,5 +0,0 @@ -in vec4 position; - -void main(){ - gl_Position = position; -} \ No newline at end of file diff --git a/src/shaders/test2.frag b/src/shaders/test2.frag deleted file mode 100644 index 64fdb463..00000000 --- a/src/shaders/test2.frag +++ /dev/null @@ -1,18 +0,0 @@ -float roundedRectangle (vec2 pos, vec2 size, float radius, float thickness, vec2 uv) -{ - float d = length(max(abs(uv - pos),size) - size) - radius; - return smoothstep(0.66, 0.33, d / thickness * 5.0); -} - -void main(){ - vec2 uv = (gl_FragCoord.xy / iResolution.xx - 0.5) * 8.0; - - - - vec3 rectColor = vec3( sin(iTime), cos(iTime), 0.5); - float intensity = roundedRectangle(vec2(0.0,0.0), vec2(1,1),0.1,0.1,uv); - - vec3 col; - col = mix(col,rectColor, intensity); - gl_FragColor = vec4(col,1.0); -} \ No newline at end of file diff --git a/src/shaders/test3.frag b/src/shaders/test3.frag deleted file mode 100644 index 3eb519e5..00000000 --- a/src/shaders/test3.frag +++ /dev/null @@ -1,21 +0,0 @@ -float roundedRectangle(vec2 pos, vec2 size, float radius, vec2 uv) { - float d = length(max(abs(uv - pos), size) - size) - radius; - return smoothstep(0.66, 0.33, d / 40.0 * 5.0); -} - -void main() { - // vec2 uv = gl_FragCoord.xy / iResolution.y * 2. - 1.; - // uv.x -= (iResolution.x - iResolution.y) / iResolution.y; -// vec2 uv = gl_FragCoord.xy / iResolution.xy; - - vec3 color; - - vec2 size = vec2(100.); - vec2 pos = vec2(6.0+size.x,iResolution.y-size.y-6.0); - - float rect = roundedRectangle(pos,size,1.0,gl_FragCoord.xy); - color += rect; - - - gl_FragColor = vec4(color, 1.0); -} \ No newline at end of file diff --git a/src/shaders/test3.vert b/src/shaders/test3.vert deleted file mode 100644 index cfced1ec..00000000 --- a/src/shaders/test3.vert +++ /dev/null @@ -1,38 +0,0 @@ -#version 330 - -layout(location = 0) in vec2 v; -layout(location = 1) in vec4 id; //note id, start, duration, is minor - -uniform float time; -uniform float mainSpeed; -uniform float minorsWidth = 1.0; - -#define notesCount 52.0 - -out INTERFACE { - float isMinor; - vec2 uv; - vec2 noteSize; -} Out; - - -void main(){ - - float scalingFactor = id.w != 0.0 ? minorsWidth : 1.0; - // Size of the note : width, height based on duration and current speed. - Out.noteSize = vec2(0.9*2.0/notesCount * scalingFactor, id.z*mainSpeed); - - // Compute note shift. - // Horizontal shift based on note id, width of keyboard, and if the note is minor or not. - // Vertical shift based on note start time, current time, speed, and height of the note quad. - const float a = (1.0/(notesCount-1.0)) * (2.0 - 2.0/notesCount); - const float b = -1.0 + 1.0/notesCount; - vec2 noteShift = vec2(id.x * a + b + id.w/notesCount, Out.noteSize.y * 0.5 - 0.5 + mainSpeed * (id.y - time)); - - // Scale uv. - Out.uv = Out.noteSize * v; - Out.isMinor = id.w; - // Output position. - gl_Position = vec4(Out.noteSize * v + noteShift, 0.0 , 1.0) ; - -} \ No newline at end of file diff --git a/src/time_menager.rs b/src/time_menager.rs new file mode 100644 index 00000000..c51a84e2 --- /dev/null +++ b/src/time_menager.rs @@ -0,0 +1,98 @@ +#[cfg(not(target_arch = "wasm32"))] +use std::time::Instant; + +#[cfg(target_arch = "wasm32")] +use crate::web_wrappers::time::Instant; + +pub struct TimeMenager { + fps: Fps, + pub last_time: Instant, +} + +impl Default for TimeMenager { + fn default() -> Self { + Self { + fps: Fps::new(), + last_time: Instant::now(), + } + } +} + +impl TimeMenager { + pub fn new() -> Self { + TimeMenager::default() + } + pub fn update(&mut self) { + self.last_time = Instant::now(); + self.fps.update(); + } + pub fn fps(&self) -> i32 { + self.fps.fps + } +} + +pub struct Timer { + pub time_elapsed: u128, + last_time: Instant, + pub paused: bool, +} +impl Timer { + pub fn new() -> Self { + Self { + time_elapsed: 0, + last_time: Instant::now(), + paused: false, + } + } + pub fn update(&mut self) { + if !self.paused { + // We use nanos only because when using secs timing error quickly piles up + // It is not visible when running 60FPS + // but on higher refresh rate it is important + self.time_elapsed += self.last_time.elapsed().as_nanos(); + } + self.last_time = Instant::now(); + } + pub fn get_elapsed(&self) -> f32 { + self.time_elapsed as f32 / 1_000_000.0 + } + pub fn pause(&mut self) { + self.paused = true; + } + pub fn resume(&mut self) { + self.paused = false; + } + pub fn pause_resume(&mut self) { + if self.paused { + self.paused = false; + } else { + self.paused = true; + } + } +} + +struct Fps { + fps: i32, + fps_counter: i32, + last_time: Instant, +} +impl Fps { + fn new() -> Self { + Self { + fps: 0, + fps_counter: 0, + last_time: Instant::now(), + } + } + fn update(&mut self) { + self.fps_counter += 1; + + if self.last_time.elapsed().as_secs() >= 1 { + self.last_time = Instant::now(); + + self.fps = self.fps_counter; + + self.fps_counter = 0; + } + } +} diff --git a/src/transform_uniform.rs b/src/transform_uniform.rs new file mode 100644 index 00000000..ee8299cd --- /dev/null +++ b/src/transform_uniform.rs @@ -0,0 +1,32 @@ +use zerocopy::AsBytes; + +#[repr(C)] +#[derive(Clone, Copy, AsBytes)] +pub struct TransformUniform { + transform: [f32; 16], + size: [f32; 2], +} +impl Default for TransformUniform { + fn default() -> Self { + Self { + transform: orthographic_projection(1080.0, 720.0), + size: [1080.0, 720.0], + } + } +} +impl TransformUniform { + pub fn update(&mut self, width: f32, height: f32) { + self.transform = orthographic_projection(width, height); + self.size = [width, height]; + } +} + +fn orthographic_projection(width: f32, height: f32) -> [f32; 16] { + #[cfg_attr(rustfmt, rustfmt_skip)] + [ + 2.0 / width, 0.0, 0.0, 0.0, + 0.0, -2.0 / height, 0.0, 0.0, + 0.0, 0.0, 1.0, 0.0, + -1.0, 1.0, 0.0, 1.0, + ] +} diff --git a/src/ui/Roboto-Regular.ttf b/src/ui/Roboto-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2b6392ffe8712b9c5450733320cd220d6c0f4bce GIT binary patch literal 171272 zcmbTf2YeJ&+c!LCW_C9{yQ%b)g#>8<(iEkL(iKp;+(_>rRXU2)(0d5INC#mv0+N7` z(4_`Znuwx!+Yl_MK(Z&_|2ngi%%IQvyx*%oW_NZsGuOF#JtHwmlEQFMrPyXKH)*=B zv1h6zCpMQPxmUBcZQ2!=3%e%C&+L|@Zs(h|>(Kb;sdu|b@~m-^6uGEPyQI1+re<%K zWd9+!N{`+{dk$w~J6DqAkh{2O)81o7$5!9&SS!huQ}BKJe#83@9s8)qE=i87AxZ3T z|DL0UOMX%~?)L(|59&W;e7}U;z=!y*hQxjxGN8}UaUCY~n1Jh_mn2)60eyS+DH`~~o{Q^pn_lGslNB`KiN z(4OOlI~pkdIM2fGW8dmIv~OBm&#Qnh1M6KfeAuYb#Y3e&fTsd|KYV20;hXwB`9zZA ze*jD^Bpbeyl&Ut5q)2wjUkZ{!r4d??)8z_#&J*PHNCkAXi=)3d1{X*ksYz##oK!wr zuGFB5IFWE7g*E7+sj`H>)NJ~TLx1rTFWCV>549lulVI`Uk)7EgK@V%!iHmc^DK5rb zOo?NuEKaHFeL+5v#_#i77IaruIA^lgYx6wWY;$-g%VP^&@;L9C@|zj*o02STDE^a8 z6e|dlYX1vxfdDQLz-8NQo`C9|M`m2JiyS zxVp5rGNhw*CM=kJF6y(A&u)q_Tl4^|O zjwU$R2~k|Tj6{Bz?hPWJLgZ5OtE!2FwlEEQj0_&W1@ zebMXZzi)D+MMPRnFt|MO1riYx^dzr5`%{V3OoTx z*)FwoiHbA3jOo8;^x8TjxBrRQW6B5&tYS#%*NlUI9 z6^Yfl;}cS&#ZpsKQxbp%mXa1LzKJz|K?t%Xvgm=^rp?&0?Y*fx=X7q_tW(Ej9p&e@ zG5hvyyof$&-mz1QW?i^rpnQ6unl)|bu8d~Ww{4s2Xx+D0hZe2-^?SYO^0Xb>=Qf+R zW7}MNo4&m}v~1I-cl$pYt0Nmj>+~(Yr~Y9(AytwRrDSQ=zwko^;HQEi0%dSghL|J1 z0x^eH&A$S@DDlMv2QviQzZ!I>RX$`@K(j8Jvpt2(8h3RI;F zZXtw$I~*(xyy1v;C)$C$%C@@c%t6efL`0{jr2&UPRo}O_^lW@$d*+EQ!v?dLU*0yc z;C9cJr~7{nF}b#M0$&@qZDstJF)!Ec^UCWz*sOt`x5q4Mw)ODd8J(BE-iA+}y1sb( z<57*9eA8+;+fioX)G-T`?|Lk1SG!Y#m%0pt%=A~|B(KmvPF?%heA)-VlD_dqzQ>l^ z7V|~yEBtx}uO=_I50+feR-TX~k1EI?7M31umlcOIJSy6ekSNa>|Lc1ROAh(7`5oR) zm@)pI+~ym$fwgZsVK`6W-*({d@Vh&EjA*%swI``fz%|pKx+aT|Wk+IKSa@oREGMQ% zg@wuKZ~rzuan&KY^V(jC(;tkLn|#Il^Q|pLjA6gAq}Wf{Kvt>kh!%V&?}KYrkb5c} zpbJB!Se^1J=&K6JC@AZZlFE4e@#>#c1_E3q-3DDfzY|Q7+EzC++Ip>k0LZ* zWSq~IIe-Un{0ROI?-;HoV{M|v2L=xCRw>rkj4N=V=yrFynfFB+%v$?RYGx*ECx8U zU8S%?b!C?+J;hR-vO8W@Qk`MRb;H6Fg?u<%LgS>X0k`k{__ccbm!EGdInx&|m@3bn zJ9~yA59NpW37G%nzuAlIS$>6|3jX=p)!Y2~y*r=X#Y%Ppz#F!Y;HT8nA+rH8n*mv= z3nJM_&ef!Br4%AfR_If>8g7>@wMw#lBbU#W!z!wmXKz1^Yj=Z9PR6>Ur8fGtEk@Y5 zc6M~>6+Lo+rZ}VNR!(QOzv&An*()tF+Ns|#E|nP?0!F8@P$-PWsmVo6*`whd=8T%N zGKVQQ&fSB%GeQ1hhFtsI^&LhoSv&8ON1tb3!1reHJ>@arOOPh&@C9S-!N%Il z;-oAoMJZV5I4McHB(ZMVdWntDlIUG`iH-CGTX{a%3E_hA&rT=>UJFkk2hLO0>8VhF zqghvis>xW1ldOVUHzm-FWIff`%09~pO_=CrGv`jrEFQNo$9w$ZPZI}?n^r9Ge!Mt0 z^PQOs)-0W?)RkwBWYX*rAAEQ7Sa+>Pg6G{6|Gj-+)SP+K-p!DS3sXUjw&2+S=!KU0 zdMzG;P!hCW=C2a8EGb(qU4sYiDkJ|#^RoxyYb{v(iolO_3jt@zEY9UnW}ZEp>m4Z1 zJL!Foos42XuHbvv>qC{_ik_3tRwdb41!<@WI4VkgbSM}Q%?zvy5|At~XSP~;d(9Ed z2q;HVb~)3hHb*)76i9a!5G5i?zwU+|IoG9wP?(HOV>{y-=vOwQ@*;3k7~#te|?90uYNrFUC-(z*{N8A zEKSE6D%i562q{i_O<#pz=YOmMj9}76ScPB&tRm6`DFClfdJ2?Ay6vi?1Y{{S)hSg` z;^9u|-bG4+(kA|Tu@o`t^pS7>ym*-xu}-Yrr`HOhmclht@ zMQ<~6$c`k4%*6OK?e^9ZbF3A$H5o%(Kr$`jx?|%*p4_Y(La*Nmk7y9WZf*3 zRmvseD=jop5EzEVZ~hQb?35%0pS ztZG&C2qw&{1wW8`B-TVc;fi!hHg_ttMwPlSiH66mG^n?+$2*7m4LhH4{W16O4=N{q z_ZPq4ZEfXs<0mXzC{Jn9e$t(cB|lB#AM+p6cqcyIwnqK_$;kFC58OSpa(RAnu{0Bw zaj5z-^kLXv5_7=H{jH3W;2Dv56M|W;L6_Qf@XKdluRGwEiTKS|$|z=+oI#TDOJUB$ zFTrQcrQ^y3wI%p0%EV{*7OEb$8jG_@a)i%Z!e`_GnpVYsDq}$JGLZUq`f4l|Ef(~S1--M& zmpT%fRGv(hraFb>|GQO_bgKrFmY(kOdn4UxAU4c^11@oCEZtYG`|7mzZw>4>DM$YH zz{giM4Q-L{3$0g;ozs3+_n`yF4(Yn-^ttT4JBPfM#gCW9+JpG>_N%rPumg>yA(E%A z?zQ*ql%FnxxtMLg}5KGy6HYG-`@0@YHo?mp6TafVWzKr&?0B+w@_m zGrLjgDX}l~u5j@a($m6dRndwaDmXn%ii=lehdoTCvuF_n$l+mOFz0F*vq#aV>ERRw z*v|%C-+w4IZEnj2OTt6PA07DGl(s41OGnJJhw~h+eZtS|3k+Js5--28|Ai_IE)0Ca zvpx(8y3Hm%c+C3jDf~U;wazaLtITRW+vx3;?62SX58FGm`{BYCrYx)8(0ld!ulKPT zEbBDS`0Ej0nqR{`DzWYzwvCl%;q0RaU-LKkq6Jy~y8E-gE8ZurMApYv5xUa>TiRX= z2n-@z1vrr?(3zst-8S4pLNE!D9oV*$M(|T9*WmH9u(B2)J|z}b;6jp)Rg??fb+b>& zHMYw&PkLWv4<4~ed^(agZRK+E4#)-EXEg(`gh0Mxq|Q137K>{5Sz5FtOlWjcc4(>i zXnvu>-GZTVmVQds*Q9W3*GYE8=`ov#>)i~ea9ZN3&kKlF)U z?tf)_&0iMYB!ar9U@%3B#PQ@q(ruOV-nDtkOm988w>-@|nQj+?yG;O}+ybA(knSQ; z`d|3ue~zQHO1cfMl(g??rAw9MZu>$j#n4N`N^S6xUD1q;DqyDg%5ow+u(-Nvv|Elt z0OsQ*GBWC|mi%vz#_z3=A+S+*SyW738o!-?ntgqA$fi`jS9Ts9G;kYBIrlDW!3O*iSNqgYWy6wB<|CPTy zLR;uhQ3^iL*88)OW`c`wjnEC5b|u^V^1bnSdGhUiP`A6y<6R(+BQJu%zP$^0OD~newTug!(5fU6rlaPP`l3jWRO-~l4D}nii zmv8)@H+$;XrOf6je0=%d?K6|-WzOph?m-R{N-exA`yPk375iUrXgBEO7T;7P#nW z!Jz|}l`A>9=M{O!Ri3|n2Yc?~z)xA@T|4;E&t;~tNdEI*gA4f`7V0IBfounfNC2u> zZM1+05%$1i2=aLh0tp6sjNnTPRD{8PN`1rXnT#OV5om&LLc+l9GslT>Y+#;T_5lm! zfB(&Qur8}MZ(hjP$o0IiUk^X|?7Ov#XHQ+D0Is3M0X92u7%9aAE-q@WqokD z;IFt0xC~~}6hD#Pby>|XoW)qP>O>aPVRKYL=tBDQpSX<$YT3;3Or6FrG;dpiUk~t` zcj3tX%gSXon(%vtU+Q>%{KK#k9Pi}$pELXyO*nqSzxLsHJ8(=a8G?LMZ_QRlByDU? zPt^bFl^Hn)&8d53PK&M50)>Ehz&BBr^$C+jh_^csu`}HjN{o|_@}2qYo4=U<(rK*Y zMekcIap8`QS^TE_s`o>i=j*E(XX|=1gXEu4%NDkMmKG%2xai3C{; zfl;RN*eMHxV|GX>G+IJAVd)dBab-DCx+(W`v`nESrOckL*N_+()tZz9x#Qn=Sop2X zpWn;hzH-6(6>RW@-u&M8nH*~A`1@I#GUeILE@kb$Gy44a=_@7=>oT$5#LdI9KOc4G z-RUbQU40wtssoCw07V>zHLxtGL^We67S}*zjftsYURUrMM|n-PpDpakeOuT%!qz-s zYbUN6Ce_z$;SnX+vX~l6X3MZUW{i>C*d>P}UP^=^)blDXbtmJ+w~`<5yYi7e8{hxH z<|&H5$e%c6CV!)RU6inH@1Awa7k~i~fa(PdcIjD7a!}Ny>pY7?Xt7EqYEEKQVt|?# z4t}zXYTl>byF0z#T`pF$pHPAh*RL;0_Fu#refr*_AS}w%BBH`u5IzC)eJF%CROovp z0Jqfa`b)5Q!TO`q0YY>-s;X|5=)fVFeOuuf7Q2a+ts3)9K3~6=e-<6hKiSJS#?L zN0}su~qaJ!k+HB}N(ATk&>lPvq&9Ac5=2%v7C z8W+i)Q(i2*rBo_AX##ESOm-|dDwE` z(W8788*lsJ@whApS{|5G74?i~0lNbGM74LKkReYkA+A$DfO)UIQr^iWpO z5M|j4bb(0EsW;h8Q~?#qE#WR&C}Z7FcG62_NP3G*)xJPeThNT6hy|w6%idN@`dhLs<2jd2E6y-h6{}S zxNr1`-ZOJYog8!MGc|z+c3R_J%y*BDeSPNsxjPPZ=sBuSv)5L1KD3#KEbr``|3>rM zr#tncHIo*O1WShJtbK*HZNmTeG1EL+$CTDHxPD60ho2?7UM zJR2&1nMy-IJmv2b9Td2v#fG^={mbE^ERh;}H}Ar5|D8F**_=B$OJ;x6w!^*|%VgIh zer54wyW~ASmtW;x+s7Ao@)|oYg5v)H#qNP(6{S|1vr-IT&_!0H^9+y;f5*%_v4grvqebCV^vJZA-AEM+2y_fmzwT(IX)|b3+^o?Z)e)HSww{YP6 z)vKnBd!yU-J}i+*G3)-yxVdNGtaEwpLuU!g-2vyXz;Y;h9r|fy%2Qe1Q%1+KUB|LO ztO2s&;tMPr@M|`OGE`cCctPutrQ5@rdxo&5!0U|$j!~6I;zaLgNOvV53)lVL(Idlh zcKQ!Hb@-Q@teKwI+U?HBk`o@Yq^WYs6KQk?OL^otSg?-$wh|gwmbwA@KY-;(;CYDV zC-6)NG(0i^paHrO6lmrAM5eSH!t-*M${`>(#fctkno0}Te+$>s;+omwQ8N(~K(;(i z)O(O#L=C_Zhkg|K)m!}D#4q2w@{`xCemJLBM)HUZeq(r6m|V#(BZ9^K9>3AMkpINJ zuWmTmwsGgn%GvjqhRk10+6w(=@>zQ%R@7GujUtiM`9`cH)+gZ>iU{-k^csn^O=Tg< zvzk&w(4L;~0x%fmije5XNKvw+^AUgp?|@QY|!E z)GnZOOvx23QhZ7J%9J>v1zIXJI#;Fpf_(HeKx$J{iNVsz_tN>R$4~jEhWYP!{OQ|Y zKi^~Q?pZ5_hs1Ge*Nk1eL4+Wnl-1}6jt|-k1nrg_g8-k z+RTFj{|d6=l3Hp3Vc~){PF+TX@io?Hc!NSlLZF&MXpMSGfb3X+S);PFHO^%66LX&Rov8_{3B}FBiZ-*dUtvTJi7dr^Kc- zcriRZH4UwOX==T~7W_=uGQXGFsfSohjfOg8jBud_0WCq&+q$p_3up+7MF$v8k|0fK zw#H9nV++ zMcv1;KKupm9B|PZP_6@@wdTDHXbn>7RAC?n(VIzg;jfPq_GFx1(kx3AS29@A zSgKfe1XwZxEGbUPpehhSd@L>gx@0yHeco#I~%S zZS2`^Ur+mB4C`ah88o?nMquvu2VTli>y4YYr*#iL%UfMOJ9^Z_0p7au$$P7dep2hv zx`a$&T`sA;7U+{Ha$+p&vMj|g?E-pJ1R}yyXoWzFbOC0oc(Ld0lg^mLORbl&#w=a{ zOP0FA_ecR$q3EY+q6Jl`NW2dA4fpZ7U@!x>hDo#-J@`?k$^jWYGS?Dy@j)j^MjM~N zV%N!EE&P(X#@|_Ti$BQSHgEpc9rI>ymlN0XIs76IUROAe)h+Vhck|2B+Lt#0-8|ky ztt6l;Ck@xab(t@}tIcrvkr)k&)K zP5#LdIXnDEd~*EToHZHS+qc^_W3BA^n}0gl`?u}pxOx00f1-Z$*>Z2;vMZ#;y7L~& z1K&!9KIMJ4p7=3m?Tjs* zI&Ye}PEIIh&%8JENrJ47V|9xBaz9%lhb{bE=U{mS)(|W;)6@{EYU)Zzh@63Vi)5DA z2N*h21B~V$s5d(?m;zx5guuxws?|C0V$MFL>$bEC$}-1lucX$Syf}oUhrG8#xHsi> z{7rcs3(<{6Oid9TmDG|OEIR4T0uKC`QX{Kawz(q*zRO}-wR@rc=(aNs9$EIvTb-M| z^m2oa<2x>+&zYCwH_pf)~_N3o&^?BA_;KDw-dR6C=Y$u8rvDqX^N| zNk+XprXm#F2WsdEBejN@)h+Tf>5*WCgjDi~Tx{0avuQ8JKHH+nq<2o9v^C;S7J7TW z_+n6IMCKfM{X+C3FewArzXg5agziHAqlEGnMm4$`gu1er9}x-&&mdR?=}&tGl-NuV zxg&C4;HW88hg|+(Kg&7uS<@WP;CDYcDd%~c{IyOAFFXZk;$Tv80nNW=j0`jh)-z5@ z6o4d}QcE&M==co!m`|F|$9-I=G%P%&YwGH#NngR+AgPCD6aI$I=N6h+_}n4^#?1sC z3>~gXfg(J!=`R7|1#pOr5rx6w;mK;tf*gJ_lRqw&GWn^4pBF7JR-P|BrKA*{SL+pB zRjOg_&tUCm0b8KaHDLitW3BS+)N{|KGOp`)L z1z7qL(dHjaYziP`cVc2{H1#Y1ko!fa_^W+yxtr8|b71^4{GGEbRHVnqZ3P%o(|?$o-esc2P+w!6@tf(G}n zXn9=rho5~W@BJ|0^0sZtMZTo&cZW~^vH16bkM1OodWrw{?6+Os`0gVAr79=f zja<_|dS@v~#a>>%od0e=LhyzI-jP0dZ9aIB9x0QgxdMfc>q^pMT!1&s1g|ZO$cjeX zG_+8s17;^8jwqDelOyBF#yi5#Iri_roRF=t&pz9~x9~+4aO?Z_um5zTCF%nu9yNuRHJ7L<=yD}on=<636?j5LHXy>%8;cL0)@XsmCsgFD zg%p83(jlDbsAzCZs`}v2?B-K;w5-;;{l;8cIsP=4#ys;+C-`cLcO_vKoqp1%KC_TWjYCi5ap%7H%L z*}AH~!2_-)y{O66YtSkXKqmTpU_*D%d=H{vSTA$p5Sgn)3pv1*iH<~wN=kZSx^QgL zqaoTD&Tz1ZsHnQ4**XDiYggN>zkF%^%&Bt+3|~5R>AK@5)-RvF;;nuQrx*1Yb>f>7 zBSxGYKH|iv;nSyP%$mRE?8Wz2WMqyTpEY~c`{z!qUz8zFocP&u{9s3NL4n23T(+5v5)?Pk;t=x;g&iO>j)-XT;1;Zne{ zKxzeENF)g(^fYqp^gldi&eG#M4@&Peyt?!3sqtixtkVHD~&z~NZKa_ zI0NuOh?suNc9|HMLZi}Ct-Pq-dD5KOv89t~o?4LS(o>(AAzMxP8iQ26?(r%SVHhn4 zL(^GhH??1)G9Qbk2VWP2+WmudYd=1^dc*D|-MhXyWXPNU>E^}wQaEeG!ZxhqziiyV z@2wwoh_zxX%#zSDQ}FSc%FRd(-W z@!PiWTRYFPH%_1CThE^4+b>^YaD5;-@`p;Oz-JX{m=*$m8t4e2#(iB27;WR4njl&x zP~?&dG+Ct+El|8ru>}3#Atv+h3e#-+?kOAhKkb>U2Y zqUUQ9tCnBD8YaIfp-;M>v_k2ld?+QbB~Q5IKqLOk#T;7iT{c!ZqQs&vsJy7$G3X@B zlUV{zKq!=wawOL~QEAA=GQW*bmeL#G!S8^x5b$>jD#agYX$^$@r-{Y@9HHTGbo+29 zTzi8T4NaOIUdk?%tSw)9s>KRF-xHgp#p|7N@!-#RXFT{bH8!3ogbB!_spvJ6Qk|(t z(8rkgvuaE#{UX-sNhV=q&7(4rWZQTgr_#QpBR|ncTJLNOwX?VnSjf zjmRJw<9_35#v29J+^~^FtX<3R3D#tJ^I62o9aAPS*WwVxIm)x9dFR%B=Eygm;=a?w zojX|k?p-X7xbsiGM|o}9}ho3G+rLJExD1|?bS6lf4;#ghVbnYGozY4SFcr@AuVy|o`@>` zRR6%8L(zXPX7k{=mBir4Fu-a3$E+U3;O3SRTL^iK`vPs{ZKCX1VkP0AW2y3NHiR$R z#@}V{ZDTJMeXP8sbX>uEv2`oh+QMKIVVTreUM=sk9m4uMYJMi$E`lqABSrQw3c2X0 z(&eM#swp8+#7H4yqgbC6-E!LEwu|OyW!2qEq zl@)n>De1s4>0N1|q;%67Vi@c|C_2!R=u8ZR0b)lf#9BazK0StsFq4c$h>0+*qJBk; zgvFNr3D!l`k&r! z8?MVfT8!L{TuB8La77G>QisS3U-O5{?GnF9lwF0);C;lcVbW__@Y6jwMsy&;cjH8) zQ;dwD!HVX=4K2_StP|B073E8*Pz5p(8iBQA{YRf}kh{&l+s>u0A!+TM_5PYHCARR? zs97y|b(?_cC2)NscwqrjbxjsM`MM1eNe>IRiF~?5ei8EcE;Kz+J5-!Yp4tAt{BIWU zUluI;@vEN~KWR&AT`CV|rTmhfBL=4=)u@JE8r*k+yqY}#KJ17On5joeggzF05O1rc z1D>UvSTf)VOXR?SCws8=I_n(_Fwy6Z4J?FNWk0O$(qIWzcPSer(dS5B+7{bBkP_Lc;xFVZye?y9 zBtPbmW96%$kW(j&fgmyI1QxJ;BK~HXbPrx7{q0pbi#gayrBdnN82x7AZ-(J-et}k@ z>#v}{kz%m^cy%0XU0wqvTiEGd&Il z%A<$&nVciv`RK&e4MQ9ICXD3mgWesJ-@D4tQ6su;JpajuAM72`dI_r!=eTAK6d~o} z-+}B-;J8re1>Z!i5d;Y)w{X0X>C@1LN38C8YTVS4K0yzrC?KH~_Ni_Fv&9PYb%({p zDKtO>gGIBS;c*zFadax0AL>1S;TvVR@{#w|2)VWQV3eHyWG_1t!+P@dHcu9RW`*|` zHctK$veQMnsC=pRh6R0A>jY;KEPk3L{&v>l)ywrlA=mmf#y)D&5jcIl<5g) zEFC?n44lHcV6Oh)SPTHP7|Rc`mSg#Tz8`08S(}MGTO7D&B72SRg$hGo^ZS@Cx`&KY zEHbA9G__iFx~xiGF&z_pvSk@PE5T+tr%08$#S4Xz!`NTYf(`mqjkvumMw5{ELCd-Z}O?KaIC9d2g>6H*p06cg#ioagaR> zG2mb=PGnw8io+-s8^fO#&esCM$$8X5Y}B9N!5FA{nmJbg(yf1qq*GOMSRRLBuFofo zjHo2*-T>t_g|k4xx$ZN#*vmPWa`&B_(&})>a|d4ApHRKdtkl6HT7KMV?tsoW)lLOJ zf4F|~xhBco7iGM%UaL`Ib!?3{Ur*_=bk1vCF13GiF#iHP*t+JZR}`s|bBo(XjUxSue@9$rVY~wIG}5W(z`#Ptc_xcpK;*ah9%C z3l9}bb??4CZ;;Y<)N+?xZf3;3j&FXjV(p#|gD1ZATKK~K z?b@~J#EX9%sZ=$q;LgP7oPDa8z`9w1RDY zC?wWxg_834?dvmV-5Njq(tGcZuRZ@}i@fO{J@;Vm$1MiPadZE(c+<8ilULdz`6J%H z+dA)}_r9LF^v9_qkI!G$ds^2z>(l1G*Qe-@XY02(x^3QxZw``z&Jhlc6in!S31FjoodnTaI;GpPVOF+k$Dk22Z!BDC=x_#8J z^cxsG59ZEHEzV6^8RnRB;n2LMT)0-YyqLAc<`A)DHbf_aP`wz4BL9~(a=5O9?LHlx zmfCgVorQ0`*=!xUwB_hlNJJ#?bcbOO*7k3GoWh_Re!NjN)NKE6 zJqj)oIZGpFqUce`8FB1iS`-``yl1EXqelUfvK#P6!*7}@p*$hn)VjO^I#2{BjN#4KcbY)ysuRqK`6!x+LX^$yjIj^H=LEQ(l%Ru`cUa7Vx_MhNyIA5wS%rjAt)iZn zRNz2yOVr_g+kC)iQUPAf4pJJxCeNIi?{(+nD1Vt>)Jy&nO_d846iGBrs7ec1Jhlpm z_bxaFyGbpS9S}8Id#j$d7zlEx2G}8&%H{a0RqzWM;%$(zubD;MEG6xdq6bx~3>Sek zhaH4V($?FNvpQV&*07j&S_Mk0Iuu8pW?C9X!+^%f?SNsL`!;kC& zPgd*kGY-qA>Iz>dki$Rf+S~?37T!b_q=m4+8)LKGxzz~dSyA$## zQDVZJBvMRBS_eQguqu%@F(T_oMZW=dd~)!|G$RPiE3Mj3ZtuOcR$g3fay5AqVGU5p z0g#J8sg(|usMQ%Jqr_cgy3hJQLIrIsU;rdyC%*JZYJJfm7_x3%?xIDxO5geu>wBZ* z_tPh)%iqwwH}O{LZ-Ps^YIZT}rh{Pd;Qr~p8d^mpU%G~EO@u)hOG)IXr>M-%*5Q#rmUg(huz&o6FF^IOl%~sR(!6lq zh<-zdd~i%Y9+}BPcd^vn%(Wr{1LteKMdd@(1)<+v;-|0t3=Pt=_#Wn0TO&rQfh_n+ z&7LYsDRzpFAWWXxK8#qDg{9TRXm1u~LHMquI2{4P^{gXaJav-H(F3`urqN3+LjP?! z{kN5cWv^yZqcuzHd6e)jk=YQ<=x{Enw)W3f!z!XfJtd*%_%9aB{-pkkCx&18$y?X4 zdFJ79Eoc8Z>q5f@r)S>ck8(E5oxNe>oLQUHn!PilBIZ<9>HpJ|BtR;yLjNn)vNE%DK|M2e7^x&VJiC9gQR3lF?9(EEE&q7gjKBaN8RY; zBa2S-NY@7D+4Ow-=&H#dse5)DiChr)Wnm9+D0=>FVS+hI z&8FuuY)P;7ew3142X=ODLF=`x5T;%X?dA{=S z;g?(H)=!FB_XDfN`mEtUZQF4>wCK{62!!QL-gYpVRj5~PVQ^7Z7fvL-!bUX^T zp=iFg#Dl^NmFSGLR51%sLIFo)vfSg`_Eq)khE#g##b $$K|G-##kgg9gbWYa2)&N(!P+kwf1!Ak1A3J6xBq%4W4Ygk3hn2GE7&Akq8YI z-YYx-G>F6FF;RhZw58EsPa~8}{8BkM*=fVhh~}AUm->iis(10fmZKyVxck@DJ-Th< zk9)Esmp&GQ)kn|ibJg2fgG+rrWiRet?U**5e^`I_Un=MoWeiuBV~nCD>IcqMsfWOg zRfX$X5$>9y6)ifzh|4v*Dq?Wx3RGjPkvOf&6l9ioHN5l3&Vb)+qB* z3;5)>`ENPf=Fi=>V=g>$a>VEO^_jxIOrEnN3eGr7E=0%h7dg)TH%0Cm(^U3~b{Y2Q zRV~P5kHQdAhZ*z`6TrrakwVv4u-G9BMgR^2h+|UKV4z3>8N~yaUH-?c>!_aVvyZWd zS6Z0nT|W<;z4X(|LEd*x^P(u=+C26O{ehlJTd2ASlO;VhhnV@&<>8;ro`yUa9;wi> zC3%2IKY{y5Dl(vfUz}Kb+5tO(Eu3jnn`LAJIn@@rbc07NZMJ;*<%;T}eM{A%L*}l_ zX|lWd5R&12n2hKP>ltk9!5|cm0iWOvh^Sfd;NGRS8gj?_?#y~Vg~Y5mrW}Uu)O5)b zk$Nw5nf|D@!A@`$kgM~nSc&u%TpK%*qKGf* z-TOjW48yf0Rcvzr_VuG3xYCm&u_!?$x9zL0p%&VM~y?cB01<=|%yuuZCc_ zvDvoLx=SPfP-l!Y$=T4UVq7MUw%|pqDtr{A$O$If9D&Lj7X=kk-S35WJv41NaY}@juVJ(6f4lXX;HF-_8AOkK~x@&)IGbnHkX_xM3Z~;CT`C!d|Wk zEAXaTpws}5(Oz-b4}_W_5xV?KL6hvQtpKcC5*ZSp4sf-@sCHsYT({iq68~ez(33Ya zZN>aDOX8Qw*1W?9v(Jn7i>f~4L`iBCC@D@QR;jHtQf%EQWb;pI~K7M*5+RCwfRqI!odSj)nQtQM) z{X5ie8`w;eixSnl#SYtjLCy51SF2OcPC@;FP(-mqc);;8zL%Ut%Yec{Ed>-3S1+TD+_o;@1$DW+c;l&S8UVaAvuXbrfL+f zMo&PftzS==!l$oi&U$F@fOJklhe?$uJ?%uLBMv3i}_1$aG^>7JY4_YxDl5p5}RK6t3Bh2|A&;Pc? z4JE*QjdLYi+*n=RbS2MQDBD=Qh5S)=$tE{@ncrer-$m&1A*z!t&6@f-Ken@EkDKlM z9jF*^Tpu`ECl=xbb*hL70qKOUcScS(3T$ICh%i)*Q z*@f8Ri@F>X;srHM(8~ec_PS0nfwO;5%tU@-S|N;Dk_~3owC4k&&LaqP3f=szHQ#MWH4+T@&SiZMz zp4!IXN+vbIDrxp0NNVseD>Tv~78bzrtV@BeBV=M3sn{(PFHHWOzodi~F?NT?C>Onz z*&+ENvT+OLmU6R2>%8c5R%pLn+i2W55`LmvdP@t?c@~}WWs%-1aDwLt30>kqdC}t7QW01(G(_ZSxNk_Zvs42j| zPD@i7Z)9xI!s5-x3i+AIqvw8f%zO5jwl7cFk+1DLs{XCad9r5RliBLty(&xkb=mzE zn1S}jA3TFfxO#T~{OAolUWkcTT-iCVKK|J`5K=YP*1D0ytl@_ack`r1x8 z*!%1HKbMB`Og1Q*Rr^IQ<9+b{wX(`)z&rwcaSj@#GIADW#k{=E9-_`>Kvt5Mq}8|) znTh91SW{@^z`^Z6Lzh_=kV%g#K#+~usWePFq$I@Bhy(V3L~S5Jj6YCC82ylGf2 zwvJrG@9vwrfnVsimh^9*;-A&A$d5&dIfxiB2SLLM;qW>MeoMp_g~db}5s{%N#m|h{ zP2w}tydLV<)IOy}iWkZOn(ElZfu>;tupe#GAsk9yX@oYg$L>R=H4){$+&Vlox^~N@ z34<@^-Tmgoxxp^)`6aVHc)i2+naeRq_U$~|?D#EPSow#c%#YRIINzJQ_joQla`;=U zbpxNGz6$EWzs5cjl0FMTIj2zY4%TWhJjRN&s*>2ZwQ7>3fNZZ)l@=BfM3xBNggNk{ zby^puyE6KosG?I1)jK>B1^yg1Cc&abZvpBhb<^Z-`9JsSJaO9N3;W0APPoMSXAB;a z$!aWmbLOgfLo+*!d&hR-i#=VlYSlbG^}>VhJk^#xqqD~#h8ncDH6KU$bglMti!Q4jd5z_BSd<D1>-=LtdV$#if@aH2(dY;o*bpYAXK8m^)fURRlNPnb9?8`lvhmZ*q0r; zWE=Cv;@kZ3;YFXU6*U4bL}kFk~hF<3!@hKW4DR--EX>KesJ$ zp0~H>+}TqZUzEK-xa^JS{T{lmsz@U>MP$Qt=@9unLm))V1TAb908-iTKXHtQU?*uw z@$e#!;$SKJhPtU;S}PkVx~7rcduroB!68V`P+O-yT0wfi=+}=(M$OI6DlHu|Vs%dO zsq>F6bnf;2+1$rD3kMIM_3*^kKe5`c_Im5J)j8Qqa~oHl&|=xv4;M7;+qLC}W$^Tw zG?c%m9ETo`K~Bj}r|ps;k51eN1_)0}=Uz5e%W&Ez33^-4D;=>?zHx)9csSZx=hWL?@eWmGTBR6fP69UDXKGJm^}+Jb(adBGpJ%otO#~D zsxu-VOIDLP1^a<1O-*CqeqT8T{WQ9yLK2=09Czl(9+op?%73QDqX3h!=H&Up&FX6z zlRC97dH`ut#16ES*{1%aO44#o5&2*W>(FnHV|kxu73^Zz48x_+LiD+f5X_l{kk^UB zzJ(#{L*xuX(G$2_?{4g zZLY)$BW;uyipB27VfViJ;=X$CtJ^=T-Z;6++>Dv?RDdn&GUNJ$lmpLd#P&!R2C;(i_!I zWKCN&c(0uFy5=-8pt|}tJOZK1h2uazE@C7zcN*Pa zf*MfUrZP8xK=qA5AL~htghU0dFg3VP*38yxTpZgKQPZ7ZuUzfb)(tBDmw$7S&FK-H zS~H1Nv)ymoy>M4@qLLL&+t1I|k{1L4=DvKavI87Z6a8vRtt3c?b--s#gQr?sZ*n(MK?I=9jPg` zRPyC~BU#bP$mu=jZ(y&^$UJa*5euCZ+h#!X!Ozus<-a?|zPLGa%rqw7T|C_8SGj+O zFS6t{?+;)5VwH$G0~>9t-@efc4H9c5Hy*fh*y3}ws%7<9pOZ*5d8YWGx*7D2fL9bK z@>c)iI~dwgP{(L~As4_LCV-30+ruG9ho6L;h%w~voAB4UgnV~AD@`4-ChbL?Tllb? z9cpuBqjzMZ7X{DAvx>Sa8&|?kEk^%J4E!A03#5w{rtbxUeaMV`Z!BuU$bJb}OWLOV zMSj9u*?Y?F69a`sM~m&p02^$);ib;Sa(vHc4GLRy2s zGV#2pyu~RNY;M?&NT9XH_CnL@)x%R5yHYKyaJJ7Ym`g?n;jn{viPmEUOdw-7^!uoOhG|HRi@V zxlz&j4RhwM-#B;ndS&A>{=hZw=M0uq9Gvxg2J>F~=-Q2QyDy#xo?nA~zX5oiz_WP| z2*Ia@B{38ijcl9Y#Dt8wCBtA^0@YQLAx)$XALRz0Kd^e8YOf5M{5IoTlniCFci@b2 zQ&W~Mk(W~4bs^yR3vke$r6DGZW+Aq~mjRR!Y?z%6+}Y(Mr!qlFj&eCADk8gBi%;I$ zX&ZBV1TVgM?2L@ri1GZ=lLOzgxZn7X{4vk}`kIXAUdd7?9&dXEFq8$?y{U!j9p*^A zmV@0YqiZb@Ya0+)Xjxh;FQ6*8+1rOZ2Li{I*1b`gt&AWu4B8gG=FxiBDwGx`4BX*x z7N}kkDG$N(i++CZ-M$+G_HUgtV(Oi#{5CJl$=P|rwqUgHsRP9l$rm^DdvT_^43i-Y^}?Dr~San z-vj!+ydaW4$37{?(lA2#UmkMoZdnD1HnE?*y(}PiOI@|{A{U_RRtra1AT^#xC017n z_N5Z}q$ahh`Aeeu6jGp-52v9c@Qdv0_7@PBvJP#eNFKKAa;CEra~vZF4HjpLzwk@<-yYAf?FEbZ z8N4+f(ZYD!DfpUIF~=RD?|_MDA;ISpS>ouDmZ*wlMN3pgOXt59sDFy2j_ENKlxTvR zg(q;jMRc8DW;ce!2CW90!=(GR@=Z;kGzU4;E>tjx3yJB}@h`NKzdLj8@7#HlMo+!L z|2UYrUTfIgyKK`O+tOw7sA&JKSML9PjWv_GXW{B4SzBXRxf>e}oz(b7TR3}t#>bV| zfKw+>Q$*2Leam(j-U{{*F}xKpoh8R%No$nUYbBMM3Q;^WR~+>gI|zrby}}{FGk^>a zg<6N?%6F;{?$kV`a&ThP%KX|5%#-M(qYvxbsI-&0lY}N=7=EKUOuDI;a$JAYxnEU zj~k7)UFKYES#+qC+N1Np5%M8<#GsBnl#RPj@(29Fg9ofOi#V#S^!~N;^qC#!zTLKo z`rtNg`vx*qt@uw{w#Yp7K?k(Hw+X2N3n5ChJ=BH4~5~ZA_+(wpI zEL)fX5Jz>YZW_lTtwxC`m;-g0_pi0nAF?oB^ozVYOMZV-=A3-qQypXr3u?tlV>N$0L*-BT zP?IJ!R$t;v5MD|HJiS^@r7$baV316WTF~U??cO|a56czkPKPTligwO-ph-=UWjhMk z=?&!caGDYkZWC%f18*}s=eNCAxKu8*%kD)Dt9I*?5?DzY%ev3ov~~`j_i#@6_1vjH zR9l$$D2&*x+45T1G5DuHv1l7NPe2XqSjEc&alrrhBTeF-Att((570 zEym(YylPs!VX&}crD*I$1x^(YE~dIV&|sQ&A=Wi-7Kikesjp8kF#32)5CG;yTF4lP z87W`PV}rh7*b)6J?-g&|{Cs5r>%L$^)*R(IH0!NXzWMm*kE*=J+Xon6-ai*i7(GuR z%hmw--_NklNU6JJcQ8w4`(NovX(5Y9Mo(dVk%p z_sQ={KAXLH$JRVP0NcTY@wQcOe#vXHi&-!Ql?i!J;~TfUO@CtlbD`$3wDDuM9Dumr3V zzL?_UeT(FmXe@-hX7tE`LStc0!kik1_A;@6KvF4*OUSFnc^k7qcbSB3ti7Kq@8Ycc z!u2cX15vLicTb%BNd;A%-Y>JJOk5ziw=Q3WIY@fCLL~C~VLHSRB-&G!81HFyWvUla zRSx^lm=of9^rssUtjblYUjZ;M=R(yMnR09!o*YM_X_sxMj~4!%$Hu-nEF@Oxf28n` ze2Rxh1`p<|Szo?NRtB-YpUcCZ{Gz_i+ZS@us^u|_m@4>imab3)9u3l3I^8VQh!V(Y zO%|e;q&eY?!1_6n_H#n5Uc$jl7({BCpD~*W1fi|g_k1_%Dt9CIfb=W1(Ch8x>h?8x zTX>&e*-!k1Z`rghdF$A;Z_sM~(*rrnJAnS-NgW<<2ASBVk@mMSQORv}|ig^e(8D5$yg5>=EKcR>NBl7&io zW(iaGWCKxLa)>98#3LEuYp8KnLE;;s^0FN(r+kq2?%g>L(Uvp}`sCKb#lK9?J1}qU zA%1+{hf6ZmXGYJSKVbC1{$CvLyR~-5;uHVve`MOIl}pAk$+k{;hgJ*SDJ0e3=&`qm zsfgqa!dl2zQUuj^+Hd4PM_r}vM6)3JGW^Bn`;Gi(_%HY0;=doQ8sI(bXS);!_P_?o^B>*unBh038Qj-0^STdB485Awl;p12EDQ#zt9ii$r z#PhA>wXDroUT?}9j#LdVreo@R1whr5S@f4`U)nDgbFFZ7Mns5;$hNI5J*3p_Gl%q%(UAj zd=wPfa2=vql)in9!;Qzy)6-_0c=B5^cH7eD*My`AYwlLY#cW~D6XwPrzC7y0V%FI@ai>0h++ z=d)*iBAo9(m0=$gUh^4@->_K> zHkH7mF(ma2?iGezO#jDco`_o*^fg$J8dHRENir*7U=7?RVkX+clDzPAmwG0D;O@5` z3&Z*Tk(0!2a@R`H*S}&{c-^d-X?VgmgOZW#fKIoWq#-R!7U^yS1dCW2QecU*QClYz zz$yU<{T~~_{yfTl&wG5shXP?YaYMQ{-{=^Gx1pHir|y~mAGbHcuYca2I<_$EBwOGR z)NmQFEDhW87*Bf!u1M&wu-68}^dzci?70-CPhP^3+p*zlY2T{FSPDC0AuAabTA*PPQHdlq0&cJ@ z2t%jV(o2aeg3ZtjPm|ovktNQ^l|0=OQ99-2DR2J67xB^-AHe+kJ`YNNqE@h&GV%md z2hhJ5`%-21{|;sEe?s_A=!i>~!ZJS;(cBU($P~?qWR8JEW7l757QjBfCcB{dRnXg^ zllDFEEB2#M&W{2(KZZ(?-zEBBJ>F}@zE2U>`B7MhgIU5U18+h-P7yUi)JW7Z9+4WC z0>zGaCrzS>$+c9#F{9R;gt#J(Ty~u<7A#nt zFrh9DzB1IM78)SZC75aM9tt!R0H<-EKCWf2Sb_b0(^VAW1jozvUrB1`|*$HB?i zT|!b3H3_ZJTXX7K!|8+?(s5)_EokdQG&zvzd8 zws5n`F0soECByJRyj^)8Pl>*AfxXWE%Upl3OGUqIS<1@s2Wz&->E2J|A;Vaug72TS zRUS{@z~lzYKwHdQsa5SRc-B?1qjd#6%ZI(F{d{nX2-fHcFd{rn3KLNr;?!t~dXcrz zFnzjT1n-vI11baV(&d0#X&~P>Yk`_(Iufxo%-}%PIV~F29rZBEY2sOB{m=h7=F3H> z4tW2b*DGtpq&Zu*lwGuHHLVhW~WPiBAS3B&No>k`vajEmv=M z?VLXD`g@{))f_$Q7x4+?!rxxCUe1zM6XK#~^>}kFyDsuOwb{6g)v$wCtpqgf1Mc$wt(X?vN?e7rB%!uH_*&zTY_H z7UKzG$SHM1$YrN=b-~oa04z2liq?dYaY!mNf(p_`bt-{DMVgd8V?mUx*EC`j6~WQI-C94PHVtVsJXJ z6W+hPmq;FUF8W#71&m7)c^6GJ&gAMFGn9ZA;xgbJW?__Af6x99#}TC*kW{Ynn0ku0W0!bhDvjfM+A9L zg$!lRBMN^)#7Ei#^ox3)`gr{pEwpY4?pc0OTI{s+@G5}#eR=9KH(k5vfNVqBIz+!I zZ9T&QS#Re1k560w{Pq0&32f*Wq5~`V$&|K!&-)>*P<4z~!3u?tC2OjKF4>u}Hij7? zm(XD8q_&!f;U*ZwlbQ_ARZYhki-m5fmtVo;9Cas>T4wzYJ9fKj^Mw~aKyRQ`}<-u8%%)5I#z zZ+|IGv7KRsKP#0AscV2vLFnZGOJ|o_nT;OJA?VD!Z(ZOX>epOEt(x%!wwvyy&_^-?vjQO|9*1p~=8|gjh!9jO`rX4m z6g3g6tHwSt)4ml$ZH)Z!gZ)n!YL$6JFmn72E{|S;kQr1z-w8B&@dg;*?k8=0p~+bZ z8Q_-9`@pVc#M~|3^oZ3IDKG4r8|4mH3Z;8Hv- zk=U2sdM;7In`CBt-^&L(Hu5xk_0Z)@2YWa5H0gNYlKSHONexq;cy98X!eQAH>!nnE zX5tJU$U<1{3hbh&mLSfH8^4P0;zUQbtpbbwE9Ctz!wY{8J)s>qQd$WO{Y>trIId<( zI)tCWSCYkYMlF2CFH=oa1GeIKOiRmlbw2yU^IGXGg_ps+dMKM99V@fOpm{i_m7{8X zn~S=on0jVdxR(VyVNjD+Dnu$jC~Im0O-L+0F?Q)?ASXkrax{P9vZ7wio>hi)E$%^Uwb$|3cv7+zPGqA>@|c@&K$x-vDD1@bl25 zV!)e^~eg2~L|M>cFc zrJ#C)7&N3u*HK*8o9$T`ZwYA5rWJtdlVTk6I-^|KSyV4*ay70f`}?W$qfY;3R<*D9h3} z(pGcoJ_T?d!<%Cny)oebch840#$wM$@%SDYS@EbCko4-~%!euEmAWjN-!UJH_b6Y}R6$TI0@GAPHw@%)HT z;ugix(NLKrgZ$6qwu>leyKkLskB#IkvK7fE3R}$95YHdzX`^Dk%1ARw5zyZZvxWI# zsd2*M$!%f-Bv8WClS!yiI!&Aptp>tVBUs@1k6Ca@hGGDh#NRIA^>|qRRu;W^+kBJ+ z$hZpJ!dKtcqhbJ|p9vV9-Yfe)yLl$>CiM_QltDQQN+hgtA1z$3g$O*2L5UWwWYN+5 z`fF+3?_1i^l|*wYl1oE@GX;hXjV*!6T5xp~zl-2(zWAZ&J?0viaWnts&@L=V{5@bI z9UQh94fIYXtsA^-KNI`f_GWBAKj31%M_nE2!C2Aux)$WaHO4;1^0Q!>q{xEImVGz0 z6g1z^Lg*4xmKw9VV^WYjV`l3bFDvU&K#-fc0yfDED})zThZRD8$AuaB{O}eOqrPEc zpf*=L?<2mFJso%CK2tj+A-nmYOzQ0T)>|GHqk4ouf5*ZbzNCL8Zv04U^Qd}q_n=xQ zBqmPhKk{_0vz$%~dd^UsEk{$4M^h`OAG&f#$1N9Ij*r}TyxhfdM6c!cl*0+VSnd{X zw4!pfD&>f5%Qd8zGsLB&`4z zcFY2`M&j&F(E|0e3nWLB&o5-5R%0zBqc@NZNEMc>=if*UU@}dXKOs5Hyb0XSbWVwm zby1+>Is68QUm_^CSj>TsJ~}9>h&@r^t2Z~U-LZ906hFek`i&Xc2g0qdvVYmqBZ{&? zbQM2+!(pCm{fMJ*tXMRt(@VW%wGr5Pj;)w2;W(x~2FD>aV1rXxJO_qYdt~aNG6IIF zLr2E^%n<<4wCS9>5h{NifWs$PbS`9wZ}1@41r_&Qx^@%-9A*OFq0f?UU@Jr)HE(&& zVP3)uRH|uqtjG(_LnpYbZIV{Xhp40!Jn&Wv*EPhSe8rGH+HpVDD1`2nb;)7}Wi5Tl z(Y`?nbi0M(1Jd4*)t*P;;G( zmVSVe)Rp~l+OtKcGq|Umm7!Oed5N-6P_|6@{TjVOSnLYD=lR%}FK;SHT$L&Yn6k%c76O9fLpPb8vKYTCM66vOo0 zag6!$-C;YQs-=xMdWD@FnLaZ6?Bqd%(X9UA%`-P%>C)wu>+h;b4?mwYcg|!r;o;{~ zX3v?TR;1N?4ZS9IV?HsMg~L?;$a12k%ryw!k~w9Wg>mpTM}(Y(`B+E$XF*Uw-CB^Y zU1JV)LhZZHzkQ}l&kwhrU>?@3eR@WIzwTZ7!NucEcAr_c>|Hm%;Z5j2X8Ztt&6_-6 z{FweIP+JJzGaO_FV{7Gv_~N!m3iD+&1EB;$cm+)Pq+ z0$!oSRn29WeN*+qkap>-K!q*yk%T}oZxR$iQ*j}};v(A^YY=8TXmyiDMQ zfDrjTU~A@(F65WVR-ss*iGyoV`fnrlBQcj)L_+)OP2+X3OgLF7wRy6>g6)sHiZ1zt z^NidQY`e^h zEIS}t(w_twbmc8Dt`LkX5hE-K?}K?<#_s*Uj0?3LpfO@xChsVXE9CLxN_O&}$9N`> zJIeCcv7^UCS(Y-bOc_>1T%kXy=bmKsyL7?m&Oz$`g;fiKmNP|PH8~(-)hy`E$MQXS z`V9NTDmEjyBpnHYA>4}@DhECT0~(nANckpWD7318i^vs56ohP#c!kYnud_5-;N^0$ z*NVL-Px7W%Yu-h9QSR1+OK^Ig)A#Bm zp8#vbw_~ibxC(*rx^K@=pv%z^dsYD`r14sejxdIIFWATXB?~Y%&?5Q`caGd9BQ}Ck zYvpM|s5xcEha)_NsQ^%nYmAKM$61^cbfPhpq@?5oLZ~KF*d4dP&0%)f%6PSLxx06O zR-L?ZX2i*$*=w`a6Uv=GtBUce=3VDv(cZ&K)sL@=Y&L#zHc#;8@UfAT7Kq7g>eY|= zEbm12J?Y>;2-zt&vmA8rFlm3bRD3Di^&(_M%5)G!DC&Z4n)fPNQlSMn6P>^o{CR1FU_L_f@r=Z5I&1H z6Np*yOaCI1Rx>kvWU^=XK+yn(T19sA5nAEXmhO?nf>miJnkhS+vyi7;6IxQ$)LL|I zt5Ou-<}RD!eo{AREE8Q277_03hfAaFDRsIK`-f$3I*1 zy7-V)LlVMkqq66Sf4-=-AUn3@#08r-)|$0W99uDqH9VZNUW|OOMy)!0TJBYCz*|pL z*`0mrTV>dwCLvSOw)L4fov~#TSb#lO+3YK&M;zlttkGCU4Y@|^v?uj7!r)`EM#u*= zuaO}E{DkqZHIgYml>vyZOrfsI7b}woqw=20LInr9Ethw3ztj_ zN0zQ0D}H3%D9M%Z#-@eanw2TevE=i=^zU}%&-ZF#)mi}-va$Ba=NgLdSIlN%*Yssm z0-tNoSL~SAVqB#rdzS6dm#xmW-dHwX|b#y~|{$lhkJZ}*^)*KdE5|d4WD3`>e`#rO1cGzBVwPpW~ zq$H})YPe)kpH(UET^IBg;~T_{DH}uhtED%|Lal~ZHud52s}AM!3Hz7k0Dg|X;m}V% zx4(-yzo2nbyj)6FW2dD<%Xr|QFmuRKGmx03>L_3bsDT4DAj%1i0D5vNe=a_O1*Faz z@FZ*0C{|3~A)EzlZ1!tP!<_MKXM+w8CqMvVBxoJ3mIR_BltyC0pi6#cthUATWMmU- z%q}Z@P@nvuiL8LhWMJkuZT(4=g2d!GN=xJO~u2G9d)D*f7ay zD#`VR8iFsVQ{b+X;(nsQ{X|M$b<-L@;c}-IxKmT|>YJXd<8nV&;C?Oz<8n7Quf5@1 zv@SgsR%Y;~QBdW-Eq#-1Cr)fD=$W!QebY(x#I~1vbcYAe!!mon)T75sJF2&xdZI>| zk<+p=sfOf+t+tnF4`eg678;?~K}-fY#f;4rIs@_O#<$>QduIpYWX^vi%Tv!}55 z$+Ownthkp;X3)BqZdYE+YSVC_Tz9VfUlHw!gTG^j=G3vOh~*~x*4x6UEw0x%m4_C(cOt#kRb|q|0iOdETS?eYv;I4Y zY4PZmfFu8SXKi5|qg1y%)bMed9fM%p;O26k$oO|BrR2q#mH)^4V(<3<=J91EhYXoEjb!8)F+)89FKJm+{wQNqD%aJ1xu?bk`@KrwgD6OY z%{9*qzFkue5;hTbJe4OQjJVS+*`;GYK{3PGMVf_cE*Gv{O*wFH< zQ_VNGP3`l#%OH9|2al$3=Ct`i@gxGGJ&8<5-A;( z$~SuQJ|1^v-rnE#Eb2F7_44dta4KZRu%v4VEAG$za$CRopY4y`c3o!ij)so0*#0b} zUzp7utS_9Q#$p}p&O{|4EU}JV{-r8-%saFA=f&p-wtXpXJ}8v&81& z3wCVRq#bZ?FWfn4CmXhN%1+iw4BR*_7x{}qiR-2@$>jr zEDXs9fVi9#B&_)?7h^NBrj4xnM8=%44TcUr`GO;2=-rB$dPP zIOYYK%IP&FMatdOmG`3QN%&{lOGia}S6)}s^EjlvqCHN{;n1>8?=mGrw9Oh)EUm51Kz-$cM2P$nk|XGlp# zp=ege9+8MMlxAmj5~J+QX-`g6k`)vphzfHmBBkWSUd`&2!i84|Vy(rNhhu`oUe;Av z%~_-8#r48Jxj503B~=Su*7%IlD|A_tQw@Sq%dNM%F&OzB>qTg($>}fDrwe=Awc`2r z3Kxd1X!;)ihO=f(#V3Vdb8+|uR*ib(=80AIz0R_b8i<@>b{kOSr3rJ|TxwR)QQ`$O z1;4W`=mtth<5R1}Ds?|>qa@pJ`loCgitf;-l-C~l6!A3qDSvEkgpAFNdrWLjszJsY zN)6k1;1^3!u`Ln0Qqp(lkIfA(J#CEddo|C>!+)O&T8#CcMYehvbZMLYT@9 z=zt)_*Q|qv(1T9$vUgb6fT_dgjorq|CT@O1tY@9mn+_jNg*oi*KQ82F&K;3HKM777&TwsiH*X&-z+%W7 zvX0!`CMYcinShQ~6#P$B6BKWg6Z}1oy^Q0*FLpO;hwpy_rdAXCSV*%JKU~@31@Q}W zxGqeji!b(ltqkQp zA&uH(`IABFvP3H|FBAbq(H>t-8;ZijQ+0PBU08#^zTs~yX77KvU)FjTDdM8|4P8HP zFMapIg^#_xF+!@|`K@vczJW-p8Yq!#HXs-z->~SJhQl59p?M+DAw#B&V60Ha%%N0_ z)ufxr1%nm_%g$GW6cGm+tn#b~8u}|MlfGk2jcMbx+)SCHB)$=aSJK~`6|p3K#e_Gu zi3(~x@U3!Ug)>E;d={+8yhrj@#mLY*0#U-HE$jBLx6I5YBy(}`>(ci_!cFP8yJUMV#YxW$13T?cc zFT8u#i-?Lhi`j~7{56brCC&z+c*AXz_0d|+xg<10CG`)GM(cO$=sGlNoUWrXrc~pU z?)fU5BB_C%$OuOAin*;H3)Edw1yIu-Hx2M)OrxuKn~nQP{8V#Uzx@1u%c?R!BfP@< z9{b>(cl3sgpM1j3)0#hzsNX!Sd9cwT({ipKul&<23|EI1;GoPO2sui+g;y3AOFS7I z!31&FN->f-#2ASB(g=i{idy^1V)sdr$X73Cg}-_~=AG{Fg;?$~x!$Qf+uP6^ijh*K zoGDoEVCq~-L$CztwY+K=s?j3j20>dW_RBTb`2DsH=lQcsM(do>>o$s2%b zlzf_^$bjOh^69hllMQUo)kYOJ#vRe#(?GQ$JK5P%&FT#813Aps>9?fN62Fqf=ko<2`YQ=u% zPl)+41BmxypR6eCsb>Mv8E}hRPBgy+7JrBqDzW&~vq;X)lFM(2{Tk67)G?3%Js=Vx zp-moZT4hshAvXdLrf3Eh{V}3LijShPX5leG@5-PwepGstCMilgBEEG{hEW-ezO=87 zn@>hdPmQr1Mqpmf%Mg7Ui;_AZMh`cIiP6yL&3Iwde>3@UX!H;!lv*qcTKj~F6exeM zzsD*n;g?p_m^|so`nU9iC_WPcC27-_<(9-PpR#1Ds9<^ zI(3PiAbYrq+4o`yfmpbkVvPrWtwS1&KuSskG}Ku*SIsLA-NEd71?5yPmf~6zuTDx= zQgzA4fb}*t{&vT@@=}Z63nN5U=d0xFLZD|=1BFz_??ccX(~+`W1pLx^J=O^O#w&Xl z?$X3J>&9H3!NxATbG%vI2{Q&B9ed!rjQ#^Bc&CgXlRj`lpWYM8w}9%<TaV4lXi`en?O78;kzW1lK;_sf(yjJedEt}t7a6j+E%P4GS8-{u|tI<`h611qT znp)#2T0v;hMpWB!DkY4=po!uY1V1%G+*nA7+`vM@U-}5Z)}&k05lk*#94#_DnSK~6 zXo^Z`6_YE`vw(7$7Ts7#xooASds=3v*GUTX6{3s?chVw8!5v*I2@xN4wKjk3qWNED zonFHdf5U$2Q^+dmyWDt}D&+65EAi=PJ1y@%72glaTWGf}QcUR(vwJ0vgeu0PMemAtr? z*x*=-_lHqMrO?ONtQL0c*VP_j2q07VRH1<=Fto_qY*8+QDdY`_NLCfKfhC26%G|J> zNO~A|lD#If_=hKROYeI4sl7}NV>u6JqPmJv^Cngtw?|^+A?Td~;VciiCFWv)$4QAb z%K{7vs5>);N}(DB5PSe_>LZH4DEy;&O8ml4-DiK~Pb0oXfAZwWtT*rds@mP6=E@nY zwzwP=&ks-;pNc`he1GjTb_L^`4h!WP#vO_AIehv#jn4uOv1sc4V-%t{1_(*9l%d90 zeF|v2Z%n{CVU(~_^r0%(@|(3^?mmp1zdg%4G)2;1Sm5h3gWlhd#J~L?MYA&E#}c7P z|6{f}&_MIC))d*antb_ z5kQdy)e!f!bz$FsgCPtN4*EAKskC+>g87cb^#&x$)BxkY@0cXp(>`~bG| zH@PRzoxjY8bF4(+TdD~iiQJ1I--vx$nxXB&02nbH#YYR-Z%EE zeLYT34qNi{cXO9;-3o&Z2A-J$FCrpU;Ee#`!x!RGM;9H%^VQ)eJSe5nANupkbod9! zztKt+cz=X#yWhX@FP>>}okPe9=fE^r6Fe{Nqsb{3eXKq^iIr}LL+ty+JEs;=_^z4RyvM@GNuotM2-o zGcas@igNU@J@_rmS_{EU_O0W4=)RmJo{$sQXR0rboU4flNDs1V_U5@pMfoQSBgC^a zw?VCt&<5d6nj_0dFG8UA$aUJ;!0tSmDii3|;wt-LNfXjq1WmjyX@Y#mgeCD=i|`pw zlh1D#s~q>``=8Qj#eP~ozXs1c<@^8i(bh+xA#3OH-oB1E*h7Ewak;LB3^5$Y)=s>p z{iWSEb8PT0Q=A>UPb`{>W)bI(Ps6cCED23HP_jsGK0eLpHg0V~&f@j%3V6CL|C7VoCV=n%*GVGekqX^-n*}2RuL#xx0GD-wsrpe}U z0|sOYZ{ndZWfFl{$puv8;uy)jB!UvslnUOl$`B@oT>C-%`Ngd3V^6G}G-uP6wJ03B zc8Z7zzJ2E1?*|>r9=USK_%#c2K;?tP7_~BXD;gDnO8P3L`%3p2cJ}{1=rX3}u^6<> z9)h0vm_ZYoQYqz~t@LAJp;;ByjmY8ce$j%J8k8wyB0EfmGr{^RM>Mc zloG}Jo))d_!SY*loxFpx)u)rUQp?NF>pFP{z8{}NhX!ar{qTOOY4@_G>iOredW@`J zixy-!-837MQ3Am1p$D7&rO-J{**wIsP&K4tB?6j)cOmQsWkcEYj`!9#;-8`~*f6nS z{)TmPl~Mee2krj2a273ss`9$ar)95W7#nJqIY9tV#tQM`mh8#*&DOBwzs3i2%6+g=dB+$?m3MV z`k(E;{r(I!{{R{|u%~9-y1D!K(r0l#YZrZO{{;J*Z0oPNBzjNZPpMZM`)MRjX{@rW zT!{<_GowLF!PJ(QcPezEis(R+9A){;hPP15p?TFLTA{7gk(8uz`v7y(~jb|dC$zTirQq~6J?ls z`_SuioL4{KCngS`GDbXfurjA^966wV(wVQCvtrAvX-|Lfo02*Gg*D6BD=jgX37N9K=DWX0O;^0mvDypf;BHCO;TIt!PZFY{z z8|H(1C_lXW;JuT8oS!HwXk4X6Mi0FP49KDIn+Jv1zjNRG+0CW&saPD5nCTR~O`l?PLQ=+Sc4 zGF5GIxLh^PCtaPpbAJGubf4tM03qDfFN1%OfABg>KR;mG!|Cdw!z`H$6S7sXCW|2@ zTVtoo+cs_R0fK z_trxvgFG~nA>SR|x;MaA6c42nz43j=@clb?U22~<;Yabidhjq-VJx(7%CxR%YoSH> zs+kbITiB|h>riCfY(hcdF=Zxb<$Pf_JL;1she`mUMB5XD9i9*Wkb^n*ye00v$(OMb zn{T{cf7ZrbSJK@h7A#kkwEUzn#wXp3SjEchX0AOfW=-e0&kJ!`O#fsIUomUt#l79S z%|15_Bkx!A6Y9sb0s6C<7G}!Zx1fv-yTQD`n!TifGB#O1)VH{Hom$DMQli0g10Axq zkuE?J;4k&+%EPttOg**xhWKslr}I3$s`r^Yebtt1-mc5Uk;^-+*v@MH6O(g)ev`%Z zZtRWSc^#unD7tNb0Vl5vDiGRD{dz3!8Gn%HU)Bxzoq-)Ng?O}J9^vC0Y2UBAKrX!%NIo_O=s)+5G2!_}&mW9s*w9eV>%DQ~%V zf1lBO&77RKr_66q@T=!`*d6*^G=ihHrdK=k=)C!`cEYx9X z1z}2V)Lcna%@YAX7>E@1Go@`|8dB;|WnM=@9F+G&N@lBsWGz4X6l%NdU&%UObgz2< z7^mUisrB>=;X;(?_67QgNkaksun#s@EKLv6# z2$Gp_dXg`>Wz?2d0B%}1`s@W|f#@uQ35BIbQ0{s}B#vkrdt>yeTV2G>ZA!Zqn!1cN zi4gCym%B~sSik3C`qe}p%Y#rG-vO`n;~sC~^V9`OMO!nr=bG)s4;s;X-r)1>=k(`h z*!uTxM3zaA7@};zcoq1|U`5)wQcWijxEJCPTpX$_qdzeuX8`*7F*V-(2a1Z5BZ%0`3tfjL@_kR!HQ$vkpFF43@wSJG} z_4GZqK$)&Z0M;;QdWhyY94iL(P!0lL7}-2~@#5^hXYoCi#J8-zZ9l#z);}IfqO})y zeuneW^ey3z1%tXNo<8E+7FkQi_U$Lp8*MR~0dh1z*&^sGw+0iCdjTC2eW`j3ZrzhR zY)cnsHE;Az@7HNP2dYo;!&r+XHX{K3MmB>zC-x)=*MJCGipO zYx^5x4YfU`m5`AJ%7n4Q3Pi=Me~p>^+UQClZE^o9ggc`2X%W!1mR`uZP*D>c4J@?OA?MDyqg%Bp)_>tbRF1!#AR=W>uRsSTk4v zO9otWsEoUnhHo12t9XgX07M29O=G5@pjt}|&KIND0{Y8m%TXw9x#-2#=O`uQ1XdLO zO>>ybqj*K-0#0z0Rw9@ZF>Jscxl5Rg6CI*Vg#e-U&duoFZRGG*dt@l;E1AQ3B)&2{ zqcc&;vZB9~6x${6j?(Z40CUbfl2Y)z`l0{%Wc_)1UFi&pftAHMtIj{c4wluFQj`Tj zzn>RaOx>UheFSmd=_dFF{H8o&kQkoLhV;L{P{LxlBy&i0b+h{j)T zPu!JD?usjNC~&PTueIgX$j!2-p$6i?jnE60Lg#5Hw~aIg#5qt&DXzdBm!efFO}!x9 zl~S~%vNDw!2xa6gS5u46B^(qrO%JQN+)o#{Yr5Qx@CB~C7fdff|7uhG5a*JnOh`=t z>ZL1OF1`=y?b`~L%%V_Ij$GtqBEs=xw> zZJj=2>*g8RJJ_Is{OrKJom)2V^h%2ty08nKThP7cuRLthx#bJ5bZXhWGwU~f`-BPG z=Djd|`}px&=P8q>@7OWB`D;72&MPe6L><|ruuj{4eLA*m+qX}LmTmj>e;N1sw&y># z>6hNIMVtQp+S6VSwXNWB%6{yZ%La)6EUR7a4g4Z;zl@lWLQ_&s|*BIg~n z5~fU5i$x=STZV&2#`_|D0CmZZ@BsBL4E%A4Vuvf{g8hyQg_VK5q)HYKVp^hs_zq>k z@ajA4J15N*XGBT%ooAT$LnRKQ=?3065FH_^*j8%sCf&qB%Z8z-RnfbDR?sG&{_=6&kjX2j9Go&6dPppoL2Ynks@9PJ zUR1@lSKmuZCYtng7+Yk31d6wud^xUCvSSj8IE5qS4>bqEW5an5npmY2_-18eUlO`V zzqEM%W08?1Q5!CweX27HpC$yHwmII3_;nQ+as^sa6dC4Pav=5A#G*l|gX07tLWy0b z3T^m9Boxe@#V04&Q`6!TQ`QP# z(&$TQ(Rt+(8uHAN+2#iol05SV)8L6P%UOtBQ-fVNv5DeB3bgoesV~Q;n8RdnV-T5D zNFfc`1S7&infjY2rG=uCyHkQiQ6q%#2?!m7H&U?GF3#6(oKTCkXf}E3qVU^i&w1E{ z^FN0#%0K@w{lvU^ug|!k?DY0-+_=>8@a1#)x`Ri#7j3^z96*Q42V%*BoZN*Rd}3SC zod6eBC<*v8l5wx79px>k&Q1|=qPb-FziU7O)w2oh>G}Jvprz>#@J+P~ zw5R0*B4XsOz*2Y$-yuqfa((|9>?q9!X- zM){cC5S4P@$rUl|EBeD-dWPL7JpT^;6RS%&E?;&yFYr^&-SAW)M+5t}7WPdL_(p#d zu^aR)`MdGJu=XUs@H@9n5l+n>>a!0(*XF%I&m9>x3?X@^m$3nD%HTFBZE!H+1|-b$ z_iR%={W8Q+51Zp*&yE7gRU*LKV)C}p$t(qy=EC8mYb{T z1#u=>0G$+&9DpToNUafFIOZh+B>{5S$ID8i%&)H~0+@e9yz-KmrtaH3x_|ii@%O~n z4h{cGunK<;em#8H@V7wUSz;QS#w)ygx#Id5*tVr6&zZs;EH-vy!i6JK<{)>B&fpQ8 z!LsnpB!Gh*(f3jAmci=$K=17rNsj|!xf+m+)iH$g5tK_N_R|(TICDG^%NXx81 zuUBwYh^s);H%Yzt0%WUcnelM6#l-{IZsvAzE>a~?$j5<0l!7=F>6DcSHAh#hES|v$ z#T%rs0d+w7`&NpIvyhP=Md!#7&yulPRKcz$i$~CdZ9Z`Z|9IKFpK9NESK;q`J4DQ9 z&#T^H{LO~m9jwbP??c|Q!&Ij`p2ospSSvwF_o>|m`|bGoo^I}znng?UUU z$7tIiecdcdgr5~b(wn?jWak5YE5}R|d_)vtvdEGTCZ*ZpOA3;C37BL8CgudsPGAuU zjN&+T;_INX6)wv8JB>omJ(*kj@9XU6uf4yp`%_j&c#l5G!)p93Zl@?~?4@5CvsT;Z zJynVin!<*3UwbS-c9D!L`bCY#JYsB%^?68_va$b0F(xf6R4Sff=#*GM%@S>BBxIQx z3NY%r5Zug>sJjHVN3*ensh}6(XavbwV)w9(m@6XxCODQBW0%hA7&`G04r&FK9O_J~ zlZHQ>^*RyG2>gZCE*+YtM)SqupFQn{-o?KY5ApBVIYsGvS)AQcns?36GFIS^brD6Q zv{5VY=e^09iv_}nVnCYORJ2P$47rD9Ga)18xi|QhVOmPQWf9VT;bJQxIRbKpO};;x zB)C8XDRU_I32#Rd9IXH(a`JqXrqUt2=r*%^_}ZnOMeDdnVa{6~WkkGKAU-?z-YsU2 z^VZ_$qbPg(%ZxJ{mPNK)LdTcA%`?u0?0iHKk&l7An=md2+RT!Ku61670T1-A@Vdf$t*RV5%V-P<(NR1i3c-x#8vUk3bQLlCXms_;y_hLOS%uH!(Zk^}w+m(Mx zdkwS$^o}wZUa2TV%m!#-I?58f#=uNSLNc%hhJQtKl#*ik5ki8%f|NFAPlB$X96d@h zcKALV32ErGK^}UVIp`nrRt)IAlfVDY<@Dhrda^Y$$LD;wb4cd(E(2;L4NxL}{HeS< zfmhPb>|UC9QY;#hzH$NY)A6rK$uGZn2^53ON#_~+3D~GE@Ga84V|Cpd;uK_#t17RC z9-a&$Nw!do@xYQBT@i2dSLBN`LZePXy|_94Ptja}w&k&63zU)}!c7kmDlJ$1P>WBD z1953daYP?4@BWca<@OiJb;vVS0)F<&ULG^4OEbgY8mK@22bxjDbq{H~dc7iV@AC6{(v#`c*Td=_q(*}j7qa`H+_IP4*pzAr`*K#ADuTlANsy?vi8na2Y4wTwQ) zHv2w<0Kf4WBb+Zk(+8hvVSfvsiMIvtMe;Mi*vsG9QT!PLyd^)=1!MEd&m`DleV>W* zedg8T&lHah`!X2O$eQS>Tn<{$t6GHKQ5jB*1aN3ydV~>$Lf;gMgTe0C6q~$}2}0N(IP;Q$(r(aWOTFMhTY9~=%JtOf z9Oh)P<8Pu5<2`2kX8yW$a~G~t%db~N>*wcRn@~R|qK0TAhSxkIKHba`{tmvuT)BtW zyLMc>fBl(|u7jZ=Y%i*&ev5PC1b?BB3>^>u!GYZ-#i<#g10Xr2a^O$>*5j@1Q5$?> z|M@|fVQnd?v$snj&v5&xA}2u5J{%IZn)E7J({f`=)O2i3@U6IV-%-j$`Djy zo%wJj@9kZumMuKXoAJipmbr`g`~33aTyGQn;x;}{`3Z3y1!qSNUY?IK&vwZ(6(rVq zlJZmGQRO*4PsVZ@LL}#6qye^PG{qOo@gctrx{+V!*EW2hKd?TNO-PT8(+@cj(3XajT9zp$Z*WXrQQuDqr`120URt#>2a(<{OF_7pAmjw2Ki5sKv8 zhDjrN4uqs$D+Q4P<%Zf0pRH&c<^SyG-m%7KCC_-wXF(IyaD;DwPuLMBsH+9&ej0ea zjIP)J_VANzcGyTc*8=1XrcUYUfhs#PADvw?7l@(g9Qp$ibjtw#lkBa+ub|<{@7_On zFwJzoZ7W-){sk+cH1eS|iip_~)k+x4a6W;j!kVLab#)WBGe$1?Ha&pu0E+@XXzUF| zEyGCP!r#LM3s~I+3-|fboMNw$`drA}K*S*=0Za>@ttRF_3BtpHgS3|!w| zn?>%E<#Zc!v83NfAh7X@p|;Cimxe6aML2gRhEI~kgjyn%4UClfoIpi`)7;M&P^Syt zlhAl9&iS1?FCNX@89QafxIv$P&RgW?D?1l;-+%s@)is9R?(3IB#yPKPM}_|ylV5!A_HED3 zo$N$jKUU3S?-PD`2u6p&j@^CenFp0g8>Y}_O^lL!&g=AX%9S$4X<2t^0vM|+r(-;j zBFT7A6_!F(<3SZXs6y*b6HUMaYH%SRNF#(E#JTd~O^hJ1fOLsR_J#UI{d-4{e22;E zUO;0B5Vyu2-QKw~e@CN+B~sG5rnANRc8wf2=;lq2$W)hjJXnN`w~vJ`4;+*}Qs274 zLuu=jopSs1{gW$G88JsWUdvKQ*tIdo%9vJVnh9{#W;A({oJqX&%;B6oG9^$q{6dvw zb-ri_3yM%Yev-Z&rJ!E%EUh#2?XkY)BGWuQeY1;qzpx|C4wl3!c@D?wvy&4tc3pNQ zF=l50*ZaLb@HE0*n`r6&MXm*NOa_N37(Pu4*c?y>F17; zRMq9hQJ2%FpXp!bAP9Qz`X1N2p0|Ws7O~j!PWJi3UYL32?qg3^2fRXhvmG7K75zoq z2U=w7HsG}SWM9CBy)Jjp*5WE=x7;r}Ss5yYgxkpAd)%ES}FFPBAOuQ=koGjl^)H zs$h7eDw73az9CJB+~*X=szmrNIx_kVd=ROQw&%wotkt^7*cnHT^iS{HJvK2W|F!gf zBL}mHUG2a3WWP7UW1ly2P}T@>dvn___w?#i{roD=Ia>ay>k#bPlEbqXbsRaSbF=z` zGAFYeHt@u5Vx;pI z``d_@M8lq_V|xa8ix#M^*U8ou{4yO9crdK%)=t7? z-0f2GGMs*_hZfN;Lw*P#zT#&|U?rL!LPD6akc@2u~clR?c z_mBcNCW+Z%X&SiPLkrvk3*3DR+zksrZ0^Pd?q)7`uL5`X0(a*EcdLTDmZpz)EpWeD z;7$h#quj5{-3F6z<-KJ3IV4MuH9Z{Xa$~V3y4*7h+>=~xEZJ0-drpBn%jKS5;Ldir z7l6a*En1WK2#mkSiKO>)yju5IY`*qS_ElJ~RdlWdJB8 zM4&7yh@VA3fv=SuMuwp8Pa1{3`(gAd^5dA{ti>&rqnGh;+$vAM*0=vOK6PNfY5ch( z=_5PTtW_WuwQSs|Wy>awS}6J52ff^RSdW2KYTrLK;*`De*^GO`SlTK39acM|u=~^j z=@(d}w;PM_c8B>?qWJ!i9%Jh@=u!Cl2>H)hF+=`iAE!?k|LT~YlgGa*_VUCQtvkd8 zHG5(eYu>a?o2Hp`fs=Svn;tK=jX=eY zv^7~48=L1u5Julo)W?nj27v;&^rx0lju$pAd|nNSsnoLj);AZg=NEXrYEReg(Jkft z`SYz*m8+`b<-(^5pHeRVUawx6ar6E zmPpj`3ozy9N*fR+y_DC6`j;1B3Ni8mEj)sXT4_qKtdvd2IMeGmRAho6jYih)BWgrL zRk*3cLwG#j>D|t%4{Ow*)eCF3vVfICI=I=Qp)9(8)2E(!@#&GvvW5>F()JCEZz2@t zUzG@;lxph&N7@|5z@*y%!b4N-GH9rxu&QYYoPIw6F`mR!_UoFftWRm)<>_f-NLy=H z^cP=)c>`%@YpyAJCtp~UMkPQgosFL{91_nrM1Q^%qQ%1U(&EWS8f2a~2`)YSBc zhPd8M6NO%YVKD`}VT4$MVo;N;!Cwcth9$R%h;Z5LIJ1=$M7j-`7s+q++xhnU-{znB zLIAE(C4nuw(sp{xj6nmlCbK)kuekSpBfe?~e9H-Yu9J;#+o;KmwTp%hn}<`;tLQgn zH^v@;C_r^vKYjGl=WC4KFZHVyxT~gUx2hrmA{G~OVx*>2B^aL;T(&B)Z|DG~ND+)( zvqYE6Et#DIQ4gFODUjnL6`uen#^=9}yNmmDOds{VnDN7i^p3qgW$B--o<4L4>Yxvs z7BjlXtHU#nWhz}ey`Ge`G(Bhk-W7e8Bqz=4v~15FZ|6?Khj#APcL49#rf=_;+NJl= zPmOXyT>z@Ar!gmGXPAi7n6N>dZiFFCV06u9Cqos(hgTkKRypDQ{#_pBZKh0BD?PlS z++9KRITGu6SY3+sjDvq#@2yClE5ko6kEHQS2JnG`Cnk$b3ka4$7SwpN2hd41=W3Ar zF?mNZ97MDo%07}y zWX!@}@C_xb%S&$F00;|%98-!XM7amL@`i)y ze5)zn=DnNPXVjr9w@&T+F-QxZmYz9b{-{Ass_^G{%Z=hzjm!JA%XvB7I%SU-oK>|P zcBKX^(Qhyh>HywO3l5QOr@`m~!S4O$r!gPHxu`K6T8?~Dixmo!hFGK)Bwxk`kW~!3 zI2o>s_)w>kwr5Yi_mIMyyz4#5W=69$IpP6xj8ekAE>@U=Rc(V+U57K5WLu=gnR+Bj zaxg|=q%3JHSR!N*cR5bw*!HmFsMNOa7W);2-1fz?6uR-%Xai}O{pgq=V!PNCb9bBY zM9Fc>N{MF$9nw^!j_l+4Iz{OnZNPs}{zbkVpTK%e9Q)eP%=9eJcYBX~*00+qKb$=J zqi6ci%q($d1YgysL;GIcTF>9NXLZ{-iH$C;%-_4bZJ+dR?~)It4R+!@=3WMJE6|j$ zB6*}ScfZ^+M-(Bq6qh^~V4mhMH8kH+Xh3J9P4&qwQuM8pK(^lb!gXxtfF7e?oiH>1 zuXhi8+GmwG#HUVYYhIn#_~k*FLpFby|K>|?ZxBD|UOXFLqb>%gX#Af!g)vS|wMi%h ziLqjG*0@5?N>OHqDC2AL#eVivw6dqqI)rVwtqDE5oH+6a_WL~~ ztK07$xXl;oN#p3@2%-*5IICMAUiOI21-vDH&RaqZVjKBS^!-Wr{-^N$C2j2=^Zin9Fs5gG zfAPdgSJ8h=bI9LB=!&ABS|Ac@j1fRC(Eq8tGK;+-#;_GP#3$nF4P*?Ax{l=Bz20Nq z{p_%4%3E=$Zw&La*?-4~N+YK@IE-{LePD8{jj>3di}65u`iuvDM+9w;QD{eF61|`~ z^qU}gg9VDJ1GpevFhcY!q~4c%N`~Cqd^f1nnM2~!w?!di;_hy7T6kKre!^hjWRnhFDdFFMeBAMy3Uo?nz^*4SILO1!?u? z5Bh*tjPQt2$|uU*!ctNjV7BLQ!av6ePoz3_{}MF*G7Y@EjGqTeUkQ{ab5H=Pq3L{+ zjS@$e$|E6B_%)IZ4bcZNDRzHU^096uVS@Oq)4P8jKXu=;V8V!5lUQAMr$5hL6u;)L zoIf?2Rc+U~WwrFZi?sJvrw{4Uu5ssf{bqMty8Xh&{v!dC=kP#K57Y&=AXpuJd{wL5 zi1AX)hbAX?<6lcguNc@jEku<(0)Y?HG9nvUM(M0|BaM}nwlRU*e6lHlcNIT)*p5$b z|HR_Xc)$63%$!+Me9lX+(Kbx)3I2(i#_5sgsXUbghfw=EDbNQmD<2zSB zI_q2Sa#(MwxYAZDp;ugi1ErL2y)DPj&|0;UdbReFmL(=JVT!fU8G**4YmA8oV2eHH zVIRH!$B&VUPB&I%Rtsx zIH_4`nGGHc$Ap2za9lRIjxIo2ZBb5Ldi$IpsIGkH`)|c<7WM59EQ}xAwQBhuch2hV zyb|&>FR_};`7El<)e;3o_A{41J>BHpD_A|`WPw^cWAy@UO?C2=JjozW3mY-yxTIoZ z$Qrj3YuB9ehNL*H8DVkM&WF64JRaWTkTSGz8TiRkWf<`g{GxpvelZyQoJk#1|6vRN zlB~oSg~7k%4;%C+ANWrUlV`)%T-|q4sF*fF0ij`Fs9_}cCZfCU%-;`%iIKC#sIWsA z(g*`1*3UZWycw`>R8b}4O9PmbZc4~UpaM$R0iqL<0yFz`smGJe7JMz@Is1}3 z7mC-_1>R2vUUDzks)4(<#wbEiE#LlVCXunkh9sh#92j)gnnT6zHL2S2C5J!G zd*^!oh>_igV+~KQIeqZ0SNjj^iQgh1#7p=s#pa8lTK3T(AgSx6vX}Dn@m77kB@LD| z`~nuKVmT?sR}^znVnu;A!Xi#ae5{PN2?evwmWcc@5`4bevd~O|wdlp6k)Y*fxSn5jRYR z{Rz_njlxLrz)$qL8;%0m;Gkx~MBrIHN?{K*ru$uR1R5KX~3Vuvd?PstTmr-HI17a&x0TZ&q=_ zq;q%PKbSdg(cDRx3G4=C2`D7WHq3(CwwMooc4{jnv5NuB$N6Y$) z`5>4=mbAHc8Nq~<111{Qev#%G=q^g(l#@fFC zJ`7V88KN_*w+pLm|1Zjd(ow{+FJaFt zSqu0tb*<@njLm6lgccrTmgrk*5nRStEb}MZ$mA#UOQ(4C`FtQ` zkt#ZAOCByu2ZBYo>_||vBWn#Pc*XS{bBUk7_WUURWUkvD5x^R*+^p2zlAF6ljSPBl z;e*1U;lqQx=ie_38tdIJu7>iFfy;AOycy_SSOUeo8O=sLfZ0S)-iiqgC>PLR=+Zr4 zJg~5O!@aMCDbff9f)XJwxa`fv8Utt|l|rFuAYla>2PLnhhGHJ6{CgJRQU17=f9*GW zJ`2xhhf~=QDC0-}6knAQw^(dAtMCWf>0J;DpZNc{d-L!riY#upt8d?X6GHZcu!pcD zf@qKcQ9wXN5Kx0ViYy9>0zyE7pa>`k$RchK5C}W6lUxx^a6ttXMRCAk97Vx>7o5Qj zxP8ChIn`C&9pY@y_r8C;GmiRXyz0CIsUxab2$vAm(kS82=I>M1u;v@@& zqH$0Vr=S{J@Yy_tn_8n=mtaO>^*!U;W%s%`} zL;LNe)HgIY_Cv5WXkO146{(}{Z>%m^UGKh{9i#;51s)Mj$zwqz(3`XisG|tPpSQRf z-0op368IF;P36NA&i?j}yB2FAX4^{x58F?cE`9&AFOSZfa{tt23oGGpz0h!NUI#oW*?RIXg;)K{GaSB^$IiOjLnr`;_^t$o7`oUm{E@z)ZuR#-2Ic(Wml@>kBWZ!8%ys95?5!tt1E z8nW-_;wG#{#7odp(rY^JeJ(^jSK5GT&qW0H<(-6553DU>4iQT>>P5;sf(hPSLFgl1 zofjnX$VB2+vQ0P%hp0fNig0G0M+RjjO_T@_eI5sd5Se#RzkifD+YHeB)?nU_DHE}8 zyyuqwW5}L?pDuVVOFQ&=^+-G4`K+`(UQb;;|0g@oQ3NYIl7%qW`z#A+lRtv?*c^Kq z?Xf3Ty#I++b^nxQ3vsCN4tonFNn+?s-eACTHo8VbOTy{iSNCI~YyUuH-$7dA3D024 zGvGbMp%~CP4t$udu=y^rAE>maRGK|2?Iq$in5+qbUzDdV4)3pxQ{k3KfawI@L@Jg% zX?;6godCq)9?=vDB=CWN<}EO7ysHi-_pCZEvveiVA`5106l4b$M7N66cfa~#k9~F^ z!G4X_);<#W%|5z&?V2}DLY5cRzL79K*WPS>4UCid97~rNBTJfmi#TwJaz6i!;#@Dr zMNrCYE%F|UKr-!mURjvI-n&4r|_&s^lls1h>1 zji)tw%@TAr&_>61y;kBy37?3Mw=`ON7%Sk}hLnAQh&LP#C9=b72*9 zP$;5K3kNt<0(*v34Yl`tCuZ1XM@8!!t8NsnkJ?Mctnb9Hb}jnPyvpos2Sk+qi@pI5-;arI!E%3 z;orWyYf_rijW&^nb=dcS5_nG*0obg1OiyL^!Sk&m#FW<5ArLqF{!tH9{rJMcpGFNE zKgRxR{|y&TtPD<@IO}mcwruIKK;LTz^ecMg+4T#rpVzYa|M>+XASz)WZ!$$rf~dflOSxsJ81a5eQ>Ba1Y&!W z3~F)t9*`nt;Wi)SblW<-vT~?+=!o53e1D910=6D;!=C6?;D=My>cG3SC}RDY$4z;n znVnsyrjIqMsqw&qc4NSFj>*Dwt3xGD#l$t`-K~}b`zA{J>4g2Dz0v+MxHb?j`^Iy7|0bP3+qbnQbPRe?5I^ug4NZ+!Mj`It7*km)VeE6wgaQU(0x>3)jDu`dZL? z_cci|(qQ>QB057M>$`8k1wefv>#G)#G;)N!K;EbkIKmX@>5H2A*u+NxWxhocWdrm? z^pta*d~CSEj|cNa#?Me>A2?F^=xUsKm6LJiRf<>Jy!DDGwwK|&GZDmOt1Qz_FqgMH#d zY1`!Q@F<;;T4B~QDT&snev)I>uWCs}6X~EhitETjxEb2)9{OUp-O4Vfyv*sZ-eF%w zDkX|gN8tp9>SFiqx7vPz)JUAds7;{=#xUTVYXW<8B>dc}gWodpNBV^9{U0YIQJ71D zGZ){{tmYDljiA&+|RwjWZe zgE0EQnrXn+%>6!V#+Ss_048Jua?%(LsDrHUl!{MpfJf5Dz5*WP?StcshfW7H=kDWz3s7Z&ld7NW2tWy=d~hw953~ z_I)8zgA+bmupc{m;F`{C3jJRNEX z-GwsYhx^$6zV-)|l^-ODj1OxH;5Gb*4QO4tCe<}Pd6+OoQ#P39q2Sl&&a}dYT8#cy?4yv zH^pBnf!?`ai3awu<7Q&+vO88rOvKoZ*g1hV+buB(axek-k`|kY8#08`2a@EVPZp~q z8!N%VaEM>8?1x7H$#L*7`8{3EK@I(eJ5v^zGe4{R^i%Ux^rg?F!d43BroDosakjlV z)D&3MGd4SQWRhAwPVqT`e7+Z*&qtWEo~LwEt=DALqI)GKq3a9u3$%UNJ~*p53wdb# zYmC<)gPJ_<0S7JIqkMqyltGuA#jB7-&UMU>)gz}XfKPd~hKSt7Pv2|ru0erCHb7^) zj<~ia9Tv2hgERR`&?3cnFalpGu-3)azP;jekSXS2PSTT3jQ^J#$K!2{7;&8X=%2KI zhOBX!7m3kj>+iJ3I9iu^wcTA!Mk-#ko}?8LS7jIzBMH0*O@Iv#mVK!t z`zE2-5vyji?q&5`3~O) z`&-K~hjWcZk&OH{z<`{)>c%}E8}T`#3gjzVvf z>&*0Ad@Yh=(y#IcDK%X0NtZpPq!s8U2!*);nFdJiPTcO9lGOp8Hn=hZ!Tx_=_wZ`m zOZWPT17h-{@4eBX?dM|uv(LY?W8nDc;jsYK}7$YOtOqhwj`PUb&`}5tXTsz3dBgai7LB{g}2^sK;0b{{gI%;jxbQYnML3{vRlmzIZfc=O)mmtEOT~ z-xKM(-M5m?Z!dwvw;^1|KAG98E9?8>JWOS5Fr5|{*bm-Cb(t{}P} zx|10@9vlJPsUa$VMn*DQ@ZLej8kPCb>E>H8wOu1QGW{N%=w7BKbRG?%9MR$&&Z>r_ z^rq#(ZST2l$8&*X9lk-5F3jZcJzba?K!zCInHhL2X1}}c`Ne~756=Adk>5qi>8-Ck zclpe|7j%Ap;rwSq=Hjg>qUk>qUSB`(p4w0R@PPfj9euE3SN2(tpOtT=zPhHt%8i)e zKxn^rVup3#&4-o2-h8q$vYZ+6q}1XoWBgy9@`XW&W=ZJV)Y=o-SCC&<+}p+ytet77qD6?dnC_@L>hVStm3L^#cf(t zhZ?buJ%qL(A#`@cj{%V){ENcfBEMTa6)|)bMZ!V=6XAvm)01jKHUFNEXed^#FKaU8 zqEIbKi2D|pTvCqUM_u&66&wjcmQr(9sR0usyo6|AW)5f}Q&ON*%dX14tQ6$bEwo1k z#C&^Xt>!W_rEA9WwSiS-rYAMUTt9I@%EaM47cEL#J~3s$#BM4#h2-ykUQH`a+>6jzt=N;m;@gGDxDlSKOm6c@5WE`PfR0n zrsbz~O)E+xa;AZt$({kwOUbhZ5aOb?wMf!wOe$VZT25OCD02M}MaY#36P9`lGzoxQ zsL9Ez zhqD(nw2x1`3yJ~x7Q$3%raH83`cFEvDH^qa{oX=-@L7FLos=w==S@_k7%Tyrpz)MR zP1?2_W{OGfPd8Z&HrBsv)0WqSw2Ry(4>APshb4!Ca4!`r}t8cnv*uc}z zdXh;^igQ`FLmpCR#~Ber-e{ zS(R_<5-6jd%p8K@vSTWmlCCh&#F2`f+?q~g#dpnz?wA69AG7hH_j2**(6B zGpq$yoE4;o&AuZ>EVCaDiHR%i=|@t<*$-~maJw0T7Ms(Mq)>lQ`DtL$z!)lVU|n0` zpo}Yu?OO3}DSkMS3&l{rSI(K%e) zR(xWwu5(fEsqMl8$CR6(qofv8`7tHmn+T&{jLY* zn*xpD`^v^$6uiY*p;5T2BZdrD;bP+HQkmgCrEZiB+>cm(lw^DG#BT0TNXnVaJ8ze3 zo|S5!$hvIo_?gS6&w2WjcP1BHk$O$n3$N@MXgtmQ=!(bg8TZt>(t`KC2->4sH)(q9 zbw!gd2emt5&DVn3A)`QI%nk&FvD&Sqj94x*C@xi%Ok7-QuC-UM69eo{<_L3V^iuPQ z2O&3$K#k?tE$Ptp&NA+oqqB9dMrV7PH0b6bZkgLWf5(yL$C}5`hj~YG^X%sN_(vp$ z_RQPq6K*fd@}OWgCr?eJc2;xz!f{&B$o*qE?vKlMKZ17XR{#OvRPf5$WN+0jwc_CF zQ*+Keb5_{LSM=_7PwD-WOCP?nOV>V^PriI^Vb`w3UAvi=j4$joZTQ5A!!N$2LE-pe zNu6@Uj;&}Tu=bnH5&4u8DUa>#S1(11W51jER%$!qHtT8m#Vy>0xw)ek(pG+^Id zxN!P?16vh!?sR!?(e0wylP9iN`{af8&Sm4#jRkZvcB~^8d6QBfmN3*Ei14oAqVS;b=&&_F zo^U(5nnmUynl3V;jQnn?$=EUZ$h0dm1{tG`DMlOsQ((T-LwB~iboixvnpVIKTF?Cm zoX}A^EX&QgqPS3&QE~iLRJ?e2?1Muu>ptX`9+wThuAq6dHf@@){NH-qGO$^N6giSWmF4(R;d6)jvI>bUJ%<&M zPhQl+Io&rze=tX!J{)KqU1DaKNjC1GMP4`VAw>x^Qc6agvIlI)~7_ChD+Z+|ptMG_9rLRYzrG%Tc(D$*p5p%KAu z+Dz;7R<)jG2{#tSKp@U`3+uzg!*s z8=KBbE$t{qzc!($SG#+kd-L6SCrbYk8+h&ccW?c9XWyP;bhPvNou8cc_&axuJT`9b zox^6&J}^7*^tE@^yLH{b%vRm{nqtBHYgZ0la_=>>TjlqjboKB(3CrHfIQ4t|0foJ9 z9D8~1i%fIvHTT`yFYSg26K=x39Ez@={Xo?e*lkW8IiGKerYxV;2QB)@^47M#VN#Y! zB!ROXXm@(TT9kO=QCFddnK`&~n4DZq(hCa$>CO0do^+(gqtqbq;7I!)yT15rw}>Cv zw0!uO@@UE9GY?+Y@bM8d7W|A7>;@;2>EdBK_G9$3=ojL|w%5eW<}bbdIp$FTZR_*k zHnyUNMCwW_8eQ2f$BJg-Otr`L#kaNO$&zJPxP{lly^;7V);|zA@wo>$+RcS+xL_Eo z?%Yqys#Ho&ju`ujnRNWrkDmn1i(c;(m^;NT6Bn#nX79Hv&2iDW!EFcjeL3V(`{dGj z7uM~tdCr9S%O*`1Bx%6v!A3#q?CVr7@D@{uv&d8*e5;`hYj5Jf_93CWku$KpAan_S zMV^4w=9OHyS%7pBVq4OEq5YC?*lbp@Yu7>%Jr;f6yzYDRk?2^o?VD^q80`{G1AdQ# z&KbDzthTC$Vf<7ZD#ouyZqfLKWyl0diI>V!_p64A*f+JRYO?6`kv&6f{Yd;`CxndC zkKppc^yo7Vt*n!vmA>`Nx5#W`C|dbeTt!482CsM|D1XIs2{>@@P(zH}wX3!{UjEUyVXs2imATU z<)$_?u8agcejuMmQ~65BP=WmqH;>Op=gYw)hYROn*O+N4#b`}=rcaCIr8T6OzWw6x z7xyE@G{9%uF;FgvrN#((qSQ#PNS48>H10@vnSy26S@{$!JCbz_zr5+bk+@_ImVurr z?#V#Z_8DT@`jVNI0@S7pqg$|+o!4x(SooJu2K5^vg;5U3bm;AS7Tqc4jeV69y;rlyl*|S>4KXPjON+<7GK- ze6{V!Pq7tp=$=X#$2oyOkLd5CUKB^xi4R_gzAhenLuA?CQu347Dx$O(mRpaAg`rM} z7SzVu-J2El)sSb8=oF~DHq_~wA){wKc*Pdt-3P2A=F!k>BN5p@gE_1xwWGx3aCSI9 zEOn&N0Lnh7eaKzUiVb-ZNc(EW5*6Eys&Hg4_`OT(`&33?0umpu&?SG zPwA$(kr+DTMvAFDu0%G$MK(yNQcwWt9#F}WT=j#dkm~uE#Dz%sne`rGu-)o)%__F^If`DsX%&V?DFFHRn^H}90 zF3N)fXzv@`qy3ns8O`#q9o!@Tf!591%-ghMLh%0HcU~M{kek_OM4y6O`%_wnQP!tc zzt93$JhezWSM7g;$i3uZ0t4DOtD{g)F+mfrMh#HJLd_5v8u*AjHTnxz@kzSukYvF( zkj_~PAhj4-a8q6wOa;bze359nXT!$V15MxDJ1_W+{m1g^bXe;4?(dM9nD z!20l&I3Z(!Q$@^ul~jUvad5ZYhKun2|B+6T9)BjC5U5K9Yo@xpSheV(?dy?FgBP#4 z-6xzFyQAh?;Q(Z3Lv)(dH*}uCWB)>SGW$95CE1lPgEB{FLUv{#y(5E-p$18rk_~+l zG|$hC=36VLO<(zV?_QT)zE||Vct!ZpC$H)*g5?9p-aVjwmkT?jPO|DY>U8y$7q{&c z?t)lzUvr+hEckpNEZ)EtTZHqAPbOB*NNr1jBZ@NGI+%-aE9DmFR!R-WRtmxKt(1W4 zkMW*nxEvlY#dDqmj_*ad9x$7NJ1|yL?>kv5qOquFGQG1S-no{?Lf!*#bH-vnkQ%E9 zV=X8A&E^bKPri@6IW!goJ5C=eW1%V@bMPvkSyZZKnVRAa5p^i37S(@8yD)B=q!{*$6;Zx zVO{&9pDOH6SBYh!LF7k~U+=d0JF zAj~dAyYfeuZE)~zj9u6i(ZAZByX7rbSJmaV0m+ z#xH+Xd5aM4lhQM@oSB8g&dlgC;9%oR?9a=0+K1K$mWYPW{w#8u?rL1M^w}S3i3tZE z8v88eS0=x7%UI0tz&Rg@D|dYP;exsL;eYhlZ2vm9V;j+92^NiQvsAV>GO2HduE|i* zKvo^q8hJHsk7`YRPG3lzR6#2Znzm^nQxq#h1#ZnE2(OCsE37T{t8agMk@XBd!?)u1N*`FN;`A|8is)W;-?jJD(J0S{6b~ zdn4e;Uh!w^10^qE)6mt!BsGKltHd>F?Sq3>*`ICOWPiHOTqANeZ4pgYi_G070E~M(hHpRUVg{;g2Uj+KUh>i=4 zwWmftv-ic`I?!%y#rD5d?&{1@{*iTmedZ7Q!(ns!y|s4J+F`_VUF;p!3gAeQ9j6Bh zpDBurKKF`p%X^&`@MM;=8i+j&;vu#}wmhYo%Wi^nk27@>{Akafs%Rtg&>PXtX03(` zOYP@Gue+?A)A8o%_Mp{m_6jR#&4s5Jv~n)mQAVgQ7s?IicpC2@oI{D6q;h#JXc$I1 zkP|>-+q7!bLX2d_?dWGXxx?rMZ~kl_{rTv&jt?GO{PNnF!%Lcqae=y<>~Y;p)Bfet zWA zMgmLY49?=ai5qzIPjG%?&&LKS)CtW;2s_CY2CEV zHG?m0Lv~eg>!9)D2X*Myt%Io5`%aiu(zpV>hS`fnj^;3#&`IG|Z{v!L~#Bg9(JU4zKu6PhPTz9orLVC17w@K8~F_*C>L7Ni|O1!Sa zUoffm5)zZwEE=}f4@^?e75w5$@XFU*OQ0ss;!+LX)8|O zeD#xi_Pn-f!Cu_)v%~HqhT$%m+KBY2ea%NNA{0K+i%2XARBEFOb&E`Laj{Hm-(Cz8 z8%sO2OKN<{!;5}dU!Jxs@zrlhlk8-#rXG7DWM1A{-x#KZD{HxTL!zWxa{+N>l7>(s zg&~?j_MvA9Ag=h*P@1=raeNTao9-cBueAbDeNO0c)KSCZjK?^Qd7L5_7bOlDq7d3gtQV?PA`;H)C&o@HM; zk&3J^=GlmFWkcKXnyry~*<_F*scd_8y?msTmB;D(`p^~@raH2Od|GA;_n1tF3KxKj zo6mNgHJ2w|ySm>kV`t60_QxxS9JHPnd-jfa?Kb^*lpTX5fyTd#XqKU8&!D=y$30UQav11cJ?@p59dX0Ss3zRc&a|D9ve#J9%>2vi=8K~$buGs zMn3|Q5xC%;b7|9L$HFjOY1qMPH+t{XzZ560s4U*I_vgyhbD!&b-S*k5&9vpG=PY<2 zWJF(^V;{6*;q8Yu+O0QzK%96pIPn^9`dxbonH-J_1!r^bKu#Ezfi%H!tWF@MRjX%lW5 zxPA!Qh&5UE$BYlR-Z}H#mvdg&3p)1)ow0ndZ{X{2vP;YB%jlkSj~$a%A*?fEh|YX$ zGMz1UswMC*qO&L6lIZNQB9H^ac;oh#)Mj}gcy4YU$IuJu0-I3(G4D=&X>{evq|t9p zdb>nauAjZ_>T5R7d)mxhetO=6X1kNdgt>E1Eech9uw4AS_z=y&zTPrG=LV1rQzF^Y z!oi)Us{W2mdWAkqV)cO!dWve(T+}@_h*`1P=MS7j>d2>PsN%8Y$RXfMpG>FD!dZpX z3WhQT3%TsAeS6H(l(&~Ull=YleWR0?nJ123|K??dU6&Uvm_7QHS5H>1o3rhjYqmVH z*3A7?w0&~w>7-+Jw6N{$R&C4IpY?z^|3tX_?<>Xk%l?L0--LDR?nIZ*mvX_kPAt4h zxOqdyHLnCZzQ{T}XCa&h(Kk)~{Lzm^{mEZGKL7Iv%*t)^9@$zkZ_YL|Z)t3C{qa<-@=uQL-gfj8l2vofX%QEDZ4!>W}~Tls(5 zy%b^0f^9`6HTcQdy=_Om`M{nrmCKXIz4gjZwVvNFfBm)BY?`~#Of5S-=lMSfyz-A0L{B|=gyz!U9vp~aF3Irg-W93apdpfCGN{fszwO&SItenU>W!0?8|SXOzTc`xHkvJd5$$G-J(+7- z6GZ!8!&{F$VW!SMf;kL;1o|iDkb%8@TO>~22Mgh%yef>TS^}lpM(WAJXPkg9*V~U1 zu$rdp(`<3*cy>Cc_U9o|LiEp+eQJ<1E1aBubIh0a#|dK6$5a3MO|*I3tBY4mxL}(7 z)7^_w%_a|Lh^)`AT=L6o+de*S*_$^_85?+O#lm{io}#rFY+nz{=t`_a3+!;@1JGJD z`>%I+7S8)Dl2*Y0M-s8aJxSt`O!+j+7f_@f?(=!*)nPNnF_O>N;Df(;?XBXJWxsrS z^|p%&@14Kk;nBNZ`o3zxtZi3cxAEbHW{Z;||A{H5gWtu@X*s*s(`6l}inb@?o;|oi z{Iujf(#LMVv}XjLgJ8}?G%sKbLnXsw&}te%#J^7H)!Ff&l^SRAF-%f zQT|XLldn&cZo1_C&!0vTCZg^rvN-)uT`|4_rT^PluvAM&AA8 z!s16qx3fPVx9sS;1GkJ>+(#7j>U3?d0Rf|9j|yhuI%1t*9%7!b*ke{3p~OA!q7DF&iWY9-bY6Mir3+5)xlrsa8oO|tIk%nNsrT@u z8v>^n+p#WGhSIb6rKd!ES8DNm<*?|e<#(DJJ002+D7`g$b2~J8#)_aC#d-!SLU-BE z^V|ufa#*yHM-qcoQ?)!k&xfW#x=f@`$6BSs&Ea(yWXeBf`Z{Ki2M?iQ)TP6A!cPRo z@T3l`M9z((2qC4-^UYnTp@l!odZs^h>%HkF>et)<^rPm@(KUgh(-qY3Do|AVH2!C= z*~7M;-G@5}ryKnvCih*CXR~ikzH&+CKXo>%WF;Wv>njmon*>25sTQ5sz*D;oNVh;8 z13KsjvO2d*Y}RcScNHG+{6@PEoCvR76&RsfUZ1MJ;Tg#B7D%*BGk>z4w#f#J7izo;IHVyj&B8ljbFcf=#YJmb-UgA>pt9M%`QNMC=E% zIM@xG?c5p4=D$)eS)xM!pySg3-*US=Pdzd{XO};+{UKMpm_X2aX~zmI9hT^*3WUG4rjrzWuhtMNQ7{b?KzZAAY!JPq3SPa(-2* z9l7WtTvWMmwz#siYQ6}O{ssS5uu-@Js<((bA{%ss8b!fM9i)MI?17Bb?7qV$r_+j99l|fs=b$( z3^#TI+M$ldB+aEx>?kmPfN?)Z;vRe29iKNA;U09bDTj!^$^%_uw0EJ|U?k{}gpPd+ zXh|12c3G^O3$4eFleowJ3h04h!d*fSj}^PPYv@|QU1eHew!yeCaZX#teJ$v&IY-Yn z(czr&=-L_|J|EBpa;D;HalTq5738kSab{W_x&&>d&xCIJC(vca_ccK~t0c#6t}$6_ zd@VYkfk`tj-l3?59xfVSY-de1-g%%)8^<$Ep2dy4w=ZyJdbYd&l;o_)aB!~a}CT-s>p7NE_!a;CA@f$y+j4BwcCe}#uq6#Nta5f$gd}WiKVVyH*sxI+%LV-$y!FU&67SefKzHYp zfv^Z0!(-P2+F2nDodCR*?3xRG>=Z6a ziK}Sj%(6Oki2%XRfNoqPG*;)18eqM6FwTSrxO}L_S!0pygQb;}I1fiOQ**h7ZU&09 zc6fFc_VQt#C0fFgMq<3-;?3?;TFW#C@9NMc;(8ZaxnV2PYlOxu2kTktkrlOhWadGM z$8eM!Ys@utU0_b3f6^D~*nI-!jQIe@yhJo`aZx&=#+;#fe1Z-c!>`k$vn5Bf%);nR zoY7hL3VjYrN=>cUctdniaaW~HmDfHjabZ~z+yZElh#{kRWSoLkvZcJ011q&Uct4zx zS3)`$Drh}&qHp96oRP!EN@OMo1+B+Eo1kGkHMEPk7O4&_4#y7U5<5t5RxwqhTmGQK zXr#@vZ3_#wBJ4?d7vwoYvPL8;gENp&Xyr*bh}5e?zB*X4q8WML^wsd~3fb9%ALeoM zoZOCMu58mTvBym}4%;v@TK4ekX6x1B*zdvelYP(WfBj|kC$_%h`bS5KyY1=0^3%gj zs28Sjmt7S24xZU_P&w$-4eGgS8;Z1k`p_6I$j0hJOMGZamUv^w9zgFWGNB>~S!^&N zwF#bBPee14mcS-fOL$g1Q-@)7uIqrL#Eb&>Bf@359AawUu6aR$lZ4>pUS*|bptj6U zk333MXx4-rl+BaF4?MHt9U;EmK5opA8C7@h8Nc&=D>ug_(ySYnHhaw8JT9Dj>5OOR zY}k3-Eq4#?c~xn@oono*1^rT7njOFCvQOT);a1uU_dr&C5WWFi0v(yp@7Ki*O8T%r zjLz?D=lrG!;t#xYa2_!w9CK>{ znTWhQl6xF_!A|85eE6z~u>C+&v?!WT5$B>AX_dxTLAOE_uGRilh{AaSGv&B_p{Xn7 zA}u6reYE#*pF;M9!UcZ$R+y`@2GY=UOZH@y(Yf5*z?VJm7Vb=M{m}m9zKR>1DSVN+7a)BjOBOhy{$P%?d^LZM-Q_cJ)3#B%y_c~iPY2?nd65% zavvVK3_67)HMBOF=SU4Xay~d%j=a+NC*+Z{my|pzZ|dw09yv&RiAJWqG}YZpYV7hn z2U?Cza#W7J3U^kVDg9xqvb>OE(_WHeuR?>dGx1h-)4kDOt;4KiV{CLMt`Z;GrC0+w z_b1dSW;=1Vq35G9R5}k<3_b%|F)%acQ)c|^?snGh=zLQC6xPzi7XkWm2f7h_NAU)y zjmkO4p2McNH+(K&q~Bs~th4ChqdtuomUE6R1N7kFcYv0b!rE9 z_5nb*4E{}zy)t$cR-yXX4zy9%?k6S$%K?qCfy0`w;*sBW$}SRj@CsfbpYC<`keD7O z`77~QWi)hGMB!19;PA|IIK}>eM3p0ljdM+W3tTV{I(To?kmMRPcG$R5{LIhWV;?;j zZjaH=l`AMFiS~-#94w*L$&mYqa`?;(nA?|1=vYDQ0|l+E3i!|Dd1vkG^iFW( zllC8s%cWLr-i<}h^HlpQJYR|Pv0?Z;;DVSHc(26B73ZnZwWl-A(T$z}#oL7!0=lmQ zT~{nr(9GAU6<78uPMUbDA>)Fv8JCgvM!fR|J6>GJxL_1|j#Z%NB)J*}D-`hLti73jTWqt<owpgH8nb&WH}MvlaZ zu{#FEjgFfV7Z|&Jf7}rQC;~uaKYgPpZV)=RMh4Rm#{sJK2hSXgRpN!{9^gtCtU&C7 zDS@?JCC-oTkaNIZCLcEB2GLXe;`)kMqSD$bA2#o0ro`0_bbnB!`p(O6EJn~X7{~O) z*i6s&m~M0Jc=X#R4+=)%=LL$MK3tX~ov=`iu1^Bx^Y-I{li*%`5-5p<4q zEH{?BoT71QS+;a$S$*s>qqL^69jyIh!}h{fJ7Z*pwS9#(mQMv>%|6NHEV&2S zmj-q+{eT}o9}xQ;YuPs%^TIa#T<@G%em>?<%K0IHpu(+KuiI2w2>x13!yq|n-?BVCY8ar6J*>1T;2=lYR(bKtQ+qRYkJ_7Eu;A#5`)eqU| zSjOo3{A}D?R+*Tpu7Sa{iAk0yuN65DgRZ4nj#O!`qK~AcaZ6Yjm%eoEoN7~IhZ;`` zjzr8YaKN=1*I6U~vgKJ(`R4mQDz%X~fB0=v_U=&tBXhhC_ydpO*u6Tst~II@aJAx5oNd;c6_L|hGH zr#dvOj`wn7ohw^4-b!Ed#WIXE@N*8P!=I#q<^39EyyOtwz?yR6wJem+AMdn5v-JKS*5F+BxC-$L@9FMh`pC zbiz7gYdy(1;bSjhCD9AY%r#*_Q2+i|ery7)47(;|si^(=5q zl&}&X0IQIhd+AXl(TD_ar$D4!UMzs!mJZyDLyduZ0nfBM;=ql4Geyo{MQvwCREMTG zu!d$kjG)!I>W9Yu8Kq&Fh6J1J@SudP<={ba;HC--J#LaI`ITXVI4K>RDGuCNNq0SR zn(1b;$k8Y2Z%`b#8_}TP5|C23JjW{cM|wTe8TizYb-z)2Cr_)^maG~HNMtO zjLpXk-QD=f#fDElf>xG8b?6dte+|%$9ja7^E<>*$O&2|O6K8!SG~q2VSqpij@z&7U zUc8wu5_-7toJ$uC-3)Y5vEXr-X)T`V-<+B5cd=nToMxKt;9eb?BHkKzmFTQ|Jcb_{ ze0Yb3)gvp-mth%mi3dfoH79E5dca&&g(hM}8#3kx8S@fR;Nrq(GhwdIX5OE{x1AkL z(b`<4(JBd`BfApzSH1fw{+g|LML}0^-WWWJ>4-c~M>kLW)t8$7zsFy>ZCCa9tMPB+ zuZzS7p7?9|9kL_b1T=%AMsQk{dUB+wMZMvoIp_>Wk_w#AhUm#x4U)!ir%O+^fQg>j z9xisFv9@>XwbigW9v*HJJgP@tCHmGdGPsf@Qgu9*8?#*MyJI_e(7w)Qtm!O;zHpvi zDa`}*UD&`@<^d_|io0qaP_jG(LhK-fVfQwf9z)06IvS zxc_^siW~f1=<4E2qHlSc{c0APeW&dEd&YT&b-4aada3Bl5O7+1-nn1$nw8JGJ1Zffu@VmSDnaK$^|4zxoHitS+G z&bTl5on^>N(WB_o);U3A3vd?6lZ8&iu(38)-<8n%oD0i$#x?@FH}RlzauvrK!jItf z?h_}dIKx|j&f(e1u~)`=xwF^jT-cd?2ws2OWgy3<%27ceC4*fFhb$H{0&~4`MC`U0$$S4Wx zF|=;xdN!C*m%fYUB#{1 z*DIlkw8asCk=Y40{!nJUCh8gxMtTCiEDmG}pv*lwf z@2khqE39mkvmm{-mBe^-K_|?ZqwA2KM*0h7>}f4c>qVK)E|azrY!alvkJpjX4csqGdQ8a$#p-qANQn5*RYYQq50<`gf1#tJZ|kZAU84 z*G=#IVLdnhp=tARQ}I9Vt!i^t|Es0r>yGQ+eLj$N`ozQsrrZ~(O_C56Sny|FXXGxk zbnE1DryOcClD7Mhw)!yYHf?Piv57vAXb>P z&yMm$;e3RXRb`9v><~2w(d@AP8!-MX{+z2nBWDPI$2{?O_EhobF6!?bnGDf<@%QIw zp8R*rQ;x?`=@4#!a6X5w=D&l}oWE0KGel8SeCGHY;xE+U#QD3mi~rt^KjT{*wFps^ z1Muu4moRc1mefyuZm` zsxt6~aF*c(fJPf3?69rk?AS>K%}H1UeU{@He9XQjaGb|}#eweOj?Md#pjEc;Yv6)D zp%xAofLB|6rAF2~p!~M;fyb}RF>hn!kg+XC^9yS+G;SmC3z{}JN-58Cq5xavcKLfrmgQaqPysB_1a}` zF|BC6oisHNEK43ZLyV2S97qwxOFH@W#$4V+u!_O66BuZexGxJEw#w6 z$xF<6Cg2Z_k8!`-iU=+NbBe^4jV}s}`CM_uRi|^QYtXO`KkO|L7aKy85^{$E`&hCecL*a!=v<=Drj)!`nP4#72I~k(i)DMotu~As{sr8aOZYRm1fS{eF@D=& z#%-lI&wU%8<@7d{i;Hjn$r&MMTK$Y5N}xS6WY7-%cJGS>Vm#i+k)fwjQZF6w?PiAoExD)%7PTlBq2e=qA4SYj?A?8$0Avoc5-wfvg^X?JnkkQyjYJ zJewp3kLqKWm^qBob55IMPiwsEL)tfUPBtE& zxj@E_hjTTa^9_x=_bg<6i(|HU8{}4ZuAz2jt7Jn(EysW3j~^5CTo->u_li`9Hp8qO z1APX-BMH31v#d0;8Gl9sA9#92?3ci7WGLhsL5vbMf+ny5FHz=YS5M~U^4MjuzpE8+ za~+&Bv5i$n^rTV6Lp&Y@7I#Kk!&6l! z4eb#u^`$iuHl7w!_?>szBd9V6+z6S4nLJJPYDyCG>5Ki!)csf0;1w*VDIZzN>F(k# z_pH`yq3T`z8RWDUdtA(w9MpB1QfgA(j+C0+jZfU&uAvj0m4mhz%wZW_$@3UwpB21> zrOiA1xehS>IP?vy_9I{wkw#r|^x0;4AnBI3ASP9C$x=P zJkoe|{t9T<-|iFF4U(BN`#{qH)}#FH@phm1Hmsw-Mxp1ysrAWv|XLUR0nTh%P{B$&1j zFfBO~f=?S{LV(uT)6jeW&(!>29|hAwe+OqGvjfx^ZX6UDiZfXQCtmi})ZYqS@LQ`0 za%~x7$Df0*gP!=zBg}*@?MPj%!@~kCKgW^Nk~gTof#i+hB8r{vd_(a@MI%V|T<05- zKPX3A^2cy76#Liv4P`N^Z;&oOJlqi9zz?hI28CLI)?7S6q=GJxugVh~K9Uk>G4LS?g!pF338l5M*N3z= z1uG>X(MOIvTy${hqeiZv&K`6F3~`7Yo#-Rw+i>G)mp)p)A>&7XgZ0?|s+WSyHQs}F zNIUS~*D(*n8k{5@M`SUlXl+!~<0unFG7-)W7Y`(3EkNb`Z0_aqK);2Ri$S9KO5 zyw0j>Thz;IPXLD#VR+?{l_=kl2u^pt!B&2C{sw0Sjxry_c%_C<(tMyPi3%d!V}h+2 z<^yTX6dPMyKG4>T%JY<(+ZNz6fJZNGrt>`6%|LvR>hO%TlZX%G$is~zE+43oE2w9L zin+_tX^rIQ|E{81zJWZ3@(t^71HImfI)4tjq3#GnZ}7H~EH_^&8GdCBELd8v7)?AzgkW_7>>%UFc!`hVw^;Ykb3bzBhcQ z-*5q{{u-!n=sDEJ8=5%ZpgG(adRD*Tg1f#_@OlodFbCBeM$X|w{f3U1Lr8tY_XgED zU9Q4f{f3Ss|Dxc1Zzxc6Af8}d9BT~j;_gr2OXdx=dYW3w=g%C&Iyu%FoQZBL^c~_G z^&S1Tb9^iQoSsW(<2!MV!cD&+DePv@$+D$Rpo8 zF7>@5Q@^7x-f^k=hL2YMc^uL2=!09V4q1WE|mU>^g(oi?po2jxI*ul!e+_zY}IJ0p8MngwnJn!W^hqbD;Nz&J( zRkq2h6jv+GQm#&2D<xr_9k6Tp-0YfIGjfQD!gBf44L)_>NK2nW(|sDdotvK+N~JfDrcF-qnm~Ov`lkH zhdgjNDF)36S~jA-k}l@?$R+Qk-r(ZyO3hdmWZFMjrpY&)f3xO1-y4)pN^_VJMy%L* z!v)3@BCp0bI8u|kI$OP1rpY&4FhI*R{RVW9C~x8LHoc)o_$&Q}j+jGQjc=f?oWu=s zeMzRtH*~yN%QXE4bOO`o9&?+r>A|Dig^hU>Tz3W+sp?_oMV4uJ3(2&BQl@$QC;Dxw z0}@$zzlVuW&yk!L80zw=_GDO&Cu0dM z+B1O>2I_K+hwROsx?FmG1@EQt*w687pGvEHOHgXC{q0p&JKkf^iFxlqqrf<_lJ5oJ z4tUx%!4z?s!bWSh=Q_BvR?DZm)T}oldaqA+mJ)<}D+hNP`@%5kcsw?C!k40rT4OzS zGw^9kXN_t6D&7e+e#k7mRqq5nx|fT3;tla(cq^PYoR8|su4lX<2XAonsMv12p&jo8 z`G)gv*E>PKp%J*Kxr33U5BX!{94^3F(x}EaC^=7axQ2Ive8UC9^iJ@-LHPpZ8xHF? zbi^FuYJ5X050%=5XeY=wbi7^f1m7FfZf2fPUG#V-pwk`g1mcY|)>`!^V26FAyuHiS#k>3lb_eIQKQG4GQb(9VQdIE zg?+AJ;uOF$r#vS#=6qh#YQ{ShXWO4o5sbpnyxWJ26Ct&x71OE#@ zuK+wnhI1(fOz=)M@l$~B$@E6-kDnvo4C8dQuM55ygxxGIm(K&C*b9ird}7~d4WUzB zTp^#EBDRZmGW--rAZbI?6U8uN??d~l2$rMLxPdWLrVglR04J63=B8doX02o@F+~&n zq-5^XoRnXY;ARof#db;D<_+EOJ02u_$(AmdA!ax|k)w#2JK>!z_(q#*I zX5Syh@Gpd6+ee}Y_wV2JE6B3zehh_H1)nm;H;<- ze^p6W9sd*u|5TIzg-Zv72Y=*6;Mzd6fB(OUKlS|QOaLPhJvkU*wMX~^D}hA)#5ksT zVt(Y_#A=E9+?%N!4YG0BNiBCmptRGxUiOMIr`Z2|W$V_!l<37G(cB!p*4$ib-c@Fw zhs^;=WDs`&i#{GKutWX?3ty$ce~Q2a`*2lRnYqPI6wSpEJ4YNT6}uPPf5rQMgAIKi zxG)3#iO!^gZ$TAF7>orz(I-jLCn-OYpM+|L{rKTs-AGveJ?!uOkGnF_^&d^TaffG` zpbM{wKiw|pXw_YSt2{+Bv#??p^W#DhJr;f6yzYDRk?2^fu=KOfO6}jw2cuo0X+%e4 zs99%0j%27F{V_cY>*owwUX(TH7thme)=X62}$~f^1U||ppkl{ zmh%VNS}t*ksGw|M-KV=gdeXk?u((%D`p~}WDKkF$n;BmkNQt&EKRSIJI5{yp;5771 zoD_qqIJt|HN`vEA4%NwfyFGd@8;R6P;F2iZYflIUoz+(e_Wr8s@XPkf7e%(H`=Y)2 z%>;XdSWp_+diuja?&+(6AM_#0pEOdH^z_k(-Qzg$T*MSE?5rcsO-llW4emjoA8y{gl1vbFpp3WA=zo#UL@@Gke5Bvn+b6d4BXw zv#iv-FM7Z{H~J8*a!c%WACG@vA9`ARYG;cDAn&K8;#Ipu%(1)B`Nr9why{lz`xBqB z&8&PrAK~@JIhY%pW>3NM$ILmwy@94i53y~!ar^Dv2o~qQRY0*E)X~xBf$)9&!JlPp zr#=4O7h{Ety8QR2V6UCSpX>4GMflt%Sb-eo`Wf{7>G<3factZ#$)AVDVu9cJb0dbI ziNDiL=piG6|1SHf-GH+kSsu_PO2kWu=Q;X{;*$#1h1}l-j-dNsh7PpOYsho7&kc~6 z-tI}=#qDm+g!cR>U%Wc?oi0SkJlI#m*s9;I^qMvS-t5sdHd}Y0x0~a)V%vjsICKRl zPjT$f3&>N>nLzLYVy2s|v{+PqLwWzGleg;pYzzYJdxTr#9pFd)#`&U)`i90IUH8#B zR(gF}lIM!w(aZUU>ApjIV$kJU<<`V%0q#3~hxEp5Ha~aY!MsiLKzDrH|HJRFDH8c! z@LOOdJu;iky~rDNX3pOrtq~om)i)fk3F)K-4p#F;JM|51(~&ny`MV0hCGB_~WU~{k zYP<8$mL2**>zwoJK&!oBT8|FSH_okLJ?h~dPQGjmIWlG`zvFuOjlfX%9ZFhOAZtm* zIvfj+-T{fmSl!{igCkf(D{oZoY^=v&e#ec@H!SxZ+R8)6XTD7b`^P?nc^u$e{P&z3 z{cPSh=o$YJl`a5YykZ0438=shOcD!L9kvaz9qGI z8s|l4{CF3h>%MNYHZt`nrDCG?NW#5w;4U~ zoM`Fo!lpdyGvFn>g=y1Q&LnW9#Ms`d$WBM&!+0+0RFG2W*f@zALBrw@f$OI1B}y;pC5GKhw^iH(jd)n z+pGAe17Bz#R(PToGDLXd^K9UEj6b*4pHah&zeB3w?>+JNqx4xEP=DuY(hyY;FXY#}HMDN_eXQ!yo3)T*1hnKj6=a zm{&voe2_mwR$J%sXZR36r)O~H{CE8`c*Osr!i^}lmEeg&;NE}JSA;425Ld)~2Y8Yj z?c5qSK5401S5*yj)hE;A?>xV1^!*>^hsx)`6-=SectqfD-N5+BtdbJZ!o`QxYr;px z)SE(2NZ@V(f@iyOn69~FO@v@o26Q?`M!$%E$y>Pf9cv9r$hD?^0h-qcvs<_(9NsBV zYNfH)tq5h^ir%K~KmzoiaF*oEnmDUFzx|kcyN}Zdp8DB@s7nN}tIl~oPJ;#0)9xF1 z-&zLEaha5h?4$yQEF|lpbALT$W^o5KG6vy>@?P;Bs#Oo>Z6vQAU8OgvJTJd)rIU!l zB}2C^7xIocRi4X);geDkhK~laKNAA+Oo9ZEU_}DlCf-ZW;>k5acg%X~g&ZrMoJ$3% zIry)@I$5=nZyLP0a+SSU45OP6(E}uE22R%oJ5i5kT3>L~O>({1$W-g)LyLC-tyh3= zF@;Aljr@w2k_wMSD8!UCtKB;uMuidxU1+t*czZ+DbAP+<>qYy1ORr3u zH+k{XVtMJzc^P8j`ZqG{!D3Zo(fIRQ*8DN+;LZofz5U|w7x#~z25zh__e}e$;0UT3 zH(^DxNB0HJHkNycDzN1qDn^E*uEAD&Nast+-3@3{?(X7_8kV!~zWFQ0+Q=%sBD7i&YGd-Ragk<9P}8D~-d?S&mEi;bH_oXUeg>!-+xT7;E^s zbGryM2-uf+zD7)9Je}J*@EleoJvVmq^9}H2d$UE>Ad7pE+ibuidF_(<@0=&I1< z&_Bcd!^Po;!fV3&!r#aBjyo3LK7K*`ceUEo8e3~aLY;(L5+)^Vt8LXjtM>TX@cbrT zn^={Ul{77BYtr%LCdnnqZzZ2hDM;y;GCE~J$_pufOZhEzOzL}S&C{l({gB=@9d*tb z7i7%H_&DSD%%PdvGVMA;>g>t-|CoF4_$rF;|9@t8?@g!)MWhKgL7G&l2}MAPfFMOc zdXbJI9TfosA|N1AlqMh`@)i&XP3eS^P(w)|Ku92guMWsJ7lv5SOeY+m>h6C z;6gxhfEidO@Uy^#N);-tsg(BW;L5hjODf;5(zD9`sx_-Fth%M@<7%y{eO~QK^_tap zzt-us8LuVP=v3pknx$)gSTmw#cCEg(=GXeA)}dPV+Sb}FYEP+ssCH_d8g<&&8D8h3 zIveXm)p=C6VBL4>_N_as?ylEszTW5cb+2EnSD@a^dN=F0s{dPq+6{&@xYqE^hCeiX z*yw{ss~crD9@=<+kblsJL8pU#gF6QAYf`MqCr#W<+cZ7g?B!<5nip(7vw8Fz{%?$a z<7A81Tm0N2wPjGtkd_&(s%NA1^isM4W-hjkrpceHiPT0q=x& zkzIy$3GZ6F>z;1!bX(KyLH8crPrV!b?$#a+dxZ7u-ZQn=_+Ag+tMlHJ_wM!X*vHc6 zMBi3@PxLF%Z%Drt{r2>G*kAN7)&Jpu0Rui6uzbLafqe!>4tz1F+Mt<(t_?~Uphi(`aJgn`oZo@VWvk%J{mNWdF;cJKA8PRpb z$&uwohKyV^a@DBfqZW)>F>2GOoudwoes%PhqZ3A_jnT*WjVU)~^q9yGdVX-`!$u#j z`SAJJ55~rPH29t^qu(D#H|w}C*GR)U{c{pcPBlYTzYbi$t@<&o#H=b=hPNc-~PD9$KQNX-DH>8U zWO&HLkhLMlLoUo}Fl*lIlC!^<{rHPhU!3}K>X-NC)|)$U?$7hA^JdK3Isc{kpUw~a z>W#0KeRX<4@da-$_-w)Hh2xy4b`udlzUn~w-JZ$lr#rqdO z{-)PAiEfkf%Ze^*xh!OvV|k0^8^0CbPW;yS-N5g5f0w?Zu#m}d=TDQKl^~Y@mw{_e$Y}?-L)wYk{e&CnVzs&t*?+$Ip`#YxYSg>R5 zj?f(^cih^My0gR1!@GQUjoNi}*YnV>p_@YOyPNMGw)^_-ls)72MD5Ah>$lgoxBlKX zdwcF3wfD2Vi}!Bc`^(;adynjm+`31u>yGM2%N~9GX#1msj(&1<>CtsZw;l~U zdgJJ$V?M_!9BX*2)3M>lrXO2=Y}>ID$8H`=Kkj?H;_*huyBr^Je8%x_k8e93cKp`y zjN>_B1;YZug2LVj8yPkuYLXo=Z*8_&euEN{(O(~gU^3>{*&|Hod4Rfv7(wIxLF0Hz>^U~={@s}Q7)-D&lT={ad%iS-Jxg2tN#pNBBBQD2Z&bm_Q zO5l~?E8VY*z7ld}#g$!GBCf<;$-MgB)sL>ux%&OpJy*|Oy>m4ys!-I_s6|nmq7Ft~ ziHeKLj4l`*5FHfVI=WBv_~_};%c9pu?~Ohl9TR;o`j2b=*Q#D?dF{PxL$7^$ZOOGQ z*Y;dHd+pk_hu0ooFMK`ldhqq`*FU&^_WIrH*)c_8UX5uQ(=Dcd%&3^jF(EOFVphd$ zjtPr78*?S*W=ukiGsYeBD+isq?dGluaE#F&{Z%x1T-K}-Ee!6w!R`jjgx9;Ccxs@4PFt&JX z+1S9?*JA6%Hi>;RwqtDf*uJq7Vn2kcjB_+3&)p?FCX79{+;-~ z@gw3V#?Opj5WgaRef*aAo$=xEaq&s<&+ZhzQ{zsXJDu+IxbwlC*>}Fb^W&W(cdp-g zbl2x@#k-B}cDg(K?##O@?}pwza5wDkt-Bcsg%T=o@z>^-v}tKe(|%6dmll?GG3{nrQkvWC>#pc-=x*ii?C#?p?w;VD;r`0~ zoqMBuhx?#A+Th_05hss0LDiu!|7gleOU$bmc z#+L*kPP>cMR`j~;p7pfci|YmI`YLa|0FI^SPhTX4dAG>onHRieyFvR#%r{cS$Hq+Y zktI%yHvSO9vN8gZV3@nErmUFEM@=MI4-&x5#n`AU9rgWvMBFU zMl|P|VB?bTGtP@%T1Bx;Z!fAr3+TN?OMR^{v`;zSSBy1gh($(S(Vw~8gN){4fObYS zBW*qu%Xm8GGDKo_`XbH;%@deupjluAGi|9vvMjQ2opG*xwiOHl-(|-hE zVg&8k)7nsUwFZlEl%wx;aHVlhoyDNe!H%DRg(pGG!SdS|xPxiv*MV}SU^ z@}qbU9t^Us6w{22;#1>IGuGN(bhMb_HOnyZneS5Zy6d*60p4h?s7Jbk|LZspS!}5iQ2T=V0D$tL{@%G_dqXo{oqW#tLL=9CVEM0{WG;j%Z;VHSc)x z?km<K!h;^zT7(a_qU^LHqnjr5@Ew#B%OXTaZc+dK+ z=mWopS$l~_mKx%9zP;4l;J222PKY+vDWZiBdeFL2EaBX##w%jDWrwI_v59ub#tMFC zsg98$YU(yI&L}B_Z*}6Txl}udIVgxe?@!w2Y}aLb6Hv2&T zr%Pg#ZxgY}BH{bXVwIKWYStU@=du`T9Ya6(2K%rW9`6!u=?^~};i3iSzpoWGLyg(= zRb@+xi8qWo;!DF<)X+MK{n|I;BTYw_XQIPD;=T(-GwU@kj7QM#1@i;oUwzTfx1s1y z`IR1>2D%!4q9+&(-bCL|goc2+;GJBof(}LI-!f{5B1R8U#rhKMI8u}}ri;l&75a)z zwC3Hk1;$~@-`_(A8~4Qm+HZlrkNqCd%c2HxwUsK}_(crWFF@6G^+jEMqbQ>9VqfKX zn6g0iuc+fCu1gawEF;BWcr_SVm|~eIs&L=IKCMJmpDtp7Wit1V=SKU4Q1+@E~F0?R3(VP^+=?x)JF>T+Ma=^IF1+p)XKRv{~(ALs>| zfG(hezCwJ1U0ko*Ik$oJW;OR| zhPe;>{Jnf;K2=oJ!y?2dw0%>LFHsM#abIp6oC(_oLS<27)kHGix_+85P%7s?TOu+XF zg+2h+(V-q5Q3U@c3KGr}|G&ewM0FKFFtL1b)T}=w)yidGh*K%E!tNd@JQ& zE<)&R(y)z^jO}o#a_?+e)YZ4XSTC&F{cAaGtVQ!F(M%;IRk$#BBPs z$37_PDW9?p3i->Z>`ES#y~q#6mptUJL%wZ~tx|PTP&O>B&=#2eA$6{>r!hvwZ42&Zm64 z|5h%>2cEH_(gT!FmCd7{RG(KqwJJyM7|^3rD2vhuy7Is2AN0eom0t3U1M$DrIeD`D zPnsv&p7FC9S65(sP5)MYmMW7PKj!JFys~<959RQTT^Mh8eQ5KUZy(XGKnMD?8r$Ok z=jkyIPZ`%Je)urfP~!tnd#JH=K0TP%hw}8A$3JB}rp9D>*Zr9{JX5?-yz|gJU6SY5 z=TXKfYAm7n?$N#fq>OJoV-UtQp0NjG>b&~?dupEl_v!yepZ}wNdDrFD?>|#!0W>!c z{ioxKci5lrp+C~rU;a~n=G%YESYn>exBqv2n>YUbpXfjJ<`VQMp@{%%wywxMDq$dl?9svmm#>W8AZ zm2m?8``=?b%ka6k5Z_rwpWY(o{b>vH?2@;Qg5kA_rBtWC7L-qO+_^lfZ={Nz+J19k zuFa@nY{`jH@gLRyJn2L$njzY&<{Tp&T{hAzXFN9_d5+<`DShwJ zp&tE?KaX#({QN)lw(|d#PR<=Gcx(^b9y_6YeDt>(2dMNsTcG^&Kl4{UthxvO``_|q zEZ`YiC|jiRXB^`3yOq6AY23r2{Bh;?D}P^&8GaKht@w-{d%}H{Ey#oC{M^3vXCJ}t zse98ezElHApAU1Ga8aPc({ec-3)J-vE!8;6`^VF4-Iyzv2n$cP*I0NqE-QMeepQT6 z;YS7UUjnaIbrrUL?AcVxTV1-mC0g$+PC;{vaWNGdm4t1kB{NYK_;rIKXs;NwG{BxtQ1JyjvNe4*9={i zm_PC-onxN0=OT5p+!8afgh{ac<#jARg-Y44yP!& z)khTI5^ocDj<8ad^89fvthTCB!+ceG!_#_PN6xCes%_v8S9tyvb3J!emm39CTd6-) zB1+;pUp2ZQH`O-Yqq>LDDu1rgd}yOT|5VkK)cpC!b(D#=)zqETm7YI!T%DS?uMXz> z^W^g9zLDEJsyv=0-^qWbd9qX2Y1~ioO34nw=RG0sN*zhd&pRc!xuV_Azy?;->oJ zyxg9co2zOORcFeH%&B5)I{V(1R*gr;DhO41`1(+4#1^?{pL6rr;iZOEEh^p1ga5i# z1Dzkta>5EQkzVh$}hH_8>`Ba1NMmgH&x~6$-*P}bTm~2I7Uxbnns~KYjmWC5)HI25Qg<5 z_OnC?vx&GnxlC@9 zq0%i)t(?|a>!Tgf&S>Yfcr8{h)r1IZ07^j8WOBW3)B8 z81Eb7j8BcZ#t+6;V>jOlxMbWg5{+!W5AAO$!GyRL6~3&HULmu>9~C>>3fKzSirHSW zRj>uxs@m$>>f4&wn%UaeCfh!@ZMJQ*{bJkAJfWijmVgogr2+y2ssz*y7#OGpS_Az8 ziwBkstPofuuzld*z~Pn8KhhqbdS>L9ruyAN^`~lWqt+X#^-d8c&WJ0*!IuF|=`V}R zDzcho0g&+AvIwJ@qM z6S1Aqm3O1Z8`F&W#s*`XvBx-UTsCeR_l(ChY%zXl>x~K_6*g4JsE|dig{`2?-&Vr* zvdw0zOs(tLg8!`bkG3tg?bQ09?a1G1-7mM+#q!m97`2wvT2kxh)EX%;ADc6c zG*4hUj|1KgkUTw0)jo^J%J!BUPh&(^HWHqUU9?l2nH ze3LNe?zah_CUm~L?anWE*WX=tcg5Z1cjw*x;BJq*-EOCr_^sgY*2CH&*11Dvsh_0QguWEcX)<5m@8*SdrE!D6rm90QlY zJ@2`HUu#i+-}mlmCpjPdU;ebuwGeHVHe35bn?scIGwmB~iMCW*rY+aL6~r&K@3a-# zN^O<4TFen&YHPIbwYAzhZN2t`m@DRK+qCW4FWL@mr?yMX7hh?i+HP%+wpSwpp-tmg zu@`C6c}{mqT^by_jBHFQLuQW@=w*8}u4_O}&<0TQ8^=(u?YT^vqrQ zToJ0z)8`ZK-pwz$F433j%fw##*|%b!{vA=`{rXDrtGL>M6 z;-N?pE|IFAM%L1VTMy@ZldV^Uqp3Aq9-rwS0o>< zmsWI#LyzLkF<)80n58@Q2l8cET9%Pz^@nT4>Bh&#CwhjSiT0gmd@ei5&c+O5rkyP=O zO&8f!@+D)meGl0a9X(CO0 z8Lt=%<;7t|nJLny77t8?(AenUfHkQ&0m8S!wk*><<&c!@vI(SSv znpOM`o`Cs4@dDkcg+g<3fkqW3dc}|Q{ZM}|=y^gG^MXDo_+FWiXi|;($tqr`FKx)G zUeHH{MBB=`oD&Ou-3!lKrb_QMCjCA%$P0n4lEI)Q=?|c-z?+l>p2*gq1L@R*Z?+20 zTf$4Boj^CzsSn?w5%OKmUk>d729Zvky(E-2 zQxNc6s(S;m0=mo#u@brgC?2nZ?gEN`w1sqgq0?53Pd(7Sgkq6A&p_05&jI|^YjE$< zpbXnsF7=Il=C267C{*zVsP6@9eZ1hk51}E$3i@3rd}lt0;LC18JLiQUf9)nfW|W+2 znO=y0aSchjWc4$Y9nUxrdC&`ZA+|&PyioG3SMoy1xQ@)})I-TQy6`W|V;czSuOm-7 zvZMBO9PrITm`6WX@+n_TAT2$!p7p*CHb}rDI9*Dir)c{_4&ix(=#6Bpz(BXmS zI_j(gfqd#e{VQc(9)JlabB2ce2b zs($MJs@$ZB!_Y&yP=^;xI1(pr6Twy7yT?TVfCR zUIDlSR9UWqDAF%O(Gvm0k$0Va|gGSQdtwUWjO@1^9A4@@pUi z%wrK)9Ny0LLWk!@5ij&)Xi+b)MZ!Q%6qK$a{_6quN$_0O1Es%=;-Cci!*ewsKtbs< z<0UT?AB|F=H0iO>GF~XY8fCq}z6qn87fKHr81)<}? z1oC%6CxR)YzYLuUJ|uH)4*KLS8X^SpaYamAeQGv2=r^Pl=Pa= zWnej&4ZZ~{Nq-%>3asW{s*Towb)>5{To35~#vHH#&}WqmF}8v2obQJI0(Jn(YN$T2 zi}Va=DA)}spRorV;#$>iO12a}2lQp;YI*F8ag6QbUSC&?!ZdJ52<@*SvZvx`9S zK()su(tANKgBzUxJM^X(>O20-1M)&bV{?H>FqcRecYy{HKqC3{f!+g3?o@jzIaB$4 z2A+UFKsoRfyx{zP&>Ua_cyA$J1!Wg4+)shIJi@{~EdHbqh8FX}SO6^!=)V#Sawr>YTRU~;4vl5zxEy%2k#eqKoWMj-qSEYA5mp=G^LK20DzR*;lE zu!a|EgdW)53%M6M*b6m!4;%)DbN+rID$~Xa@;6kg1e8M_zzsd+g&OrgBmJ2{Iy}fR zy^tqyKc9maq;qblsQGqifv&yzwAJE12c-FB=$u#h-P1t>YlX_1He1`#Z9?VXTA^Ca zQ2AOwtx&zDtzD>Ixn1|(mHOBg*cNmcw!qfTHfqSQP@}Ska$xv^K6PxN;@#e(S@-B2 z5Zba&xj#3D_vzE5R;Zz};R?=P(1#4hQq~!xOM6S}Q!~{1TCGrDZw~MF4sBU3RPNTq;sDxp$9r2tCU zr%kQU0yW=$w|85L7(fvV)(oxIwpM7NnxWMpg=_AvD(Bl4yxaR=OPq_L2Yki+9=#8W zYPxfLpK_sQ*l2FMOHCDcd)#9Z-_Z-?ZNCgQ|J9^zN-2R4%2`jDek-)hMI3ERAXg zmhn?t)(HdJ)hnmAe3pLPzey#vyrF}3B_vO)D%JlFbnZRIVM*i*ca4;ApX+nyF> z<)l4>)arA!s#8`@-qS^`#;MgeYPCzPOtq?5R!&h@Oi@=%QCCda<5xjlt5#`hRj~r+ z4N|Lb)atTYnQGOd0w<4Ct2#E$8^;P=$@fFn3FdW(Pw>))iFbIfc%B%{Z>=`qoA5{I z(TkP$DR`+@l+?Z#Ha$QT!iOn|ef8&ARY_}U@e(?tm^DlkwcZkF0?%I&u}MW|l?N!$ z7`fY$G4sIOZH+fT$K-D7`O=Mi+ZIuUa(VONOHqtTyxTsaCA!JGU4ZkS=57}fC8afY zyD;zcmd)KRBKpggx!XlW54l#fW;{J!d@3f2(PE?+MYPx^>WRAIbrzd=i=*R6|4qV3>CH6YDLP2(C&X;HOaF#TukE3iDD}2VVv2WtKSEcL3h$diYZ(-gfn`1&YQ&b zctSyAKy*J$L$mv~gkt>-@E; z{kOfp9~sK|W8usw4_79U<7jeHrS#rY)o?QRQzh@jv7y}SBTvnTan2OB)!iquJ()Zd z=UTzzA)M#k`};LDIsWgsQPM3La!ewn6YbSn zv_+ENWnIg|VQe<7@A)&wP|APz$CEzcE7Wg=`w6vO)O(UvjqN_XUHt~BZINDy)O^Z% z7K;>Lut+hNMT)OjBr%K?tXI*iq}a?N85!^3?z>qeQhS*7aTX~~ut;%=MH0bLG2II+ zQbp}pUtuIB8Bs;Ej%73=MIwtNK9kJaAs(HuDaQ~smhvOX&r}d08_)U>HdvR3kLJU=fL4fgF|8QuQp7Q&R+b2c)T+@A=y{EjYqhjmtm|s^Sr5{NvYw{h zW1UPaKo4)$C6PaJGrlvfu#Pg)S!dz{OXE3Su;c-35qPfTM4*3!sL6IwTKZ?Pm1P^tc9vhn zFN)`~3ehWxoBS#Au!G+R!bf3Wh=NFGCx&wEI`t4`hkiQoLs53*#Ni)^vL6na{E;Z@ z8HB61@YP+o*U<5k#*3mK44?Rsz4^ekBTWfXK!nq65*`5@O7Z<8LxH_e7N$XA?sf3CQq0 zabF}M#df6F$#>c7Ad3x&<_05&tz>JyE8PM4>m+*}>G|US#MI|% z^R)TeSK0z?p|(i-T3ej|dB9)K0<>SX1KJ^;<{i_*w3FItEkZl1o!2gEm$WNd6ki#L z;b~W_7N_0O61027|C5RRKOpL#O2j{%NPjl*{inqCb9f@goCqFA`x3=3OcdXr2!Bbv zlwMjdtC!a+=r%o2e^sxnSJkT%@2{oL^+xx3YPitz1nnDdj9*3gReWDx$(Id??Calq zV){Guop~{OeJ`@RU;kA_=6TY1=UzWP0C! z(?r20^dDqgdBRyfml{Mgi12ytJFrns7de$4+Lq7244(nQ&=l} zC1^o#@8EA6+-Wo?cu$dbjr#|UXt=1zqM#;4PX;v!YSMUq(1@Vvey4+{`d4Y#jCISP z5y2Pz=QfOJloNchQBE=6;?@$rB_5Vs6g;)$vXX0qn!G%>%qL~Xlp9}eZn;I}mQ`3( zVOfQXd=Ft!!wn5L1RM)09XPnszy^0Jhp93&d{eE1N>^FYa07cAsB;8+n{)Z!A-OVM}i*)yPIgiZm4Hzurt`L_~c!J7BtGq zzche<-o;yDZ|-?#H=5J9fBvQ6BJZO3m$w8@4W3Gw`{$v-Mem|ors1N0g8ZBObtg}o zX|$VaIhF236Rw?~hoI@6WkC>2@VB()RMnztX`-?CQqz2kCrza*4zNHUHaOy4a*z2^ z(rKy;wDTOccQ&3DyhrUT4twPXF3o9hC#ZCzIjW|?Q>p8;h7sO#8Xsu*rn;(OL|!gI zZ5mt*TF~H50cXBdiz>6XmB^uq;*;WvYU2i!Ab4tCyQ(93M-`t{ zYb!3OJR81AuDQrN?|)1G*#`gI_tyF^j^}Yck2ap4%XP*1sX+^rR0cIc?jsr>fJ1-Q zN%4-dPH((Z^(FctM?7--XX~oIsrsF#Z%$PlfIoXUH&XIgobZ{eP}D%VHrAzjs#{pvDicxmH^R>ueJo@ ztM$TS^k%8b7-0aGV-QPCMh*+G9V=LB$pQ*pS04LE@-5h8+pR-)V}s z6OJu8gOAe^OA&>Yx`t)wfMrPIKItsOh;=@});tr>@da}*lwy?@iv6H+cg#R^Dd*bG(cf-^c`+$Zr^>$W(qw$K?6ScUn;_ z?Fzh)x?;6fA0K3m)>doFT-vv^_F}EFQ(`@qY6i2QKi9q$8@1Ki24-<@(tZ-hc>=vl zoYMAbN5na-(J>K)MG6zqSf!KV8kXs_xQ=zYEIbxTBw&-`#C`129g&1>N)XA|r+Y#@ zn|26gqaFw+b}B_Yz*eP-huEt$k%G;7AzYfNnc@%JL3{u;2TVM}UKJJ3v047&1$L{r z$iZIOgo(|nECn{Jsx+`$)ulzRqX+S%wzdA2^w&GDy#e9lIu*sb|mf4eZ)M*%E7Z zRKA5@c3O7SBlI(}D|2Zs%I?gjiI%;vY}aLPtlJIQ2MZS``|5Y~Bsq{L%62(SJtdaI zv3hPfk|(~;u%4Zj_dv@q6d(cxv0;XfL-L9gX+o zFUBBakUYekl_~Nt&y7EpC)874c~bd+^0YC_m@UJNImR4$#+Yl&m1m8W#`p4^!P}?u z5_5Yt$jiniW0SmUY%zY8QOtSSCa)X67&~Q*5o(0WTg-vkBV&zy#vyszIAR=;_l)Dl zae3c3X++2*-@{tj5#LG0pX*i|ZcxXJ7=?06; zFtUwoyyrq9$h;|{K#X})27|WdO}!}a2gSh&^QQ4JILDMLcamDFxrDPe#@2h!# z$R>*GfzVgMLa+v`1JR^k2RFbi_8;;dUIy>1j0Y3JWH1+;WbA($M367PI&RwV;{450 zqBy8*_Tnq!Pw4R_MO*WZc#GdKZx1?vx52xhC+KC``SR*R(bshH3sg?=EorO4_oVG1 zkA2`U`$su;7J3d`;8+y-#(>|=6sdzEW-nP9TGn*R3eZ3hObp;nXj|xD=n(J$m}{1j z3&3LV4M;J=WU3ja)d!!Oy|fT83(N*zfH~kxu*STjeGk@xbznXC0c-#p%@l1D_z`Rd zKY{Jw7qA2D1iL_}`B2*p_JF-$pXp>yxKsO;{C^{#1JHxeL(s#}qg-Mw&bpd5GwR0Newr(Vwt z)8T{O05k-RKw}UDI)isW7ckfCr7s5S$$JymQfGY&*KcKe8{6BVdvc!W)Js3XJx`f; z^wXqA0NPPM$GMbWkAlX6dz^QlbL^z0uq1|L z)`QlEHh?ySHs&6|pebk$T7XudHE0Xo2I_ZJyMS&0nKzJm<2}#^^aBIHATR_BH6I$o z!ALL~d;rFRabN;*U;=FKh!3;B^z(X^P zv0RXOT{JP1L{ol&r@0xA{$OloUYBKG8Kofkw=BMLlZg#8M&38glv)Z_{^38f~X)FhRfgi@1G zN`HmY^C?4690aoeDp&~CfOX&m>9?Q{`OW7H^9rT7LMg6LiYt^Nlu}%w6rq$Nl~SaN zVxqSBNCcaYwC}(QuoA2S$>t-yBq#++gR-DJr~vlx=EVD87&yW8o$<%~(c%91T_uT) z6-Pfh(T`5_qZ9q;L^nE#bCp0JI?;ztbfD6IPV}D>o##a7DLv;z&pFX?PV}1-{pLi! zIprMTk0;|V=Yjd)E8&lRa-yG{=qD%o$%%e)qFbEk7ALyJiEeSCTb$??C%VOnZgHYp zoah!Oy2XiZaiUwC=oTk^-br6}(vMXicJj>2UylQKft`I9NCzhJCxHfvf>%Ie5Dc1v z=AZ>=1zLl)pbzK=27n=8E!YaSQ}32=$px2OaLEOiTyV(+hg@*T1&3U4$OVU7aL5IR zTyV$*hg@*T1&3U4$OVU7aKi;RTyVn$H(YST1vgx9!v!~7aKi;RTyVn$H(YST1vgx9 z!v!~7aKi;RTyVn$H(YST1vgx9!vzOiaKHrzTyVez2V8K#1qWPkzy$|faKHrzTyVez z2V8K#1qWPkfM2c!>Q~D6Jw`a-f&(r%;DQ4#?D)IXpfq=858L9xwz#k@E^LcS`vW`! zFSs+cLJzypw=Q&~3;pOqAGy#+F7%NLeZ;Tm0XT?0a-oA<=n4}MLh@aV zB&__(eId}-%*5hnilgAMnT_Snlyl4s`6ZYK=7X=y3@l_O7BUm-l!=AO#ByX}H8Qap znfh%rLyrS@K??hsW+ql36DyF3705(uW}-DS(VCfP#7s0|CgYo`tZRV!pdt7IEC;K= zUT~UT8BJ+?!ONf=cm-4h0iYEaL#f(=cA!1z0Oo=vU@2Gz$W!|k90A8b7&r;80BWFJ z12NzUcnY3VgIZt#SP9^a&NX@}a8vq1pa}2-9YH7X4(JNHgC3w4=ndem(H{&1gTW8r z0Cj6g?d{awPVMc~-cIf9)ZR|*?bO~b4wxt5fIl3t!vQ-Su)_g69I(RyI~=gX0XrP9 z!vQ-Su)_g69I(RyI~=gX0XrP9!vQ-Su)_g69I(RyI~=gX0XrP9!vQ-Su)_g69I(Ry zI~=gX0XrP9!vQ-Su)_g69I(RyI~=gX0XrP9!vQ-Su)_g69I(RyI~=gX0XrP9!vQ-S zu)_g69I(RyJ059eEMPM;3cC@FkC}vznIuk|_e882g&&zD>qA?E0lc^VxtWANn1nx= zgg=;sKbV9+n1nx=gnfy|Z%e{wOTu4E!oEafU!w7ilCUw+_(w_DnP~lcGYVT1t#ht^ zlI>e;-(x!in$7+bwx43*bTbN{B?*5e311}%KP3qtB?k{FNsn-%E86{u+>HH@T&k>U*fsfZa#zpg;Pu0X%8K)~U!JIMEGR zMW)erF#@?p)5kGRh(~KAqBRoH`f+IeIK~O_X#O~~NTN7~Wj#&{pWytHj1x|o4@5Y> z<{M!;uncinhB)qcUtHjti{>Q}$?vpXGH(kP=hMGLI>-cBARGM7`SeXe-xSY44*gyL z-HekKXlXMBt(AzCiNngoNpy;A1e$?2z?-DK3+)Ns1N29%P#jh$4l5Lg6^g?O#bJfw zutITIp*U?DdSJU5gKm#Ox5uE{W6pFujpc_E8uzxYwzZk4;99B0Ds~d+cjKT88;g84TkH_PW z$K#L38y|qNU>umheJ6n_U^@3-1=e!S2Cm)A@vUrc2m49?4V>bM00k?=Gm+>M0CA=NH=jvo^J5Q%mp(QYLAG!mVL zL_3gJH`3`wD&vq!H&W?F3f)MZ8>w?6b#82IEH*Y48yky_jm5^sB8hG!(Tya!kwiC= z=tknwkhnA?E)9uGL*n9)xHu%vjl{W;I5!gKM&jH^oEwRABXMpd&W*&mkvKOJ=SJe( zNSqs~N<*sBkg7DKDh;VhL#on{syL*|jYOp(O>sz58j_TTB)O3uH_{V_^th3lIHV>{ zziq~1^JB63u}F^_$%#X9nE4Mf**1COT>=dh1tn>PQlK<=h5g1L7&HaVK?~3d@Jj_q zi5p39BMELK!HpESk%Ba&APp%;k0l#Et^iOhSRE#JQf#Ujn=f$n(4G)I4!k-mfAo| zZJ?z#&{7*{m2_GqomNSwRnlpda9SlC?xw@tbhw)ichli+I^0c%yWwy)9nOZs*>pIY z4oAb`W;omohnpMV<_5UA0ZxX)!EiVh4#&dbSU9y$r}pX8KAqa9Q~PvkpHA)5seL%L z52yCw)I6OUhg0Kl#xrjri|s)N@HXfPz6GnnVW4FAEc6`s-E<(c4&>E=ygHCq2lDDb zULDA*1KD&Sn+{~tfowXEO$RdQKn5MipaU6nAcGEM(18p(kUNB{4&=sx+&GXM2Xf;;RvgHR16gq(D-LAEfvh-?6$i57 zKvo>ciUV13AS(`J#eobsXnzOo?;yH9>2}VdpU)OgjFnkE*M&oe|KyQQ>*6%NrS%HXjlbF9c8j(+IIJ zBgDdt5DPOxEX)Y8u#D!bXffa>X5v=2SL(m8`20o>okr{mp<=O^Sqh@qB^5@jgk)}q^QBW)b zqv*nnq6;&ME{t3{nU_!q+4PR2iT5I(e~qRK6YWtWYJX@+W?_{ArNRGZg#9+xbOv2O zH-MaB1s`GsA0p3xjlKu5uSVb#$afN$0@P@H1L?UVa^n zG!Z;xJDv0_kWJj?59m`ySE?5vX99lm`+=$Ak;f0*CL17Ew2dT9uL7!p*8qN^{+MeG zaE^1C#l;A6Ab5mV+W@oy>~mEHS7mTj23KWpRR&jOa8(9RuKJo;o+}4H85yB{vphMJ zHM8>Pf>zB!t7f4+v&b=%95cyLjX$%{o>`upqoA=M1!RJ}JC!uE(4JXn&nz@#78)`O z4Vi^@%tAY6QIbsNOju1c00?3n(gZ)W86{EUk#6Qy{NAhhyjLl$ozkXZE9{h1`L$O? z6z9hP?kw)Wi9~z~JJ-87_K0)c&~%UqvOqR?Y@Wl9y^0@u6+iZ>$T6?t$6m#Uy($Zs z$;8aAVQ=ixX5Pn#y~_AUaU%_1_A0ToD0J6p*^KQsKx>Y*;aFSJ-@^Cp0Ny3NCwLF^ z2XL3RNR#iA?@%U5&$Hp|{QR*ueAH!1H<{#~k3Hd5xB}d&X#)&}>f&r!hv$LY~s_ zNw4CQUNuS}ktG>fz631=eHmIBS_XfwJjd1eYy$ggj5Z0X#%WWaA2Zhb)Z;r|^^DtA zaqfQb8#vCflYFb@6z83WhST=dkd$Lcgp!6dq#+GSIEEw~qxH|x!gp!OR9Z2OR^-VC zU;S!AT3cu*^MR)o#`0CWefV+v;X+aK7#uwYM~~^1*xv$9uze011!6%8$fTwvK`Brg zOaPO>6!0-$B|8pIu^mo%T2Mkevg|;XGmvEmvYSpR?Ud4vyk;P;kC0a6H2k zvgbhFR3A>K)OJdJ2^mxUIi1qmkufJS=0v7c|4v7y9LQ5D@?=Mzt{^)OYGbE1c4}is zJ{-t~1KDsO8xF?a8OVkMnRrAE?Z|}E3+c4IgEn^1z7E<}>4|jOR_Tg#+Vm0a`G~fB zL_0cZLkI2WpzR#g+D^MUX)_14x6@7z+Q`8yzskf+s#3cepgw2_g3JUsk^ndEiZ9q- z4pxCZoVypg4;saBqN_an_J>mm%#td}3@QKIo}D04i2`S^|A(2tTQ~m1WSl(p_9rgm zgnJ3ZW}FheFDrro5KLMtXj`c2q3xlnmv)49hIZxJZlE`E@jfy#%)G;!ivDs8*L=wS zM{s%^`{Rik6Oq;0f%bq_&^{+E1k3`n!54sNvqrR8o6GSfU@2Gzs4KA_CoObW`<3Gd zz#(viv|}I)oCH?@Pl2>+AO<`EPr-9+Ur{rGmQA2#6KL7HwCr8tLr&fh^e0B-q?PaT z_MgALlI=BYuLInRxRH~%k&_lrpr!BfR*65YouH?Z<^~z0Jt6I>@HYz4nni#gP`$RS znZO$+{)P<%f>%KmKvcze4b%j+L0wP}GyomBwi9>KHv>EfE1 zjpU?zY(hNScd#&a`brt}u+rthY%9Ip7TOhktn~BywDK@8g8dIwi<{ZBlpBtx!|`-D zo({*|aNG@--Eh}UUs8J3O<&4{v*{lFdW-#sq-Q|Ukske6g7NN4;AJqLk<9CpS^Md>Sc`iCEV!;jk8=@&&k8srxJAeQZTa0kCP(PZ8r z#~tL7$`h0f&VNi#`~x{Qgdcsx4-VKR&!}=Wi$k_%+pATQ=@&|~B-1aP=*T4cMN#^N zpBw;vpX-K!5o~)kje|Z>ls@4{AMm3O_|XUa=mUQA0YCbHAAP_N4%(4*KV;nxS@-*g zW>Qwmj_mruQ9E+$2UqR-_xOwJp!mSZuAf&+k#>u;d+a}iW&r#rWY!Ov^)qyQsS@~I zFM*dq8NMFKlW*kK54rV2ZvBv3KjhXAx%ESC{g7Kf+4X3P-o!RI?#Lk+*_2$GFqu9R2b`12ECw7`F;@Q8$7&n8_hXLxt z-C%r**3h=lu24Kq?Omc zBxLUa9J-I}CBq>VLrp^Nl99V)^!5Yf?g4W5fSM&yvm|PkM9uC~qal(w0t z2KT5z5;eF-4HD@+Nz@?8Q-f4!26of{^*zrZfAQqec5lp>Y>no3_wFcsr!dM+VU(T1C_6>(3z!q3_Xo_2V3eK0C_9Bwb_yeD zHzVm3M$svZqTP(5)jSfnCo-s_fO!$X{Lw$}+z>aTLWzlmGOw}-F&{NzaoA;yvY&vkIiyi01@C z-vr$_J{UR#4CS2R-~+bDlRk%d&zE2xm=C@J|6j*}@Eo-70o>B?9yD5#SyOIp1K7wc zjZNT3uo?UW{@v4$ycp4MTyqf6BebKO%ghX7fT7wc5Dv}&_@rF`k>E183ZlVva0BFj z(((Vlcu}bLsS3V;dZI#n9cd5sJWV+Z^~Q`s^}k|9MTi*{A!bxWzt6dL&hf^LLWyaH z>MCyZ2kFm%$t)HLG~j)b5=zhDNeceMU-6?*qasor04jmXpem>iYJggx4tO2Z2Ms}E z@?*x0(G)ZXEkG;K8ZZmT`0t;(gc3guH3k6hQe0w*B!x9WE4z71s<3B7)r9T#fG5hHkA7y_no-CF2Yu${W+Mcdri z;w)@2UOHACM(dp#ZkK8%(>`u11EO+5knXT;6x75onoH*B#L zJzI#UwR6CiU>=wczM_xa265mn=lIfchwv9J*P?%I2@m0tl7zvS2lSm zFCv?~vdJr(yt2tlc?#L&l}%pRL~OkC=53-YvtHgcL&SR~U)x6emNrA=33CaWE(CiU zLNq)?+X;4oKfp8a!VJ+Z<`Ufp6aa-l5wMx`Z6E?fnoH=(A@t%9dRYij-4LR>Aw+dU zi0XzIJ;8fm5ZC~A2%E7B>;}guO9>fmK9bidJEKQ=lNx4$C(OC=2gQlwm&EhwMC9ZX zXbAP1#rABXB3A&>93v4BJu#l*E2`X*$t|7SQpoKAxji7a2jupE+>*)d0l6iU+XHe- zC%0sBOD4Bua!V$+WO92zZppkg=q=YHbzfc%jNx|$ZX-KVagg^Hm<1wQAyY%}EIZ>x zz0ACoYdjNi^E54$=S#)JdB)7@nP?=rU7~!q7$ZJpbn@7|LCfBtWuqDQ#c*{vu@DDu zGZx`pM%DjfJTZ{lls=i~Mz3=X?@ltlF3vb%C-15i7b)bOYVHte$jl33CX(o;5Al`q zM6YU_@v<&`oY;?S33%$qJ!0h`^QaunxgSzCjZ!G-31usls3`LUMFB>$r%1m{=`Jxc zbx^vyj6|@Z%_T=^#>ba;QrQ?mmk86cwgf zf;#z7r=s+RVwA5LJ>nPY_7Zh#M%{{1$}!Zh1NAFRNn6OyIqC2*Ob*IPqsP2Xj~PUL z3sPSTC9exluk$uZK}I}k&SO#YvS;37N1k%^;#oj%sG9FM77kBmhR7_Qm(Jz;jbGvU z9AJLu5srK3cSP{^ND*53fj9;CBZ!=xF%MD02ekGDT0553J|n-Tb#I#&Xu%7#U?lQU z3GVhr1N9>ow+4P6KrRl#QLn6=MLtT<0^#uBJazkl7U)LZKBI2uX}@^tmO*Pwp*7Ca z8eOQuK z#_btNHKEU_SUJxKy>cP>1sWB5K-&7jhXa)Cyt$7SyTNq_xo!`w62-M=x!(p#s-!rH zJT7wIi{x_wj;Fx`2PL$_11Ig>&)iHIdXSnpue*Z<#++pYurg{l7i+45eh=r=D&!>&yZt3xVkh~Hynh22jSmA+TJ^dw-`0L zr(_uJ-ui#-oq3!U#kI$)tLhGS7MNiGXF!%=6;T0MlqgX_L}gWQUx(bIm!Qxl0Ic}wXBCFI>o-bR_{6-k`}+UFhG zLb!ShG219rzTQ3}-wkjv^Kga{G0)*cT4FuiyMgDm0cpk8pYc5DW%#y}Ydg94!i`@3xejvrdtMxdza=$Lh8C@~=x_f0TP0qu+kdj~N@_8-y zsefg*Y-IQ@T>AlBt$ZB5hdeuA#~aOr_r=LWW+lVdp=-l?!?__V$dO}>S-m+sTpDiT zxi^ebawWK1+9EuH{S)Q$)tNX}rXv9NrSn<6UL= zZYm4^6#kNamhBheBSwDVC^=X5Jd*_JGrFEmL zCfBY%<$;8T=yfS?EA^#qY42EaWm@_`%E;7<^+Q^c$~m}T<9_n;1XV_XD1r_j9sF0N z=WY58T-2UPtA2wbGFdY6N%=$h8_8OaD@(${n-YJnFVlmCcUd7rOs21fOQTfMZYupU znZgxyPx0=|b77yn)2}?qm0J5w7(OF$d^I$IZV#^sSJr(LHkPxKZ`xNglpUL%oR z;iKXF+?d4Ax1{0TJ_u*Xs3yE$`k}gVeJ>(gzwGGWh4`rN;rCh$-`ha^=4mQHcra3c#r-G0m*a)o@6`{4FA~5I0*4|tII#dV6 zLpVh75ITc|@F*oMU^~JH+EZ7>dFqCC`xOupUSsQlcKZ#!jn<*v?qxRcU2`<}>f5*` zIyzR@{EO`ba1cJ{d!f#RroW)5n*oZ1Fi?>YPF5s@Qv$(27_1lw!xRJIbj3gzp%@4w z6$1eT1TYXlKmY>)^m8x}&QT16bHPBk8HBW7gGoJFF%ZTm`oUO5Ke$ZM53W%3gK>&} zFkaCQCMx>DBt<`%tmp?*6#d|8ML+mH=m+uL~#$w75AW>;vTeD+=C8^d(csF4?2mZ5U>#h z@t}ty9`pwBU^S=+f_2beu?_|(*1<`Nbudt|4hAXK!D)(ha5`8AdxDXQa_}8RIk;F+ z4#p_T!DWhaaJix!Oi+}A>56i2x1t<8=r8e?1l9ghe`!#ohzGM2@!-#jc<`_y9z3Fm z2ahV^!Q+Z}Fjo-|o>0Vt1&Vm^v?3lXRK$Ztig>VC5f7Fq;=yu7JXoQK2P+lvfYodu z9=zxmfq3u|hzF}cMG&lmw-oE(ZN)lRuUH2g6zgE4VjXN!tb@&pb-?^XFjf0!bM2qa zwSTtN{@IrP*^$25iLE7QB!}?!?#vd@*A7Ldb!97J&a4|byR%i&zrYHkfAs?8L=aCJ zp&kDgX^vrQ1wz8HU}E)U6Ql%Yz3F|&F=9K3tpH4vfk?)a*($XEr?vlk`u_-I#7H&= zZpj&>5rmXxDhmpc1sCvDcOhFLQehOe7o3y^Di;Fe!o$pz|Aozhp7jWIdz8(pq$pHL z;Z;&JP)SjxGNK#_@izCpg{=xX@h(&(MGKV_U?Q+JP)X4SNl|CoAT2`EK;=anl^1PP zURdNsB{QwfL4;@(v|z<}A+n<@DZ2&TOuL{va-;=vq^BtldIh~eQRoe>O0mk6VwEYy zNRtzZ9RRLMQ zMRjRn7ooAKP;8eb_Bk{+6^if@AP1LHt7YhL(jbv7$G-wyP8v+ImH1bo(@BF)wi^E$ zbUSHq%AUvnS9CmSyVkCyo+2fSR7w`Bl&n-KS*cR8Ql(@iHcCML!b-^wsMsm-pqPC| zJM6N%xX0agH~u|#5B|^X=lH*{U*H$im}V+fo2gW7rczaq&RF%YQnisv)gqOuMJiQ` zRH_!KR4r1eTBK6-V5BO#FRUiD$98iE5JyVDM(b!AyH1X^b%Hp9zq4bFo#4*k?}8LA zLkf3Cvw5UD(zJIykjSMfky)#cL@pJHOzapp#Lu(fgMZJNFm&7gHqIZIt;KYr8sv z;070g;x?D-KH;7q%{(`c^b1^sO!y2}T<8{JdvFnm8I3@8dzLFc2eN#DTa5ND&D&xr zS6SwknFek-y1WXoa#nElm2M>n8>`UlrQK?`+O*(}@*?3cf#hU-=DcIpLpQpO+|ef1n_0Knv2FodFoO>h(82>XI98r zf2cnce-~EDS$~*64FBP*n6v%}e+2%ntemsh_UeYeJ1gj{KhhtGzlZOEzo+ksznAZY zzqjv=|0pp3Q~qdlsA=EF_rd=ybg5~7j6VkdvFKFOzOV0#|J(lC_>c3);XfW7YucaS zPr%>L_ru>G%>R@>5uIz=5AXxr;&3k^HA^3;-q41o5ZDPeLPK z=qH2xQ{t!aCrF{63Ib4xznVWn3S|tzTEuJoHKrZ*a;`Nk6hG7Z8~hDu8E^DA5)OhA zYYae8BG+_3-FSaDs|&54;Td=Pd;C4z*Y82u5By9&lRAK@WSTL;cmSKe5Bdk;fofk( zEci;$TJ)ISKja^xOi-4fpe&h6|CoP_@VS02^a=k2Dd+ilpcFmnpQHrPmnf652(?}0 z7jbvbf?w3iKgW84LcbUsqgI~3*YGd(OU=Q8&14$;6@CTl09N{yl(q`=ky07E$UiQi zkd(^U#k7{Oi)k-o7yRHf5e`lhX~1dXOCaD5Kh2rdP3Cu7@Lq25<*$@_LgdTDX2PRm z`)n#XmtD|AiWtEh#Au}?nZwX@e9ci0+2oiwKr9)zfVfH!a|4W*3Zc!QIdiE=@^9pe z>%FhcHd~{}r{AIbO8lkp0`6T}CvkEwau?!UbjZ-?{`1Q(CVz9{i!*5&>#;c_GI3Q( z_a;(mGj?gcgOy4Muxa4qNtigHkuT6R5|*??evKtgVm(hU#_NpGWRtdu(g=-8P0kx< z>LMZ0T_o3*{1PwWRn#uuHK%4tO_Oq+=7~5a&LM3iE~!zJI||(wZ3BmkMx!ZwE>w<@ zYmxQsEARhAxbXD;9QKg;QWvdJr5d3~X-Q1C*Hk$abJ^uFFiQk zbCWSzMmp#3(j()&h`~y#S)J-W;y5CnRddWdn!Tp$X&~mlC~9T zjh32L5SPNAFTbNF(~f7K>!PwOE!-Hs5Xl_9A@^l?(-da+NJh*1I4Pr$GElS*-Pt2 z?Gs&DgQ!n*f6-Y&q_;_ZWIR-;yF6j(L5aK+*_)i<&2u7`O_qC;sC;P~^|v&f zA4zm6Q|ee0Tw-rGejixwr$l!Kmb>WFq|Jpt)3jql>RpPgK>JH=W2AQGWBQ$UQkB_q z;)pY#14s133d+#oL#oW-+DQ%0NHM~@yq(M-Q|+!dFZnU`KQVZ3=@?Bt6_ zn>hqrY#vwol+xwnuDW`>d12gy(c{dkO4ljfMDS$u{sf8rc%sl9Q^t>;Xm(GT(*4N5 zKzjrQ(4IjFv{z6L?HyD?j|y5tj}AIaC0EczTM)vNjJQ_%jkKz~*&WiQLdTea_7i#1 zg}O_6@k>gP9|5vTsPrLPe4WJl_`P zDBr!o$LX2rm8Dme{16o ze=dKKoRS+1>0r0n9lU2J1%C@(2>u#8AFK&h2djdW!HQrx^KU)uk<7()4&Dvk3AO~A zgH6odZ3xx}Z!@E}E_f3J<+aT4y%xM0yb`<|yo42q_k$1Y6nnLuYQJYE+wa>E*o4^1 zJl{vb$H6C9p9bR=`w%;@4zV-%SMXV|E7%?E!AiszK^+Yo_&RH`6X7j(;;|Hw#!f_$ zEw;znhRh6>+A{wcHY1wYrnVVYBPy_D-5eXulu$;&K>VgaQ$3==9mV!liWaevOC3{>IS*NZU{3@!`yIpnmgT%a3h&{I@6uy z&UWXxbKQCFe0PDn(2a86aTmFZ-6d|c58b71j2r7NbC;BDM=YH(2cQ?2j-A~+4-AxQ{-YwJ+pqTLZ}waKJN{k&UJ&wC`T^ghTm3fw zk^k6#;{VRK>2|DF?BMHkC)VmchSUrEzx*!0+kb9b_%Hk(TVl&o#VL6Q|G&kEyZ;Yb zj7WO^IuOJseUm-x2*$NP2k`M(PXXL|l_;n%pw z2O%O=_*QVQ>+SiulA>NIP=N&a-Z$>|H-4R-|KINSU+(p<)4!#cN4-0e0Uv5_{)hBq zwL6W7oxqo$zVSn>qa-5UzlH+Tg~nK2Q%M1g}&-(^NbN(|7Xo}tf^kYde^P&p^3uL`o3J)5fi|U1iqCUYf zLEoT1`lf-wpkQclp1l^E>N67S?sg`+oO|tk_K)^{`+$AWR@)jhI%`xqLX zd1!AIps87eR%Qu$m=)+;)}UYcn|;Z?VqZhY@}_;uuD2Vp1plsm9}Do?u>SscG%7pL zr0ha#@`Vl2kvNxf4O}7i+#9-5ti3mJ&0K|R?hbaXTpQOGy+KNk+#qh6s3C(zoUNBH&pk;XlX;AC?n- zQ4(%9=7ftip-egM`JC|XIpHtlgjXiv{!|?$Rhv0fszY!Hqn)h0p^gRiV(d6wVn^GH z)T&Z}@TA>{)%X|4DPII?)u^Bc7Aq#3KbnWIGqlot9yCIeIS5-+*9Es?b808!gm$*C z9fm!i-y*>`*zM??y7IOk#9MY6TAvx%)Op@*@I}nR5A>HaPkkrzzOVc3sg|j(sXnRx zsUfMeQrD+urCv_e6?CRW!B1x-RfV4UaC<%XP$L=#Qwth^HPyZfIvX?qYi7yJHg^{= z3;h7TTJfP9BnLZqU(8`!Yz|awTz8idZSr82f?7 zY}FXiQP;9l1GhoKy=bb@c`*`==Fd9Ve@M9fr=~~WWorFzpw;#k=qyIKWsHhjGdIu$ zZTwNp(mO(H>}`?@od)Uct&$#{hSc>A=qxk?af{BwR|6juQO-f8rLB{57+G3$KK@$& z2Thx)y_2ul8ds$83nZRhY7h1(IiAswz3a3nQ>Xusyl6wDPSW12oq*0}9f{QGK4|@>U-=czYS1JQgBFh5d95To!YT}nT`RF@SL8`gg~A_NM_JcUgBC(+ozEx2 z2{q`tq-Haq)#$pUwd9%3@)8p9--Gxf{*!x;`ERz~yPWM^uG~`%Ix8vnUT8HsE2-77 z&{_Vs(5PH(8Ra`^PrZWn>nzv!KM`JI-`6WWtZ8C?`cPxGY0M)U6W#4b2}gq?<>m6z zc1^!S)6bPyKOI_)j$T?Szg^^c)SwfS`g51me<*ae74DwpXF{X;KZ!4wi$XbffnGy; zYAyOFNgF@Ql*Sip{L>Q8E?iWqAqzDmzb10eHGZ_jSm{sIehhTBYX+U={|JqFX9@mV zbWn0P@%8A}wrplQdTPay2?Rc}iD9W8Ue6zXsiv)D`*T4wG~B9g+1N zp7o*IBsRCzg>!1G$ggUDGIX|m6FSTPCv;A3N`DR^HU1)Ktv?T1ja6`|%_!)syp-n> zQp2C3lJb0LHGhsu%I`q)Q;sF1#$N@k^_N4d{gu$!ejGGEtzn*{c#xU?^3J>>Vp3yX?1=9b~2D1&yN!f+i67IT+a39Pk4O(Sk)Wk8GNhE340`FUZVY8bX9vu)6lRWpZ+<;HAC5g}b|H$p6}Iy@(azozX; ztnC?SPqC-k%k1U$3VWsft{rE`ld6OjU!8fTJ!$!9EIT+ea!tx+J%PQ-POwrp$5S3` zugodGE4FaXv!m=e_Dp-WJ`*(5_kK$|(n=3zodWZT#*VdP zS#>kfPDK0sD=&Y7C)cAyf2W;D_^k}?NTqRo_e zrX9swEw2>na$!!*&ZSo8!JWDG8^wBKQ*z1Jg!1AVa}DZCEpuuib)cqsSMay_+mkfZ z^A4S>s)Q#F)-qecP0h$992e>AS_*%0rQtlWk=#X^b{oYSsWIGDlWgg5Z*T)=SOp?y z#4|GPlu_t7Jr{ieGoQho!JR}e36@c68{3f}QvU_F*%T-M literal 0 HcmV?d00001 diff --git a/src/ui/button_pipeline/button_pipeline.rs b/src/ui/button_pipeline/button_pipeline.rs new file mode 100644 index 00000000..ab71bbfd --- /dev/null +++ b/src/ui/button_pipeline/button_pipeline.rs @@ -0,0 +1,66 @@ +use super::ButtonInstance; + +use crate::wgpu_jumpstart::{shader, Instances, RenderPipelineBuilder, SimpleQuad}; + +use crate::MainState; + +pub struct ButtonPipeline { + render_pipeline: wgpu::RenderPipeline, + + simple_quad: SimpleQuad, + + instances: Instances, +} + +impl<'a> ButtonPipeline { + pub fn new(state: &MainState, device: &wgpu::Device) -> Self { + let vs_module = shader::create_module(device, include_bytes!("shader/quad.vert.spv")); + let fs_module = shader::create_module(device, include_bytes!("shader/quad.frag.spv")); + + let render_pipeline_layout = + device.create_pipeline_layout(&wgpu::PipelineLayoutDescriptor { + bind_group_layouts: &[&state.transform_uniform.bind_group_layout], + }); + + let render_pipeline = RenderPipelineBuilder::new(&render_pipeline_layout, &vs_module) + .fragment_stage(&fs_module) + .vertex_buffers(&[ + SimpleQuad::vertex_buffer_descriptor(), + ButtonInstance::desc(), + ]) + .build(device); + + let simple_quad = SimpleQuad::new(device); + let instances = Instances::new(device, 100_000); + + Self { + render_pipeline, + + simple_quad, + + instances, + } + } + pub fn render(&'a self, state: &'a MainState, render_pass: &mut wgpu::RenderPass<'a>) { + render_pass.set_pipeline(&self.render_pipeline); + render_pass.set_bind_group(0, &state.transform_uniform.bind_group, &[]); + + render_pass.set_vertex_buffer(0, &self.simple_quad.vertex_buffer, 0, 0); + render_pass.set_vertex_buffer(1, &self.instances.buffer, 0, 0); + + render_pass.set_index_buffer(&self.simple_quad.index_buffer, 0, 0); + + render_pass.draw_indexed(0..SimpleQuad::indices_len(), 0, 0..self.instances.len()); + } + pub fn update_instance_buffer( + &mut self, + command_encoder: &mut wgpu::CommandEncoder, + device: &wgpu::Device, + instances: Vec, + ) { + if self.instances.data != instances { + self.instances.data = instances; + self.instances.update(command_encoder, device); + } + } +} diff --git a/src/ui/button_pipeline/instance_data.rs b/src/ui/button_pipeline/instance_data.rs new file mode 100644 index 00000000..5fcb967f --- /dev/null +++ b/src/ui/button_pipeline/instance_data.rs @@ -0,0 +1,22 @@ +use wgpu::vertex_attr_array; + +use zerocopy::AsBytes; + +#[repr(C)] +#[derive(Debug, Copy, Clone, AsBytes, PartialEq)] +pub struct ButtonInstance { + pub position: [f32; 2], + pub size: [f32; 2], + pub color: [f32; 3], + pub radius: f32, + pub is_hovered: u32, +} +impl ButtonInstance { + pub fn desc<'a>() -> wgpu::VertexBufferDescriptor<'a> { + wgpu::VertexBufferDescriptor { + stride: std::mem::size_of::() as wgpu::BufferAddress, + step_mode: wgpu::InputStepMode::Instance, + attributes: &vertex_attr_array!(1 => Float2,2 => Float2,3 => Float3,4 => Float, 5 => Uint), + } + } +} diff --git a/src/ui/button_pipeline/mod.rs b/src/ui/button_pipeline/mod.rs new file mode 100644 index 00000000..0d6f89b6 --- /dev/null +++ b/src/ui/button_pipeline/mod.rs @@ -0,0 +1,6 @@ +mod instance_data; + +mod button_pipeline; + +pub use button_pipeline::ButtonPipeline; +pub use instance_data::ButtonInstance; diff --git a/src/ui/button_pipeline/shader/quad.frag b/src/ui/button_pipeline/shader/quad.frag new file mode 100644 index 00000000..39b24fb1 --- /dev/null +++ b/src/ui/button_pipeline/shader/quad.frag @@ -0,0 +1,49 @@ +#version 450 + + +layout(location=0) in vec3 color; +layout(location=1) in vec2 uv; +layout(location=2) in vec2 size; +layout(location=3) in float radius; +layout(location=4) in float is_hovered; + +layout(location=0) out vec4 f_color; + + + + +void main() { + // vec3 col = color; + + vec3 col = vec3(0.08); + float alpha = 0.6; + + // float radius = 15.0; + + vec2 pos = uv * size; + + float xMax = size.x - radius; + float yMax = size.y - radius; + + + if (is_hovered == 1.0) { + col = vec3(0.05); + } + + if(pos.y > size.y - 8.0){ + col = color; + alpha = 1.0; + } + + if (pos.x < radius && pos.y < radius ){ + alpha *= 1.0 - smoothstep(radius - 0.7,radius+ 0.7, length(pos - vec2(radius,radius))); + }else if (pos.x < radius && pos.y > yMax ){ + alpha *= 1.0 - smoothstep(radius - 0.7,radius+ 0.7, length(pos - vec2(radius,yMax))); + }else if (pos.x > xMax && pos.y > yMax ){ + alpha *= 1.0 - smoothstep(radius - 0.7,radius+ 0.7, length(pos - vec2(xMax,yMax))); + }else if (pos.x > xMax && pos.y < radius ){ + alpha *= 1.0 - smoothstep(radius - 0.7,radius+ 0.7, length(pos - vec2(xMax,radius))); + } + + f_color = vec4(col, alpha); +} \ No newline at end of file diff --git a/src/ui/button_pipeline/shader/quad.frag.spv b/src/ui/button_pipeline/shader/quad.frag.spv new file mode 100644 index 0000000000000000000000000000000000000000..05235a4c531c6f722188d8aa0daf607e45e78dc9 GIT binary patch literal 3996 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 literal 0 HcmV?d00001 diff --git a/src/ui/mod.rs b/src/ui/mod.rs new file mode 100644 index 00000000..51c12dec --- /dev/null +++ b/src/ui/mod.rs @@ -0,0 +1,5 @@ +mod button_pipeline; +mod ui; + +pub use button_pipeline::ButtonInstance; +pub use ui::Ui; diff --git a/src/ui/ui.rs b/src/ui/ui.rs new file mode 100644 index 00000000..0ba175ee --- /dev/null +++ b/src/ui/ui.rs @@ -0,0 +1,111 @@ +use wgpu_glyph::{GlyphBrush, GlyphBrushBuilder, Section}; + +use super::button_pipeline::{ButtonInstance, ButtonPipeline}; +use crate::rectangle_pipeline::{RectangleInstance, RectanglePipeline}; +use crate::wgpu_jumpstart::Gpu; +use crate::MainState; + +pub struct Ui<'a> { + rectangle_pipeline: RectanglePipeline, + button_pipeline: ButtonPipeline, + glyph_brush: GlyphBrush<'a, ()>, + queue: UiQueue, +} + +impl<'a> Ui<'a> { + pub fn new(state: &MainState, gpu: &mut Gpu) -> Self { + let button_pipeline = ButtonPipeline::new(state, &gpu.device); + let rectangle_pipeline = RectanglePipeline::new(state, &gpu.device); + let font: &[u8] = include_bytes!("./Roboto-Regular.ttf"); + let glyph_brush = GlyphBrushBuilder::using_font_bytes(font) + .expect("Load font") + .build(&gpu.device, wgpu::TextureFormat::Bgra8Unorm); + + Self { + rectangle_pipeline, + button_pipeline, + glyph_brush, + queue: UiQueue::new(), + } + } + pub fn queue_button(&mut self, button: ButtonInstance) { + self.queue.add_button(button); + } + pub fn queue_rectangle(&mut self, rectangle: RectangleInstance) { + self.queue.add_rectangle(rectangle); + } + pub fn queue_text(&mut self, section: Section) { + self.glyph_brush.queue(section); + } + pub fn resize(&mut self, _state: &crate::MainState, _gpu: &mut Gpu) {} + fn update(&mut self, gpu: &mut Gpu) { + self.rectangle_pipeline.update_instance_buffer( + &mut gpu.encoder, + &gpu.device, + self.queue.clear_rectangles(), + ); + self.button_pipeline.update_instance_buffer( + &mut gpu.encoder, + &gpu.device, + self.queue.clear_buttons(), + ); + } + pub fn render(&mut self, state: &mut MainState, gpu: &mut Gpu, frame: &wgpu::SwapChainOutput) { + self.update(gpu); + let encoder = &mut gpu.encoder; + { + let mut render_pass = encoder.begin_render_pass(&wgpu::RenderPassDescriptor { + color_attachments: &[wgpu::RenderPassColorAttachmentDescriptor { + attachment: &frame.view, + resolve_target: None, + load_op: wgpu::LoadOp::Load, + store_op: wgpu::StoreOp::Store, + clear_color: wgpu::Color { + r: 0.0, + g: 0.0, + b: 0.0, + a: 0.0, + }, + }], + depth_stencil_attachment: None, + }); + self.rectangle_pipeline.render(state, &mut render_pass); + self.button_pipeline.render(state, &mut render_pass); + } + self.glyph_brush + .draw_queued( + &gpu.device, + encoder, + &frame.view, + state.window_size.0 as u32, + state.window_size.1 as u32, + ) + .expect("glyph_brush"); + } +} + +struct UiQueue { + buttons: Vec, + rectangles: Vec, +} + +impl UiQueue { + pub fn new() -> Self { + Self { + buttons: Vec::new(), + rectangles: Vec::new(), + } + } + pub fn add_button(&mut self, button: ButtonInstance) { + self.buttons.push(button); + } + pub fn add_rectangle(&mut self, rectangle: RectangleInstance) { + self.rectangles.push(rectangle); + } + pub fn clear_buttons(&mut self) -> Vec { + std::mem::replace(&mut self.buttons, Vec::new()) + } + pub fn clear_rectangles(&mut self) -> Vec { + std::mem::replace(&mut self.rectangles, Vec::new()) + } +} diff --git a/src/web_wrappers/mod.rs b/src/web_wrappers/mod.rs new file mode 100644 index 00000000..077885d7 --- /dev/null +++ b/src/web_wrappers/mod.rs @@ -0,0 +1 @@ +pub mod time; diff --git a/src/web_wrappers/time.rs b/src/web_wrappers/time.rs new file mode 100644 index 00000000..eec2d918 --- /dev/null +++ b/src/web_wrappers/time.rs @@ -0,0 +1,32 @@ +use js_sys::Date; +use wasm_bindgen::JsValue; + +pub struct Instant { + start_date: f64, +} + +impl Instant { + pub fn now() -> Self { + Self { + start_date: Date::now(), + } + } + pub fn elapsed(&self) -> Duration { + let milis = JsValue::from_f64(Date::now() - self.start_date); + Duration { + milis: milis.as_f64().unwrap(), + } + } +} + +pub struct Duration { + milis: f64, +} +impl Duration { + pub fn as_nanos(&self) -> u128 { + (self.milis * 1000000.0).round() as u128 + } + pub fn as_secs(&self) -> u64 { + (self.milis / 1000.0).round() as u64 + } +} diff --git a/src/wgpu_jumpstart/gpu.rs b/src/wgpu_jumpstart/gpu.rs new file mode 100644 index 00000000..d3955ac0 --- /dev/null +++ b/src/wgpu_jumpstart/gpu.rs @@ -0,0 +1,57 @@ +use super::surface::Surface; + +pub struct Gpu { + pub device: wgpu::Device, + pub queue: wgpu::Queue, + pub encoder: wgpu::CommandEncoder, +} + +impl Gpu { + pub async fn for_window(window: &winit::window::Window) -> (Self, Surface) { + let surface = wgpu::Surface::create(window); + + let adapter = wgpu::Adapter::request( + &wgpu::RequestAdapterOptions { + power_preference: wgpu::PowerPreference::HighPerformance, + compatible_surface: Some(&surface), + }, + wgpu::BackendBit::PRIMARY, + ) + .await + .expect("Failed to create adapter"); + + let (device, queue) = adapter + .request_device(&wgpu::DeviceDescriptor { + extensions: wgpu::Extensions { + anisotropic_filtering: false, + }, + limits: Default::default(), + }) + .await; + + let surface = Surface::new(window, surface, &device); + + let encoder = + device.create_command_encoder(&wgpu::CommandEncoderDescriptor { label: None }); + + ( + Self { + device, + queue, + encoder, + }, + surface, + ) + } + pub fn submit(&mut self) { + let new_encoder = self + .device + .create_command_encoder(&wgpu::CommandEncoderDescriptor { label: None }); + + // We swap the current decoder by a new one here, so we can finish the + // current frame + let encoder = std::mem::replace(&mut self.encoder, new_encoder); + + self.queue.submit(&[encoder.finish()]); + } +} diff --git a/src/wgpu_jumpstart/instances.rs b/src/wgpu_jumpstart/instances.rs new file mode 100644 index 00000000..e3f497aa --- /dev/null +++ b/src/wgpu_jumpstart/instances.rs @@ -0,0 +1,40 @@ +use zerocopy::AsBytes; + +pub struct Instances +where + I: 'static + Copy + AsBytes, +{ + pub data: Vec, + pub buffer: wgpu::Buffer, +} +impl Instances +where + I: 'static + Copy + AsBytes, +{ + pub fn new(device: &wgpu::Device, max_size: usize) -> Self { + let instance_size = std::mem::size_of::(); + let buffer = device.create_buffer(&wgpu::BufferDescriptor { + label: None, + size: (instance_size * max_size) as u64, + usage: wgpu::BufferUsage::VERTEX | wgpu::BufferUsage::COPY_DST, + }); + + Self { + data: Vec::new(), + buffer, + } + } + pub fn update(&self, command_encoder: &mut wgpu::CommandEncoder, device: &wgpu::Device) { + if self.data.is_empty() { + return; + } + let buffer_size = (self.data.len() * std::mem::size_of::()) as u64; + let staging_buffer = + device.create_buffer_with_data(&self.data.as_bytes(), wgpu::BufferUsage::COPY_SRC); + + command_encoder.copy_buffer_to_buffer(&staging_buffer, 0, &self.buffer, 0, buffer_size); + } + pub fn len(&self) -> u32 { + self.data.len() as u32 + } +} diff --git a/src/wgpu_jumpstart/mod.rs b/src/wgpu_jumpstart/mod.rs new file mode 100644 index 00000000..e6d78369 --- /dev/null +++ b/src/wgpu_jumpstart/mod.rs @@ -0,0 +1,15 @@ +mod gpu; +mod instances; +mod render_pipeline_builder; +mod simple_quad; +mod surface; +mod uniform; +mod window; + +pub mod shader; +pub use { + gpu::Gpu, instances::Instances, render_pipeline_builder::RenderPipelineBuilder, + simple_quad::SimpleQuad, uniform::Uniform, window::Window, +}; + +pub const TEXTURE_FORMAT: wgpu::TextureFormat = wgpu::TextureFormat::Bgra8Unorm; diff --git a/src/wgpu_jumpstart/render_pipeline_builder.rs b/src/wgpu_jumpstart/render_pipeline_builder.rs new file mode 100644 index 00000000..eac2cf3d --- /dev/null +++ b/src/wgpu_jumpstart/render_pipeline_builder.rs @@ -0,0 +1,70 @@ +use wgpu::{ + PipelineLayout, ProgrammableStageDescriptor, RasterizationStateDescriptor, + RenderPipelineDescriptor, ShaderModule, +}; + +pub struct RenderPipelineBuilder<'a> { + render_pipeline_descriptor: RenderPipelineDescriptor<'a>, +} + +impl<'a> RenderPipelineBuilder<'a> { + pub fn new(layout: &'a PipelineLayout, vertex_module: &'a ShaderModule) -> Self { + Self { + render_pipeline_descriptor: RenderPipelineDescriptor { + layout: &layout, + vertex_stage: wgpu::ProgrammableStageDescriptor { + module: vertex_module, + entry_point: "main", + }, + fragment_stage: None, + rasterization_state: Some(RasterizationStateDescriptor { + front_face: wgpu::FrontFace::Ccw, + cull_mode: wgpu::CullMode::None, + depth_bias: 0, + depth_bias_slope_scale: 0.0, + depth_bias_clamp: 0.0, + }), + primitive_topology: wgpu::PrimitiveTopology::TriangleList, + color_states: &[wgpu::ColorStateDescriptor { + format: super::TEXTURE_FORMAT, + color_blend: wgpu::BlendDescriptor { + src_factor: wgpu::BlendFactor::SrcAlpha, + dst_factor: wgpu::BlendFactor::OneMinusSrcAlpha, + operation: wgpu::BlendOperation::Add, + }, + alpha_blend: wgpu::BlendDescriptor { + src_factor: wgpu::BlendFactor::One, + dst_factor: wgpu::BlendFactor::OneMinusSrcAlpha, + operation: wgpu::BlendOperation::Add, + }, + write_mask: wgpu::ColorWrite::ALL, + }], + depth_stencil_state: None, + vertex_state: wgpu::VertexStateDescriptor { + index_format: wgpu::IndexFormat::Uint16, + vertex_buffers: &[], + }, + sample_count: 1, + sample_mask: !0, + alpha_to_coverage_enabled: false, + }, + } + } + + pub fn fragment_stage(mut self, fragment_module: &'a ShaderModule) -> Self { + self.render_pipeline_descriptor.fragment_stage = Some(ProgrammableStageDescriptor { + module: fragment_module, + entry_point: "main", + }); + self + } + + pub fn vertex_buffers(mut self, vertex_buffers: &'a [wgpu::VertexBufferDescriptor]) -> Self { + self.render_pipeline_descriptor.vertex_state.vertex_buffers = vertex_buffers; + self + } + + pub fn build(self, device: &wgpu::Device) -> wgpu::RenderPipeline { + device.create_render_pipeline(&self.render_pipeline_descriptor) + } +} diff --git a/src/wgpu_jumpstart/shader.rs b/src/wgpu_jumpstart/shader.rs new file mode 100644 index 00000000..6770fae4 --- /dev/null +++ b/src/wgpu_jumpstart/shader.rs @@ -0,0 +1,4 @@ +pub fn create_module(device: &wgpu::Device, spv: &[u8]) -> wgpu::ShaderModule { + let spirv = wgpu::read_spirv(std::io::Cursor::new(&spv[..])).unwrap(); + device.create_shader_module(&spirv) +} diff --git a/src/wgpu_jumpstart/simple_quad.rs b/src/wgpu_jumpstart/simple_quad.rs new file mode 100644 index 00000000..75d2b560 --- /dev/null +++ b/src/wgpu_jumpstart/simple_quad.rs @@ -0,0 +1,67 @@ +use zerocopy::AsBytes; + +pub struct SimpleQuad { + pub vertex_buffer: wgpu::Buffer, + pub index_buffer: wgpu::Buffer, +} +impl SimpleQuad { + pub fn new(device: &wgpu::Device) -> Self { + let vertex_buffer = + device.create_buffer_with_data(&VERTICES.as_bytes(), wgpu::BufferUsage::VERTEX); + + let index_buffer = + device.create_buffer_with_data(&INDICES.as_bytes(), wgpu::BufferUsage::INDEX); + + Self { + vertex_buffer, + index_buffer, + } + } + pub fn vertex_buffer_descriptor<'a>() -> wgpu::VertexBufferDescriptor<'a> { + Vertex::desc() + } + pub fn indices_len() -> u32 { + INDICES.len() as u32 + } +} + +#[repr(C)] +#[derive(Copy, Clone, Debug, AsBytes)] +pub struct Vertex { + position: [f32; 2], +} +impl Vertex { + fn desc<'a>() -> wgpu::VertexBufferDescriptor<'a> { + use std::mem; + wgpu::VertexBufferDescriptor { + stride: mem::size_of::() as wgpu::BufferAddress, + step_mode: wgpu::InputStepMode::Vertex, + attributes: &[wgpu::VertexAttributeDescriptor { + offset: 0, + shader_location: 0, + format: wgpu::VertexFormat::Float2, + }], + } + } +} + +const VERTICES: &[Vertex] = &[ + Vertex { + position: [-1.0, -1.0], + }, + Vertex { + position: [-1.0, 1.0], + }, + Vertex { + position: [1.0, 1.0], + }, + Vertex { + position: [1.0, -1.0], + }, +]; + +#[cfg_attr(rustfmt, rustfmt_skip)] +const INDICES: &[u16] = &[ + 0, 1, 2, + 2, 3, 0 +]; diff --git a/src/wgpu_jumpstart/surface.rs b/src/wgpu_jumpstart/surface.rs new file mode 100644 index 00000000..cae17cf9 --- /dev/null +++ b/src/wgpu_jumpstart/surface.rs @@ -0,0 +1,44 @@ +pub struct Surface { + surface: wgpu::Surface, + swap_chain: wgpu::SwapChain, + swap_chain_descriptor: wgpu::SwapChainDescriptor, +} + +impl Surface { + pub fn new( + window: &winit::window::Window, + surface: wgpu::Surface, + device: &wgpu::Device, + ) -> Self { + let size = window.inner_size(); + + let swap_chain_descriptor = wgpu::SwapChainDescriptor { + usage: wgpu::TextureUsage::OUTPUT_ATTACHMENT, + format: super::TEXTURE_FORMAT, + width: size.width, + height: size.height, + present_mode: wgpu::PresentMode::Fifo, + }; + + let swap_chain = device.create_swap_chain(&surface, &swap_chain_descriptor); + + Self { + surface, + swap_chain, + swap_chain_descriptor, + } + } + pub fn resize(&mut self, gpu: &mut super::gpu::Gpu, size: winit::dpi::PhysicalSize) { + self.swap_chain_descriptor.width = size.width; + self.swap_chain_descriptor.height = size.height; + + self.swap_chain = gpu + .device + .create_swap_chain(&self.surface, &self.swap_chain_descriptor); + } + pub fn get_next_texture(&mut self) -> wgpu::SwapChainOutput { + self.swap_chain + .get_next_texture() + .expect("get_next_texture") + } +} diff --git a/src/wgpu_jumpstart/uniform.rs b/src/wgpu_jumpstart/uniform.rs new file mode 100644 index 00000000..3242ba15 --- /dev/null +++ b/src/wgpu_jumpstart/uniform.rs @@ -0,0 +1,63 @@ +use zerocopy::AsBytes; + +pub struct Uniform +where + U: 'static + Copy + AsBytes, +{ + pub data: U, + buffer: wgpu::Buffer, + pub bind_group_layout: wgpu::BindGroupLayout, + pub bind_group: wgpu::BindGroup, +} +impl Uniform +where + U: 'static + Copy + AsBytes, +{ + pub fn new(device: &wgpu::Device, data: U, visibility: wgpu::ShaderStage) -> Self { + let bind_group_layout_descriptor = wgpu::BindGroupLayoutDescriptor { + label: None, + bindings: &[wgpu::BindGroupLayoutEntry { + binding: 0, + visibility, + ty: wgpu::BindingType::UniformBuffer { dynamic: false }, + }], + }; + + let buffer = device.create_buffer_with_data( + &data.as_bytes(), + wgpu::BufferUsage::UNIFORM | wgpu::BufferUsage::COPY_DST, + ); + + let bind_group_layout = device.create_bind_group_layout(&bind_group_layout_descriptor); + + let bind_group = device.create_bind_group(&wgpu::BindGroupDescriptor { + label: None, + layout: &bind_group_layout, + bindings: &[wgpu::Binding { + binding: 0, + resource: wgpu::BindingResource::Buffer { + buffer: &buffer, + range: 0..std::mem::size_of_val(&data) as wgpu::BufferAddress, + }, + }], + }); + + Self { + data, + bind_group, + bind_group_layout, + buffer, + } + } + pub fn update(&self, command_encoder: &mut wgpu::CommandEncoder, device: &wgpu::Device) { + let staging_buffer = + device.create_buffer_with_data(&self.data.as_bytes(), wgpu::BufferUsage::COPY_SRC); + command_encoder.copy_buffer_to_buffer( + &staging_buffer, + 0, + &self.buffer, + 0, + std::mem::size_of::() as wgpu::BufferAddress, + ); + } +} diff --git a/src/wgpu_jumpstart/window.rs b/src/wgpu_jumpstart/window.rs new file mode 100644 index 00000000..caf15bfb --- /dev/null +++ b/src/wgpu_jumpstart/window.rs @@ -0,0 +1,71 @@ +use super::gpu::Gpu; +use super::surface::Surface; + +use winit::event_loop::EventLoop; +use winit::window::WindowBuilder; + +pub struct Window { + pub surface: Surface, + pub winit_window: winit::window::Window, + pub width: f32, + pub height: f32, + pub dpi: f64, +} + +impl Window { + pub async fn new( + builder: WindowBuilder, + size: (u32, u32), + event_loop: &EventLoop<()>, + ) -> (Self, Gpu) { + let dpi = event_loop.primary_monitor().scale_factor(); + + let (width, height) = size; + + let width = (width as f64 / dpi).round(); + let height = (height as f64 / dpi).round(); + + let winit_window = builder + .with_inner_size(winit::dpi::LogicalSize { width, height }) + .build(event_loop) + .unwrap(); + + #[cfg(target_arch = "wasm32")] + { + use winit::platform::web::WindowExtWebSys; + web_sys::window() + .and_then(|win| win.document()) + .and_then(|doc| doc.body()) + .and_then(|body| { + body.append_child(&web_sys::Element::from(winit_window.canvas())) + .ok() + }) + .expect("couldn't append canvas to document body"); + } + + let (gpu, surface) = Gpu::for_window(&winit_window).await; + + let size = winit_window.inner_size(); + + ( + Self { + surface, + winit_window, + width: size.width as f32, + height: size.height as f32, + dpi, + }, + gpu, + ) + } + pub fn size(&self) -> (f32, f32) { + let size = self.winit_window.inner_size(); + (size.width as f32 / self.dpi as f32, size.height as f32 / self.dpi as f32) + } + pub fn physical_size(&self) -> winit::dpi::PhysicalSize { + self.winit_window.inner_size() + } + pub fn request_redraw(&self) { + self.winit_window.request_redraw(); + } +} diff --git a/test.mid b/test.mid new file mode 100644 index 0000000000000000000000000000000000000000..c0b1c1c005a92db8bd7cc562bbf73df34fda1d58 GIT binary patch literal 38656 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 literal 0 HcmV?d00001

U=c)L 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�jvedMS@|Q;K!EY@D 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%0AVm-!3|Ic8Waoo0}Q7K=g8$C4IXg^0N4me3NPjp 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 diff --git a/graphics/InterfaceButtons/blue-color.xcf b/graphics/InterfaceButtons/blue-color.xcf deleted file mode 100644 index c62011713c741e039adfdadf621666972f248ace..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2868 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 YZ6Jms0KWOp27!TRPQP$55UK9J0Nwz=j{pDw diff --git a/graphics/InterfaceButtons/blue-computer.xcf b/graphics/InterfaceButtons/blue-computer.xcf deleted file mode 100644 index 81512b06996ef430707c73b5eb6873bf6fef2aeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5277 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 diff --git a/graphics/InterfaceButtons/blue-human.xcf b/graphics/InterfaceButtons/blue-human.xcf deleted file mode 100644 index 41c1bc31f950ef1dcb1b72eafc527af636b10352..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6590 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 VB?IugY;p-)ye``R3m{YVzX3R5V%7iv diff --git a/graphics/InterfaceButtons/blue-left-hover.xcf b/graphics/InterfaceButtons/blue-left-hover.xcf deleted file mode 100644 index 39e7b22fd17de0680a3657d25f7d8ad24008a97a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3576 zcmaJ^2~<;O7Ji9}D?+VWtInCH#RV(4@M?QHt!*7=Iy?leJ19s9KQRaa3CN;WQS^nd zFM$yD@BlGviU_iW0I~!zSir5~MqTR^kYTKn34$R$$ErnFzuKnLDPladRMkAw10mu&tHQ zn3o;K7RP}(TA0vz>SBmwq8BD{y1^WEF&!Ql+Xyy>UDH6u_37{EGv3in-_gxLXZIanlR+8Jf4BK#e(t6*#R8tJ zKrGkw_cpFC`_3mu)~vL&CKeES8!HQ(iyK!F^N8WKmWyzF(Yn?6GGZ<A&wKXh+jr6Yn=ka!a{sK{4DS_gc)I2yA0>xgT&q=iRlTF zqkaP4Rro4mCh_wM*!vTg(A;uWW}@_%zffd@TN5*gXDi{9PxeveS2Pu>ELp^He^2jq zxD_#tc(Td@&UZZ3(A%w5UmW!XczS&fzA40`HA``PiG5&c@15(q=GwA?%*1fm^T3z* z$Ak&dX9FLy=o>G2TX#>_)i%wglDxEd$x*S;^Ba5xF^L#n#h%FzE73G-IokeaO?8<{ zDUUgI_@F?z5w|2J5ch2?aeT$@AeriXMUA??zV=dCQEqx-#EBpg68r;SPH>5PHcN2) zYti@dsme3OW#ttYFO;hCGUYMUQU3!xce}SS%kd>nenBTA;!`r|GpfQuRenx}JT5#m z*jM1p+YC6vK1=XVeMREKC&FW8ii|9!GCLzRDOP&&i2ngMN0%*cV^%G~t@*y-BqN5@uVaE>#hy<>?H}553 zn~B5&8$j*j-3R@HjvPO6GVEmNu_HlZZvoHoJKH_q!X|(m+YQ3)pkF{xa7b{_A+e7q za&_Elx6z5kWinv^TsZi%uRMLceSCdH-a-#I=iT4g{cXJyi|kb5726jJTahQ?pg}iR zXU82|$c^jQ?O6|fnNB=i{Sl5^ZujOpIquxPWz)ACzF0>%{{>v8#B(d4ht)Q3X9x1z zzkc=kCj{a88NL#DGi1XOXT=t;U0;8`4&WL=EIZ7JVVf0D>T-L}ZJ)7LZ);%FETZ3r z{eY#mo=)EopN=we4l%S6PPN#`-_JV$-!_jhSX;n1yjf*$i+@DShu5X}1l+iSSV+9K zS-JG1rE3XWf{#Xcjys*v0;G4}^Bu`0jV@>&8s_ibM3Q!{d&q5QE*j$RgtuLR$(a(; z9?eDrZaeKr(kU!6Eg?FIB;C<_=oj7&Fzr39%*#>4M`SvXJYHd%19nEzYVb7$fr2XJE zL4EFUn4MQj#f`i7?%uxMsco#jP)MiCqGVp=ZZruEyTFocHiLK=VsZ!KqI>RJNb*3c zvZ$=GR&%+fwWYbSzWQS6Svox_hKdP%8?&9Ogdjx zRLU(KC@Cz+%}z~@m40!vPXM2r)s!PSC)8(F$3zT)|Ncu(vT< zdOGw-;6aHGxf4xB|K_t)@Jy1&#dG2Z;$ovB*t;0$=Oyt1@TQ_yY;zm}6bVv}bWn0S zEcE-3LkGPCQX%PxrlY4W0Nb|Xil`Hz$Bu>sihU0VP^1UAfFvvzb{$Iz4?ZOJh1-Wv zG#?r|6WYO2bNdnbDUqiDARCEy1&WxDQFd!k@(CepRX75rW}$v}C)j68K(fRS?H{G( zZ1mE753tF>Cq@=4CrMztVXp(pA>TL!2apbEKGHjHwPP>BF0>H6<~wb5*yfIG5uYB( zk|(Co3ut{#N;Ji#jOp||dRQrwQj|m?qhjf~^pH{}p{V$xR$UDxrDxNF*@^HjtJG;V z>K2NkXVJf8C4eQlN_VxjQC+QzpfYJQ`o*YGUUQB84ZmDp-H}M8(WdlsC7Z3N?YeXK zR=2LbSyQ8xgJTB$ECtR~sC)XJ_T9VP1B}(wv?(YBJ&k^n9z{`cmwKKKym<2P?ya}J z)(k3zo z|9E4xn3`sqN}?yx!)b74N<&v~-=im-C;gB6?)Tp6xz^Fzq^@qtr)2a5`hE_S8(XRC zzIEr`gNJ>65AOHgzR{&?Z)vQnYCKCN&|LanPBca3Tzi7% z9i2aP^>BLzx_;>FXm4rK)LtsDJvSP2FO8xSG+Iq#b6b0duJhWp&d#e>v=CBPRZ&)3 zLd8MJLuuhucv1W1hRZE&?N_*02HLf)%@9#td7-qf5XzZIKTyU3qLo*g8k?G1;9|El zH#O8lK>4}i+5-3}6M8r$9FWnpHE0?dIgOl#m-TfuRh8xEi&b?jFq7$@M*FC2ZBf^$ z>*{K2sxDPrI9IGXQ%8e)D*cM>i&Uj;tm0G+UaGuUURDauT(uH#pH4qbkEE!Wa;>`j zLfQG!lA^O`a%oK_w9J$qWN8q8L0el|T%;<VWUV@Yh4kYr;}1y^c?zSN(7K4zoE6M4LU}D zKpPZM6o+~vD^UTn=hOPMSP6RvWb{J%HB1!JI3;aM^Rba-Ua|Jr0!%+`Un9e1jO(#^ zn10rYer6(LEP&ZvKSwgem@vi%Fw^Tlj2>pDFb2b9nEdsBN_@pkXN=1+Gfe+y#cRft zF>b(2G5w5FzcOZw(H@(Q>AAee%zKQ{5#~$7mmSRejL{v&M#CZ%Glwzy!j!5vrG91R zGRDK$B+RhkAv2FLp2j9%`YF*y=0nC94+E`X>SbmDV@wCtn8qw*%K}Z!YK5%(?<1_6 zhAe~Kb7nqcOoi#vF!%i1d=t#z_MG{EF@|H4F}<1eHGA@Ln1ck diff --git a/graphics/InterfaceButtons/blue-left.xcf b/graphics/InterfaceButtons/blue-left.xcf deleted file mode 100644 index c2d4f8649712b249e65ad22515357fbc28f72972..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2825 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 BMYI3_ diff --git a/graphics/InterfaceButtons/blue-preview-off.xcf b/graphics/InterfaceButtons/blue-preview-off.xcf deleted file mode 100644 index 6b1c476f58ef57accf8ecd5880b4e4f7c347bdb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3035 zcmeI!UrbY19Ki8gI;Mkd?Xo{ld$>`E5J!dBEQ>FjKA5dx%ndSK!YrlSmTt8LT20x* zz${x8CWD2!KOh=tHgt(j!HA@l83B!=m?7hjvVoI-@+SzG5Yk?De&_st3^TUZz3e21 z`|anRdrR)^!?8Q|NUMRwHN*=>^?dn|S($zI^dVI;Bh8Y#i!Ep#ff$L)0FB*rAz>{hqaT_7j$LsEe~ z+af0$lKEIAQt(tFyEJ>1OX~L9g6%SnR zw%I(2cljTLtN%_y9=#Nv0}hQ}L~IHIJ$U{c-*9=A0-MFEY}@Pgx?LWF*KUDz@W5d_ z&L+HoB{tV$!-Y>^vx5XL0@lEYVUs#`ML)TspIXs6)^J}MYgo|rD_=gIk4nXeV@H^5 zZB*8y7L^B|i=?12vN?X8cHLsU(a0kbzuBlWh7EFDq9$=+y_{?m8D1}MVkagI^6N*c zE4FgqUJXTjZ|E}e;9XY4W20A*hexmd#iL_4kpF<9)q}&t15m`hztc^+p@=(s+VCbF zP{i#wT97Y65eM6vkei{18-k~iPeT!(ICC7i9*X!_eJ%1)DB{C4-y(knMSQ68OJrWe zpOhRx=0*Hb@qT1p#QFPt$h?T{&OGE?DB|7OxyWWH;*4EpB&Ci z$;o~w!Bf-xL#8QzLX_a~3E~k^g71#>;!Ore`0WJW9;C1A6D9ao|4m%|izva@yRIR3 zh!Wi1(T3b6N^nbC3-Sd~f}29k$mc`}{^@KZGM3;ICr=_D7bUp%`yY_81XtA@L&g$Z z`So|mSb`6IQHhKt_|pSr$e)Q4{Bf}#xk!}YeZKw3K3_2uXJ={Y=QjR|Kfux{>iec> zQ#eb3gPNu26?Ip-HeG#B(JUAHNh$0n6^PW99n>CNEDr>DM9S&{x$uJCJ!1x3*tF=0*JT#a3iq#KF)-WM0JQnu5r@h|e^hM{a;3K6UCW zGB4!1Q0T%@{)%gP0jt&iXn(jS00*@upbw~rE3_5rHv!FZv7c0c{iLLbu615Jzu34& z(p_Q^IUghGBz4D9^iud02@dLO|HFUvJhsDYFi3DvUzYTeT3D~GR~>BED$30^FCo~& z&?ZNht~eE|*Wq@_Z(2Mb!YQ`z;e+;PMeGyoqrm@dfA;i>HG0-sHrb%97F>!Wwt)rx T2h3wH;|a9b9{5}otzY^RN@J18 diff --git a/graphics/InterfaceButtons/blue-preview-on-hover.xcf b/graphics/InterfaceButtons/blue-preview-on-hover.xcf deleted file mode 100644 index 1fadc4a47889b459f18d69a8039aee5f0d81231c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3079 zcmcImeNa@_6@MTCyV%AI1glnZjT*reg5gEdNhh|p&7@CIEEVDhm1Xy_Zh&1}R?1fd z&FXalk#AuUW#It|2(lmx^8Nj#XjR6L#Om0Le^#iD7~!$K_r15b-rS$BRv9G& z{(k=4dJWhrNIobu>NTM@9sGBILz5EXWpb5T3AWnKLS*vmNP+V`s#fWMN-aN3C*XKZ zbaVo(vnPn7|C8dGABW;P2+INTz%4=`Y=!6Q_y@I))<(+NC?8K z$rrx>z%MEeJFCd&A8ZC-N1{%HT~G3v-#cJaM5aC|9{V2TT!0S%AEur!fT>3?<4(?Q z-2~PLpTA-%G91%lN=mZtZT4C2GrJzVr*3N(3lcErS1{art**khSwcPu02}sxzW>01 zgTDtKjSXDCT3en6)3`5j;zq5pzU6vv8VKy|FxQz%a`Y)&E`nHKy42W`2m)KL)>W0| z8`2ZG#0Ak%R9;!D0fCpRO~!((uTqYvae{)Fk(pO)RDr;9V{u-VK1~-BD-x5^PiE%G zL15n5YM(%V$Y_xO_3>Q+ek-?shmWJvJ=eT4Av9_tTz3VI` z>+ZCeuhgP37BfsAH700rT#Bcazf&N7D}U0>^ov=A+KZ^h!I$H+N4)Jk5s*y;rC4t}quT zxa`COBh1ks(Mk5%;)gAq1~hv}L3`8N8MeHN@nRNCIk1>n$Gj@bgfO33%e<^Afba~0 zYnb^9+0fA3jPPpa#W@HIdd9G`ig|9zg|K?GZxp+p%(L?bnB8%6Y=DzJn7OJ#2#pi> zrpAXj#+{kHcm|%nGV{&7TNA_MI7rGYmgE)WJLS(BVBXN9hyPY2%u*$Eg>wbd-#`A_ zj6FcYEL6hGHjAU>AMMr9_~h@8zPo=H9l(7}!aS*jS-0-aJb3iD2O1wg{BCCY_KmSY z?sP%CeedgU9&|$EgKuZ1@1P;=7mGJ;-JQPQ4vk;mzjtS9a&)klyO|IyZl%bTKe%x;&~CqC+q|Nn@U%v(M9OqPN&mS?cXg+xS2ic%L{NOVo{?L|cqmC9Z|zMdJx+o-&OPJ}mp z@7NwhZ-mmZv|Ojss6ntSAqGq6jl?b6TP_`W|I1tMr)VFJ#qYh9$d(~P%l0h8w6NSB WB4En^@ovuqLEu(!q3O$4TK@&g!njQU diff --git a/graphics/InterfaceButtons/blue-preview-on.xcf b/graphics/InterfaceButtons/blue-preview-on.xcf deleted file mode 100644 index b5b3739d24ed74e554d2df81f645e756d7517726..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2468 zcmbVOYfuwc6y5|ypcUyuU_kN8Fcr$9Saw>+KW%kvr%Mz;s-P9+vBVSzF$q76;;?|k>1J?DNW zGZ(ocMTPdqC!$0}GE2eou^GnifJr3q=RGiobtfna8?5)i7Jx~?Tx}S~Ers}Hu)E0N zvw@0~SUDRgS1S^LqTpOY`D(NWl3AolO;#lMIr%2a<5QDU)yUVn1*+w7u_!nw*t*^T zR@;vJAT{m{sp2{McYss(YgDoE3Z)#a7Ha`{;7z2B3rtfgv`C?h-@|HferjT(hSknC zh_nAm5$5$&tb=VyI077A*$7d1tBzkQwX8ZZHlAIVrq!k@H9=Z=ERMs1<7E$q2Venn zuwk6&Xv45kcn~-SFDEb&zcmlPJr6IQhnE1x-xb#)0Al|9;oHuoG8^!L9UH_-cfZa_ zRoKs_>gkz~pb*-No(}dw{`7KM2t*Pj_|cy9)W?1Z`6EBtgMJz0gH~-11?*102=PZ~ zjVcv;ZnSCj2gp03AV-Z|SNeItN))Iy7UgNN?@XJ6{QT|wCw&oGS9XOraA|~gK&F`X z>&<5k`8Gm=CN_pgL~KE*qNnX*r9Rh|54@(Pp|#5!8Co0p(!xX5I?gok>f)-}25(e& zp{87)pKfi3@CEwP3U8EKQF4OI(j=3DIR4-d1;@Nm`thTAnQ2M#S$=OyT6(rOQs-nH zP=6N}KgY);CaJv99*rs~F=ktg$O~U?kZzb=$J z9&DKb|ztG0_(+2?+Rn0+2!o39ia@fmGxw&;=cg^(1U%sb0ZU; zzYnlG`yyc*!^9PrV9$*;#fCGogLPG<*mY%}LvmDUTVqWb_MKVt&aKgQ(UXx3qr5iI z*~FI*!E->!s>BzOtit=#GqO9{Q>Ca-Gpy z%9(}u%BHri9vM^rW5?BtHD%V02!HO<htw7ru;(f*)zq* z^|QS3L~)r>#uQamlolP+70&T_M~|PBF@=Vc@GCe}Ao9Xql~g5RO!-H2d51Ii{9Z#`QQ?ei9E`Q! z#DrUGz)0diNjwr5({}5aU~aoNF;VOa)|~Jy3nK-q=VxllYj`hy+IW;J;g|EmX->ik z2HumOs@8M)dd|Rm@Gr}caD^QWfZh2QH3p6=?;F6L8*i#S#uYRV4-R72m4AL($DQgQ z8y&iVeP`Z$=9IzCFsbLbbB}&~IC^u4&<>ob79^Si6$~g0wzdQEmiH;k7{NU%|o1`1U-x|4hU&jsIzdL+$pr?=2 z!}0w$Zr#yw{lmA1`g^;2=lJWreFHkKdvKtyyQ{r>mLG2G?CREWT|M1hooy}GMP8_@ zmDK)G$8qhQ?QJbrnmWmWpyTX0)7ADX%}tl;+ije&WI>7b>g^Zm&hxF91%*mLq1N*} z@j*Z%2-wg_T&!*psN2$pgF*K)QTKV{n41xqS~0(Z3^AK3;bEfG%;GR7%8Q!*WZa^L z$Kfw&j$pCqC{N1lF=CNg1Rdo;nK%DwvBS`vGCNdT7Gmf|nFD^a*kkBQnUyn^MHo6$ z=1{%S&L|989EmSXSzHKu_kV7}g!l#X+Wi@J8A2EN_EKs_l4d4#p_|}mq#Nkb=^W`1 zI*+t<4)<9$O74R%nQOfyT>H~;O9r(9RM>0}uTTkojKtS!$rd)5jn^ttm1twECJ7(G z17=;~Lz@lWe|cz~Ar9x_$JhnT4h)v~W@6g595Voj9RTl0{ AS4+Gl@zI(vVo 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 Byx{-< diff --git a/graphics/InterfaceButtons/blue-retry-on.xcf b/graphics/InterfaceButtons/blue-retry-on.xcf deleted file mode 100644 index e1877b7caba5de2a4dd0acf62f5731fc27e53c61..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5689 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 T0Qe+(lfr~e`a4-eru=^cqg`tB diff --git a/graphics/InterfaceButtons/blue-right-hover.xcf b/graphics/InterfaceButtons/blue-right-hover.xcf deleted file mode 100644 index 2fcd27224066a0dbeddae89fa10e0eb1c71a02e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3545 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 diff --git a/graphics/InterfaceButtons/gray-color.xcf b/graphics/InterfaceButtons/gray-color.xcf deleted file mode 100644 index 4e9cc501322bab15535d64e661279ceefe17cfe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2871 zcma);=~G+R6~G_FD|laPHw)9IQ)fC(9y^Ka z^h@K!8^NqXAR%^vBtQs+5Q{LF9gNs*AhxladfGJZq@HQwTyD>O5*@pBXL@H2@4R#F zdGG3+ALku|F zDJ?^n!{g0*eU2{o-v{K;|80s`UJT`Vh_0BABTC%Ws9_`VQXYS0%GI6LYtwY^p2^KM zn{wXHHE8)ho^Zalfbaq^kZn<&2X2q*a1nSR_#VFEKsNOF=ky)V={uj(cZ1HKyRo){ zvJwA$@uU9O_oB+1aODDfV>K_@Vnu#`Q5X=PWv8e!#n(itCpZREtyw%GJ~gW`&OD2; zGFv<>er-y^%qI=$_mVVokyi+|E#e7czSYt1l)o47FT_>%~I&TjAhy4X7L%ppY%+|Og^3%8yOl1b$7P6x*KZj*5dq1 z2P6n~tm&}K78)KNx-}5$4R-ok-OifI@{)p5w^};F!xXG^^!A7PdV+zDwiZ_dcuNZ{ zu5_$4!wDamRajx`3I;km+FCtL^^(`xn2P0D;&$;1b264&{XTE2$K|Z6wnL=VslkeD zNXujJk`f7*0+){j_s#1lOCUKAWHx0%YypHm+ zlEVCkVmUYN6Q87Ge5%D(bmNBWGRDbf@qqX>)J^ZKD{sBPD|T3XnkmQfPwlW#2V~G} z6^_MJZWLb?zXf76X7P2AnoZ(G!4AT4(xgOil9L!hQzJNO2+2N2h$@0pGEwC9hAOl~ z8No?O)YYSlv$tA|L@wcUQbE#P;nk(tslkq1LUbG_qnu>>mL9Au0w4Wde;_24j zx35G_QXt=t;As~^cUPB}7G|c#h9bPwwpbMq$!U_4-}eDc3$x+Lv7wv2K%%R@%I3Do ziJsG>BId5!vw+jo#3*;elbsxv=4(XGX?ma_mqU|NlM~~kLxcT2T^(LeW38jSw4l0% zkSq?9p2!_HM@ELh-Pavx2Y+2vg{9EiqLohYP(xHTeK-3}YKn=V$OOe&1CrJ^Q zl1Y-IyE_>0w|iS$&e|$lS#gCsoxp!Fhe=J8wm`ej+v08nW-2VjHdh+=ahOtwqRj7c zH8#`&W|ks*qn0E|FhS+6b%3?fR#sYATdgKZ5=>e`K5DPFSuMo{jTR+QNigXM$?-ah z3k#dC5|Sdp1Xas$Ic>g=c)d7GN}{}41vSu1FeQ^%LX{Di6a;$Df5N0zo#eeqhfxfo z02}X3$p~fSAOtz(y-A7ir~a-I6_TBldJ{p4ioyACzcU>r8l>KYk*0QP1wiO;HY1eA zVKOA54A1<%yYtgyw|d$>L`cJ7(jz3cF9TxGXa;)xzE2QJk$MwCIi0HyR`1MBj|~Aa zEv?rOQcJxFp|gRNdnxTVk@gJNkr+KCIvd_n+%7iZ%>R34fF;5Z2(K9wIttp2_;H2 z$6uaanj(p_q)h0at~T##q4P;xW0rWAzUZ?^N!biJlP zh7=M_X$YBI)*E?w4VMtlD6}RhTY6o!#q&Nd7^g{wWFK2o5oCwv(-26?O|W@fq9AXi1E)L!hef*j`2*ufV6Brc<_`(WcGt z$)>+sX9wB3UDztnA3b4**?I;H3+v*|W{{f5=bi1GJV|4iqAzq+cJZul63rB^W0^L;0b}<@0#LpC4z;-Y?zE9XE zP!na_8EuY(`H=qlA8ae5*JEKmq(5EbKbdCopMSKQ#WK3~OBheS)qcq=yM))_rTbwp zu=Dv~V}RI=bXmHzT%*~P@EdJTCU?P1A+3$s=OWzwKeNv+*vDh}e6$DT6%be(V+=P( bS3DnkHckNc_#Z|cQCs}a`TfPsd)U7Kp=Hp# diff --git a/graphics/InterfaceButtons/gray-computer-hover.xcf b/graphics/InterfaceButtons/gray-computer-hover.xcf deleted file mode 100644 index ef878031d6f894beee24b5b9de93307477866db6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5395 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 Z=Rk}_0DN2gHyR#h-VFTr7XgtP{|hq2&pQAB diff --git a/graphics/InterfaceButtons/gray-computer.xcf b/graphics/InterfaceButtons/gray-computer.xcf deleted file mode 100644 index 2cc0575bf15a3b4336e1e4d6d0c7e16afba41ef7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5283 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 D0X4>E diff --git a/graphics/InterfaceButtons/gray-human-hover.xcf b/graphics/InterfaceButtons/gray-human-hover.xcf deleted file mode 100644 index f559f9a58fa4621376fb4ce29fabab519ff5a63e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6963 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 diff --git a/graphics/InterfaceButtons/gray-human.xcf b/graphics/InterfaceButtons/gray-human.xcf deleted file mode 100644 index 1e286d4371a5cf0e2a1c0f95ccf04bd82f210f5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6590 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 diff --git a/graphics/InterfaceButtons/gray-preview-off-hover.xcf b/graphics/InterfaceButtons/gray-preview-off-hover.xcf deleted file mode 100644 index 16c1e123742a2eadb5a359f460deeaa2b885da13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3771 zcmeH~$xj=16vu6-n=~yXRTuS8sg{~Uav)0ng-AVAY9m!FCM+pnY-5$h0!K?WRIFOB*73!lW=Iw(D!EMJ0WcdvN zK8bHQk2h)Z1K6awU5>f%EjgxxiXQ}@!(#_c#BXnj-`NspZHaeM%%6*~jRMqfefYA^ z_(BeL(~&2gn^E>^F2lln$Re0ZG$n%BqE@0T%eH)>kP`*@8ji9o>3pN3SKXU-6mdRX zpqHrhFuC=7)7;w9gDFw17gWv?gpbH({@IhqVVERA1ZLsIS}FoFM-YXXfAMrV3X>#= z!6biOdub8`ibx6a8X{Ht};fTtSx%){(brX(N#tW z6cfIE=WYmVnGOn;wizyl)!jMMJubHg}o1Tc<{ zE?YlLF9VFdrM2A!(?j5d>ArBOr4PnN&yO?+SVJV_qb)}|KsNr0V6dkf~lay*o zr6#G8B5D$yP{gMd>NFftljy3PF10J|Ea7~*&>+#*#oQ!1^ZZ(BF;dEEz0jB>h?dFb z8udjKW`Q6EbDjDkrWk^0m}@Vdu1v#F$E?I*=AW&-G)V%*%&tCJR%)nYmKBpor5-ES znIVv_lh&E9JXAkSON&bv8skjL8m753u!b0c@*hQS-@O}_jLsM#h+uW$>o;yr!Auc^ zVS;n>3n7?bk^sg(lb8*_OftYsM5p7EFbsYeZ)hqq0V4v;=!8Gug&Fnv13s9M(Q)4x z48u5#XK;9A6vi_+G%^a~b`7|PVMKuG@9A|8!7zAWoSohFK^O)%jN@{9=KxGEK|hTB z;!l@dFg*+~-OcAO_QBW~U^>qAW(Digny3xrW5*(u07g*7GW62!b%lXDg3_FbRSw7jXvwn4WIC z!v*8$vOAnGw$_fWJ{UU#OxKSstqvFwVA`86T(ZM-Fu=5)ZECi`v=MZ}v^1VR+XZvE z@${Kan6~e?)U*>wH5<95Co@l~3#d)9S@9sy6 zAEj8bOpj9dh3{^ZbGM|3a-Ui>7U3h#eIiAN_&Ykj#P7^CR2%eGb6u_W%kqYASkd=- yap3pI38H`U`y-pq<68cWvWsRWO&a(q!D)G9H&TEVP(Hg&7IH4z&3r<$Yx565b(I_d diff --git a/graphics/InterfaceButtons/gray-preview-off.xcf b/graphics/InterfaceButtons/gray-preview-off.xcf deleted file mode 100644 index 0923430a978d180e20dc6806ccc06897781374a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3038 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 OfpXd1=vS@HOa23Sh^Pwy diff --git a/graphics/InterfaceButtons/gray-retry-off-hover.xcf b/graphics/InterfaceButtons/gray-retry-off-hover.xcf deleted file mode 100644 index 3ecfb9e16647428debc7353392cc027040a96242..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6362 zcmcgxc~lfU?Y7!>}sDnlnrJQ8WNisZ_Bo-jDbXRwmK^wZjR%nE76x{Vi zibX&~1=)qtqatcRTtEdR7-Um$i6-uQ;$(XsO|DCrOWNq`p%;yNQ49a1D7-0 zSauO^SG$a+Zgv?S1ePCd@EQPjzdZ0I`L&m1_m||sAiIj9XodSXkX>HVy}aeP%}5s8 zHk-I)lTWNRg-ZlT+UD8baoWViNlQr24{X9mA3!Ayq*1?|`*5Bo^>^R*edl@F!RYuz zE+#QP$)E$3*R+33i=6fzC~d3%U@|&>^x|O;=Lsc`jyIS{&oHgQ*gx{Y_~exL`&nYM zkx<()OxhRu9-ay8h z62b4^+4_P4e-w~ti;|2ceRK*L%SD@D7#W}J6Bn=JNL`9S8>f%5LlU`Oq_$8GxdAt& z#IT_DOMbvE^m7C@R^IX|CO?nkHL@(isv&%dK1QV`CJ|PJTBf!tiHSDJqEZlEgoRP7 zoK$kPRRsgEcuhTqurmMla8)}nRt22!K32^Dpo%u&FBnJzjJB{C*Q^1) z**v6K)tH+<0DWqSa&nBNg0Tzwsi7N7h&^lAetWLKw|P<+DLRZWI1rSD~DlWt`C`J-y1bjN(zKiKuY}@iw4<-R!+ae zV4;yH$2v-TA;(rAIck7(5XYHy&^V(Ja*iFu$~5ov&!l19zz5lAfg~JQ{MVKBu+8pB z$P|67LP2=i3W|IKo5?^n4f_YO1wc2G*n!;)d1C8kAX$`1HWxq`saIh$V+Nvu7vcWO z!wqfvDK=Y){md2IkzbO+m2hL=a7l5njkz(P2*jvL*lzGv0Jr2gawVMXv6M(RDQY;N zj!d6|crgd$;lMy2!+^jme2f4S>|!9Al|UQ`l0pK1XESoftmsE=QI!&%z)Yrq0}mYx zr-zPYuK{)iTQz`J5M7!QKq&_$kj)w*O#!i`ngL)}0fjIjDSHP-PFTZWWTTc1m$Cxd zhuCWj4q=jL>th%Omf(-Z&amP5d=pkDQ%bvloI(g9BBhiJ7EEHAgkl%7geYObSbywe z3dWHE28F>xrj)@gIUuK)Aq+CgmN(-D9yUfHfPG9U1(&**WTSw1*v0x+3d9NpQ<#1d zAyZlyiCbZTzc;cW_@)g1*GHg#KJBUaYzFkPXQLm8;)Oxjx;*m>91E<1=pb5ya6I~! zI6$-pf@lpF2fix74#=>Tgo`eswaZ)PZ5@a&PxsbY*w4a6XVKE?f^W}i@#!plD5g9UqNL~A_x+ZeW;s`QVKRZ_g+x`x)44^ z`$X{!>J+GphJ1gO*TEO#N3L?qo&4XqKSNze$NP54<9TbxmQ1hHADO+cv@l6W@! zx+q>7hT0DRvwY`>uiinAK>js?aA_6ApS(e78FUFf60jc{K>F=Be?b(@Gg0M=VJ+94 zk-bi*L?>J+z@s}5HqSu%4!&S4Ns6Ci?JpCO>`8WJvx}5v$GowtShnq zy<-;LMa%z$pgib2PHPce#lF6xQGh&=9~Q-@lnWy~!X4=ATs02f$mO7Yv_mFmZ{|+9+;%lF1Zr zFitYXXaR?P`49Y%z=`bFpZ$>N|4{=bgW$K2boD0>-?oFwUd0AU-@goH_Ir1NA2phK zHrb0LJ$$IQsHff}`8OYu96Oa7K|S^xOOhYOE}=b1&neV!>X#{Aq?dYWS>p^-)rZt>6T$Q%ik0d8juTwwxc#xCz+uB-=AFAG&x#UBV98V3V9)ZXEhMi~I zn(Aw+gpv&7Y?2&Dxl<1TpJ6)G+xg|mBM0~FD9q!H;hyAJKWYGVe*#I;$tTZuebrQ7 zTfMV1e^dHe<2)}^x>9$?lVo7Zsh-ZZ=Hqn-_UtIyl9jqpULi>2`!M^0SK7Z(+7-?k+;D}BSdmCL{+l2r!NGlJsZ zCq4Wi?HiEOME&}_&AHhd(^J>4UcNLTHd;GRIX7TtaNK*Ohc6|kZozI(h+dhV&Tm-1 zdc`th{GwK^FF zMVgi^H7y4181@bPL}@UXGxi_449;q1;dN1L?4w>dvmVrmBJndbXN-o%>-P zO>4FtzSz@wy18Lr$wHb|aD%z;)ikXuZ2IQn*^bu6`a^rml3)@Y_Zs&QW;2wxU%TAf z-PUsAXifF5vbBM9h>jb;-DhYzsj}zVl?&k1)KG_PE=>zUr7L$Al*@$PtCugH>-_4} ziKDgqcUP7c6lct#=SFeP+-(I-FBf{Qe0||uXIsn3dT`!VUbHQD`^LF+a1`gr-2{Ub zLf6F$J>4B`cvimHx4W{WATK+8TTTc)CyI06Zm=}HN@(vn+ueBvkJFKw{d)vB2)UW5 z>+*6#=nziEU78<2FRf_p=xA>{{blpX`omzevm9xj1~lKC9Y`}A7ewny8(L+p*S~CO zKG|@z4sCXn6l}@K*syj*lCfY7P0!cS^y-Qejk3n(lP4OE9uDO^C)5u6iu2PhGmTUJ(DTv)I*ZN0+0u9a6iKyMr_YXj9pt~r0FmnH;j860i@kfn736+!{&_Oo-7Ea>F5+V0vc`< z*QaA<(=ysJcLDb{XI>B-q~VktBbY06~YMN zaYZ)I?`ZGZm&Rw53B!e7$~W>E$Ie~3a;{|)pI$5s6@DsB=d+tH-nw=DN^g4spIRWi zF8ol$^IN{Ua{unFYu|j`)3pOe!eHT1K`LL|as9jdcWz$2a_M|`cNNd)3hu(ge4gLc zef!bFySJ}@d--B-cSl!U8lO`s3=r;b<@tT*?mv16J`n2sIe0;IHe~SGm4d5qcMH!~ z_uT&;l(!_uvmIwzTiQ=%@*67zXW=%e5A@u7_~0I>aYAtZ3b=fxQ8I88Zszf+2Yc?^ zzjyccO)&UcIx?-N8jl}4-MkTFI0!djK{Y)$?%cV3>&CTj!KC*ro|&eT^+yi1ewoGR z2r{9j6mz_O^X84~*RFnZ`4ZYl6Ez%z6Y*tJIxJqu;7iV4zIN^E)o;JK^7X~@J!pbc z)gOk}(7rQ=_|#H?=WEYhz9PFKyWH~i#S6XXx+R;Y6ZJ>xY7Xq%)6|m27YkeYj8i?A zE?vBM;e7A8vt1o$AWRdSthyR_Ssm%fl~Q`1!{?qk*DLG2-vc(Cc!q68wFj%K4s{mu z85NNDjfzY@_p7tr-Cdm>?GUG>x$#6j9?|_(bsa@~TB#rxZk1>9Ijvpo?PuCfw?dGU z$Lo*Qp~d0$LO!ina1!q9$mFwIIzZb3Z{8CP#~@qKAMM!Ar}b9&=kOF|Guhb z;9Oc6Fy>KZF3<1nYN)L_2o6=P4VipqxiCcd5w^U%vjMQZ)n{tc`0NVd4dLekp3gsX zs(Sa4u06o&N@1ArxCHohth4nr@)TJ9qzu?!b|8aK+b)a}`YN}i@-p6%RVKVGm`k%V z@&%=^#%TzCll6b34G!aC?SCB&(i#_|3clNYBTIM9_fx`sMAH0G!pnXJ0 zh=Db}O%Sbr&$4jdH^n+wA4wuX41Z#oOz^Zar@(s#46LQY{cSa^)g(}a6o25chk<1m zU<|R+s5;b2!;8T3qYgg9U<}e9yh9Ivhjx629tkx1B?Lj}gO>x0LHl>N9Jd+4V%cUR z8)I|})5Nloz!JCF(=}WZxhiTk={(0md^raysV74sBH7T$h$y{w?qX+`S$~}sH0z7S z&Q_s8w~hri<>Br=8<^ti=S)YtFG=fr&UC9gXDE3{gx*Lx2Ws?&!I>MnAZN@TM2SU5 zpR z3=3*~Yz|wAL5#r0*fhM)v$=xvjgmRUfJ~u)qbyaL8N!*cQJNLR$Ap6d2pRDaFHDN|Qnc2Y*1RP{RH@po7swAEU&%Jz)P zoj9PtMk$4LjDR6d!B)lq*uYwWPBE}O`WDl&wOTq7edxgx8kIyLRoW5ec@SX)VP;T| zfrDlC#RNP7=7YB2%o<-pm}Hody~T@?7y;oV3Jhw3YJfML7>O&fvl@-Yoa`_N zaG-cn1ZYm}Qm0AjGUx zOVp6q$ArDgMr~3dN`N;^Eds@?dY}3STtH&4hJ;5G5|tSN0}MO01vBUxF=Jt=MA)b- zVML~AIFhhY4;o6jhwm>$WGvT&)&>Eww$Sqe3*GCBWDc+y)RJT7Up^0|cQ#lK{T-P z#hk#W41*#}q)<=<&l}WL5CnKe2I2=)Mp?4Q`dQKjzSR^&VmVc)t3-DyvC_6k*g?rH zo)JN?4Sj$gwMuQP2AFuNN8+{srBXXWG{jD?7+$7!5chZd+oDOqQNL2H7U5$p9l{6V z0YJc`h#l3t*pUYUc5E0I80J6#jakOnGG;j=WgsXZN6rjmEXesM>K)|B89T-#7oo#g z5FlslnK9^6L=DQJGhnlkGZKu0=NnWY1VBWFJUJpx=mCaybLFu=E@` z<0$S4;6~1jzygXCR45P>VUHzp&;;mM<4K9$0J&Ud?L3x6I1zmwVhOSFFwE~7k6qau zY&?0w8-Hj#ebIvO`d<-3i<4}V%(n%JV7ezo4C#bng4q_Ss&^;{q5t)Z7dB8rll^%7 zyi^Hxg6Z}+Sl&Qh*N2D)aOR@Ua+KH$Qej{?p+LqrAi@=y#Y75# z_1h!3CiM%#W{~u!3Bofpi3JmL6Skv!f{=}py@GHJl6n(p7KBaHoKe&w2<0fs5`_DR z1M0OP#6oB4zaa=b#@P&)H0W1E-^9m)PzaJfo0o!+2qH6s$$Sl;x8C6$f^gOz8=9E0 z1`RQvVhGVItq_D;W6^o8AecUc6~8$#+Oi2a|srlMdsLgWFCRqn?~IbYy@)>a=q>V*K}trfX*~|0M`Cnd(^)mSL(rO&bYeV$_z&KauT=zZzqpa)ZQkIlKe7kHSJ6~&!EOrzs_(WU6gAJiq~mB zBgxOHvD9;SC(<=2uJ+Wi(zsO~Bsq;5P5tcVL{8W3ZfZDLRkk;A^<0viLXD)JfyHe7 z-b+n&H5H|NUV_1sBtNAbsi(kSV63{_dhYb`@{&E-J2=B4XL7O!HH>;Zl_cqy(^uLq z)YVj$?aj|fi{E5e?1I7})Wazx=^cBvv$d)Il^@{qzuQ_MH=LhnKG1hB_~r7ssai?N0-;uoH$-} zq^x9bLH4ec_$}Y9jnD$S;z)Vffqg~!SvynW|Lgnc$W`o8 z#-ILXWgtnqQzRJ>yT4RYnpd)aZ&5)`#`a{;iHQsgS*{B7{^mcHXq}+oQ%D!>4?JI7 zRG6QWxhp-1+X5=#p>!@7wwQ`p>X59-oraR&lvG*;%`HrYFa5-TYlNs069ye)IyL zh}oo*2c+EtIZe}T*|9x6B`JQ}mhacCT@x0fSu9`Z^_5@v7o?LrWkcPA-JTlqU3@&Z zb<6kbqYV)&Lo{m8_}V{w7U?vdvZEf%bRk`}F`GATSQl+v6TU*bOf3U>Ksc;sI^{q; z0{N#w#^|+%)!{2cf|e*2`O#l3(gRMWQ$wjIGbfXim#)#T(uD*qRWkuT-_BRAbjR2q zP(K0koEEKSH6RG|^ZMI@Wx-QW;z&J%^^xDMUd9A2^#1m%1?=KUh|N*dF94Rg;c9Qs zumAI_l>q=?4{8kcV%nd{nX7`no*SV58{pc58b`gH4tP}RwJW|rTuz`~xjU2O93L0* z&u-L5l*wZ%DJ4yl+^LCFzxyQT&nP*?u>D#k6U2VP_Ad3MX)iVVC-$|Rru`K(9T3D$ zU|$CN)3h!tH_Ds#(Xiv$UxR#U-ye!uV3@t)OWcJCgmolBTuUbvL^%wKSfosX9;)1wpjzaP}!g(-$`1 zzHzy|so_+0McKZBP2RM>mL0}EW@tL9xbt@RRWPcnJ&I_~kMlv{5cVMmqxs9XZgh3D zUO0QIy7JKe;{43q1Yde#Fl*1=m(lb(zO(!K)sEJthSN1*yst24cY0RRLfS8wwPo*u z!g{`~>uP6vOB0@zBM0{v=Vk6liQk>-Px}V5Qnp7;(;N8a&P(mB7x6e9uQ*h~!$C+- z+_rf~xjV&$BP3OZ7Q$CogknYQok{>!S>r8)B;FJ3Lo>Vfl^rZC*}t#2FfTh}M`|JmI&0T#$O)poma#VMy&xZY z(T<{hd-oO#JC?eZHSFpvpH)C`X9Hbr(s92zW^duWXDBE zMMfAhHh3Wp#;`A750_@8Muu(5G0=3NmL12wTneDwn!RI}hK9|Vz`k1UN7Es(a0FEB zN9=%>@uVfRY2k8qBHO>*&qu||S%&W~-o2}c|Ag<&OXRrtZ2n{ZRq^(1T=EW%ODp0h z@Gpx}IBrjK+rc<4p@1LH|5}*DC7kH!?(S$v)yRP-Itp)xow&J zX#VFMj@x;m`|-njw{KqWY}*4fekA`aa~qf2a_6VV5ANRTzILU(y_Dn9c}MJy`}AF9G6hdUoVeewvz7!Zsv0G2PF5fyCtyF0jT<(&^6 zKYDooE+||Vk4)p)Gbc}+uTMfBQoaWkRMFY<;KBWSJ-2@ZmCKj#%+#H(IbPLxE}2W^ zC45Cb=6L7s-JUzQZ{56c4RypowI|?2oU4n6#q$YV-lZG2Z{NE0*|%u9hcf#E`pmnI9W$4;A3^XC0$IZFO^Hb*l}5M`Ee)cwBi}IC{>o1l~%RpatTF{ zcu!Fxmww?=dwW}JOEdUss6TV629M~W(xWXoTwFeH!`~}RY zA4QF0&DmUBE^o&_*ptYmG_-)U0lvJaYEMA6Ag^x8;^Ojn2ma9>sAYZg*?JIy@v$mM zw6wZ8gNx7Ohw@K~lDWiF&1X*H7a7j};j+?GO}jAm2mDWfy||+-wa^s6=+ME^dca&< z0U+jCaXQBxXsfNPCU=a8xJKXDu$&j0`b diff --git a/graphics/InterfaceButtons/gray-retry-on-hover.xcf b/graphics/InterfaceButtons/gray-retry-on-hover.xcf deleted file mode 100644 index 2a83296baa20daf4f4f843a621927cd363f780bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5837 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 VASNOJeAYP=!-UQ1z&%82_#edvx8MK( diff --git a/graphics/InterfaceButtons/gray-retry-on.xcf b/graphics/InterfaceButtons/gray-retry-on.xcf deleted file mode 100644 index b27483b8cead29df2c47bf4e765b2043e2df923c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5680 zcmcgwc~lhVmak@0P!#v$dr4jino%PWrE=n%(M-m~Bo-h7b{E~PVnY|$3XRf@fW~zq z#lDEhz6hm9L=;(EKmo)|O6B#PZN_f|IvnU^_d{+c@H>$=~)zk9#? zeZPCF>U5AMWD^+~5J(1Uf>{EtndX7=1Q-$t{7ix|dT9zl;DBo~3@aFxFs7Pi#7zPG zJ8*Xhg0Rk-5LFQC92BNegNgvVgqW?BtPA*!&A;hRXu#U|mC#c+;VGB7lZ4GIel*Q%GSc69pa?;rVp z^zmv(vr(tn%7U75b#Yk)O4$42`RMftX}&L>Zw}@N#~m1|)sv1sDy?pK=8OTz1&f9& z#Do#GCJHubBH3VMPo>psRKXgRj*Jr73|47_!l6(}M^@_`E(Y{h=~!pACX5ZxYeKbT zus#g@{%58BM*lwxSY#W*b$U%;6dBA0>S5|18tEJos%A-blvWj@2{5a~!ul<>^%}?x z>QYP$kJEfvmYRj(`T$xi>;I^;?85m@$#G(guTe@&C&tQ+uD{=`RYkVgZ|K$wl= zh&P}5f;YsrluHN;h`$_GGs@%^a$8XaF=e2!GEa>P(*pLykm!dX3mD^I*bzhCQYixk zWq~A3=jvjAY-gIGDZqOI29>86b;_K^09!B z!b9=xGSJ(?Llu5>C+u)<%FhMFt@_1`yo{rKNH_94C0$ z5$T6S-X%VFn77;00Py!l72Z{L(REu+4@s9LD@)9L5u7uM! ziDEV;Y9SXO6gL8y;Z2;0O9Pim1MC&Z#fZMdSfCXU4yKeOiZO&y3Uk;Xs4%iYfxJS( z;;~GC)58c#I2Ds*;#HxvR=xpJ;rOhSQ_ypq68Hf^*C-T9ThU`Wh8`sbd=H$5 zP0EPOEQcPINJUyCG5|r7ddpE0n56NS1=}rx#W)jFzxB zgUuAotV*yH3{AH9jLqwtij7(&SP8}wY}Ac{04f{eO_d-#d@e`?V-!&PddiQ2@Om-m zUxB`5(JzAV^IwqIR73VE9QiNLmHqzihBCmmp*vcC2V1 zd~yB-auFd2#;IU1c@Pdmg0LI(Ln(sr3_d1?Oo51@K|#ny{UJfPj{5iJ&2xl?9cmMV za@1!D!hOhj=%yg>7ge=u;VmE=zMqGW==ZvWv4Y{66Lz#+>@UJ-;q9*p_V|o`H~tpT^L8MG zME+;MyKLz!@gWWG)tTmj-&<3bYxQhcpele}8m`xeYIPs#gH)i04E~=!&~P!h{_F#7 z_+t^wV+KXk@5#eg!qIYSM(elXXSdY5`V--#q=I8%S6ex6N||Kd!Nvldd* zsF$v@Nb-~5O|&EFxPY2M{kXu1bdql=DBi06fFwVpCQ(1Q%phm`$JExHDvjCbN|N)a z3Doz_GsyXx11(MGs>%+`;D2O6)G(Y9};~rXJ2AN%yD= zJ?$-x=c-SX9L(9D7`-zh%x@++)0MKJ?t|H5Ykf!SrN(oo%8&AS;JjyBc!*Xt3jtQt zJ=mz{*4ma!P4%^>%1aLwWbI4XyCZV*hJcL$?~_goDGO>~9!Yv_JAI*{{@j@=fD~r$ zPvmxQ)oTO&sJ*xiOvMUvi8M@l87c_l{<6&2)U z>`MepWLR+EI)#t>7yrISJp&GW4(X)+hUbfm3iER^(^C_;Jpc&_QYodLUoG|0et<{g z`aU^tBbS?#opoS;YGUl(-Csul#9t}%q(AcrT|~}sg|r7Cr+Jz^Y5P)>5@MtG?AW?x zb8w()wQQx^=bj-SlQUc>OKK3_{l!Dzm1a>o@8bv(<`}_X-h%LHJAsYhy*Z8jTq(5J!g*ur} z*;3yvoJG!ByIH$Y6X?HI$#{EwwN$>r1=k)!J%!4fv1${m0)vmI+n1mD1jqG?T5Zn!(`p<<`7Kl-nrSA0`c zd#*TDM!T(HC$T^Hxzj$$W$hg;4W*fD>E&{E0{i`HnpPY*)z{O0sj>E0-g=srvg6r* z$Z1-g-Ega~tF5`drs`-xI4q)O$FfggHEm(*otwR#ElqW2D#{KQ>~g2Q)T|x*n4#(L z;+{MG*TAWvwi>HBKgI)%quGaGjNp53-|XvdzkH$YOy%(-#rc`JaVzMR0jv#sUrN(k z`JVn8*SgzVn$FjN^Wnmr1F2aFD{0RF){4CcfNgw7-?g63wifJ_lgEw}=VhiP#U4oZ zqE`g47VLnMrnmF0JzbscSFoKzkAX7Zm*h?}EbBq5^J|+W&37+0HJ-0MQ;nE|d71l@}?~C!IJyom&`y47_eRfPlcvz?|W4jyH!9?~2aJV)rIV^Zrj*g~%)a+#T zA)r-y=-u?#;{d?3Au zf0uuq7te9A+5BJlSH=6Hxx_S%ODW=~@h^*#IPPF;$FUeLu7IDy|5%v7#hvZ$@9%C( z;bL?7N&FA_v0PGP-{9cg{@&J1E;^H+z<-~^ar-a#KYloP=hls$j)O4c$MerJqq*F+ zyH6iKxOcn%`qj?PQjSaI?fEAe9Cx_${<9|!@8A9QW?ye-TSs*amt4%-@sHCv?pXKZ zXHUQfLS5~K7esq)9G6tgkLDll=eV+-$NvE1py=4ucBQ$g^?W>+P{iBt_rZLk=h2hz z9)TGb1n0|8%U9|}fE9l)jf*btdGPqr!~6FDa6@dF<_q=b&R%Lvz!(<%0BoqDXW+qu z`-1~_z6D5c7xqlU`I^&J%@-57WM0BowFKI^tqOENq^S z0I1}p6l29`mSB=?e6Mmy8>YvptGtg;AM5XEmchEO){5yrMp+s z`?v=%?byR6P-S^pX;phJ7gq#{4;007sh7JtJ3HFjS|LtTV|`r>w&?NF>b4v%CZD(D z2Mgo5Meva$6-BN)N?R23vzdZsmli_PP0`R|Gnx%j%)`g8b3hTcC>R$AARj%$zM zpF-`$RJYZ_LjjzQA1iHynu{rbig{L?%5g_KYAY+s!J)LdHlB+wgM+1yKD3C*ru6EPguw zws?OuC*cf<1^hewP<~=u1~21xT07u3*zgzTcpo;{{J)cjO1BYB@ZBa}!{3)XVfKId s18^MR&=)^iaSi;p7Ovs{@=$HQree6^3_w2>|3}2jteZLyCy=S|-^>(pDF6Tf diff --git a/graphics/InterfaceButtons/gray-right-hover.xcf b/graphics/InterfaceButtons/gray-right-hover.xcf deleted file mode 100644 index 8805ae7f8b7706982952463da86b7a019e507dc1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3545 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 diff --git a/graphics/InterfaceButtons/gray-right.xcf b/graphics/InterfaceButtons/gray-right.xcf deleted file mode 100644 index a02099cc2a5ea65fc008824066352874d4ca9f13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2836 zcma);`%_!T700izV=(wZz^}NC!w+t1PvT56(?6iiPwhdd(DP#VtU=j)Z(6)iC2g?B4k@8u; z?a=>+aLv`jum=p4YQ6S=zRFMz5(jY!x6f)jYSI>1Ehag*-KK>@q+*Du+$?~s@53H`hxe;bAfpDWnxM@P;EBY3Jhk= zL9LbLTXZ_B*7lzVWZC~MC6yOb**c_}&k{GLe7JCIBUm5Svcb}R&U5~z=lspj`CGwf31LErYWA8g7<8)2qr&^mWRca0ZSm)RlBM{k|OQDZvt)C^6Ap z^j{_T#HpzJ111z3=??m>61U!7y?tT8$|O|<-A11(aPNb!9^ActX0TcmjWmxwkz?PV z@87+3{p!U9{~;!qnrSXwli~2a6;Q97UphJK{{UlBPPbACUK_o2V;R&lr{4}lBzrV{n^ap~8 zfo`OKsl>AR^JkY9PtJ)kZ;z+7xi6^4SWC0$*Cwotoj!FkHZwI2i4bgaHh%0Jt;SeG zGwIhxTr?Y-n~6@04Tt>R-cEOmz3%vNf42;)SlEOWGtsGuv5`p7=k0-LQ~mL}h+T%2 zl@MlAPmhfZM?(IAzHUz&L~FbJHjGOwF!dvN>WOeD=pX3s>Fj8A+UwiGzn8Ijv*};q zZAX2B-oBnLkK5&FYzfyZ;bl#*5EA@2($~}7+2M9Mn;d~Q4aS8Ax`jTL;h?9Zy$w`X zz+=Q%u7hR%hG3t|<#aT)2HOr|EGx6nSLr|GxYuoOYz?-+>dIiZ^XZc!?DYFao62Ax z%FJ{-eOiitYq!eTwpi#+%IoktAVX`RuhH);Dp?WmvWM~(TEm6F0HK2=+9X0GgT$3( zNrZ@@N#X^z5K+oXFF$GanhzJqI!i95Z zPA|kDHWVBH4xHYIfe@XD5K%2GEiTN@Mkhui!NI<+cGzgw#1R5SGe$_s{CsS78UTv~ zSk%?rP+J@7Q;_0hSUEQxog5z>Vw6DC(OBCs;*gV~Btk?!J3cxx6b>-JShTJubeNFR zBtnElhr*$NkMZSpH8*w)|53r_We5>6?)MDkWY%xhzEiHMLC1@7Jf_0qY;*p%0d5d8fBA+$Dp^ZGSVPoJEf9369O5RxaW5JKbE zu3ovw0#lWtU?GyF9Sh~^RrW9L&3pbPj9FOBb=;4NIIJ&NR0IXLH6!J zEkflCAtO@EKoMdDL1L1i<4qAOLS>8*BPxtS5t@WLlP2iIv14A36e&f75Sf~UBE$&l zP4ac@M6h0p6iI}TbYf%(iqK$x4}+wk_M>)h6+)^cLI{ln1HQrj-mVV7q@lLO|2rw0 zmm!2ugaOnA#l~T;Z}!(J5GoQ8LXQL8T^_LrHQEPSN@0P-DkMdN?e5kVM^j_-fZKqO zOv@0$$O|>d-ryW;(IF&NiwMC!xf<%6zGhfmX{lI+l&ERIJJbN9VYP@*3Ho(CmBBDT z9aJGLS_fnRPOJ(QNeeZ`7ZBo}Nk^)G%)QPf-sA;|5WiFV2Dh8z4+-mqc)aUPZWqUQ z3LAuY!uK|ulK3SdONjHsKY`N|e^sz+c^tngY=SP%d@h&cp9ouo_}|Uzxh)(Y z7jlKft)Fw7I6hOzhu#J773cGXZ9-!0XYirt_XyjC#Ip+cPV@VPodW+GE|cTmX5J+8 z_6j?M#HHQL{Q>Jaki~lDv7w$FWoCsLgMOA*}VT0HVg69(hP1Z z$A1Hl8UOaf95@N`_l1o@{AukjI1KVJArqeS!#p_f@owQ2A^x{Ro4K7FuM*Y?@fBkh z_Zs(I=GgbAZ2P!99KQj+`XTo5PoEC9BCScQu^BApf?uhvMizntgV@psn;N+Le-1WV ppdZU+ho4-qbzsoaXA~xD3q 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 diff --git a/graphics/InterfaceButtons/green-computer.xcf b/graphics/InterfaceButtons/green-computer.xcf deleted file mode 100644 index b83d509ed2237d52c5e9145bba8535efbbc4ede1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5296 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 HNUi?@KV!qj diff --git a/graphics/InterfaceButtons/green-human-hover.xcf b/graphics/InterfaceButtons/green-human-hover.xcf deleted file mode 100644 index cf610a84abb4bf9f7d9975c0a6f1629d60b25c97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6900 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 LJ`ZV+NZEe_!B_>p diff --git a/graphics/InterfaceButtons/green-human.xcf b/graphics/InterfaceButtons/green-human.xcf deleted file mode 100644 index 41b19abf3c5b40e481c155bc9e66bdf46fa168b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6575 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 bcIVY!#H1?&@cZMZ66NaT^{*fbnackJ?BjNX diff --git a/graphics/InterfaceButtons/green-left-hover.xcf b/graphics/InterfaceButtons/green-left-hover.xcf deleted file mode 100644 index 920bf79bdba739dcfcae4b9d56151f0afce46155..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3561 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 diff --git a/graphics/InterfaceButtons/green-left.xcf b/graphics/InterfaceButtons/green-left.xcf deleted file mode 100644 index d02ccc00eae64a698bcee40f3b38eae1e67ed4af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2820 zcma)82~ZU274AXp8D@r=VOpRl-3psEiB^JHD%56^)ynE_+~Cn13b=ALx2#-Ya1~e9 zXv&RX;f+TR0~zjP1{zUB@m9nmq8rgbf^LGq-~huh7sqsW-j74dt(dC3syF@md++=I z_rEvQ|4U9u%kgk|ETNy+gUsTo;5OJ^UxS;=v+ zKJPDoe^%aN_&Ht6fExD}>YU%_e;bIpQ&AX8$Ka#QtySHS&Ebs)JJme|l|*w>W{h!q3(*AU!)VD=9WUarO4>?2L5P z^6cbT6o(3q1P4V8;6X)B8xdWdHasxY2o!@v3_52^-ms-_*luswa+}>EK`o@lw*-@9NKV!HCS6@RxtUT@qqE3YwbyQ6X|Au?Nrq7hY9tC+ z8*}ydpLVogyUZ!Rl!O|L2qMYYQ@6ew=zsa5>#q;c4%K<&MoLT>!bvhbzq#Y@&%b-|yt}jG?#XdwcI}n>kDfg1>U#F%(fzh-Esb^M$H-vh4Iu-+X=u52`|e*JJ%0S? z;k~x&t>+u6wI{(Vr21k=GN!V=spZOzw)T7X?zZ2$e!01^uA=x98HC6Yf#m0EedC4J ztJiPbym9@?rRGLml~#QM$gb2tR4^HwTitN3`QoM4OBXMkYt&VjYEB=8ti+TpW+SAW zr)xOdBxo|9ZLF`WDlI;9vH+Y?YAOQC8gpFdqBGakR#j*5_X^`e*jZc_e%;t&lF`y2;G7QifM#xy|)wIqwK0JZ~=8apx z3DiM@0ldJiRnrwiR`8le=Zy+XHngn4&<6{$d1ng#kQMtgTuLa25qDro{1S@J z*J+OI+n(TuO9&Y;q?F*eXnBh6aa#+*zfAN8+>J20332>~n=5<%_V8wNjpp#a?TH`a zVnRX;qNTk84z_nb>9}*bu>y8bC9D9Km@v5ExNN1W8a^TIx38S5(-!9C{yzR=+?5a! z{Yo*8FN;1m8X}qeIt!0%<|YC@tBFxU5}Y?cTj>M^;)= zbU3*Nr7R_0p_6*9Nl44gOy8Cq7a2zWcGXHaC=?A9=LdmQTwF|Kc*wd>SA6s(+a6b=tjV|2lOE} zJ^wcaWy`Qdm}6DBi5KwPW6T?41KRinJojT5eH?<2hrE#IHo&;#n75^qcjY-1ro`CL zfAA8XJBTST*6#-I#&ahz8RqaR;&>U)X)!705PoUq6+EZIBpAE4hgb641-Qx`f?SR# zcOo*|9ySyjQbt6+biOe1pux5G zd0~zvMKkEY0dRK5JIBU(7oN2$peR!dRuy!aGcX^F!{L@ci7xxOX+XX)F*PwhJ0&CC zXG5%N8*;&bFe`I|%pQ3Ae+C&D#33#kb`+rVKtbka5(GO%+ylm327rsloDL_3#vqtS I7AW|C1BgI@Z2$lO diff --git a/graphics/InterfaceButtons/green-preview-off-hover.xcf b/graphics/InterfaceButtons/green-preview-off-hover.xcf deleted file mode 100644 index 24ed0e7133224154d4889c2e8cf5a482b483accb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3773 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 diff --git a/graphics/InterfaceButtons/green-retry-off-hover.xcf b/graphics/InterfaceButtons/green-retry-off-hover.xcf deleted file mode 100644 index 6048f6908247729425488c114a882b1a394b4c08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6413 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 diff --git a/graphics/InterfaceButtons/green-right-hover.xcf b/graphics/InterfaceButtons/green-right-hover.xcf deleted file mode 100644 index 492edac46cd53d57f49014663480f63021390483..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3553 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 diff --git a/graphics/InterfaceButtons/orange-color-hover.xcf b/graphics/InterfaceButtons/orange-color-hover.xcf deleted file mode 100644 index 2cde6eadf488bef568c4dd10252410985545930c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3267 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 G;lBYrwflwu diff --git a/graphics/InterfaceButtons/orange-computer.xcf b/graphics/InterfaceButtons/orange-computer.xcf deleted file mode 100644 index 82934fb7ab4666a49db1bfc3a4bc3d0775844b6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5272 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 diff --git a/graphics/InterfaceButtons/orange-human-hover.xcf b/graphics/InterfaceButtons/orange-human-hover.xcf deleted file mode 100644 index f9be23d8070557acafc1ad036a30a8a4d227efab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6878 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 bAhG8fP=!f%1dtDC@+dsA0iV+vk+S~*O?he= diff --git a/graphics/InterfaceButtons/orange-human.xcf b/graphics/InterfaceButtons/orange-human.xcf deleted file mode 100644 index f9ddc99101520026ab1c4a5b48ba21b7176a87cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6546 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 diff --git a/graphics/InterfaceButtons/orange-left-hover.xcf b/graphics/InterfaceButtons/orange-left-hover.xcf deleted file mode 100644 index 3e2786da9ab5ca0484f52e1d4b1582a0269386c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3261 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 diff --git a/graphics/InterfaceButtons/orange-left.xcf b/graphics/InterfaceButtons/orange-left.xcf deleted file mode 100644 index 1f7d78fdcdf8f1f68810b5ea464b1acaba367902..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2616 zcma)83s6+&75?ucAS^F=snOWAGE}1Yh>p!PQiJVe)M9MSXwrC5VBK9;-moCQR*4p) zh=>gc27KTP5JV)=5~@v=yl`562oMznv4~L~vf}cyueTsM&k(wB%-5laRTdh$h#wDgGW{+P&Q#3KriUso) zjLS=mg?3j6q{h4?)!|qCZ-b>~q$WixwFw%;R;SP=D7UCmS$?8g zovPCPSRl*(Z|FJl(^STTUATSE4Yxyfz(M>tk1G>&suXp!Qnfryr%Oyoou|`8vp7aL z6Bkf6010%W-DZhyb{j5;4T8lmaR+tS@)vB67i`ZLY;UmHxejp!!;$~u@a=wCgxv^& zD^rM-Mg0_$C9(TV)I=?#gFW4PI*kfLcUuTY#P8`;Y8$u>rscbP%|uTFsp0W0LYn_Q zVzJ&L{nU>>9evymK(EnaHd?yL1L{ll2kjs2Z6>69RIu5E=Se2xV{(_uscE2%klT8z;3RNX z&LWN;*7#m(oS8e$w0_0li37bXNzpyV;vhIZIEUhXd!I|)}brlGNW}& z568Jtv%Z})_pzcTm}P)-W5N@13yL!uItghVfcBjMmW>HRW6l2>CHwL2({3$ zK`7Ug8b|xSBjm2ZY-FJ_D)f_1>J4Y~04qJC<}q%}iCV`V0auf#Q4hT}bw4vvhCL+R zY%Whan@CgFh-r*cQ!lws1E_7d3nppod}=jWyGb9NOh@(Ia9nH8P&*lbQ43FdT8NC; zS`6?Gm`8_t+M4^Qf{LRw6BU9sVM|7eR;|O+u#l|Y$aB0Hji+K;k`hcy%=V3Z8Vh-T1Z{BSD zrs3~(wUuW|3X1tC?27x+d46j}S;fW6_1FG!qv84&SL;5lDm!^JuLRr^@n}*cuR2*# zR$Y6!uAZwm)Lp(*RaRP@pZf{8-S7{(D1Ou4@{02pYA)4Ys;NGIuC(MxUQQuA*d32; zQ$fv#D$kWya21B~bEi)fA31zr|Hn|X2kuV>7GsZAoGL9ndA#Ike%^tsy?M|nu#*wD zk>_=#r#~q=l7IN%{;XYl4gx#gcxan8l8^jT>50QR*&prMiL(*) z)~+2G@Baw6_rtanhSIc>qD+hncEgkcuuZ21%$QPqrr>NkACD(Pt_BeE<{brF_#}84 zgf#6&-ia5t;py0ttc{9{!wM{BV0eRYCKrf=34t7Z0nM^k7W_I)j$T1V+4QjW>m!!> zqbZ0wz51KP%;cywVbfrJ8JuRU+;_HcuTHsk*$h~1Bi!_NO1`QqXUMzZGhz8X^$*K$ zBR4)fTacBiTpKN2zcQdC@gG(Tt0w%Cn- zSiX23^T^*=u|b`@efPctIoW%6rN>9FU-{E)rzS4BjudOQ5hMRR5b`UbPUeHVo-{nalQg$BfBs zz`{BHa`?9UDj1`F^Jl?cP)uVy`^;OYc-;@pKvtJ2ueqU2PR2g<$TDGB?wJrY4GH0A zhb2xDThLTwTlux*EQ!JJcR}FRHc76MxEfd%oIYrm+$1p->a(r8E6F7>2O6*~ydil? zVj=V>Og<(`UXpkUC=y)L4U&%}UO;kWTh%4`N@5+XKY`mRN`8{~C9E%-d!-a0i3GVK z8`mfWN@52yeND{lVgbK<#sbTtNJ|IF^4V-2Fex p-wWbcF8hPv1L_0{;@IO1wu?J+J1PL&o!Lz6nEPUOlj-au{RhqVSp5J1 diff --git a/graphics/InterfaceButtons/orange-preview-off-hover.xcf b/graphics/InterfaceButtons/orange-preview-off-hover.xcf deleted file mode 100644 index f2f5cf25e18dd292d77cbb808bd585eacace43d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3640 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 diff --git a/graphics/InterfaceButtons/orange-preview-on-hover.xcf b/graphics/InterfaceButtons/orange-preview-on-hover.xcf deleted file mode 100644 index fd454823553b93656e98d4d3e58a2af4df84f3f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2916 zcmcImdr(tn7XNY+kc77K5-JuhZ^ZT9i-IH@ZlFwo-Dc4t<^7Z-FVl#qeAck=)m`VkI;=!UaUquKTtOPI(7zLI{ zFpirA@%OSxa&)<}{1Vx)~@0x(XQ?J6mklGiAlr%@68~`4&@IahXkTlpbj| zOJ1&i(Sk+Nx&v5Dqz552?+&RUUH|g{r&crNxh89=MZY-oE+E-Ek%UXDD7D)4)>2b} znZfyG`T3059xf1P|CExM>8ZF6WT{?}f$kI`LXDUD_++WwY|GCznKLWw_OeoDf!&ge z<8Z_AiUh+02!cfsj1#p4!vo<#;26AgU?Ci>z;`L|-3mMtFy1$`W&jA~D~C^XYApc< zcw&QCYSVO%D#v~X@0+^mLMjC^)be7m-9Pxdck^ z{fE0MXavd?O7b~5ZcH=gyAC`hs9hpYQvA+~+ziftMR2KI6fcMC_`vv$$QvRw_qM=m z2pi9Pq%jD*nlK5xD2*yikXe53;^pl_qZVX$+A&a`55=(wA0_#0-QefKQTuL+H}Wf4 zKU2-7vffG)UBsraVp$GN7qD|!ceRzKHv>#&1;#|@?EVAb*{rLGrVHD8v6IA3RhntK z?s%u8jBbOp=dt&hIQ>PEo%*g3e!-M_3oo(F;vHN)c;G4~~ZTPLB z*H83zwYPRD#ABV^eJA$Nwt@aX^>x42-nzdtEN&V&bhy2vYbR~%>HgzuM~}4ZZ|YEp zj^+c0j=VzKj<&ZQZguS2(|A-CeN}XJgQnqD1#LTcz_EXC)2%ne4U`u~6y7Szrmd~J8n)GKtzji0o)z#&b~J5ynN_h~iA#`Y&p2wr6q)Vb zZLFL|Mqk?`yX06jOVugQi{coCkCuGa3R%5$@{DXP`aKG$&|Kt&FYri|f4e(p*q>yUf)|SSX zi?V-hK=+_X>b44LS9f%`G}aVj3PPgGhX*=z)K{dqH*7$V>F8EIO5p-yQ-p`EGPy9bw**$ z_Fa3kP+W6UV|{h$<_+thWJ%aqQn96eEsATX-%?p>e(|}-mlGi?C%?qD3dL12W!AhG zezRu9G9oWDKDB0b=8C0@jQWLG2&hsusgv<2X4zv)mn?k9kTPq&+=ujsjPo8yNs86|Lh7XU z;kii(Gj$pSZX$9+C-1*668<8;qg7>5EcNff8XUG>2nJiw9ORGg2~xp83vB049}B86ychXY)&8Ic<0Ryt{a!E< z!$jm?cRM%(!vy4yY7J^Jj7R>oYe5}`I^-+r9URgO1w6rMOlVQyuHYa4x<~#ek{7V1@2Hm?kTFIe<_Fz(+qz1j0pc K!hUT;Oz=l<^WWA0 diff --git a/graphics/InterfaceButtons/orange-preview-on.xcf b/graphics/InterfaceButtons/orange-preview-on.xcf deleted file mode 100644 index 94f2aa591dc14764cb5c608f8383936955e55d73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2353 zcmbVN4Qx|Y6u$3u8{3pIhK#|+_9BQIx(SIwvP5QxPUS}lni$BfY%6V7TDsbHqz{Ib z1sKS{jW{Zcn~;s4^0R@02na3^0~mQzKto6ra0C=ZV%OKczOJvH`+m9-F)^Ox^nT|% zKlk2qns?2XO<|F`((QTM!}&@)&3eC=HscViGqN;tOES zHbdD`%kpZovDECeECmXIpF+hhH)}I8t~#4#X-Q_W$!w^z)j64Bc`0?8YpR)PWz%GN z2$-(AN+7l7A*q_5`FB84JuXMJ!D2Tv)3v>TWFJPVTxq@C;$|#%L#@$8^6N|{m(iU# zAj$qGr7#bsl0K+HH7OunT@#I$`}nHeZFHKd4aV8^Zg-vCRpvHVlX%i_B59yx0CCWC z6_dma6~ltaAV>_6Oi&F!l7t^k!XuOLD8QtyCL;i7`N_jq{q#H)Ooo*x#L`s{a$>ZKs~mST5*?<~IqCN(6%~dV z*z?Y9`ZmP{`Dj!W)q+_(#l@l`gsP6n1CEGDiIB*XB_ay)kw}UZjesq3Tu=l+3DJZn z92JB}gyRNfUJNH3v1nMJ1V{}Cv_L@^xsOsSOo!nV0RdJql;BeaNN|`6(;+Qb`kqVU zq`M(HMDYpkkAai{@fzGe#M3I9%ZsE<0bUE!+8E;H@>-9BvX$KZq@fH?N}1g+d=VLC zkoO`VsGlA3yyIaD*{G`u+t`V$XxC%BjLm0-6()>p0Zw4Ujw)=})&w|@S z?mFP#y|csDncxq$wRh~$tWJ@#$)wY6^9=u>!U2~NYo58AeD z+PH4bR+V#FQ>+0q#_xXE_}*%^g|KRiwl=Vet#+_!y<%$Z-O@^e)yB6GoHUQbjFh2S z*&>*s!^6TrK`$bSLPbc@AqGWt0Wtq#M@hJ3M*TIiBt*iwj2i66k2AmYol;gZxhOBYQ1((m`09>-VoX*#m9JcJQYu0Km75ohB3Nn2=z;=9>(W#P z6{>xcn>dNI(~C}#Paql^`FbXC&%7CTk_39K6pwF!DzSq8I31TZK=Ig{p}3B~JQT~^ z6;CB_9EwdFh^G-a77bDLvG@prvrueqYp1SLIv>waY)Ob`D=6oGF48@%Laf}=plgu6 zRB9*hn{=F{Lna+P=|aP|RPNmX|E-~s3(}w;KJqeXPsgY?j5edeZK<;}^Q&D};)2&i y7VXvZg7sfsy)1|$x#VTc28F*Y5$ypZv?>|o;nYq5e8xo8p>i3e#P+6U$NvVQj+Ar& diff --git a/graphics/InterfaceButtons/orange-retry-off-hover.xcf b/graphics/InterfaceButtons/orange-retry-off-hover.xcf deleted file mode 100644 index f4a26f00ab183dbbc2e47d6991dbffd19e6c79ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6381 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 G3jYoJ|Ju<2 diff --git a/graphics/InterfaceButtons/orange-retry-off.xcf b/graphics/InterfaceButtons/orange-retry-off.xcf deleted file mode 100644 index ef92293c4487199b271f46a41a44820aed528967..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6061 zcmcIoc~lfvy02bABksnN#Jnj%GHN8ERA!v_G%rt+OejRejUWniS65>zG)gxD8Y4Q< zVi(-l7oqfshzlSpxPXYVG<3I$igDjFo<#FJ8U?!ReP4BBoHu#rynm+7x!kY5{eIu? z-nw*zE@~wi&uB@lE|MkS8Rr~G4}&3*z@HH?TxVty1P*vc!jQv|!Fbn6quwac9|QBy z2ypAAi&90fUJ)@m4X_B1ONj9XV?rcL8loe0nh68PYa^KG$mkeyyf}HqM5tAy_b1-s z^E<>8r)UD0s(;6{Urzqt1e(ShR;n1CK7yRm9}AcXzsGd)ykhk_BdOCf%UA>2M{BhP z*7zntwEkz7gY%E3SO@1LNhOFuyBsg0v5xpmfH4II*3#wf<~q|c5-387f8bHVz_JT4 zT%9zk4sg;i5m`Kyox`X&^I#g0mYNKP=h?wYDy=KM|cMr{!Klylny2RZn zH0ai_z@~h>y{7?FT>bRPX!jZEoTpEAx^st;Yoql>(tW;4Z|HyXLKozeY5gd1=!jfL z8&>M#*+}f5N^jJuB6TVQnILvFQl*cG1+bFttlleDbf{JtSTBt(hGmSpXgwKei~+m< zjn+31_-6uvwmjBg)M*pQNLFivS9Nr}S5&lyB{d0pRg{i#vP5vbNo|=9aszCNiD5yV zkL;k6=*I{&M%MI?JlREjUoV+X^zE~Bz*d%6ZI({Lose1WCgOd<-f2--q`=!pyhqs0 z)`3=gE>MHsOo@aWVXJKh5V(L=6C3~%tGxwq;9|9R!kgV<6&Xron2Di;y%`ubh@~W4 zt@iW85T}X-Y=B`V1{1bK(I^o(U@o=V6Gf9+2xad?cc^Qx1xepo!i0B*e&tJMM)j#){(G9$xedRt^h6$KiBdoy4fmCcxem|HCzWcGGP z1Ub4(~}af&myZ94EuRt+5{PZXrCAky!Rl{0xOnUdo1mQV=X2O>s%%jrxR>! zO=3_pO6qYHSV*WRW@s~sG7Hoi)u3-8w*$F0i-{Oc*xRgftHjb{>NHufoX8!4^&5gM z8i^|!1af<;gO*tPK+&oMy;eA$C6+!bAOg~EH<`_yZNzBj!p+23q9<2exChZ|w!mV? z5jId*FVQ&=wNM=ntX?$(vpZo|GZMzGLQpYkxmw29)C&;37u5UIgvyZ`v`EyzU~)!6^eh(b0V(1P`f5hTNF7>(om?ehSAiE> zco^UZvQZ;Q&*f=tf5U&@a zO)xYZLa8-~83r5@gqUzR@Z}8D1K(`w#o}KTq65stssmnd$-oK55&3XR&A0*0073?1heCjm0%2RKW|SaU3P2HKgF`@y3T&BB zK#H7kCu~}D4>$;C7+-`4NE{HEK}h7DM6X<-P$E9$3W>rl2Ye`D>ZgGksQ7>wk!~U?s5aF4%bV-7kP`>RbSv8=@*8P61q3$FdYo zzYr6S5mW_Nn2a;W{y-vEq8JJ(izzChTM$wT9MP%|K!P4+u;TuRqDZN5fe?@pbX2a8 zgL|9InGx)KOj;_JxJcwm1@uj>a8uaiF1Y*UiouF^9jg~F>q=x|S*AiVq&9sox6*%U*y=w1EXh!AOH*M zAhHtRaCklH7eRPEy`N`$`92;HSr8RY9MM)P*q`ESE^MdQvY!RPEJ49};JvDrwF$z1 zD-jekP$wKEN~iLZ%=*L6Zb9fe#{lb?yj4 z9!ho#!evP6)qJ}kBu;WiQM(`h+a(V~+%92|(Dy3M4d`Fj z3c?GY4^yuRa-r{5CJCtPS!fsR^KflrKmR6prYGR8=ToRnJbruR*9D=NfNu}=s6mMb z%fAg54;Hx4jB^gW>W=c&8`&7GieYEQ8jaC38)sPHPI~%K1F44-Ns^8~b+O}oLtS;{?xO6>~4-~pm_a~6#?1VE` zQ%mECBL~ZO9}}q!Up#;ISO2+GGZqRyf%MRP&+}!aB}Mr;JF?Qaji3@0p$b_T@b%0<{l{1u zpO45%E4YIEyxg7Jv(l3{ZTL10RMa7h0_a)((bLGWK9Ke;$Z3*p6?8EMIzH-5Kf z^{Pm%YRRIxeqRJc{h1u=P06S`(CvxZZEb!*~`tD=@^!a^2;d|ni+W-{eMJplPfYGd4L!^)`TTJ_Rz76i~=EYJf^ zCQ}2bM^imX&(Kx+6*{dtG$d%A|JO5vmwRLEcc>o$d1Du>WK|%TAK>@bSz*isl(|GUe6v$sKEE#J{~$=cc8f_vrg{=H>|IomRl zcWw!!=P<04y%j>!>-aXSxzp5&+v#Z4fpQ);LRRYL4coE;=|EP(UJmo4SC=-ox3{&N zJKK1wt`>B5mmtiO0OngWX463|>rZQn>YF9aH_tXTo~l1~1a)>5=4{`RvMF(GtRZJT zO^0b{`n%GTrzNKwPo1nkR$F~&zf%W-t&5A%r)BxkOW8&AoXov-b;pk#JyL!6K*e6Z z1l(leen~J!ug_Z~=5%u&9h6;O1N-vefr|1yWySfZ1Np3pUG;4NL;Ew3_$|ht4%)G& za(_kn-aTa{g?ZWAwxn{PvwGFKd^PPC#>&_`YJYmcw$eSj`O=a?*qB>092zm}^TKI5 zlvS|z021@Eii?X1@^W@;%XIF!n8ds=+AoxKVIMF7bYMndPWFzinHi}`-zTn1h+VZI zcPaWGz&_Fh&~sAqw{A&KP1>|^{n~irDlR(&W$&;*GIMFa#Qap)q=~Q%4bkbD3uwP^ z){T9lnMc!xf+WZ8T(vbRfDTZxL)o7J5zF$D;$mZ>4cY7b5C_BAXVAmY+$}MYiTMVa zp08m?vd=>Sw43s_?NHIsoYCxy@Bo_DCcqY0%)ZC=X@Y!d32mDj&W>Sw!vp*mvy0du zzPD`Wj#B(v-<17w{war$xzJMq}5VJ2$&8wB>M{bNFHWPx&0T{e1Vs`*&_!yJGFw1#kQi z{z=YeuAu$qj}PzNzTSQLVrORs$7S(u{Nrqn+tYdX$>aNXZ~kz#>q2LH$B`s%OBp|q zf4GC=_FEo4c?>q->Y@cc5T^PRE~AWhW`}r7x5fdZMoVl>6Tn=y3%#& zf~8Z`X*gMT^hnjg{pAf!Nn8QHgG)JMy?nW=>(a#w7IQ~?E4XQZopq!NK2}HDv&58o zws2XkmJ5;#53QhM!aeLzsyf3OQ`+1Pfb5rkk|TLXz!9Ba$wk_-6({G-xzF7;&F=@a-xhP{8V zvf^aR4vhT{|07^8=}3D$9137`V1Gp;U@oZ`5c8xgi{tin)K^y>0)vX?`cy8pgdfWP z3@tA))dO!|Wova3mr=?O=bziw{srek@6j1)67|>sQ zFojFX<=^A`%C>LjB%Ce1m>tLu-NR$F8h{AklZ2bz5EsEx`ltx4X4+7a z`~fjrVod{8)gP$Z`P9EBP<5kzol>pUg;TTbz5tB-BT&NJV|7{srPZldvwGBz3JcS- zhSve2_U|DZ^0q4GL3+qkf^g}#Eynps;8d7Dfq}V{-%qSX*a82*;|K$DZiV3_(J1FE z(J&F1dz8UvC=5I8@&-NZ4SM(+^hltctX8W9#=n3b@&@nCdSi`Mz_ZoZz-~0SM=0ai z7=XkYf8iFXj9DAIj&hx6BR-o4Y1C0+Q88?IOjN8+^XW?0Nt)Sz@$~p)rK`l$YvWmf z>A!f)^#BmIK5rIkefD~iY`H?R!=iKs%5|wyr?;=%QJI_21;D0Shn(593tt8RxF<>&AP0$Gdk!Fht{s^W{Vi>L+%oZc`q{tynGBa2kN(fabW9hc540gAQ zKo{^N8#V`|d9a)45{&{2v?a%+d7zshBpnFlvQ0#c)5a4c=|(FZzvH#p5a5ZXyKVck z=^cfL!Hj6ygp8w?$;%Kl3Ep8P#WGsjGMJDgM-dj|YqOFAz-$QtI}m#pG4i#z=)%Da zKqqJkrW|xthuP|eya{!ZRTrBD!DPg&T}D(eohDoe;iw6O1ycf~5bGx@4ks)vVoeg@ z#ueI3W-(zSMFF{4W>T0*(-=Z%H<^clY8PDBLP8gmUNBvR>v^!T3oANk>h6FG;#Fgp zvHd8tipAD0A!?Pg$`Xw2vPz|PQI8`=NMpF#5`bM1q*B4;s3uh-i2;>bt%A^os0CFp zHiA;^pth`pMv$p(vd>s0vm9D%B){P9jLCY%AyskqWirgiY0ncoiV} zf((NVf>6uUkV!NJ{h}TKWEIfJ1)De_6kvB@7Ywlc11c;AgMKYac&AA#ODO1%CM+xM zIA%N2mY z@pn`VQ4A;K3Xw@FNV$W;B8R=oa1!~XLXbNtWC|CMg3UQ9NX4L>zzHOvVmL|KfD;PQ zfHNUYqWl2ha+?Cw3Kb+n$QWX0SY$Rz;(-*LU~nlaKyf8UlGJNJt{7u?CW?##S3_Zp zLPZ&Rl0!^TXPkxs1IjA}1Fef7NI^x>JZ8eS9o#YCqO3^C35&BrW`iwuo8F{HBv1$C!}?7HQ|rIEo4<8^>;gKU^PLs zA~F|{S57ai);?Rnq!n3OWNks=8A#>6$)gZChP?Sm#o2lP4SEiPR%;uw0+5BL(Bj}k zIzc^1V&Dg>^(ykdL|!Z$o`IKEs}Ye|i0mQYn7@ZqC19_H4_K|&5W-wo646uxQXk{Z zUW3#^#G;X^!g9|8N_d7HDvany6fZ+z#5E+N@dnhPz`y>1Idnn;!W~CE{)!7g558JM zLPmuN9mp7101YLKy=!%_4z?|n;T`b7&KIza4@8!hiX}RX<3syk~W?4i4tM510MGkU+j4lm`ZlTc+ZL;4*3Ecn9%9fDeSp(!lS= zv5RyDHYQA|X6MHm3{g7$$A)mYLjRvWG|`dt{LzP|{i7E|h8>aQ?7_orFznph*f1lm z1L*6!kIv4*j#oM9NK-R9AnxJZY^bMa`r~(?7aTq-JRkv^Jlst~ivs?o*1I zMvtWXL1V7&P*6{z~WN#@eciLxowplN0nSCn3{`emISyyyGsIjjc`RPMs(_n71!2aodKNkjd0! zPuh{b4{V?KhR*g&P3KOZJjxe<@{UchkvioR6p+*RV57eAb*-108|qG+6=0an`xii%uQk=UljoTh?(1nGp2xr}>DKtq}LIRi# zC+lj@)>MC6QFf>(cYk{Fj?L?%w5p(h#Tun6HJ$c!rT!Lku&S!^+mjVX50@0?>`PDn z&#fC`*0RBYe#{qZmQs`lO;P@FN6N|ag0drrN{aHb_N0N##+Zn((65(zfARNKnu(C` zY1AamH#}cjQe2pqy+3mow*y2X!<9h+zF*Dv)6Kxtcuu8euI2Lca&r#s%S=n&xqb5n z5K#p!_hlCNM9rlpdP3NDA*Pwy9eej=rteBl+_5!&eRM>aa^>jE%6%+(UGe)AwdDa z_m70#%%X?TkAOc_W!SJ@zbg)C8f)MpIp}vTF7f{A^9Ah6$=I8t z=%1ijK8+0WUbOH(K40Sx4eUvep?{hA5jAJ6YT>8;x-X%xJ?VGp=d++6SLigW|B8J% zo_^usN>THCCQ%=`)9=%Q=XA<}5+-}lAJPLJlU--f%jrONK(iuH#ZF*f1}|n9uORjV z_P6B>TZsT{o-5o6rwbe(9 zV!?@q9mYNdZ@S|4+c$c;TAS<7R8|}=O7LdBK$+<_5m!){S11@$!ZGGgZfrlon>^rz~ccs98t$egMP7^X8k^ubPal&F5=D`EYUG zfy|s;OBi1@D`)S4z$U)4_o}(8qZQA}x5ti@7G&>DPdF8*0y>zkZeC=tFIaG{oo&;^aC*7L~ zWLY0ZQ&`tRw%obc+;qO~%qf&PSdhIhBV}j8rdWOUHiik&FwEAH`UbM0>3n_NnbTD# zk4ZA%Y|Dli-L6b8W)-`fS-ks5ZSC1JHK(e+Jzjo7*FVFLFbt~gd+cI0qraY1g@-i%ZZWY$M- z$x|_2A*_t;Q~5B<_Ldwz#FrEoz`@*;Zj*@FmK(}2!K{LP04?F4SyWV*pPRjZ?{4YL z#U$j0FkZpz5cZMUm+?z4$j;ioXLovP(l-fP;$ow>=d42e&g>J7FS9r$Z%;;AYSPXf z+cs@9L~~g|$a7(zsh2Qb33;h-NE6@~>Z8(jFJrty+2L%z#-CyI`AN3Z8NDaTm+@7y zqu8IIBUa}oZHSGD(r0b)!af+o{sJ`&&dG?0NXXMO%u)^eF8e$fns#UI-u+4jiZh;l z5$ek@VR3K-zGmNN2Q`6<7?Kf|gt8y91EIb?U$e{EKz^X~!2S|`0{^lgmE)3g`9JY5 zO7|pkX?r0%Imzd3u=6}rNxP6yzK7QDD`@8Gr&V#VxNAmsIiCliiooA09+`D!2+Lf-Z za*oU7hx1RfIPP%Q{r;y9@89|UMsH77N9U;|E~Atm%0J%EamP%L`=5din7U$u7lg4c zg-b8xo%o0QIIhC{_y=J2iHhAFZ7t31=To^|CA=elAJ`|%kDfkx1Z;E&%9o*++Zsdx zIe%|2mw3|r;PIn}_wRwgb@9lwTxd9V_EOU>wBf+tg$-4j?>=~Nzwhqt??I%e8_!JR z`P!Q5mWydz22b*pg&5SadAYl*tJB!g4tAQG8tQBDh#oIL)se>~74kB^uQ-*36(AA~D(B&_Rp!Apmc${zHDC zFfApEU(RoXf2H8Df256E%0@^(p!q2EYmo)tZQ^79A#)q7oM0f1AEf{8hs+Ug$e<7W i(HS25Z<44gJ>%fFqt_7tKJJ0UkfIv*9M=%3^?v|Vr3VxM diff --git a/graphics/InterfaceButtons/orange-retry-on.xcf b/graphics/InterfaceButtons/orange-retry-on.xcf deleted file mode 100644 index e325f73c976883a2238ee47c6d92a04c3937c08e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5590 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 diff --git a/graphics/InterfaceButtons/orange-right-hover.xcf b/graphics/InterfaceButtons/orange-right-hover.xcf deleted file mode 100644 index 8a88e0a6a285616952fdb851be3a4a6ed7d72b08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3215 zcma)82~ZSg7Ve&dLk5P!11F;BvWP@PqC(=Cm{e9>laA>gkNgt*5ojq&z z$a(@3Vi(N-)2Jtyj>>)iHzS&+7!%c+m;}9V$mm%Bq9=iNENDYQOtNoGg63VVQM5Pc zbVhCR?*WR|e}*0*e>4^IU|(d;BgUoE4vZ##B#+AzlC?=XwMM&iLvpeq!8j{fuNL*h zgp11oNGyN=0NW4z)q-t{qF3B2fcbU6YuYX5lg?Q+RV zJL3mmkw90n?vI!xQQWV<>`+H**AVu>d@D`TT*J*?tOBr+{`F^Zf30g6Prwfc=&Kwz z^ji~6U%NYu$Kke6oxa1_NE^wS*)Bk@b_`(;%-p6sIh&1> za%OAyPmfR~W^dA607^KSmFc+#9=fm_=6<1jKu>BVS<=e%g7Wo#tiW6g-3yvhtAr&P zl4Uv@Y5LX!JO;DZ>3)v0iUKKPvasemG~L)Xgq<+gOy37w#!48e#bSMU1J3Qnj+nbf zKd?%yQqY%LNVA!-_Q5GP9$-1PUZsbutZYOgF_R_>!*({%OKX%2|n{*Fjk^^RLgF;;E#!77cmF{FsqzS`8rq%|C zpc^Vb*iPSOF*dWqw*k6-4_d_BP2b>HcHkCtmaU}^`e^t*-Pqp_-O_M#0DEJ;nU>I8 z)1CX!gG^s@^R1p?ti~%4n-aI)unGAfK87MGE<%@tQ~*X&DY3A(sSU^*Jxr#eYimol zswrw+LJAs(1{0~oy1UJnt9NK9YHfT9@&~93&R$1R`i*D|>eNt0Uo|!S_^l|qaPGr1l@*m0n<*+H zHU&AM4mGv^%OAe`=F2ZW1K~$CRTaleODm5U#H%1j)V7W)`Onv1)nB>%NP6nT(L?+9 z9<15}!A5UHa`f9;s`T?Ou6*|C#q)I^)>NG;KX&*)(eAw5165g(RHOmPP-`T0{Lw=$mUZk9Tz0JiQhqmzDn7cexM*)-LH-9jvbUvYmYmoG^;n;R zoKbf)wdcs5!h&6SJ9lJn&)ByARAwYa={6!4bT67JD9O*;nVSQGtdfdt&~H$ESJVf6 zacBpinHkxKPo}S>C}>M18i4L9-Ike=mQz~(J~)X=gq9nOr8b|~x;4M73`KzXd(fKZ zM9NTeq-x&=v7xm|(7#MF6CJXmDOlNhmJz-3?;zC#luCL==V6h+@L#tstfl zjML)9Arocr&X|=eemJgQG*wQh2s}aC^nHDeamh3X!kZYHlJZ^sr=Qf8#=Y65dS$4l~}pZ}{93=;SKaxT=>Rvtf8l%KVE%?tjHgeTEIJ^O6+sj@@GyK>S} z5_PK<`AP|QqAxHT`tV@UuAFp~v|h6&{Kc>dgp#;7b9-sYzQVlhbYzT+j(GFcmlrP# zaU)!b?%)h)mfY=WC@D@Gxq8*I=bsCiJwL#aa3Su7yq}kwm65vXy;yDJTj48~E|~MQ zpHIMZQzY<$cFsjm_Y`A7j3#1r_=*=7&I|INJl;(aG*eSSmt3Vh! zYr3zuhcij27EC4_iT1Gg#Q62PsK~cpe|7oNg`vR#Q&pZW@El5Khf3ht?wF_1N2?>> zc{65o_LhBm9+RFD-sf zNGOQjnM;>0Su{U%PH>?A)JfyrU6et=u7n%WAGqMz(77Q&f&SBcyuI99{pXE^Bo73H z1_uQO_)YbhIL_VOFKm(oroch}+5Uc0CqLyq*4=Y@n2!|Z!H0f9lT_a0Je6KELZ6br z;5R%u$jd{i@OpZlH%Uw&OyfhGoxNwx9ZwPy3C3+v;IlKmpi``5;3NkkjrbR_f?%CC zWJS0WJ_Nr@AO+4`z69FG<~%6K1g?3F6rAuOf}_CQRLj6W|Ayc!aCh_$a5$eLxCmT( zyc5L69}rvxt}Dq2T7fSYl!C2wHQbJ`6+8r6{X9qje^KxhIKE5;Y2xdJu>v>zzB5#k zZxF@{wzhX5?R<;iE!Zxo2sy!b2onX{z-ky_`1`_B0-r`m37!!q3H(YJzj&L-trxjr zklL<$h-|N*5^P`jh?;HSiDS1&Mf(C4xfWetb;=#o;#zV+7lkzlkY$O>h!yb@Ro{ z%oOC{<8(0m-{2gH!1eC+hg3528=ERt$%&D{ada?KzNU@SYLa6N3BIqWjj`fL2F*FL yMrX=2*!@2G!!xMGW4V8;|6i2F3TyYOEFjBeuq diff --git a/graphics/InterfaceButtons/orange-right.xcf b/graphics/InterfaceButtons/orange-right.xcf deleted file mode 100644 index 41aefeabd6b26111550360fbb49089b6db37627a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2596 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 diff --git a/graphics/InterfaceButtons/red-color.xcf b/graphics/InterfaceButtons/red-color.xcf deleted file mode 100644 index 5766cbbd68d515cdfff15a884c3cc643cda079a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2879 zcmeHJdrX_x6~CXs;77oOhaDa^#y~?tjJaq@R<#XXyGBjdvaD;hHtV`N#t;tz6dbK+ zSy8n0p{`L@ElZ+GRT;S^BoIhZvL#v5Hl_QgqiLW#$0Nb-Yh&{oQVO}gJ0G#9RLi9O zu|IpHG-~AU+4KDbG&ZIxg`;1^I)lfAjts&A^VwN-9X6jfDQ>TBy8 z^+jtJV`KGRv%a*XbWQF7aMZO4sC(~0jrsNe9f;Idni|X&TV1st$Nme9&G#}!ZN>w2 zHoM+dXW3_M68ZI2RZUj=zZWR7|I>8G@=dB(ho}f|+yRO|Mh&sTuhnr^o!#14Wwux! zIbgTf*EN;ctIcAZSa4AiK*bH-|Kb-zaZojnneBA9puB%njOMD zu9<2703lcWR6)Jh9OR?$;^M*_qz8`k=G2652-5hejIIm;KRhqYhr*$#cY5+4W1dmq z&_ud&qk~)xg@tf1G#dmmB)%~iMM!mou85;2PllB=Z zrK@Mi=b?ZQ5NOcv^SFU7rXLv^ygoHW$P`4Z^b;}>@Cm-47yQmU0i(lT4UBp_$rV_G z`wHopq8_*Cym?~^=xbhg4>{)rx5s;doSN`EXTUisTZe19SB_8-cuIt}b$RhAJubT_%nZ-{b^1Mn{Ie8W?wWk{%~iGw6rC>!*+l2!jLDlc&i! z7gRswze>ob{_$Z5zU~}uC%tZ(O6ULXAQ%1PgV)8UCYQW4oh}Za0>;dE;8QW4s_F7% z7isUG=pl}NI3LXUXCfi2YlP;|l`l_|k3CdJnb%EQP%G$Xcy&u^%0{fkw{&sPXVfN~ ziI+{#zvOVL(%H7- zjm7YiWaITXWDt<7_{1j{&b)v0&4w~asKzQB%oEVMt!Mf!_c-1?^4sQp+n@)g<0S0Q z6;RSc7yAC%d;0yOZ?)KMFKpX@P--bwV6P6L1ng8Gx#^vgZLRN}_`}<;{rW(y<@wz^A1o`<8q`QA#!~EzM;VVDJAUlw zJBQym^sA;C%buqnFW*|6r^(DkXcGjuAd~KAzkBP=*A5;0WrJ<+o~L&`yxmxkrOuCE zTY)eFHWF}ak$FvR!x{8MVzp%da(`PGomTxb) zPn&6wqJ+&@j(w(NBxt{HesRyUyPtUU!L7zZZI&S(B^F~PrlrtmvLEWtr#v_S*`SiI}W|$8+{&Hqs!L{x_b$nFqrF z#WqfI8E4BCFm$o zNFkCGS9v;TGX@wbnEWD760f z#^s!yQ^1_ae(+D8$k`DI%!$n85+9k>h>xFjg-bYd?SwI9#T?@ACLT;z z8zfXew$@rLc3XX&{wZ@)jp%~eVohQ*Pz&7sFEdaw#ED#SPJ*t0;6ouwY@89zQBi6D V#8v=yWpUIIwJ9GE?^~oP{9lFw{*M3v diff --git a/graphics/InterfaceButtons/red-computer-hover.xcf b/graphics/InterfaceButtons/red-computer-hover.xcf deleted file mode 100644 index 2ba112786d9826257b2494141f77395493eb65cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5279 zcmeHLc~DeWy1(5GE{G!v$Y_$u71Ti^5#{D3uPVvZBxa(QO;8~Q1)J^zwn78ljer~I zL~gThB5MOS7wm38kzJ5YMAJ}IU`G5F)4;O}6^mq~NG#Zk zq}V>l&rgbEzXph{|Cu$zdD9ffqcpS&|uQ~;~C=9k0Fm@(l1DY{3Su5V&NydtZn#wdk1@m zUDgJnRCEvl+hOB}|Mn3u@!3CKkIg>)^1dGB^0KPrGSSI2Ji1<=6LVue9e6fEh0F|^xV!KfNhQ53$vJ;9VNFWmhiOB$& z1nmAZQh&Yve(uHOey@2nd+-h^3k-HKEdQ!TT8~2aZ}>bjIuqS3ONA zH9Q>Z9DVc}^n{>9{*4z-(bOE50eJLT%MFJCNqF*&8vFPH1II7aO&9Q`SvrkPi|rMl^f z4=_}(>vVfCMmeTj)5)7U-Ck3Usdg@I4IR4qx);-5!Q1Jr1-Lip{vJ;dHaCB1dI$Fg zBP|d223}M?fLDv6mPAdu5TZ=nAFOody2+=U%sse4IO@K!HM4!5pd)u(J2l#o`YtpG zZKTdZH?@Os(Q$RtFTR8xF;zM7fxVgi%Mbq}mN0n?Z0#8C5}Zf6TO(#8FUEAxwm*2H zV!pNv^P?-lG0y zOOk)IBgs`8DJ$xk!zz;eG$5F^CapJ6meemBY)G4(2l5LK3g08i_bGGgC;Jtot*^YH zv8F`6-+?68QH!Y`>{gKLMW;I2E>@Kl#RY#tl540%)KjqdNL zwUBxY{Lf`oLp_(9YRlE9v(p&qc58B#17$)@tR+c0yy;r+)t36ovZB0<qq275YMFIJyZpUyd%5FHsN@mWc(bfD%?_dx7?u(`MEO6$d%at*5heSa(eRLcg8hQkq|HW(OO3B1Nw-6_ms*-H z)>VN@LH5Z6=GZ}**w1IDKe8oPQ5>oQ5e+jsDpe(3o>j95D#lpQGVq98L&+V;A@?&Qk@?AS>88z*&mgJJtEA6SbsY&~l z*6&dslqZ@L?)3CU@1U37E;Q}vh2BDc^Pp+BuV~uc7g?ca0yml#W#xuC(awBiiGJ~Q zp(!M^SeTr1~GRfUSow8WTG zNp7@@0CCZ{7fl~wy9WFFdOC4A)mEHUvrq^ranZ-pQru`a#6dTF9O(nf_U`Vkjw_d2 zo9b&or>FqKTn;c#O?09?5pt%5c@6EH_OZ)ttxXMe)mZ1WBJ*TY?1`vDq0-Dqn)VUW z^igGFGpD(=sj;E1rn0=$paag1gh|BlDUS4RNRmFt` zitLQEq&Nn24ul-Z@ueMo5D(q;b*8tcDT|9(Wq|?;Gc|EWLlT+2ho-%eF}e?sa8Jq4 z&&$ouOixQT)SM(L+lO}aMsv|afh+BnsL0GnPfbpYlYbL+BqB8ASk`X5|9tdF=t{f9 z=A3{43=x6mAVdg~taHk#by>ijkGK%VSm;i+^b`wsh35yvnw z+3a%md0}calaR(R$x7CWeWpxgnA2UorE(@VpS5IvDTrrcFAR*14zwjRF}bWc`%_*F zlh`_Z_wLx}P*)}soyjg{f5>5&lUGM49^AeC?ajg7)39O}u}?FjncVKNClmMY+#0=c zt*@_yVN%$I?BfiEDek-X^znmxW8aMo5A}8TR?C^BLe_+xNN1SRfr+P&!3MUvHUKY( zo`zT^v5=j|J~+uRWrGvngYd52u)n*ry{)S$j)_;YbJ%+zJ~#OA@uPF_sA6#Z{{4G*$8UcJDntFa zW?Gu+YpdEXCooAYhpouNF^=82Gd_0v*0&=!u#VnQ!v&~_%Plc*cs7<%^pD)Wee2eD z-;UlKzBY(eu&eqScny_yRx#0eEW=a|jEr(dIU{X1hp!I}^yzh48tZGTE6$awTiWDI zE}PE8UK+e{V|e)bwV{Fj-tJD=rUfdix&mHSwcRQDkX|J*DV+mDoS}(9(CNW7Jfl=u zURF}olgq>^A@Ff!9Fuajzpt;ir@IUGX=`n6tj8sKwxqf{hmq&8Joauu9Fx@E+tt(bvmwk8|a@pE- zsTG7^TvG*smeh4+Ffj^tKKn?Sz{E9nHDAPUWT^dfWhIRr>Dc!I_6cB5UftaQO#zI~ zmX@>v=H&T+n5Ts)45R67sH`XlgOc`!I3})uHDiB-D=+A20G_6-vr^6^D%mCM&zTI9 z(Rry%RokluR2Q-q>@x-6>q1Za6^v6r`SW~0fBv~xMxMnkW2XvFMl&2{Iw7BZo1M%{ zh|OR<*hphD{0%nyk+x_X3NZZ5;mnur$0GP{(~sHzn<8QL-}%4kcc6!D@kcB6f&UzY gG5gmMW*de@7!b1&0N(=s3)2q+&msq}AX42w0LJEzDF6Tf diff --git a/graphics/InterfaceButtons/red-computer.xcf b/graphics/InterfaceButtons/red-computer.xcf deleted file mode 100644 index 6c6dd65522f5f4fdb62b13d9af74cf2bba990db8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5175 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 diff --git a/graphics/InterfaceButtons/red-human-hover.xcf b/graphics/InterfaceButtons/red-human-hover.xcf deleted file mode 100644 index 24c793e410c9bbf9859d4bb1756d87aee6a1f32b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6706 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 diff --git a/graphics/InterfaceButtons/red-human.xcf b/graphics/InterfaceButtons/red-human.xcf deleted file mode 100644 index d459015b37d80b776298e7675bf263d2aeca2f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6318 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 oF^d5WP<|U*50;Mi3Gynhq diff --git a/graphics/InterfaceButtons/red-left.xcf b/graphics/InterfaceButtons/red-left.xcf deleted file mode 100644 index 1add5746d5152a2799dc6f98da3cefdad7995810..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2841 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 CSFbhz diff --git a/graphics/InterfaceButtons/red-preview-off.xcf b/graphics/InterfaceButtons/red-preview-off.xcf deleted file mode 100644 index a7b3d8cb2f9f91090c0ad1d57705e9812161e7fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3036 zcmeH}UuaWT7{Jd>+SxVjlG4rx|EyQ(Y<)=dDu|4s;)6rBfimZd3{2xqyqG4XiD-T4 z!-jiQd=g(oh*}h3o0e`G+13~T(TCY-+O#%CYxUMztzBmll3Ty;7Gn=60rQGzh(ue1x*7=wjXf*N8~g!ZI2dkG8|2__2{d}u)t=Qd z<^YYRR>IQ8IhOLg`fk9b2P4g1pAibE8h;na*104(_x_L(RgI8uuO7kmVZT43N2h-v zu6|n;&6`W{94M3@i{My8f)8Gv`JPz&1?58KY%FOOF@HAJ3lpO~u^TVPUvx=-O%m(utA9vm zkXYxktg}cndXlQMSs>P#3~NcO|DE1j66=Y{3ED&w>+zT4q$RO_{^B`lNvxlZjggkb zdgSRSX-TY~m?NYmv3@lCgtR2q4~K?H4pB^HeMq-^xJs>TK^}s-iv?SKapWBYg*n_3hgU(mhD1;qJQzmBCD0-tixR`M8|0?#4=E`Fkb~R?>8t z*7dkOZgraq(Jix0T!oBl1y8wRS8|oBGzo=@Rhm=FFBi5Fr6i+>6JMwg44 zrr>uj>8tl4u^vcXBz?CZh;=&sE9w69Z!F<$PA3A)9^Z_K+ z;nrr-K_u3`CY`hwiS^FiyGVbF#QMt}+evRlV!iQ;Eu=Rfv0nSx=cLylv99-Mr0d;4 ztQRe-C%t&tifQfoq_(zFUa?aWR$FzVROA~p9ISfHrCE!r>{ZrMO(9yM!7Bwh|4P-& zzf$(y9D1 z+wJX^0c~rM!qB~3#U_Tk9OpNBQ1?ZRa7g{y8`+0b(D=yU2CWUA{!4@Q5!B&YY~oyy ec1Q^BwNO(yE&=c_0Pna?6XYDd_}o_NntBcY7btE3 diff --git a/graphics/InterfaceButtons/red-preview-on-hover.xcf b/graphics/InterfaceButtons/red-preview-on-hover.xcf deleted file mode 100644 index 6f063cfc1738adb63936141481bd68215e8dc69f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3088 zcmeHJdrVVT7(Xo)=z|GTXhFb+fEE?XRW|0LB*Qo#(K+X$PG?-f+pYmxM=Qf&rWluv zZOP^q7q;x-vLoV_j5!z61+(m7oNiSS3$&%>+1FJFFr6@Idw0(5DPA*|?4M=-_$6QO z@BDt}JNMl0`|j=08*28b>MM0BouQfr$nuC|oPt~+KtHL-6U*NL06Q`{auISN@^pgn zyfidF3tf}-XxTzTjaE+=>T33az+LXiQiAGr*zs<~`a(KG#6R)T09RY z99ukcTmTk%BEdLNOfb3tTnIb|n*@0bOL3KInCZc9;RPm}xzpJS;SbDQX3GCPgkK_<$xQZs1zS2g5YAw3 zUpx*^d4hPLU~Ubaf$*Hy?Z?A(=BE85{KDZI@C5K!&P)V;gz!6mz&qH-F{#YBrwz7T z9=Se4NtlrB?Adlv`}hg?_2Ag(T}8}9{4fztoEjY;8)0Sw#LTo0wshGAc0t$JPtZCs zHhP2c50g8H8NUyrejE;3eE7k(OA+jMN`UA}Mkq&4bxxoZcV85H&8xg%;BwvA6 zCK&K}QD86kXha+u9QOJyL95^A9UdC!bG!IrfB(SX&~MN>JUlemk2Hr5CxJwI+@8Mv zU!iqipuf-4>vD8^d7{hd>UCd$R*%Qs>vB4}?R?SE-Q#fn0 zjpI|9DO?qs0jsjc9dcHzIEuOs$H9xM(>7~EzmU_e)GsCko4Z$O^x-&-P<-$JaK!?-u;bhf$Y`B z{dGoq$EGJVJaOYLT}|!dKvriq87j6vy=KK?p1AUavmoo>*GG z=E=>)K)P+~GaJ{fTwbzhK2Kb@uRa#VX%N#fa#o{*#?je?rfc8*=8^ogrz4~AscB1nIOE>%f?}-1R+6vm=$5H z0O5>tY&?ePAiUvsHUUF92q%8PiZM(D;lf^4f}sS2s#?D}Ejk_fla*pZ3?ec%jiBWJ z9)-n|tUS7t$ohk`4u%`aMtGa#ZJqZ(yvO7}JufM|RL!I>n$Lq^9!hVi2&nPFCw4NL zy_v42D=h|-QMEy9uEG*JEO8b))Ez*he{-mN2+hN>_~4g}9Q}o1i=EFfO-vd@AhrX< ROG88;oD81>!GT%H>|Ya)Ehqp0 diff --git a/graphics/InterfaceButtons/red-preview-on.xcf b/graphics/InterfaceButtons/red-preview-on.xcf deleted file mode 100644 index 555280f153b9761c41d5168e420de929a26abcd3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2481 zcmeHIZA@Eb6n<~ZSJ~DfUu7-OPH}-v2KNt3P+26A%!o=h6EowomC}~F(qdZ(D5id%G(?^kHO|JHJjZe-f6M8 z&7Q3TlIXuu0`q7n$%81=IRU8BMM6qEpT`#*9<$40G?{DLJRYaReb{3)5?~&oXfXTX&kV8uG^5Tp0ih2>0z(^E)6=xph z6s^SeqF!cmVKl}RGaHkA_zqLZB;);#qfw>&Al5*Qo|1bjI5>&nt%R9XS})%eo#svplUFU1$;gq_q3;pZ2bB|n~H;<0FW znm>@hN1_WcKMuzhqLG=YIdU?Ap9x3ie0Vw<3C~PTMz;CMsp(lC4$aO?hbHcZxB2nl zWXOjnrb3g!@v#|+XK&w9+@f$|Ja~6}Y;<^9;Mrbsr{Rgwk>Ov4LIRhZ_^Dsnzjht2 z9~ue_4)C;?q+nn`u*Dn>j0&cd;2`fTPra-nvN{Q+yUpmKk|T?Z7hMAFr8g@cub_+R zjRR>&M;FoTK6vk}hSt&RPr=_T6=`TK{cyh$DU0&}7tjwX;Ip#(nWu@Rp%bO)@a<@9 ztRZGTeP4%AdQEqy^*Lgz>Esi6xysx%SSb6gD;M6e)e1CA!Ba?-UFrMc!?&A7jzTN> z#d^bj__KZE`{Z1^SzH46L+3xkS1HtvKfmB@J;QIMrhz}$)pPMv3cdO9`S;qIPx2=c z__OWa_bGI``(2OiRKpQrPvZZ2lifw36Ydtv8^`PDExzp7@sp=1bgc2zYcD@veQ2An zI$Bpxp=TTF>yB2HKPmCaoa`JbheCCMrf7Mz{O8 oc&>ab>C9Q6@KA|J4V2KLs6GH7od9^%m*RxTsrrcRP0ix|1W(5qo&W#< diff --git a/graphics/InterfaceButtons/red-retry-off-hover.xcf b/graphics/InterfaceButtons/red-retry-off-hover.xcf deleted file mode 100644 index fba433ce0efd282190f6a63eea831d790d8bebe7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6177 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 C=Nmo% diff --git a/graphics/InterfaceButtons/red-retry-off.xcf b/graphics/InterfaceButtons/red-retry-off.xcf deleted file mode 100644 index e64e53d40c237bb17f6f042cb6a160e82fe9e6c0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5955 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 diff --git a/graphics/InterfaceButtons/red-retry-on-hover.xcf b/graphics/InterfaceButtons/red-retry-on-hover.xcf deleted file mode 100644 index e7d59d77b604f91022f9356f40c776c4c25cc1d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5752 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 diff --git a/graphics/InterfaceButtons/violet-color.xcf b/graphics/InterfaceButtons/violet-color.xcf deleted file mode 100644 index 0c838b3b92967359e6c302e6c842661cca377f6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2869 zcma)8X;4&G7Jd*B1rY?7(NV)pWok@KnTb|o2*$R>gdd)QPYu48IM#!$wn<4~1IE^p2w&6KHes^(Oke&?O_wnR-X*c`KkpQ+<69WOWFAesDA!t;8a@grUlB(0MQ zF3DU_sR1JBJew^A&bQg{V5CM!Yb0?3owc3cvKPE%yS!z)f-UVkD~@2y#=qTs8*cAo zGd_T)q_Eb0|1W*^VbXgv(@CZb@{lmHicpO|vO`qKljUTRmm{P-h)|G`EF-Ut!N@?8bqGaSZ{PiTWVpZQdRw!#s=O#S zvoJjX$%!KwJK&E5>+r~};laM{>uoLd)s-dr+3AUSnFy)LT=F;==`QpP4)pi+bY8vO ze6i+ysW~SzCH_P~Eb=!H2Qn3aPS$tZbx(A4Tx-A7R9}6*wD4S3YQm{wso4k}fE8nE z$z#Xh%t*$Q#pJclAE^pWiDicnQbPA9!vaxYY?e~0*>XY+ z!N?xbKpk00-l(DLJXuXBZzR!-8MKp|^4+@S3vLzn!%lCOUBBIrTh2}TZDH9RzAU?G z54Vhaz30!YcfiRrs?F?%-P{uHmCr_Yqc*RjJuiGa>-9P3!M)h!#cnay4s~B?DmwB7 zgmR0x=YR2HKNH$U20Ggss`8J2$+FuySMJ&8EW10VcXYV-T8s63u_?x1^1E;oJJ++m zaf72bzUpXes4g!sB_9i7*{z&2_m7<{>vyJqWaz8T_NLm(;@phHlSe{Wc8ec3j~j>W z{uH-E3J)IOIbm7+L@Tc2X#cnvY&Bt zxyPH>oktt5Txn}j z4peF37_eY$2g|BWHPuy?3LugxJ@NE$f#{S$vV)svGI+9;-Js1Vljx9>DbY|MdX+4M zY-Kn3L4xCcP*P1&ZjLE4H7Wk&Q9wgwa()ZD!H1jAJ@xy9^-{&9rAVwe9LeicGKKLI zcB2neWkSO6iP)3JqlIvTRw+{&HnSUjxrN+!TUpjW`cPE3Q6GwfG}=v46J5FIe%n}f z?;&2VQOW|tu$Sa@=U(nu&+dxUgzOLCp%GBh#oRxkZ`+M}dBk4mj32j@o80ZqdLzv? zcKr^Z2KC*{+OyPq7q^mov(t;+=Etq(sNWtA=mgp+OhxFl;le6`8Wq?MQ+<@MT$qf~ zV$2H|heis^gx8U3tcbVNq-(G;Tv#H!icsOutkzpYEoK8&@Pdc%;vmMl{GR)_hx%Ge zBeC2dEE1mcutmv@M|VdCd#*KC9K%>IxC+m}8)>=w%>!T#+(LDg@enDv2ovBJsvmsw z;LfeVp6i#J>MZ4n65=d8HOlef>brlte`jQ1@k0!LTh7`=USc%ZlI>g6VDRYg%=R$6Wbe9wfr!ecci z<-Nm0g9Cj%z_=zW++GDa8Od?^age0oAUsy$*xKH{ULfSvwo8qGmzvL=1zMzKV;l|( z#tayrZMc5@+6*P@ssNw4oe~N(GZ{S5VO6&Ea%)RdgS7@2DWOSmiTPnTGztbu|~xmlqen-IWxdl&8bWNWn??R*RLH=c_E0oMpWTEgKG%l_z@0=+!Ejb}J!xSpD&`tOrzRpKWvSz4hN>yTYq~I>R zgzO^<)8k`f^WeamC}FYinkaBszA35bsMM}y!eqD-E8?;s+5ohm5gKfdsgejQg*QMK z;L2*jE-IQS6o5(0)CzO;pO{t553-k{_)~%tvz(#xD#SS=9sV`5jG>FW#JM6JUk76o z{ry96o=7M6z^FyHz7U;6N)N#NMSXr0UBu}`#+9L8PKmA}HQ6x>7>a%p7m2j!J@~NG z5Gs0z^nwF?u&Lj)xI~;bGmZ@X-Ai$qIIV>|NdJTBF$4tjv`IAhv|_1aZEZgRZGWT(I(o9bZjRKCvSqD zi#ZFK)$petFcz4l>0owzaNR4{$Ys1ruk-W`GO8sACW;xEoqVF!kN+2RHHG`SpTd diff --git a/graphics/InterfaceButtons/violet-computer-hover.xcf b/graphics/InterfaceButtons/violet-computer-hover.xcf deleted file mode 100644 index 419eaff8d49c67666d264ae9da17ad8bf4701e60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5422 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 JJcdXO{{)C`*Kz;= diff --git a/graphics/InterfaceButtons/violet-computer.xcf b/graphics/InterfaceButtons/violet-computer.xcf deleted file mode 100644 index 641e99bf076abe8ceb81836a5d878eb90a33b401..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5269 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 d7jxS9 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 diff --git a/graphics/InterfaceButtons/violet-preview-off-hover.xcf b/graphics/InterfaceButtons/violet-preview-off-hover.xcf deleted file mode 100644 index b81858e935dc04d9eb9eaa166e51a87504850793..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3772 zcmeH~TTD}T9LHN&hjS~kYxb~YP3D6>VDtgOU@~T0<`QjK_OO>OT1rn_C@uCf!N#eX ziUBI1$dFr0OUwP%f)yx~%TNZQ&geFW!-$Aa& zZZ52cS2E$)h<(r2A~Fd}&9pW}ltSywLNlGgCb2n6M(-ts&t)Q##O9Dp<8lk#A=f@q z56M(4r4Y9yOB-K!aJNrR)RIg+1`tr}W6jmabNBnvj6a#XKY-@i)5X~VG*42t4^8j&8#n!E`~baZy2r0x>qbMM2aWI2w_{ys7(mlG_{~Kh z8V1mK{DJ-sGz_3=^L6!j(Gc*UX>RZ6Y)3<&4NXH+OIs_NMt~MHb?&;xW;6tv(739d zu0}L&yVKQx#!+5nuSZh@P>04|Qd(AvrW(MFrn2z#Sr-}`fD=u5uC>sKrUIZEP3iHR z+-fvs05&ug`KJo_p2~b{0oxOnrRGQG3-?Bt!!iY=FzjQonchqGx18*BE1LfSqBehXC)*+d1>qW3?wEn zW`{R;_g2+5)+Dt7*wLI{n3=Sr@h;9xI?(tY2dAoe15kse^U>V21C0m3g~qcGTrsTx zylI`Cnc{nz0C>|hb@vW;p7^AC0RBAn6SpV0wZ$j70i1Xq_l=u3x$B8faspJNalj6* zWY-p-WCO6Fv0WS)Ek{!UP>H6Ze{kp=nzF#)P&t~?uAbf!G$jC~XwG^%&KILO15kpd zsIjH32u&ft88oMAYU>NoSe>=?MQHLW><%lMT!2$(PL`Z2&qb3{Qd*ve=2$^d@kulc zpgDRn&w3oq(VRT%2{d0GIdQ|D+2@I*wtJ^& zC%uQ%xFk)MT4+G)(}lXc}5Q-X=5+t?k}sG6 diff --git a/graphics/InterfaceButtons/violet-preview-off.xcf b/graphics/InterfaceButtons/violet-preview-off.xcf deleted file mode 100644 index 621dcfec73a9adebb33794723d0d1bb4b7849265..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3037 zcmeI!PfQ$D9Ki8eRun5+$5xi z><@}!$Rq#x1!4E!3FX19a35%xKEz0Qo`BzY<346fvZq9JxjlOnSq@5}blK~I^WcWV zc$iIi02^#3QNzYZso5gHgMf2jB(upoWm7-4sUP3e7S?cGJ|1Dg_iujqbUfirifwF# z$<9s4d(aY!;B%!AR^p+2r`Z{E%Zd^4d|9z5TEOWNP2zfIS*VkAs_0SozDPY*E_a@W~! zh&!>6Pjz$>Qz4&hZ6|KQLT>!xBrz58@%kp>6IjT#$LfiXVIhA|^9gZH&Bss%S2Q*@ z9W)+sc@vgJ(Isc1Q!7?r(SwRr(F;6gk6x&ls0x%yA;MySRigRI5CiY9LIOmH2VmB1)G~1ySCQ> zi~feg>d;@wG-v9sIZRZqI@oWD&9E9TFA&XQ%wMh=5icxPEvhDqK6bVB1L8pyQ-idq zOR`wg-*>6X@ajG+-7NoUV28ka-9 zH#o!kn4_rPE3V-r1m)R(b_sF zSkq;~BrlQiHUpx*{fuTB!<)UaDGEy*OYF=q0L&s#s+|DmKGH+;Tl;j>USD z1S8^Ck_C&PJ2nzGv7?9Im*{0*&=efl?VXiu>7U@yGIS=ltR$p(Mf0;ZAD&4Pae S<|#kW0kV{F_*|K2-S`8uVV2kc diff --git a/graphics/InterfaceButtons/violet-preview-on-hover.xcf b/graphics/InterfaceButtons/violet-preview-on-hover.xcf deleted file mode 100644 index 31f65df4e0feb21aa629586b9a87089503216378..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3079 zcmcImZBSF$8NMK_B-pMUSgcxUe(VqY!Orec`!7Yp3=iLdZ#CLI_DN zB)JO&7C{JKAtZ!EAV46201<*1`7k2t;<~JK9j71rqklU71*#)1kfi6_d&AzH+L`|8 znR&g>`#kS^a?bm{gGVYaR*UpvAOdow1cU2c&Jg|)w1fosPa3q8Q*9WA46bx&Nzf9Z zWpEh9y#wQa0>68uaNBHoae-8lE!D`2Aca9a0n5_r3`&VeTcVT~9TsK*sklU0q7h{= zpKOh^ut4u%yzopNb5uHs1{8=TrzoASM5TRC zCoMp6sNiV51r0SI1}%ldC{e&+_`y&kPz+i^XmOm%!+Uu62R!^X#Ax66+6_TGpWl2= zPdvkcci|Tqj7_}!eJ)Xr{1a3}t)nujElnXQqYhD<%6yUp)IsXCPDYYq2oF#j>OwN# z+ywD{>Xn=%uQ&&hvyXbIEh5P(pL+BolB8yI{^r=A7e%B| zYw7|ruVLZy@U3yL4^cuYqL4_FrE8Z+ndiw@PzbPsfQo9#6mtE_oxeU^esCuqFQA_5 z$V--XtF@z}lGOhF*~+8Exv8-sW`9O37@K?ec;)E;sd@V3@q_T~Nxz3LPKWO=J?@=nh$ zE;Zu0ON;Z<<3l~RCg#^U(LFwOd%hOWy)!#~W4N!&a;*xTgA=QnOO@JX1HFQX!X$^Z#@~g=irW{pfV^>D5!P&Pqvs-o*>QC5n-d z#&$Qa=#!6$1Y(Qf(%I(c$iJhw<`(^tVAHtXe^SW0+*|gNJ&C$+m#fMEqM01J5 z#0ff5W~4LeErSA-(ue3xtsDRqeUN@_g#T$MAv{2DlwASRre=uu)2}oDXq*Gc*+;)L z6a(;?&%?MG^b1M`6!xir*MsDAdfli7K<^LVo)~7BGrUO3a$2l>y@bHV}eqi|O@zUa*(B$YKUkuKK?>+1R zhR+`?%-;^eA!IJbWsU}K&CWZ4Av`}D3I;|zz5VC{oah}51gGslADW(;7#kjRJKa3d z?eY1?EI@xFFgD_ae*|qkJkizd9)PFU`+P$Keceu*rJE;q*c`6z2B7bA_jEfut*vG! zD{dQrv@WS`)d=)mj!v7kt-0}P7m|c@R0?*(vR!X$ZE0$(`^?nI(K>aqdbJdQ($1#3 zt2L$y+Kz-YdIPnjvAOb7I)UC|xOCWi)HrL!4#oAhwU%bnxYpM+vo1Fl7Up#PdEt%G z&SymmHvg~@i#f1^SR~aOON>Pw*a0l^vwy~R zA^2l#J3$|bB_X^Ii|oH2dket~EOPc=vE2x!W091um;k{vERy|AOo*Tm+gA7{gGs^Y zx3N@22(aj$*gG8B`~OD~!A2~dJxTP8DcKaM<_^L;B=6|F3-PYWzdf%gyi)CykFBQ( z`zb8%kt8e&y?5ddqPKr1QA)%*d5KDNwm_>u5_}^uEB=OUZep8)cyFF1kY_Asec$$Mk}1~d@8b^rhX diff --git a/graphics/InterfaceButtons/violet-preview-on.xcf b/graphics/InterfaceButtons/violet-preview-on.xcf deleted file mode 100644 index 0ee7d93f878a71505290a25eedcd1abdca8127b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2476 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%0Ayef!qU>sP-A zlistqXPQpdA34wnYPod5ai_X`lEGdak#yZODpCb_}e=(x$Kq>KwIFG_e8@n$QJOU9Xq(R z65ffwyAyiZ+y(>O|W%oO>w$ z18^^`uA>1C1#sHGuc{e1msSRhd03gtabI>d)YcpXhpN_wOfIvWAI|>_OJ3gD0J<-$ z&(x-I*%kcD{I3NZmw)C|^`0YLdx6!J{44yU65!Xd&eqe&Q(*byGGKq%febEf2mcyB zP`NdglW^v&GX728RGO8M&oAWHISj{lu)&wK7w5A&+mE9maszyU{qwix!S~B`p!>i4 rPCd-#i!ZG>2mV_DuEC$2QEj_MeFef`2B06+Y6EP#QGGauOojgj>Un$@ diff --git a/graphics/InterfaceButtons/violet-retry-off.xcf b/graphics/InterfaceButtons/violet-retry-off.xcf deleted file mode 100644 index d7fe65989263cb84b914b779d50f176499323ade..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6186 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 diff --git a/graphics/InterfaceButtons/violet-retry-on.xcf b/graphics/InterfaceButtons/violet-retry-on.xcf deleted file mode 100644 index 52e4d784695d71e56352ea9767c00696cd1d224a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5721 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 diff --git a/graphics/InterfaceButtons/violet-right-hover.xcf b/graphics/InterfaceButtons/violet-right-hover.xcf deleted file mode 100644 index 46fabb0a39fc91287003ffd7098476a7cac0dde5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3544 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 EFG2}Gr~m)} diff --git a/graphics/InterfaceButtons/yellow-color.xcf b/graphics/InterfaceButtons/yellow-color.xcf deleted file mode 100644 index ba0ec9d9d984e77223a9f732030e94ca1730560a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2580 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 diff --git a/graphics/InterfaceButtons/yellow-human-hover.xcf b/graphics/InterfaceButtons/yellow-human-hover.xcf deleted file mode 100644 index 773d98b89909ec82041c11f603265f134bb1688c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6825 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 R^ubwPhL<*YC*g>c{WmObvyA`% diff --git a/graphics/InterfaceButtons/yellow-human.xcf b/graphics/InterfaceButtons/yellow-human.xcf deleted file mode 100644 index 6f4fa0e056b3a2e34cb4a32472152063522895a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6462 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 SgBH65ZY*dy+wb-XqyGkYyhlO+ diff --git a/graphics/InterfaceButtons/yellow-left.xcf b/graphics/InterfaceButtons/yellow-left.xcf deleted file mode 100644 index 2aefffec4a814ae502f2642e31854bebac843f3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2546 zcma)74Nz3q6~1p->?O5 z#fBJbDW>X#p&1e{5Rf1s78}G05$;?0-IW9c_xW!!R~_r5&h*Tj zec%1gIrpA(?wvhFy4`y;l?8>GLS3;IfvgHE!)c%#2S3X}V>kR2A*LW1plVPRXjT|A zzfACd1iq<7ux*ZRcYcvJr>IP~6DS0B4z1Q3_7!V2`qE%yir5c=9fLL+v~{{}3yQokp^KvzAHu>NS^{w!!$hR;syUC&yUSfDy!vawteWrF9gEwYp37)CGfBR~g7dE-5qCQ+3nIrw2A zMhIRt^5!5-W{e07_)Hu5F&9mwQIcebs5rqtJIr6YvnbJ6s$SYDUhrAQd4BXhm8hC7 zTRIieW>uSQREn3RImiym`yA@H;-*rpB(Wk=1ZpuuD<#20C5Zb9%1smK>^S4Dx~K#P z+y!pAK(B0k(ra)&Vz|lA5fO=>6&xLFVH31VC73L@SX}BqA)@0;WJT+Q` zN1zn*uyIn*2(m?}LUo`f5*#|;-Puo866t(L6XvkoN>&is*9I`y`dJemAX&t9?j**| z#xLF8ZhVep5V5xv*26ZpXm|JH9+FP%y)77jJmT=UouXa5gu6*9S-9{C#w}wGpU>lV zi4MmY?jp&=da(=RrV%j^@P~Ob?j(t1Zm6dT;|tb6Fc`8pMTh+he2OHH`+czYnY%uJ z$l?thVV}Y6B%b`M2jjLGkI(N9`29XGxttEWUBGQ5mUxCbF&=WdJzlR*<>S1bP!{%u z8~7x%w&BJpkLYrNUFCIo+z=|-Z3}mB3yC3~!A5-AE;>Y~%dK{EE-%Z*Hh&k45Zc#- z+wZx+=yXN7IH#A{7Upl^RuV@%11-3DOoUL;$vIV`H)OM3heP9uZ}1f4dj*=Ic5rqd z1X-;XNH&r9&q0mdw_NrpJ7@C&|FxA>m_)uFIty*-yYIBw78d4#pR-OuS5nCQV0R;K z9Gnw@1a@wI5_ga^LI+O4%`Fbxb6Dq8bBhZmXzp@CFEG|~{woJ~I@tAO658JZoUiwe z%i;bfK1;HRd!VZk@*BL?iTmIYNS~c9TzQrwy- z_~Qzw*KO15v(UGZPyNHSrf{-gb)hd0Q1b2{mKVsi)Gqmym01Z z!_jy5{T!vB`Gk!Jdxj@2o5wE=eA?Okw@>_ls4Pj6pe@7b=l#`^c(eXA^wSu%8gsC~boxvitCtFyfYe{k&2f2=5Z z1tlS0()Rr|$Ll|AZ04FhxS{@NP4)gV-OF%_U%kHc?IXwP>bZJP-SPJhSHET0wey!K z6$KNXuXv}XmaFyrbx@|1-5@K;irffol4AC{lvG9T zKnaLGe_cse&)R7PUbKT1COq@ zC>e@8&UQ%oJKJFh&Y)W?N}3|~LGLB?Zkv*#$fx0|rPSIWOQ{v!0)4zwNmS$yS^m$Q zky-vnSY0`-l+{&?vXQi^VUg9l2}+l~b4*lJ3iYHyPXf`;)n0X#A`Oz4LAUDIXp79g zl$W%{+5&^Fv_!KdU%!i)U>t@dGPbK=_5Y0RWbk9LY_z9>MuCDvCNQJJ5;q1Qk^%5> QH^YW77iVMZs_0bZ-vjNzBme*a diff --git a/graphics/InterfaceButtons/yellow-preview-off-hover.xcf b/graphics/InterfaceButtons/yellow-preview-off-hover.xcf deleted file mode 100644 index 410fe3a1e8550f483b9980d16e20e0f33c088ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3647 zcmeH~TWnNC7{|}qWhqp)v_aGd6E~3uh$(?*-v~aKXcOauueQr}IkoIA-7U5#v{=#x zglfe~xfr(4N+xkt&N4K#bBtU0qJhLm+qx|&eZRlneTMb8udjJ;v}>C z|NnpIn>jOQ9?o%V+kB2XXQiW3t9B{S*2s>!1iGri&noE4HodJV*r7cPeF=06^hcz| z>sG_{kHdel8-^{_ww1eGrS2MS3q%TVRaxr~)K|M4es8t5WnJOgO1INn?X7XF<$t9$ z?uv59hV>hGTSRP>XdRSREK*9`@#g|d>-@fQr{-}xHqu-W)-M*ythCmn1ss~kxz**z zdT(W=-xV-#5Uc+fiRAuL+y~jz79s5IGN6s;`}nLU;Hs%Cce*y!1_EA>e|^ARj@RLa zV_OOxAHY2HWm03|a;f1@!3TlYU@L@9`k_3%B2U}%^h(e;F0}#>RG z4%b>~ z^jwB&xG`(;NfwPs^t_rZ8X_4zw=fzvoan*cOis<|Vj{isyl^I)Q|Iy+cf`_JHLHt7 zL7i|kTRM}?n(O7pB>M33UfE$`+ zHkq6i1ooR7lOz(!S=!ZEG(?i|M8YK8m?RdDFAy+EB8iz;EJ>qr!wKwaVn&_O7tr*~ zj3@#WpH`A_W21B5G;?~dR94EmDV5~lQL%pGQ z@JV#F^Egc1W3HDeR>_TOWG{PA_{wD7(V+dD}eu1+%13cBNpRO<|D3 zAfo)+!QAhs{Xe+>G5oXrxQCCDmrTKSy#N3J diff --git a/graphics/InterfaceButtons/yellow-preview-off.xcf b/graphics/InterfaceButtons/yellow-preview-off.xcf deleted file mode 100644 index c46f640e258c62dee134c41ae0cac5b30e092ba0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2937 zcmeH}U1*zC7{|{^OgCF=B2}-v$i;*XY1u9my^~!Cf`a1RyfMq(#8U6H7rjEDD|&m!5glhm%GJ85Ubb~5^^mBIQ{ES9md z^#-x}&q|p)mtr6E;BPBvKC6Yp|<9*H8MPSx99=^`|p3|_0W(3vxUb)lxy6`&3 z3a&SMdSa4KRwmBOx(YpD(Dlw2e<<-%WwLm|Rp?C?XH?>f;G!}o6PF3Sx&Kt6e7<<4 zCWL-IN#?n0yk?%8u;IDyS^~{_UQIVE$u#S6&ooQe(CojLn7hGmR4&Rdf=lRKlwSlf zQw$WnUtCP$f*W$hxhemYn0C3Qb8e1}Q52locz>_Iw>t2>BcVnRbi9%LmjisD(wG0% z8Oiq%dVTqCC{Z5CmnxMFNBSQn8SQOtYAva*y{gfmztLOuYDuQLx@F!(lF^%0^O2H_ zu54CJgCL_f>U~Rsrsphe@C{Q==&5=nZt+_tLD-PE$#0qjVMAh_ubTv6Ljs4STf!mT z?rH7%b?qgYR#(^7w3cM_%Bsf%{teqWkaW&wbj`QNm;41l>b zuUE|iU}i3zQLCl_FjF%{WljTNia&j)%s2pMY+^*2Q2@+vVMv)F0L=lDf12h=B?w$m5~7R=CNbSNPtPd(W8t67(1C( zMgmO4dQBM#WI7KXeECuA{9_Vwyb1r8SS?sw_peuncd?*DP#bM#K_*_<4s3f*GECy> z|Ha+fk7sZUoeYzBf`ypq>G$^wo9>i~Qgno4xM7$pNbn^qVMVicDj9x0l6f5|x|PUb vZcjOS^-pe3_fs9#;)WHX@Kew*7a?dpT3#eD9guI4ck0`&r5lC0Kxq39;6sID diff --git a/graphics/InterfaceButtons/yellow-preview-on-hover.xcf b/graphics/InterfaceButtons/yellow-preview-on-hover.xcf deleted file mode 100644 index 958140eb799d94307eb7b0e93a9a0efb854d31bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2880 zcmcImYfKbZ6uz@NJa*Aa3xbbI$J8H~6r=5r#>CXb@~5eWTBD8D+5#@?3Ibslg%p(< zUy=Bzp}rdJ@KC80D570_P>VD8sDcmB%4mO>qAkd>Pj}hfnVp_Hb9cK`oAys{a(2G^ zedpZAId^8S(X^(RDa*}c@=OH=1Z^5Ij9&($DELVNi=Vd#A#Bi+!DuiISPH?|Z#?+F z3eQ9%44YwElWjC)7)wkmfkL2DDBWx+FEB9Xq5{*(>H73MV{TDFQ3;c-JTgj*IoZt2 z88emk0x*k6(;+nH1)*V``DcJb%gn{uxu!xRGb=n7kmWBT371h?XtFS-!rWB`GmbCH z%QG7+kp<%D=P8vL9g6cn8nsOY`hA25Ctk_pdxaK5NnUoYVP2`lQdDT3VKHW7Kb&yf zV!?0$WUzRGaiET1cpzK|?1P&gEQ}MP@R%q(HVTgejK>YPH~``J=;9MyGoOHI@Wckb zn$Jdanqu6aD@b?ygft=e%QgO{FhvO5xy+JV3Wz8Cn|urKgeWSBA#`U3x72_hb*vEH1q92L(MzK;~Cm+X4-2pL{ci?+ajg=m6UE&S)=P6bqpd$BYajEA#_)mF3jbm^Ov|ZE_ktlJ;hDo z0@gZ~ZQ>?#BOT2w+W>G9=eux>t?TIlJdyLZ*09ZwJ-Cy~d4BqiWqF6)jk_tFyRDu* z_R#HgC~`9AyaYp7Z63EvWs*2Y`*F6W+v^3&sW|C5@$|{YCc4Q{%btAf^ZljhxKIZh z&pMmkBO|_NkpLYhcCdB#>HBt$ZS#-#yjW6)*Ktoe*rPtrGp}#t9@|DVvKk_~LG^;@ z^*&R^92MzudpytXvR07rd}LoF(&=)$J-w_IBt=sc1tPABE0T)`gJ>UL2suhZeM z4=Xv*ac(R-><*{%4r|434$AHywz+V|h-x3U+Z~`futp90Z9_y=hPF{QYB+G4wc72& z)G%f94?QI^B%<~@eLZ-NwGP`fHfqTKbdX5Wr5ZMlmAYnzJ^t|NfI1ebe&>+d#V3Ph zoBNdoL?4-`lN32!>Tzq~80GM#a~siC6w;#CP!K+JdNc(EXhgr8i6+C}WdJ4TSTfNh zA5BmSw`oFSTpE;UYVQE{AZEcUxw`Ah#WN>Wudzs^-_Ke|Ep&YNCYpNdXYPFK33mTZ@EnT< z!yfs1|K6S3 zD$7fVuzqXR?!8M9v#YjMa9=IPf+bnlTdmTpk1;02TLQC03Yw-= zH~}%Z+-CF+618*U5wK~T{5f{}$S2DOAXG{?E^Fk_0T@wwt6$b)I01=NnIzK~ry^-0 zFUMk-f}{m5IS#{QB*h<;br>cgDdT~x$54;N{DxDlbZf{jCtyN{LSy9d1SS6eNYeS_ zWOXH>`IRx1(idbQQHzXPdenxZwi&(qsH8-tDv~}mpOx@FiQ2bml#VY7_!fa}+#*AP zA=hFmDr6R9oAa>*@0HTRm!OT%`!AQEm%tCl;)_xum=+9L_&$Sa(h?>B2(JM6gg1yl NxP&>lzcD6J{u8u-VmAN) diff --git a/graphics/InterfaceButtons/yellow-preview-on.xcf b/graphics/InterfaceButtons/yellow-preview-on.xcf deleted file mode 100644 index 68d9bc695fe4be00f2451ce7b18f0bb3d0811f1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2342 zcmbVNYitx%6uvXFUD_(87HMmFt%M(tSknGb6SIki2#K!%p;2OtxNLWqm3Fswr=ehF zQ3#NT@(5BjQl`s8z{XZ8O0{TZrXUg85=3EQR04>l`+nQb-0|FblqJ^0c$2gDJKsI$ z+FdD2>$0TkV#Ls}a z*ac-P-Ssw?qteyrt_2FgI)&!>*mZRdi_cr%5JYdFoWz=vrm7R4u4d z#{{5SUz!i8t0qV_)-C@INNTgM!De@RT$XBMFCf=VMCx2+lgG_k+#dUChmYiYolc*F z9X}w+{wJj|cc&5^^g(UaKz@r(7{aSMKILH@jZT~0v9O6{y&m5J)@37cL~t_9V59*G zSiX))Vu6lfLZlHShKxcm1K*Q_@6ExJbMO?vq^>b00Wk7&o3F3a&+1?<%)}s;e&ueC zZXmuN9Tlakm#&Jl#Ieg~g&}dKh%XA1fCt3sV)n`pf^c3K5G%yYrL)4h@O8lDV(RLk zAY9JM#48g=e>x}h-;^m?B7Uhjda+*^NXWG27m4zZ7Y3QZ(er}vizG7!i~9w$APr-D zhk{LS-k@(#f}F;($p{1%L-8?4NXvP5v9LwIkeZle$9_G6Fnf&O9c8=@fr}Now zJ2Ir;c)gi;0-(mhuTm?!1*s#1dq=h?jdh zk2A;PP)JCoQ;E1v<95!>C9h;N>Ew7Q#hHfU?OZUMN#&BEbSj<61h`;^W$hWPlq^CLlZ#)6PNSqp^4#_;@@Pjpp)^Xfzh!ZpC8JNH`od z;xp+`I1&kPe?+KAHXI6$FPOfEQ{D`RL!sbEM2p4&a-E;U!QjZqZG-!|+tjUIJb3%| z@UY5)KA(d=*9{-!>-`wy3u?L&jF~(>!BHIUQd@S2JI>G6 zItcCL{pbS1G@6a%JPLlt;D5asJ|2HjCRDiGil(D%9zqW`y>3MnD3gbnMSFI?VMXOA zMbT*LYsUh6H(24Nz?7LWCn2(WUvJle){R#507}<ag-CEZBYOPZ}>C^RVT(v7-w5h99624zm_Lo-FEP0vSl%g_d>hsH%5Kq(K z@fQfzrCG7kYUs7hie~8wYI@Eg()!UU^5H|$LuaYk6u$+ z;15iiywnVGw36q*crT_bchouTtlR6cJZJN*AxqE#br?^bAH4ta)D=M-$tBNWF&F~| d!+5m_t&e;Rz&HW$1tt1|&K1ldzCW*6`5Vmy{`CL= diff --git a/graphics/InterfaceButtons/yellow-retry-off-hover.xcf b/graphics/InterfaceButtons/yellow-retry-off-hover.xcf deleted file mode 100644 index 26b85b991e7ab06ec4d8aed61145e41207e6bdc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6318 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 diff --git a/graphics/InterfaceButtons/yellow-retry-on-hover.xcf b/graphics/InterfaceButtons/yellow-retry-on-hover.xcf deleted file mode 100644 index 0a5513990015455b3a18d63e4b0d3bf4fe412f69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5860 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 BMTh_Z diff --git a/graphics/InterfaceButtons/yellow-retry-on.xcf b/graphics/InterfaceButtons/yellow-retry-on.xcf deleted file mode 100644 index d9194376467c152a21d8c3a392ce3b136e0a2b13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5601 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 d4sH|}lCc*6c4eajs-LK~^yB#yNGd(kB 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 ZI|B9drPY6$=WoB><0e1qpO(hF|1Yazu~Ps5 diff --git a/graphics/neothesia.xpm b/graphics/neothesia.xpm deleted file mode 100644 index 36438f98..00000000 --- a/graphics/neothesia.xpm +++ /dev/null @@ -1,531 +0,0 @@ -/* XPM */ -static char * linthesia_xpm[] = { -"32 32 496 2", -" c None", -". c #3B373B", -"+ c #5B585C", -"@ c #606064", -"# c #616061", -"$ c #605D5F", -"% c #575759", -"& c #535456", -"* c #515154", -"= c #777777", -"- c #ADACAA", -"; c #9C9999", -"> c #888788", -", c #8C8C8C", -"' c #7D7D7E", -") c #5A5C5C", -"! c #585A5C", -"~ c #343434", -"{ c #5F5E5C", -"] c #D9D8D8", -"^ c #FFFFFF", -"/ c #FDFDFD", -"( c #F9F8F9", -"_ c #A09E9F", -": c #454546", -"< c #505051", -"[ c #232325", -"} c #504F52", -"| c #5A595C", -"1 c #525152", -"2 c #484548", -"3 c #38393A", -"4 c #3D4040", -"5 c #4E4D4F", -"6 c #716F72", -"7 c #7D7C7C", -"8 c #505050", -"9 c #464745", -"0 c #E1E1E0", -"a c #FAF9F9", -"b c #757374", -"c c #444546", -"d c #535356", -"e c #18171A", -"f c #131313", -"g c #858485", -"h c #F8F7F7", -"i c #FCFDFC", -"j c #C2C0C1", -"k c #3D3B3E", -"l c #202123", -"m c #4B4C4C", -"n c #38383A", -"o c #252627", -"p c #404342", -"q c #7D7D7C", -"r c #8C8788", -"s c #898787", -"t c #29292A", -"u c #121316", -"v c #0E1113", -"w c #151516", -"x c #ACA9A9", -"y c #9B9899", -"z c #393939", -"A c #444548", -"B c #2C2C31", -"C c #000000", -"D c #2C2B2B", -"E c #C9C9C8", -"F c #F3F3F4", -"G c #EAE9E9", -"H c #555456", -"I c #403F41", -"J c #312F32", -"K c #545453", -"L c #8F8C8C", -"M c #9C9799", -"N c #908D8B", -"O c #434241", -"P c #1D1D20", -"Q c #313133", -"R c #4A4C4C", -"S c #101113", -"T c #5F5F60", -"U c #F9F9F9", -"V c #D2D1D1", -"W c #4B4B4D", -"X c #343634", -"Y c #444648", -"Z c #818180", -"` c #F4F4F4", -" . c #F3F3F3", -".. c #D6D6D6", -"+. c #4C4D4F", -"@. c #37393C", -"#. c #615E5D", -"$. c #9B9796", -"%. c #969393", -"&. c #7E7B7C", -"*. c #484645", -"=. c #9A9999", -"-. c #EEEEEE", -";. c #CBC8C9", -">. c #484545", -",. c #484A4B", -"'. c #3E4043", -"). c #1E1D1E", -"!. c #BFBEBE", -"~. c #666464", -"{. c #262827", -"]. c #4B4F51", -"^. c #212124", -"/. c #373837", -"(. c #D7D7D6", -"_. c #F2F2F2", -":. c #424244", -"<. c #2E3031", -"[. c #3D3E40", -"}. c #908D8E", -"|. c #888685", -"1. c #454443", -"2. c #A5A4A4", -"3. c #E5E3E4", -"4. c #5A595B", -"5. c #3B3F40", -"6. c #545458", -"7. c #787676", -"8. c #9E9C9D", -"9. c #2B2A2B", -"0. c #434649", -"a. c #4A4D4F", -"b. c #939391", -"c. c #434344", -"d. c #3F3F41", -"e. c #202225", -"f. c #2D2E2E", -"g. c #4A4747", -"h. c #CAC9C9", -"i. c #F8F8F7", -"j. c #787878", -"k. c #353534", -"l. c #555858", -"m. c #232426", -"n. c #353635", -"o. c #DBDBDA", -"p. c #DAD7D9", -"q. c #424142", -"r. c #313233", -"s. c #5C5C5E", -"t. c #121617", -"u. c #4B4A4B", -"v. c #C5C5C4", -"w. c #8D8C8D", -"x. c #666667", -"y. c #131215", -"z. c #0D0E12", -"A. c #0F1013", -"B. c #353434", -"C. c #C9C7C7", -"D. c #FFFEFE", -"E. c #F7F3F5", -"F. c #A7A6A7", -"G. c #313033", -"H. c #4C4D50", -"I. c #4A484D", -"J. c #969696", -"K. c #6F6D6F", -"L. c #58575A", -"M. c #3E3E41", -"N. c #1E1F1E", -"O. c #ACA8A7", -"P. c #575353", -"Q. c #050408", -"R. c #252628", -"S. c #424547", -"T. c #979394", -"U. c #F5F4F4", -"V. c #F7F6F7", -"W. c #FBFCFB", -"X. c #D8D6D7", -"Y. c #424144", -"Z. c #3A3A3A", -"`. c #606160", -" + c #08090B", -".+ c #565656", -"++ c #FCFCFC", -"@+ c #A3A2A3", -"#+ c #2D2B2C", -"$+ c #464646", -"%+ c #515455", -"&+ c #161619", -"*+ c #747171", -"=+ c #A9A9A8", -"-+ c #D7D9DA", -";+ c #484647", -">+ c #535455", -",+ c #101418", -"'+ c #585758", -")+ c #F2F1F2", -"!+ c #F8F6F7", -"~+ c #FDFBFC", -"{+ c #666365", -"]+ c #2F2E2F", -"^+ c #656565", -"/+ c #313336", -"(+ c #C7C5C5", -"_+ c #444344", -":+ c #232326", -"<+ c #454849", -"[+ c #464647", -"}+ c #CAC9CA", -"|+ c #B2AFB3", -"1+ c #504C4E", -"2+ c #585855", -"3+ c #313738", -"4+ c #1E1F21", -"5+ c #C5C2C4", -"6+ c #FFFDFE", -"7+ c #F9F8F8", -"8+ c #969395", -"9+ c #28262A", -"0+ c #565658", -"a+ c #575558", -"b+ c #868484", -"c+ c #6F6E70", -"d+ c #191A1B", -"e+ c #1C1C1C", -"f+ c #0C0C0C", -"g+ c #868487", -"h+ c #D7D7D7", -"i+ c #525053", -"j+ c #525051", -"k+ c #4E5153", -"l+ c #8D8B8E", -"m+ c #F7F7F6", -"n+ c #CDCBCC", -"o+ c #343435", -"p+ c #3E3D3D", -"q+ c #68686A", -"r+ c #18191C", -"s+ c #6A6D6D", -"t+ c #A6A4A5", -"u+ c #605F63", -"v+ c #15191C", -"w+ c #5C5B5C", -"x+ c #636062", -"y+ c #4A4749", -"z+ c #626163", -"A+ c #070D0E", -"B+ c #555356", -"C+ c #F9F7F8", -"D+ c #F7F7F7", -"E+ c #FCFBFB", -"F+ c #F1F0F0", -"G+ c #595758", -"H+ c #2C2A2D", -"I+ c #6A686B", -"J+ c #2F2E32", -"K+ c #2D2E2D", -"L+ c #EAEAE9", -"M+ c #726E71", -"N+ c #5A5D5A", -"O+ c #262A2D", -"P+ c #2D2C2E", -"Q+ c #D3D0D2", -"R+ c #7E7E7E", -"S+ c #3D3B3D", -"T+ c #646566", -"U+ c #2D2F33", -"V+ c #CBCBCC", -"W+ c #FEFEFD", -"X+ c #FBFAFA", -"Y+ c #838384", -"Z+ c #222224", -"`+ c #4C4C4E", -" @ c #545553", -".@ c #B5B5B2", -"+@ c #D3D3D3", -"@@ c #D8D6D8", -"#@ c #595856", -"$@ c #505152", -"%@ c #414346", -"&@ c #050507", -"*@ c #9E9EA0", -"=@ c #605F61", -"-@ c #484B4C", -";@ c #929193", -">@ c #F7F5F6", -",@ c #FAFAFA", -"'@ c #C1C1C1", -")@ c #1D1C1E", -"!@ c #3D3D3E", -"~@ c #E6E5E4", -"{@ c #F3F3F2", -"]@ c #D5D6D6", -"^@ c #EBEAEB", -"/@ c #575957", -"(@ c #000001", -"_@ c #737174", -":@ c #CECDCD", -"<@ c #3B3A3B", -"[@ c #606363", -"}@ c #010507", -"|@ c #5A595A", -"1@ c #F9F9FA", -"2@ c #F7F6F6", -"3@ c #FBFBFA", -"4@ c #E9E9E9", -"5@ c #D5D5D5", -"6@ c #FDFCFD", -"7@ c #696869", -"8@ c #444340", -"9@ c #676769", -"0@ c #13191B", -"a@ c #434145", -"b@ c #EEEDEE", -"c@ c #525153", -"d@ c #404040", -"e@ c #6D6F6F", -"f@ c #1D2122", -"g@ c #2E2F31", -"h@ c #DEDFE0", -"i@ c #F6F5F6", -"j@ c #F6F6F6", -"k@ c #ECECEC", -"l@ c #646366", -"m@ c #F6F5F5", -"n@ c #828183", -"o@ c #3D393A", -"p@ c #2C3032", -"q@ c #1D1E1F", -"r@ c #C5C3C5", -"s@ c #706F70", -"t@ c #302F31", -"u@ c #747273", -"v@ c #424546", -"w@ c #0F1113", -"x@ c #E2E1E2", -"y@ c #FEFEFE", -"z@ c #F6F6F5", -"A@ c #FAFAF9", -"B@ c #EEEFEE", -"C@ c #323137", -"D@ c #A19FA0", -"E@ c #353234", -"F@ c #44494B", -"G@ c #969496", -"H@ c #9B979A", -"I@ c #2B292C", -"J@ c #686A69", -"K@ c #58595D", -"L@ c #141315", -"M@ c #989796", -"N@ c #F8F8F8", -"O@ c #EEEDED", -"P@ c #474C4D", -"Q@ c #101218", -"R@ c #B9B6B8", -"S@ c #C5C4C4", -"T@ c #353637", -"U@ c #5F5F63", -"V@ c #5D5D5E", -"W@ c #656467", -"X@ c #C4C3C3", -"Y@ c #2F2F30", -"Z@ c #414143", -"`@ c #646467", -" # c #636261", -".# c #EEEEEC", -"+# c #FCFCFB", -"@# c #F5F5F5", -"## c #FDFDFC", -"$# c #F2F1F1", -"%# c #7E7D7D", -"&# c #525455", -"*# c #00010A", -"=# c #939296", -"-# c #DFDFDE", -";# c #3D3A3B", -"># c #514F50", -",# c #717373", -"'# c #111315", -")# c #3D3D40", -"!# c #E8E8E8", -"~# c #4F4D4F", -"{# c #0C0E0F", -"]# c #888986", -"^# c #F9F8F7", -"/# c #F4F4F3", -"(# c #F0F0EF", -"_# c #7C7779", -":# c #666564", -"<# c #616363", -"[# c #000107", -"}# c #6C6A6D", -"|# c #FCFAFA", -"1# c #5A5959", -"2# c #434243", -"3# c #827F81", -"4# c #292E2F", -"5# c #1F1F22", -"6# c #E5E6E6", -"7# c #949392", -"8# c #E7E6E7", -"9# c #FCFCFD", -"0# c #FAFAF8", -"a# c #6C6B6D", -"b# c #595559", -"c# c #6A6C6C", -"d# c #070C10", -"e# c #434245", -"f# c #F0F0F0", -"g# c #727272", -"h# c #28282B", -"i# c #7E7A7C", -"j# c #424345", -"k# c #929293", -"l# c #F2F0F1", -"m# c #747473", -"n# c #4E4B4F", -"o# c #727277", -"p# c #1C1E22", -"q# c #272B2F", -"r# c #D3D3D4", -"s# c #919090", -"t# c #2B282B", -"u# c #565659", -"v# c #606365", -"w# c #595557", -"x# c #D9D7D8", -"y# c #EDEDED", -"z# c #898687", -"A# c #413D3F", -"B# c #7C7A7B", -"C# c #36393C", -"D# c #101318", -"E# c #AFB0B2", -"F# c #BCBBBB", -"G# c #2A292B", -"H# c #242428", -"I# c #595A5A", -"J# c #EFEFEF", -"K# c #F3F0F1", -"L# c #F5F3F4", -"M# c #EBEBEB", -"N# c #D4D4D4", -"O# c #F3F1F2", -"P# c #A6A3A2", -"Q# c #3A3A3C", -"R# c #7F7C7F", -"S# c #494C4D", -"T# c #98989B", -"U# c #E0DDDD", -"V# c #4D4B4A", -"W# c #D2D2D1", -"X# c #FEFBFB", -"Y# c #F7F8F7", -"Z# c #F2F0F0", -"`# c #E6E6E6", -" $ c #CACBCB", -".$ c #EFEDEE", -"+$ c #DCD9DA", -"@$ c #E5E4E4", -"#$ c #B3B2B2", -"$$ c #383536", -"%$ c #6C6A6A", -"&$ c #4D4D4E", -"*$ c #06070B", -"=$ c #0A0C0F", -"-$ c #C8C8C9", -";$ c #DFDDDE", -">$ c #E3E2E2", -",$ c #E5E5E5", -"'$ c #E1E1E1", -")$ c #E2E2E2", -"!$ c #DEDDDE", -"~$ c #D6D5D4", -"{$ c #CCCBCC", -"]$ c #B7B7B7", -"^$ c #BFBDBE", -"/$ c #ABA9AA", -"($ c #B3B3B3", -"_$ c #A1A09F", -":$ c #353333", -"<$ c #535053", -"[$ c #404041", -"}$ c #252727", -"|$ c #AEADAF", -"1$ c #B3B1B2", -"2$ c #ADABAB", -"3$ c #B2B2B2", -"4$ c #B2B3B3", -"5$ c #AEAEAE", -"6$ c #A4A1A2", -"7$ c #757575", -" ", -" ", -" . + @ # $ % & * = - ; > , ' ) ! ~ { ] ^ ^ / ^ ( _ : < [ ", -" } | 1 2 3 4 5 6 7 8 9 0 ^ a b c d e f g ^ ^ h i ^ j k l ", -" & m n o p q r s t u v w x ^ ^ y z A B C D E ^ ^ F ^ G H ", -" } I J K L M N O P Q R S C T U ^ V W X Y C C Z ^ ^ ` ... ", -" +.@.#.$.%.&.*.=.-.;.>.,.'.C ).!.^ ^ ~.{.].^.C /.(.^ _... ", -" :.<.[.}.|.1.2.^ ^ ^ 3.4.5.6.C C 7.^ ^ 8.9.0.a.C C b. ... ", -" c.d.e.f.g.h.^ / i.a ^ ^ j.k.l.m.C n.o.^ p.q.r.s.t.C u.v. ", -" w.x.y.z.A.B.C.^ D.E.h ^ ^ F.G.H.I.C C J.^ ^ K.o L.M.C N. ", -" O.P.Q.R.S.C C T.^ ^ U.V.W.^ X.Y.Z.`. +C .+++^ @+#+$+%+&+ ", -" *+=+-+_ ;+>+,+C '+)+^ h !+U ^ ~+{+]+^+/+C ).(+^ 0 _+:+<+ ", -" [+}+^ ^ |+1+2+3+C 4+5+^ 6+!+7+^ ^ 8+9+0+a+C C b+^ ^ c+d+ ", -" e+f+g+^ ^ h+i+j+k+C C l+^ ^ m+7+D.^ n+o+p+q+r+C s+^ .t+ ", -" u+v+C w+( ^ )+x+y+z+A+C B+_.^ C+D+E+^ F+G+H+I+J+K+L+ ... ", -" M+N+O+C P+Q+^ ^ R+S+T+U+C [ V+^ W+h X+^ ^ Y+Z+`+ @.@ .+@ ", -" @@#@$@%@C &@*@^ ^ 2.n =@-@C C ;@^ ^ >@,@D.^ '@)@!@~@{@]@ ", -" ^ ^@B+u./@(@C _@^ ^ :@<@< [@}@C |@1@^ 2@X+3@^ ] !.^ 4@5@ ", -" ^ ^ 6@7@8@9@0@C a@^@^ b@c@d@e@f@C g@h@^ i@X+a ^ ^ j@k@+@ ", -" l@m@^ ^ n@o@6 p@C q@r@^ ^ s@t@u@v@C w@x@y@z@A@++h D+B@.. ", -" e+C@] ^ ^ D@E@K.F@C C G@^ ^ H@I@J@K@L@M@^ W+m+N@/ ,@O@.. ", -" P@f+Q@R@^ ^ S@T@U@V@C C W@^ ^ X@Y@Z@`@ #.#^ +#2@@###$#5@ ", -" %#&#C *#=#^ ^ -#;#>#,#'#C )#b@^ !#~#{#]#W+++3@E+^#/#(#.. ", -" _#:#<#[#C }#^ ^ |#1#2#3#4#C 5#6#^ ^ 7#8#9###a a X+N@4@+@ ", -" 0#a#b#c#d#C e#f#^ ^ g#h#i#j#C k#^ ^ ^ ^ l#X+++D+N@N@-.+@ ", -" ^ ^ m#n#o#p#C q#r#^ ^ s#t#u#v#w#x#^ 3@+#a $#!+++D+j@y#.. ", -" ^ ^ ^ z#A#B#C#C D#E#^ ^ F#G#H#I#J#^ a a ,@U K#L#+#N@M#N# ", -" O#^ y@^ P#Q#R#S#C C T#^ ^ U#V#W#X#++++7+N@Y#U K#Z#N@`# $ ", -" .$+$@$`#`##$$$%$&$*$=$-$`#`#`#`#;$] >$,$'$'$'$)$!$~${$]$ ", -" , ^$/$($($($_$:$<$[$}$1#|$($($($($1$2$#$($3$3$3$4$5$6$7$ ", -" ", -" "}; diff --git a/graphics/play_KeyHits.tga b/graphics/play_KeyHits.tga deleted file mode 100644 index b52737e91f9c409e40366b01f68feece1044d6a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2685 zcmZA3jZ;)r7=ZEJyCMt1+K^gKR5+MAIv|Rv8O{i$4T;p`$B<4nX?~Q7W{smo8LS|F zR;Hqp)0S3>DKlC2WxBG<|3%MpW-r5}^E;e-_uTWo=RM~xBodX0_+MRu|LL5U|7!-l zmmMD;PoB5eXH(`SB1}aZ(@@<7kgQ8Q7G zg=oTZyy)C5DSKFj7qG&+&)YOR!4i8-kqqbrf4&Y;a zieqrf2{-~=4vQjehrM{pP)!6|pZFg_O<(^9y|E*!;I7{YhBjvKgz zUvS%ycU<8}=oxIJ!h3MQFmB>UT!oozgApq$X=<<%yJ5;k@u6RF4}akw-1ozOec}Ng zdV%|J#9jQ1FR>Rbc%p)44%)B}r*RD<_ybOm$LLv_f}7)&Q~nN@>C(IL66(@4^YJp? zhY9@vr!$8<3g>9XoN5#XFf$i#aGx@ndI!uyE4CwxZ(+s4RIX!U8kcVnOXJ9Qu^M5T zIyx)hDft8!V8LBreqx$OTsg4;F2a4?f@ajZu-RxtCl0}Nn6{O$*ad4e=Ex%Q_!9>D z8lI&MScDmt{c${pb=U(Bq@}kSR>kTRPtc5cc8Yy81)uZ2xjuj^a8FI88?T@q83+23 z)WSOK!sGz%ppz8O(1e@|beuBIIX)(B+ z6?s;Ff^~AmEwHHRX*5arz(RDP2X4bP+<_09bsmLK7N2r@Gta{iCSfx1Ie3e{-$Eu` zR#p0{auv0(T6>YjH~1d6;0|~aobXXEO~IxZdKPsQdHA{GeuF7qhh=lCJK*kGwJ1{x zoZ`Z5Uxv+a%beAB=qlVwv-d>B2|RQ_K0_0~(0|i+ou+vkmNW-XSr6XEDp=YwBUeuf zZ~paIgEz4spW_UMU=2L7uIFwa%{@b#kl{>j81Yxt1^R5=uVN{lf<;dne&UyfTmBg8 z(1bR)13PgDpTR?Q4lZiQ*jFspC7g!^>W3qJ!Z)f5uA~`rV1%*|Gc=|WFMI}lgEwL| zItl3x$)9|#p<$h? z@wS$Jx)mGX=PR)o^I+Pu;CV_T75?N1O<1tEN*`78(?Xb?As4}Y34eREn(G?)UU=6} z9px6ygaI7mIf;&Yboy;9ojd4l17=_l*X3@`g(X=4^L0vdwicGi15^&5H_>F6b-<~O zXt})Y$1cy|md&tc<RF3y^$64Yi{Dl`9FP+Lv?N3Fzm!`riADEm&bjt9jZG0#^ h=-`x1bk_UvzfEs!Uc04zWBY5J4PEQnJJvQP{saB+{*C|u diff --git a/graphics/play_KeyRail.tga b/graphics/play_KeyRail.tga deleted file mode 100755 index 27c8421b23f2c850d9564a088d31e41fc7358e69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 154 zcmZQz;9`IQ0R{mE1&)3Y7fi5fX=?q~($e~`3BsD1|3Q2ZyHN|sVFAf#X=y@ap>!ii XkUjx<$ns9J%_}>pE;I;z*Iy5g| diff --git a/graphics/play_KeyShadow.tga b/graphics/play_KeyShadow.tga deleted file mode 100644 index a2558ec9524e0bed8f05833f420cba678a18fb29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204 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 z 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